committed by
GitHub
5 changed files with 103 additions and 27 deletions
@ -0,0 +1,39 @@ |
|||
import os |
|||
from typing import Any, Dict, List |
|||
|
|||
from pdm.backend.hooks import Context |
|||
|
|||
TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE", "fastapi") |
|||
|
|||
|
|||
def pdm_build_initialize(context: Context) -> None: |
|||
metadata = context.config.metadata |
|||
# Get custom config for the current package, from the env var |
|||
config: Dict[str, Any] = context.config.data["tool"]["tiangolo"][ |
|||
"_internal-slim-build" |
|||
]["packages"][TIANGOLO_BUILD_PACKAGE] |
|||
project_config: Dict[str, Any] = config["project"] |
|||
# Get main optional dependencies, extras |
|||
optional_dependencies: Dict[str, List[str]] = metadata.get( |
|||
"optional-dependencies", {} |
|||
) |
|||
# Get custom optional dependencies name to always include in this (non-slim) package |
|||
include_optional_dependencies: List[str] = config.get( |
|||
"include-optional-dependencies", [] |
|||
) |
|||
# Override main [project] configs with custom configs for this package |
|||
for key, value in project_config.items(): |
|||
metadata[key] = value |
|||
# Get custom build config for the current package |
|||
build_config: Dict[str, Any] = ( |
|||
config.get("tool", {}).get("pdm", {}).get("build", {}) |
|||
) |
|||
# Override PDM build config with custom build config for this package |
|||
for key, value in build_config.items(): |
|||
context.config.build_config[key] = value |
|||
# Get main dependencies |
|||
dependencies: List[str] = metadata.get("dependencies", []) |
|||
# Add optional dependencies to the default dependencies for this (non-slim) package |
|||
for include_optional in include_optional_dependencies: |
|||
optional_dependencies_group = optional_dependencies.get(include_optional, []) |
|||
dependencies.extend(optional_dependencies_group) |
Loading…
Reference in new issue