Skip to content

DependencyModel

Bases: PumCustomBaseModel

DependencyModel represents a Python dependency for PUM.

Attributes:

Name Type Description
name str

Name of the Python dependency.

version str

Version of the dependency.

Source code in pum/config_model.py
class DependencyModel(PumCustomBaseModel):
    """
    DependencyModel represents a Python dependency for PUM.

    Attributes:
        name: Name of the Python dependency.
        version: Version of the dependency.
    """

    model_config = {"arbitrary_types_allowed": True}

    name: str = Field(..., description="Name of the Python dependency.")
    minimum_version: Optional[packaging.version.Version] = Field(
        default=None,
        description="Specific minimum required version of the package.",
    )
    maximum_version: Optional[packaging.version.Version] = Field(
        default=None,
        description="Specific maximum required version of the package.",
    )

    @model_validator(mode="before")
    def parse_version(cls, values):
        for value in ("minimum_version", "maximum_version"):
            ver = values.get(value)
            if isinstance(ver, str):
                values[value] = packaging.version.Version(ver)
            return values