[+] isolate requirements_name
This commit is contained in:
parent
f4891526a7
commit
8fecbe3e8a
@ -185,7 +185,7 @@ def pyproject_load(
|
|||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class BootstrapSettings:
|
class BootstrapSettings:
|
||||||
env_path: Optional[pathlib.Path]
|
env_path: pathlib.Path
|
||||||
python_path: pathlib.Path
|
python_path: pathlib.Path
|
||||||
base_dir: pathlib.Path
|
base_dir: pathlib.Path
|
||||||
python_version: Optional[str] = dataclasses.field(
|
python_version: Optional[str] = dataclasses.field(
|
||||||
@ -232,6 +232,48 @@ class BootstrapSettings:
|
|||||||
python_path=python_path,
|
python_path=python_path,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class requirements_name_get_t:
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class res_t:
|
||||||
|
not_compiled : pathlib.Path
|
||||||
|
compiled: pathlib.Path
|
||||||
|
name: str
|
||||||
|
|
||||||
|
def requirements_name_get(
|
||||||
|
source_dir: pathlib.Path,
|
||||||
|
python_version: Optional[str],
|
||||||
|
features: list[str],
|
||||||
|
requirements: dict[str, pathlib.Path],
|
||||||
|
) -> requirements_name_get_t.res_t:
|
||||||
|
requirements_python_version: Optional[str] = None
|
||||||
|
if not python_version is None:
|
||||||
|
requirements_python_version = \
|
||||||
|
python_version.replace('.', '_')
|
||||||
|
|
||||||
|
requirements_name = '_'.join(sorted(features))
|
||||||
|
|
||||||
|
if requirements_python_version:
|
||||||
|
requirements_name += '_' + requirements_python_version
|
||||||
|
|
||||||
|
requirements_path : Optional[pathlib.Path] = None
|
||||||
|
|
||||||
|
if requirements_name in requirements:
|
||||||
|
requirements_path = requirements[requirements_name]
|
||||||
|
else:
|
||||||
|
requirements_path = source_dir / 'requirements.txt'
|
||||||
|
|
||||||
|
requirements_path_in = requirements_path.parent / (
|
||||||
|
requirements_path.stem + '.in'
|
||||||
|
)
|
||||||
|
|
||||||
|
requirements_in : list[str] = []
|
||||||
|
|
||||||
|
return requirements_name_get_t.res_t(
|
||||||
|
not_compiled=requirements_path_in,
|
||||||
|
compiled=requirements_path,
|
||||||
|
name=requirements_name,
|
||||||
|
)
|
||||||
|
|
||||||
def env_bootstrap(
|
def env_bootstrap(
|
||||||
bootstrap_settings: BootstrapSettings,
|
bootstrap_settings: BootstrapSettings,
|
||||||
pyproject: PyProject,
|
pyproject: PyProject,
|
||||||
@ -251,22 +293,13 @@ def env_bootstrap(
|
|||||||
if pyproject.early_features:
|
if pyproject.early_features:
|
||||||
features.extend(pyproject.early_features)
|
features.extend(pyproject.early_features)
|
||||||
|
|
||||||
requirements_python_version: Optional[str] = None
|
requirements_name_get_res = requirements_name_get(
|
||||||
if not bootstrap_settings.python_version is None:
|
python_version=bootstrap_settings.python_version,
|
||||||
requirements_python_version = bootstrap_settings.python_version.replace('.', '_')
|
features=features,
|
||||||
|
requirements=pyproject.requirements,
|
||||||
|
source_dir=pyproject.path.parent,
|
||||||
requirements_name = '_'.join(sorted(features))
|
)
|
||||||
|
requirements_path = requirements_name_get_res.compiled
|
||||||
if requirements_python_version:
|
|
||||||
requirements_name += '_' + requirements_python_version
|
|
||||||
|
|
||||||
requirements_path : Optional[pathlib.Path] = None
|
|
||||||
|
|
||||||
if requirements_name in pyproject.requirements:
|
|
||||||
requirements_path = pyproject.requirements[requirements_name]
|
|
||||||
else:
|
|
||||||
requirements_path = pyproject.path.parent / 'requirements.txt'
|
|
||||||
|
|
||||||
requirements_in : list[str] = []
|
requirements_in : list[str] = []
|
||||||
|
|
||||||
@ -281,7 +314,7 @@ def env_bootstrap(
|
|||||||
], [])
|
], [])
|
||||||
|
|
||||||
logger.info(dict(
|
logger.info(dict(
|
||||||
requirements_name=requirements_name,
|
requirements_name_get_res=requirements_name_get_res,
|
||||||
early_dependencies=early_dependencies,
|
early_dependencies=early_dependencies,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user