Skip to content

ModelVersion class

Here's the reference information for the ModelVersion class, with all its parameters, attributes and methods.

You can import the ModelVersion class directly from pyrmute:

from pyrmute import ModelVersion

pyrmute.ModelVersion dataclass

ModelVersion(major, minor, patch)

Semantic version representation.

ATTRIBUTE DESCRIPTION
major

Major version number (breaking changes).

TYPE: int

minor

Minor version number (backward-compatible features).

TYPE: int

patch

Patch version number (backward-compatible fixes).

TYPE: int

major instance-attribute

major

minor instance-attribute

minor

patch instance-attribute

patch

parse classmethod

parse(version_str)

Parse a semantic version string.

PARAMETER DESCRIPTION
version_str

Version string in format "major.minor.patch".

TYPE: str

RETURNS DESCRIPTION
Self

Parsed Version instance.

RAISES DESCRIPTION
InvalidVersionError

If version string format is invalid.

Source code in src/pyrmute/model_version.py
@classmethod
def parse(cls, version_str: str) -> Self:
    """Parse a semantic version string.

    Args:
        version_str: Version string in format "major.minor.patch".

    Returns:
        Parsed Version instance.

    Raises:
        InvalidVersionError: If version string format is invalid.
    """
    try:
        parts = version_str.split(".")
        if len(parts) != 3:  # noqa: PLR2004
            raise InvalidVersionError(
                version_str, "Version must have exactly 3 parts (major.minor.patch)"
            )

        major, minor, patch = map(int, parts)
        if major < 0 or minor < 0 or patch < 0:
            raise InvalidVersionError(
                version_str, "Version parts must be positive integers"
            )
        return cls(major, minor, patch)
    except ValueError as e:
        raise InvalidVersionError(
            version_str, f"Version parts must be integers: {e}"
        ) from e