FastSandPM is a a package management and dependency resolution tool for HDL Design and DV projects
Project description
FastSandPM
An RTL Design and DV package manager for python tools. Manage your RTL and design verification library dependencies by cloning, updating, and version-controlling git repositories.
See Read-The-Docs for details
Key Features
- Library Management: Clone and update RTL/DV libraries from git repositories
- Version Pinning: Pin libraries to specific tags, branches, or commits
- Version Ranges: Specify flexible version constraints (e.g.,
>=1.0.0,<2.0.0) - TOML Configuration: Organize libraries in configuration files with sub-headings
- Local Development: Symlink local directories for development workflows
- Multi-Remote Support: Automatically discover repositories across configured remotes
Quick Start
Installation:
# For UV Based projects
uv add fastsandpm
# For pip-based projects
pip install fastsandpm
Command Line Usage
The simplest way to use FastSandPM is via the fspm command:
# Install dependencies from proj.toml in current or parent directory
fspm
# Install from a specific manifest file
fspm --manifest /path/to/proj.toml
# Install to a custom output directory
fspm --output ./vendor
# Install with optional dependency groups
fspm --optional dev,test
# Clean conflicting directories during installation
fspm --clean
CLI Options
| Option | Description |
|---|---|
-m, --manifest PATH |
Path to manifest file or directory (default: search up tree for proj.toml) |
-o, --output PATH |
Output directory for installed libraries (default: ./lib) |
-c, --clean |
Clean conflicting directories during installation |
--no-clean |
Don't clean conflicting directories (default) |
--optional GROUPS |
Comma-separated list of optional dependency groups |
-v, --verbose |
Increase verbosity (can stack: -v, -vv, -vvv) |
-q, --quiet |
Suppress all output except errors |
-V, --version |
Show version and exit |
Python API Usage
import pathlib
import fastsandpm
# Load a manifest
manifest = fastsandpm.get_manifest("./my-project")
print(manifest.package.name)
# 'my-package'
# Resolve dependencies
resolved = fastsandpm.dependencies.resolve(manifest)
# Build the library
fastsandpm.build_library(resolved, pathlib.Path("my-library"))
This will bring in the library dependencies for a project into the specified directory.
Additionally, a library.f file will be created which will point to the dependencies
file list in the required order.
For more examples, see the docs for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastsandpm-0.1.0rc2.tar.gz.
File metadata
- Download URL: fastsandpm-0.1.0rc2.tar.gz
- Upload date:
- Size: 54.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ef2cc53bc14ac56d40060814f5604ea40a1bbd41fda1fd5ee3fa4bf822ae647
|
|
| MD5 |
40904ad7b528199fb4523af4669aaf60
|
|
| BLAKE2b-256 |
e66c68b317e46669ff7ee23d6873d29fcfec4ef912569c904d6dd0ecc192fb26
|
Provenance
The following attestation bundles were made for fastsandpm-0.1.0rc2.tar.gz:
Publisher:
publish-to-pypi-and-release.yml on RISCY-Lib/fastsandpm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastsandpm-0.1.0rc2.tar.gz -
Subject digest:
8ef2cc53bc14ac56d40060814f5604ea40a1bbd41fda1fd5ee3fa4bf822ae647 - Sigstore transparency entry: 1069187210
- Sigstore integration time:
-
Permalink:
RISCY-Lib/fastsandpm@e4da07e8a7d22cabf1f895976d5f531e90e0dbf0 -
Branch / Tag:
refs/tags/0.1.0rc2 - Owner: https://github.com/RISCY-Lib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi-and-release.yml@e4da07e8a7d22cabf1f895976d5f531e90e0dbf0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fastsandpm-0.1.0rc2-py3-none-any.whl.
File metadata
- Download URL: fastsandpm-0.1.0rc2-py3-none-any.whl
- Upload date:
- Size: 62.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ef54d5be22c71cb3bc448e83f86762b39c8da2b370604b0b6ecaf6285e721b7
|
|
| MD5 |
d62233178ac4cfe614ebfeb67d90d03c
|
|
| BLAKE2b-256 |
601aceeb4f443da19dd376acffe8d62c949ed50a8565656a7e61ee498c3d4609
|
Provenance
The following attestation bundles were made for fastsandpm-0.1.0rc2-py3-none-any.whl:
Publisher:
publish-to-pypi-and-release.yml on RISCY-Lib/fastsandpm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastsandpm-0.1.0rc2-py3-none-any.whl -
Subject digest:
5ef54d5be22c71cb3bc448e83f86762b39c8da2b370604b0b6ecaf6285e721b7 - Sigstore transparency entry: 1069187289
- Sigstore integration time:
-
Permalink:
RISCY-Lib/fastsandpm@e4da07e8a7d22cabf1f895976d5f531e90e0dbf0 -
Branch / Tag:
refs/tags/0.1.0rc2 - Owner: https://github.com/RISCY-Lib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi-and-release.yml@e4da07e8a7d22cabf1f895976d5f531e90e0dbf0 -
Trigger Event:
push
-
Statement type: