Skip to content

Latest commit

 

History

History
69 lines (38 loc) · 4.21 KB

File metadata and controls

69 lines (38 loc) · 4.21 KB
graph LR
    Project["Project"]
    Project_Properties["Project Properties"]
    Dependency_Manager["Dependency Manager"]
    Requirements_File_Parser["Requirements File Parser"]
    File_Manifest_Manager["File Manifest Manager"]
    Project -- "composes" --> Dependency_Manager
    Project -- "delegates to" --> Requirements_File_Parser
    Project -- "manages" --> Project_Properties
    Project -- "manages" --> File_Manifest_Manager
Loading

CodeBoardingDemoContact

Details

The pybuilder project's core architecture revolves around the Project component, which acts as the central configuration and lifecycle manager. The Project component internally manages its Project Properties for flexible configuration and manages the File Manifest Manager functionality to control build artifact inclusion. For external dependencies, the Project composes a Dependency Manager to track individual dependencies and delegates to the Requirements File Parser for interpreting external dependency declarations. This design centralizes project configuration and dependency management within the Project entity, ensuring a cohesive and controlled build process.

Project

The core entity representing the build project. It acts as the central hub for all project configuration, metadata, and lifecycle management. It aggregates and provides access to all other configuration-related aspects.

Related Classes/Methods:

Project Properties

An internal mechanism within the Project object for storing and retrieving arbitrary key-value configuration settings. This allows for flexible and dynamic project-specific configurations.

Related Classes/Methods:

Dependency Manager

Manages individual project dependencies, encapsulating details such as name, version, and type. It's responsible for tracking and providing access to the project's required external libraries or modules.

Related Classes/Methods:

Requirements File Parser

Facilitates the parsing and interpretation of external dependency files (e.g., requirements.txt). It translates external dependency declarations into internal Dependency objects for the project.

Related Classes/Methods:

File Manifest Manager

A set of internal methods and logic within the Project class responsible for defining and processing file inclusion/exclusion patterns for the project's build artifacts. This ensures that only relevant files are included in distributions or packages.

Related Classes/Methods: