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.2.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.2-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastsandpm-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 e7ca5faf1074aa9e9cfcf71d929e7a8bd1295d95ebbc481ebb92b7489bc05dcc
MD5 93693cda5ca4daea6b1e7790a30d1213
BLAKE2b-256 0a3494640d5654fe1a31c208bec5a536c495778c6be3fb7c095f2e768b3bc8cf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: fastsandpm-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b6ac2b9961c93bb77d1fca8b043b320884b6f3b04e127f460f39a8ad3349b36
MD5 085695316c80d59e48c91102f844976d
BLAKE2b-256 97d219414a8411a411235b6950e2fe01a6481909e6f98dea072d84bdebceb71f

See more details on using hashes here.

Provenance

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