# oscillode # Copyright (C) 2024 oscillode Project Contributors # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # blender_maxwell # Copyright (C) 2024 blender_maxwell Project Contributors # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import tomllib from pathlib import Path #################### # - Basic #################### PATH_ROOT = Path(__file__).resolve().parent.parent with (PATH_ROOT / 'pyproject.toml').open('rb') as f: PROJ_SPEC = tomllib.load(f) REQ_PYTHON_VERSION = PROJ_SPEC['project']['requires-python'].replace('~= ', '') #################### # - Paths #################### def proc_path(p_str: str) -> Path: return PATH_ROOT / Path(*p_str.split('/')) PATH_PKG = PATH_ROOT / PROJ_SPEC['project']['name'] PATH_DEV = PATH_ROOT / 'dev' PATH_DEV.mkdir(exist_ok=True) # Retrieve Build Path ## Extension ZIP files will be placed here after packaging. PATH_BUILD = proc_path(PROJ_SPEC['tool']['bl_ext']['packaging']['path_builds']) PATH_BUILD.mkdir(exist_ok=True) # Retrieve Wheels Path ## Dependency wheels will be downloaded to here, then copied into the extension packages. PATH_WHEELS = proc_path(PROJ_SPEC['tool']['bl_ext']['packaging']['path_wheels']) PATH_WHEELS.mkdir(exist_ok=True) # Retrieve Local Cache Path ## During development, files such as logs will be placed here instead of in the extension's user path. ## This is essentially a debugging convenience. PATH_LOCAL = proc_path(PROJ_SPEC['tool']['bl_ext']['packaging']['path_local']) PATH_LOCAL.mkdir(exist_ok=True) #################### # - Computed Paths #################### # Compute Current ZIP to Build ## The concrete path to the file that will be packed and installed. PATH_ZIP = PATH_BUILD / ( PROJ_SPEC['project']['name'] + '__' + PROJ_SPEC['project']['version'] + '.zip' )