pyTooling.Dependency
Implementation of package dependencies.
Hint
See high-level help for explanations and usage examples.
Classes
PackageVersion: The package’s version of aPackage.Package: The package, which exists in multiple versions (PackageVersion).PackageStorage: A storage for packages.PackageDependencyGraph: A package dependency graph collecting all known packages.
Classes
- class pyTooling.Dependency.PackageVersion[source]
The package’s version of a
Package.A
Packagehas multiple available versions. A version can have multiple dependencies to other :class:`PackageVersion`s.Inheritance
- __init__(version, package, releasedAt=None)[source]
Initializes a package version.
- Parameters:
version (
SemanticVersion) – Semantic version of this package.package (
Package) – Package this version is associated to.releasedAt (
Optional[datetime]) – Optional release date and time.
- Raises:
TypeError – When parameter ‘version’ is not of type ‘SemanticVersion’.
TypeError – When parameter ‘package’ is not of type ‘Package’.
TypeError – When parameter ‘releasedAt’ is not of type ‘datetime’.
ToolingException – When version already exists for the associated package.
- Return type:
None
-
_version:
SemanticVersion SemanticVersionof this package version.
-
_dependsOn:
Dict[Package,Dict[SemanticVersion,PackageVersion]] Versioned dependencies to other packages.
- property Package: Package
Read-only property to access the associated package.
- Returns:
Associated package.
- property Version: SemanticVersion
Read-only property to access the semantic version of a package.
- Returns:
Semantic version of a package.
- property ReleasedAt: datetime | None
Read-only property to access the release date and time.
- Returns:
Optional release date and time.
- property DependsOn: Dict[Package, Dict[SemanticVersion, PackageVersion]]
Read-only property to access the dictionary of dictionaries referencing dependencies.
The outer dictionary key groups dependencies by
Package.
The inner dictionary key accesses dependencies bySemanticVersion.- Returns:
Dictionary of dependencies.
- AddDependencyToPackageVersion(packageVersion)[source]
Add a dependency from current package version to another package version.
- Parameters:
packageVersion (
PackageVersion) – Dependency to be added.- Return type:
- AddDependencyToPackageVersions(packageVersions)[source]
Add multiple dependencies from current package version to a list of other package versions.
- Parameters:
packageVersions (
Iterable[PackageVersion]) – Dependencies to be added.- Return type:
- AddDependencyTo(package, version)[source]
Add a dependency from current package version to another package version.
- Parameters:
package (
Union[str, <property object at 0x7fe06cd47dd0>]) –Packageobject or name of the package.version (
Union[str,SemanticVersion,Iterable[Union[str,SemanticVersion]]]) –SemanticVersionobject or version string or an iterable thereof.
- Return type:
- Returns:
- SortDependencies()[source]
Sort versions of a package and dependencies by version, thus dependency resolution can work on pre-sorted lists and dictionaries.
- Return type:
Self- Returns:
The instance itself (for method-chaining).
- SolveLatest()[source]
Solve the dependency problem, while using preferably latest versions.
Todo
Describe algorithm.
- Return type:
- Returns:
A list of :class:`PackageVersion`s fulfilling the constraints of the dependency problem.
- Raises:
ToolingException – When there is no valid solution to the problem.
- class pyTooling.Dependency.Package[source]
The package, which exists in multiple versions (
PackageVersion).Inheritance
- __init__(name, *, storage)[source]
Initializes a package.
- Parameters:
name (
str) – Name of the package.storage (
PackageStorage) – The package’s storage.
- Return type:
None
-
_storage:
PackageStorage Reference to the package’s storage.
-
_versions:
Dict[SemanticVersion,PackageVersion] A dictionary of available versions for this package.
- property Storage: PackageStorage
Read-only property to access the package’s storage.
- Returns:
Package storage.
- property Versions: Dict[SemanticVersion, PackageVersion]
Read-only property to access the dictionary of available versions.
- Returns:
Available version dictionary.
- SortVersions()[source]
Sort versions within this package in reverse order (latest first).
- Return type:
- __len__()[source]
Returns the number of available versions.
- Return type:
- Returns:
Number of versions.
- __getitem__(version)[source]
Access a package version in the package by version string or semantic version.
- Parameters:
version (
Union[str,SemanticVersion]) – Version as string or instance.- Return type:
- Returns:
The package version.
- Raises:
KeyError – If version is not available for the package.
- class pyTooling.Dependency.PackageStorage[source]
A storage for packages.
Inheritance
- __init__(name, graph)[source]
Initializes the package storage.
- Parameters:
name (
str) – Name of the package storage.graph (
PackageDependencyGraph) – PackageDependencyGraph instance (parent).
- Return type:
None
-
_graph:
PackageDependencyGraph Reference to the overall dependency graph data structure.
- property Graph: PackageDependencyGraph
Read-only property to access the package dependency graph.
- Returns:
Package dependency graph.
- property Name: str
Read-only property to access the package dependency graph’s name.
- Returns:
Name of the package dependency graph.
- property Packages: Dict[str, Package]
Read-only property to access the dictionary of known packages.
- Returns:
Known packages dictionary.
- CreatePackageVersion(packageName, version)[source]
Create a new package and a package version in the package dependency graph.
- Parameters:
- Return type:
- Returns:
New package version instance.
- CreatePackageVersions(packageName, versions)[source]
Create a new package and multiple package versions in the package dependency graph.
- Parameters:
- Return type:
- Returns:
List of new package version instances.
- SortPackageVersions()[source]
Sort versions within all known packages in reverse order (latest first).
- Return type:
- class pyTooling.Dependency.PackageDependencyGraph[source]
A package dependency graph collecting all known packages.
Inheritance
- __init__(name)[source]
Initializes the package dependency graph.
- Parameters:
name (
str) – Name of the dependency graph.- Return type:
None
-
_storages:
Dict[str,PackageStorage] Dictionary of known package storages.
- property Name: str
Read-only property to access the package dependency graph’s name.
- Returns:
Name of the package dependency graph.
- property Storages: Dict[str, PackageStorage]
Read-only property to access the dictionary of known package storages.
- Returns:
Known package storage dictionary.
- SortPackageVersions()[source]
Sort versions within all known packages in reverse order (latest first).
- Return type: