Skip to main content

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.

Tests PyPI Latest Release docs

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastsandpm-0.1.1.tar.gz (54.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastsandpm-0.1.1-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

Details for the file fastsandpm-0.1.1.tar.gz.

File metadata

  • Download URL: fastsandpm-0.1.1.tar.gz
  • Upload date:
  • Size: 54.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastsandpm-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e09507accab607e1da995ba98e5229a9468eb9718b73db723bf9bba03ff0bf44
MD5 1d056bbffa31978f0e5df7bbadd0e274
BLAKE2b-256 aae6310c26411d06936a153819823fbb1b72790c8e94ce23a01410adbd66fb84

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastsandpm-0.1.1.tar.gz:

Publisher: publish-to-pypi-and-release.yml on RISCY-Lib/fastsandpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastsandpm-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: fastsandpm-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 63.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastsandpm-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d23d934a5f5f34325cee1c7c282c8ebead2d81c313de9cda0e58df7156252511
MD5 0cbe06da42dae64fb19797af3e62aa30
BLAKE2b-256 239691a9406bc8771ff27267d7cda4f96c00c9fbb72a242b6938363d883a4985

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastsandpm-0.1.1-py3-none-any.whl:

Publisher: publish-to-pypi-and-release.yml on RISCY-Lib/fastsandpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page