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.0rc2.tar.gz (54.0 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.0rc2-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

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

Hashes for fastsandpm-0.1.0rc2.tar.gz
Algorithm Hash digest
SHA256 8ef2cc53bc14ac56d40060814f5604ea40a1bbd41fda1fd5ee3fa4bf822ae647
MD5 40904ad7b528199fb4523af4669aaf60
BLAKE2b-256 e66c68b317e46669ff7ee23d6873d29fcfec4ef912569c904d6dd0ecc192fb26

See more details on using hashes here.

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

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.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

Hashes for fastsandpm-0.1.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 5ef54d5be22c71cb3bc448e83f86762b39c8da2b370604b0b6ecaf6285e721b7
MD5 d62233178ac4cfe614ebfeb67d90d03c
BLAKE2b-256 601aceeb4f443da19dd376acffe8d62c949ed50a8565656a7e61ee498c3d4609

See more details on using hashes here.

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

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