mirror of
				https://github.com/fastapi/sqlmodel.git
				synced 2025-10-31 10:06:57 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| from typing import Any, Dict, List
 | |
| 
 | |
| from pdm.backend.hooks import Context
 | |
| 
 | |
| TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE", "sqlmodel")
 | |
| 
 | |
| 
 | |
| 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)
 | 
