fastsandpm API
A package management and dependency resolution tool for HDL Design and DV projects.
FastSandPM provides tools for managing RTL and Design Verification projects, including semantic versioning, dependency resolution, and manifest file handling.
- Main Features:
Parse and validate proj.toml manifest files
Resolve dependencies from git repositories, package indices, and local paths
Support for semantic versioning with pre-release identifiers
Registry-based dependency discovery (GitHub, GitLab, Bitbucket, custom)
- Quick Start:
>>> import fastsandpm >>> manifest = fastsandpm.get_manifest("./my-project") >>> print(manifest.package.name) 'my-package' >>> resolved = fastsandpm.dependencies.resolve(manifest) >>> print(type(resolved)) <class 'fastsandpm.dependencies.provider.ResolveResult'> >>> build_library(resolved, pathlib.Path("my-library"))
- Included Classes:
Manifest: The main manifest model representing a proj.toml file.Package: Package metadata (name, version, description, authors).ManifestNotFoundError: Raised when a manifest file cannot be found.ManifestParseError: Raised when a manifest file cannot be parsed.ResolveResult: Result of dependency resolution with graph.
- Functions:
get_manifest(): Load and parse a manifest from a repository path.resolve(): Resolve all dependencies for a manifest.build_library(): Build a library from a resovled dependency definition.library_from_manifest(): Build a library of dependencies from a manifest.
- fastsandpm.__version__
The current version of the FastSandPM package.
- Type:
str
- fastsandpm.__author__
The primary author of the package.
- Type:
str
See also
fastsandpm.dependencies: Dependency resolution subpackage
fastsandpm.versioning: Version handling subpackage
fastsandpm.registries: Registry definitions
Modules
Command-line interface for FastSandPM. |
|
Dependency resolution subpackage for FastSandPM. |
|
Install and manage dependencies into a local library. |
|
Module for package manifest handling and parsing. |
|
Module for package registry definitions and management. |
|
Semantic versioning and version specification subpackage. |