Resolver
provide.foundation.tools.resolver
¶
TODO: Add module docstring.
Classes¶
ResolutionError
¶
ResolutionError(
message: str,
*,
code: str | None = None,
context: dict[str, Any] | None = None,
cause: Exception | None = None,
**extra_context: Any
)
Bases: FoundationError
Raised when version resolution fails.
Source code in provide/foundation/errors/base.py
VersionResolver
¶
Resolve version specifications to concrete versions.
Supports: - "latest": Most recent stable version - "latest-beta": Most recent pre-release - "~1.2.3": Patch version range - "^1.2.3": Minor version range - "1.2.*": Wildcard matching - Exact versions
Initialize version resolver with pattern cache.
Source code in provide/foundation/tools/resolver.py
Functions¶
compare_versions
¶
Compare two versions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v1
|
str
|
First version. |
required |
v2
|
str
|
Second version. |
required |
Returns:
| Type | Description |
|---|---|
int
|
-1 if v1 < v2, 0 if equal, 1 if v1 > v2. |
Source code in provide/foundation/tools/resolver.py
get_latest_any
¶
get_latest_prerelease
¶
Get latest pre-release version.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
versions
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Latest pre-release version, or None if no pre-releases. |
Source code in provide/foundation/tools/resolver.py
get_latest_stable
¶
Get latest stable version (no pre-release).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
versions
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Latest stable version, or None if no stable versions. |
Source code in provide/foundation/tools/resolver.py
is_prerelease
¶
Check if version is a pre-release.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
version
|
str
|
Version string. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if version appears to be pre-release. |
Source code in provide/foundation/tools/resolver.py
parse_version
¶
Parse version string into numeric components.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
version
|
str
|
Version string. |
required |
Returns:
| Type | Description |
|---|---|
list[int]
|
List of numeric version components. |
Source code in provide/foundation/tools/resolver.py
resolve
¶
Resolve a version specification to a concrete version.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
spec
|
str
|
Version specification. |
required |
available
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Resolved version string, or None if not found. |
Source code in provide/foundation/tools/resolver.py
resolve_caret
¶
Resolve caret range (^1.2.3 means >=1.2.3 <2.0.0).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base
|
str
|
Base version without caret. |
required |
available
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Best matching version, or None if no match. |
Source code in provide/foundation/tools/resolver.py
resolve_tilde
¶
Resolve tilde range (~1.2.3 means >=1.2.3 <1.3.0).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base
|
str
|
Base version without tilde. |
required |
available
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Best matching version, or None if no match. |
Source code in provide/foundation/tools/resolver.py
resolve_wildcard
¶
Resolve wildcard pattern (1.2.* matches any 1.2.x).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern
|
str
|
Version pattern with wildcards. |
required |
available
|
list[str]
|
List of available versions. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Best matching version, or None if no match. |