Version Manager
This section documents the version management classes that provide version detection and compatibility checking capabilities.
VersionManager
- class matrixone.version.VersionManager[source]
Bases:
objectMatrixOne 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+)$')
- 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
VersionInfo
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:
objectFeature version requirement
- min_version: VersionInfo | None = None
- max_version: VersionInfo | 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