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.2.0.tar.gz (55.2 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.2.0-py3-none-any.whl (63.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fastsandpm-0.2.0.tar.gz
Algorithm Hash digest
SHA256 936fad39819105075f9fca5811ac934430f110f18f0ecea676f016f07ff9ab44
MD5 2ca4a9244668e9580d15ad7cdeba3c46
BLAKE2b-256 927204eba25c7722fb9ce8db93b1bf5086156af336ee2eff299e49ff3af31b44

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastsandpm-0.2.0.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: fastsandpm-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 63.9 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56c447ee16e082625873bf0318bc9b61d4760cb06e84a3303533c73a4aba7a47
MD5 0e64a0aea6d2f4cab182021183c0375b
BLAKE2b-256 d648d67f20a8e5fdd2dc838ffb6dedd41fc62fd8918213a48aa3f3bca9d8a011

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastsandpm-0.2.0-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