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

cli

Command-line interface for FastSandPM.

dependencies

Dependency resolution subpackage for FastSandPM.

install

Install and manage dependencies into a local library.

manifest

Module for package manifest handling and parsing.

registries

Module for package registry definitions and management.

versioning

Semantic versioning and version specification subpackage.