Skip to content

VersionMismatch

yohou_mlflow.VersionMismatch dataclass

One package whose installed version breaks its comparison rule.

Parameters

Name Type Description Default
package str

Distribution name, for example "yohou".

required
recorded str

Version recorded when the model was saved.

required
installed str

Version installed now.

required
rule ('exact', 'major.minor')

The comparison the two versions failed.

"exact"

Source Code

Source code in src/yohou_mlflow/_versions.py
@dataclass(frozen=True)
class VersionMismatch:
    """One package whose installed version breaks its comparison rule.

    Parameters
    ----------
    package : str
        Distribution name, for example ``"yohou"``.
    recorded : str
        Version recorded when the model was saved.
    installed : str
        Version installed now.
    rule : {"exact", "major.minor"}
        The comparison the two versions failed.
    """

    package: str
    recorded: str
    installed: str
    rule: str

    def __str__(self) -> str:
        """Describe the mismatch in one line.

        Returns
        -------
        str
            For example ``"yohou: saved with 0.1.0a13, installed 0.1.0a14 (must match exactly)"``.
        """
        need = "must match exactly" if self.rule == "exact" else "major and minor versions must match"
        return f"{self.package}: saved with {self.recorded}, installed {self.installed} ({need})"

Methods

__str__()

Describe the mismatch in one line.

Returns
Type Description
str

For example "yohou: saved with 0.1.0a13, installed 0.1.0a14 (must match exactly)".

Source Code
Source code in src/yohou_mlflow/_versions.py
def __str__(self) -> str:
    """Describe the mismatch in one line.

    Returns
    -------
    str
        For example ``"yohou: saved with 0.1.0a13, installed 0.1.0a14 (must match exactly)"``.
    """
    need = "must match exactly" if self.rule == "exact" else "major and minor versions must match"
    return f"{self.package}: saved with {self.recorded}, installed {self.installed} ({need})"