Version Manager

This section documents the version management classes that provide version detection and compatibility checking capabilities.

VersionManager

class matrixone.version.VersionManager[source]

Bases: object

MatrixOne Version Manager

Handles version parsing, comparison, and compatibility checking. Supports semantic versioning format: major.minor.patch (e.g., 3.0.1)

VERSION_PATTERN = re.compile('^(\\d+)\\.(\\d+)\\.(\\d+)$')
__init__()[source]
parse_version(version_string: str) VersionInfo[source]

Parse version string into VersionInfo object

Parameters:

version_string – Version string in format “major.minor.patch” (e.g., “3.0.1”) Special case: “999.0.0” represents development version (highest priority)

Returns:

VersionInfo object

Raises:

ValueError – If version string format is invalid

compare_versions(version1: str | VersionInfo, version2: str | VersionInfo) VersionComparison[source]

Compare two versions

Parameters:
  • version1 – First version (string or VersionInfo)

  • version2 – Second version (string or VersionInfo)

Returns:

VersionComparison result

Examples

compare_versions(“3.0.2”, “3.0.1”) -> VersionComparison.GREATER compare_versions(“2.1.19”, “3.0.9”) -> VersionComparison.LESS compare_versions(“3.0.1”, “3.0.1”) -> VersionComparison.EQUAL

is_version_compatible(required_version: str | VersionInfo, current_version: str | VersionInfo | None = None, operator: str = '>=') bool[source]

Check if current version is compatible with required version

Parameters:
  • required_version – Required version

  • current_version – Current version (uses backend version if None)

  • operator – Comparison operator (“>=”, “>”, “<=”, “<”, “==”, “!=”)

Returns:

True if compatible, False otherwise

set_backend_version(version: str | VersionInfo) None[source]

Set the current backend version

Parameters:

version – Backend version string or VersionInfo object

get_backend_version() VersionInfo | None[source]

Get current backend version

is_development_version(version: str | VersionInfo | None = None) bool[source]

Check if a version is a development version

Parameters:

version – Version to check (uses current backend version if None)

Returns:

True if it’s a development version (999.x.x), False otherwise

register_feature_requirement(feature_requirement: FeatureRequirement) None[source]

Register a feature requirement

Parameters:

feature_requirement – FeatureRequirement object

is_feature_available(feature_name: str) bool[source]

Check if a feature is available in current backend version

Parameters:

feature_name – Name of the feature to check

Returns:

True if feature is available, False otherwise

get_feature_info(feature_name: str) FeatureRequirement | None[source]

Get feature requirement information

Parameters:

feature_name – Name of the feature

Returns:

FeatureRequirement object or None if not found

get_version_hint(feature_name: str, error_context: str = '') str[source]

Get helpful hint message for version-related errors

Parameters:
  • feature_name – Name of the feature

  • error_context – Additional context for the error

Returns:

Helpful hint message

VersionInfo

class matrixone.version.VersionInfo(major: int, minor: int, patch: int)[source]

Bases: object

Version information container

major: int
minor: int
patch: int
__eq__(other) bool[source]

Check if two versions are equal

__lt__(other) bool[source]

Check if this version is less than other version

__le__(other) bool[source]

Check if this version is less than or equal to other version

__gt__(other) bool[source]

Check if this version is greater than other version

__ge__(other) bool[source]

Check if this version is greater than or equal to other version

__init__(major: int, minor: int, patch: int) None

FeatureRequirement

class matrixone.version.FeatureRequirement(feature_name: str, min_version: VersionInfo | None = None, max_version: VersionInfo | None = None, description: str | None = None, alternative: str | None = None)[source]

Bases: object

Feature version requirement

feature_name: str
min_version: VersionInfo | None = None
max_version: VersionInfo | None = None
description: str | None = None
alternative: str | None = None
__init__(feature_name: str, min_version: VersionInfo | None = None, max_version: VersionInfo | None = None, description: str | None = None, alternative: str | None = None) None

Version Functions

matrixone.version.requires_version(min_version: str | None = None, max_version: str | None = None, feature_name: str | None = None, description: str | None = None, alternative: str | None = None, raise_error: bool = True) Callable[source]

Decorator for version checking on methods

Parameters:
  • min_version – Minimum required version (e.g., “3.0.1”)

  • max_version – Maximum supported version (e.g., “3.0.5”)

  • feature_name – Name of the feature (defaults to function name)

  • description – Description of the feature

  • alternative – Alternative approach or workaround

  • raise_error – Whether to raise error if version check fails

Returns:

Decorated function

matrixone.version.get_version_manager() VersionManager[source]

Get the global version manager instance