Skip to content

Latest commit

 

History

History
80 lines (44 loc) · 4.42 KB

File metadata and controls

80 lines (44 loc) · 4.42 KB
graph LR
    Configuration_Options["Configuration Options"]
    Configuration_Orchestrator["Configuration Orchestrator"]
    Build_Options_Resolver["Build Options Resolver"]
    Option_Value_Accessor["Option Value Accessor"]
    Architecture_Config_Parser["Architecture Config Parser"]
    Project_Metadata_Extractor["Project Metadata Extractor"]
    Configuration_Orchestrator -- "constructs and populates" --> Configuration_Options
    Configuration_Orchestrator -- "invokes" --> Build_Options_Resolver
    Configuration_Orchestrator -- "interacts with" --> Architecture_Config_Parser
    Option_Value_Accessor -- "accesses" --> Configuration_Options
    Build_Options_Resolver -- "uses" --> Option_Value_Accessor
    Build_Options_Resolver -- "queries" --> Project_Metadata_Extractor
    Project_Metadata_Extractor -- "provides metadata to" --> Build_Options_Resolver
Loading

CodeBoardingDemoContact

Details

The Configuration & Options Manager subsystem is central to cibuildwheel, responsible for consolidating all build-related settings. It acts as the single source of truth for the build process, integrating configurations from various sources like CLI arguments, environment variables, and pyproject.toml, while also incorporating project and architecture-specific details.

Configuration Options

The immutable data structure that encapsulates the consolidated and validated build configuration. It serves as the single source of truth for all build settings, embodying the "Configuration Manager" aspect.

Related Classes/Methods:

Configuration Orchestrator

The primary entry point and facade for the entire configuration process. It orchestrates the loading, parsing, merging, and validation of all build settings, returning a fully populated Options object.

Related Classes/Methods:

Build Options Resolver

An internal method responsible for the complex logic of combining configuration from various sources (CLI arguments, environment variables, pyproject.toml), handling precedence and merging rules.

Related Classes/Methods:

Option Value Accessor

Provides a unified interface to retrieve specific configuration values from the Options object, ensuring that cascading rules and overrides are correctly applied. It acts as a "Strategy" for value retrieval.

Related Classes/Methods:

Architecture Config Parser

Responsible for parsing and validating architecture-related configuration strings (e.g., from CIBW_ARCHS), translating them into internal architecture representations. This acts as an "Adapter" for architecture-specific configuration.

Related Classes/Methods:

Project Metadata Extractor

Extracts the Python version requirements (python_requires) from the project's metadata files (pyproject.toml or setup.py), contributing essential project metadata to the configuration.

Related Classes/Methods: