+++ /dev/null
-import os
-from typing import Any
-
-from pdm.backend.hooks import Context
-
-TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE")
-
-
-def pdm_build_initialize(context: Context) -> None:
- metadata = context.config.metadata
- # Get main version
- version = metadata["version"]
- # Get custom config for the current package, from the env var
- all_configs_config: dict[str, Any] = context.config.data["tool"]["tiangolo"][
- "_internal-slim-build"
- ]["packages"]
-
- if TIANGOLO_BUILD_PACKAGE not in all_configs_config:
- return
-
- config = all_configs_config[TIANGOLO_BUILD_PACKAGE]
- project_config: dict[str, Any] = config["project"]
- # 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", [])
- # Sync versions in dependencies
- new_dependencies = []
- for dep in dependencies:
- new_dep = f"{dep}>={version}"
- new_dependencies.append(new_dep)
- metadata["dependencies"] = new_dependencies
"docs/en/docs/img/favicon.png",
]
-[tool.tiangolo._internal-slim-build.packages.fastapi-slim.project]
-name = "fastapi-slim"
-readme = "fastapi-slim/README.md"
-dependencies = [
- "fastapi",
-]
-optional-dependencies = {}
-scripts = {}
-
-[tool.tiangolo._internal-slim-build.packages.fastapi-slim.tool.pdm.build]
-# excludes needs to explicitly exclude the top level python packages,
-# otherwise PDM includes them by default
-# A "*" glob pattern can't be used here because in PDM internals, the patterns are put
-# in a set (unordered, order varies) and each excluded file is assigned one of the
-# glob patterns that matches, as the set is unordered, the matched pattern could be "*"
-# independent of the order here. And then the internal code would give it a lower score
-# than the one for a default included file.
-# By not using "*" and explicitly excluding the top level packages, they get a higher
-# score than the default inclusion
-excludes = ["fastapi", "tests", "pdm_build.py"]
-# source-includes needs to explicitly define some value because PDM will check the
-# truthy value of the list, and if empty, will include some defaults, including "tests",
-# an empty string doesn't match anything, but makes the list truthy, so that PDM
-# doesn't override it during the build.
-source-includes = [""]
-
[tool.mypy]
plugins = ["pydantic.mypy"]
strict = true