class VersionError
Custom exception class raised when there is a library version mismatch, extending Python's built-in Exception class.
/tf/active/vicechatdev/patches/util.py
88 - 93
simple
Purpose
VersionError is a specialized exception class designed to signal version compatibility issues between libraries or components. It stores version information (current and minimum required) alongside the error message, making it easier to diagnose and handle version-related problems programmatically. This exception is typically raised when a library detects that its version or a dependency's version doesn't meet minimum requirements.
Source Code
class VersionError(Exception):
"Raised when there is a library version mismatch."
def __init__(self, msg, version=None, min_version=None, **kwargs):
self.version = version
self.min_version = min_version
super().__init__(msg, **kwargs)
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
Exception | - |
Parameter Details
msg: The error message string describing the version mismatch. This is passed to the parent Exception class and will be displayed when the exception is raised.
version: Optional parameter representing the current version that was detected. Can be a string, number, or version object. Defaults to None if not provided.
min_version: Optional parameter representing the minimum required version. Can be a string, number, or version object. Defaults to None if not provided.
kwargs: Additional keyword arguments that are passed through to the parent Exception class constructor, allowing for extended exception functionality.
Return Value
Instantiation returns a VersionError exception object that can be raised. The object contains the error message accessible via str(exception), and stores version and min_version as instance attributes that can be accessed for programmatic handling.
Class Interface
Methods
__init__(self, msg, version=None, min_version=None, **kwargs)
Purpose: Initialize the VersionError exception with an error message and optional version information
Parameters:
msg: The error message describing the version mismatchversion: Optional current version that was detected (default: None)min_version: Optional minimum required version (default: None)kwargs: Additional keyword arguments passed to parent Exception class
Returns: None (constructor)
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
version |
Any (typically str, int, float, or version object) | Stores the current version that was detected when the error was raised. Can be None if not provided. | instance |
min_version |
Any (typically str, int, float, or version object) | Stores the minimum required version. Can be None if not provided. | instance |
Usage Example
# Basic usage - raising the exception
try:
current_ver = '1.2.0'
required_ver = '2.0.0'
raise VersionError(
f"Library version {current_ver} is below minimum required {required_ver}",
version=current_ver,
min_version=required_ver
)
except VersionError as e:
print(f"Error: {e}")
print(f"Current version: {e.version}")
print(f"Minimum version: {e.min_version}")
# Usage in version checking function
def check_library_version(current, minimum):
if current < minimum:
raise VersionError(
f"Version mismatch: found {current}, need {minimum}",
version=current,
min_version=minimum
)
# Catching and handling
try:
check_library_version('1.0', '2.0')
except VersionError as ve:
# Access version information for logging or recovery
print(f"Version error occurred: {ve}")
print(f"Detected: {ve.version}, Required: {ve.min_version}")
Best Practices
- Always provide a descriptive error message as the first argument to help users understand what version mismatch occurred
- Include both version and min_version parameters when raising to enable programmatic error handling and recovery
- Use this exception specifically for version-related issues to distinguish from other types of errors
- Catch this exception specifically when you want to handle version mismatches differently from other exceptions
- Consider using version comparison libraries (like packaging.version.Version) to populate the version parameters with comparable objects
- Document which versions are being compared (library version, Python version, dependency version) in the error message
- This exception should be raised early in initialization or import time when version checks are performed
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class UnsupportedTypeError 59.2% similar
-
class EmailError 55.7% similar
-
class VirtualItemError 55.6% similar
-
class AuthError 53.5% similar
-
class ApiError 52.6% similar