Skip to main content

Personal collection of small scripts and helpers for work.

Project description

rpkbin — Core IC Design & Verification Utilities

English 繁體中文

rpkbin is a comprehensive toolkit providing essential data types and utilities for hardware design and verification flows.

Core Features

1. MapBV — BitVector with Bidirectional Mapping

MapBV allows you to define a hierarchy of bit-fields that stay synchronized automatically.

  • Hierarchical Slicing: Define a 32-bit register and slice it into named fields.
  • Bidirectional Linking: Use concat to build a new view from existing variables; updating the view updates the sources.
  • Symbolic Evaluation: Use .eval() to test "what-if" scenarios without changing actual values.

Learn more in MapBV Documentation

2. NumBV — Bit-True Fixed-Point Arithmetic

Bit-exact fixed-point simulation for DSP pipeline verification. Pure NumPy, no external dependency.

  • Two-layer API: Operator layer (+, *) for convenience; function layer (nbv.add(), nbv.mul()) for explicit pipeline staging.
  • Five Rounding Modes: trunc, round, round_half_even (convergent, Xilinx DSP48), ceil, round_to_zero.
  • Unified Operations: One NumBV class handles both scalar and array computations. Backed by NumPy by default, with an optional drop-in JAX backend for transparent XLA hardware acceleration.

Learn more in NumBV Documentation

3. Excel Extractor — Template-Based Extraction

Intelligently extract data from complex spreadsheets.

  • Layout Description: Define the "shape" of data instead of hardcoded coordinates.
  • Fuzzy Matching: Matches headers even with slight spelling variations.
  • Merged Cell Support: Correctly resolves values spanning across merged rows/cols.

Learn more in Excel Extractor Documentation

4. Job Manager

A practical, cross-platform job manager for running shell commands and Python callables safely in parallel.

  • One API for Common Workloads: Run local functions (FuncJob) and CLI tasks (CmdJob) with the same manager.
  • Resource-Aware Scheduling: Limit concurrency by global resources such as GPU count or license tokens.
  • Operationally Friendly: Built-in cancellation, retries, live logs, and callbacks for automation pipelines.

Job Manager Documentation

5. Wave — Batch Workflow Orchestration with Live TUI

A workflow layer built on top of Job Manager for declaring and observing long-running batch flows.

  • Wave File Pattern: Declare jobs, parsers, and hooks in a plain Python file. Run it with rpk-wave run.
  • Live TUI: A full-screen Textual interface with a job dashboard, per-job log/data/event panels, and a built-in command bar.
  • Headless REPL: For CI or terminal sessions where a TUI isn't wanted — full inspection and control commands via stdin.
  • Hooks & Parsers: React to log output, structured parsed data, elapsed time, or lifecycle events automatically.
  • Job Events with Source Tracking: job.emit() records named events; source="system" marks internal errors (parser/hook failures) for easy filtering in the TUI.
  • Operational Control: Pause/resume dispatch, gracefully stop jobs, force-cancel jobs, or target active jobs by tag from either the TUI command bar or headless REPL.
  • Fast Job Inspection: Open show, logs, data, or events <job> directly in JOB DETAIL, then switch between jobs with [ / ] or between running jobs with { / }.
  • Intentional Cancellation Semantics: User-cancelled jobs are reported as cancelled without turning the whole Wave run into a failed exit; real job failures and session timeouts still return a non-zero exit code.

Wave Documentation

Installation

# Core only (zero dependencies)
pip install -e .

# Install specific features
pip install -e .[wave]   # Installs textual, prompt_toolkit, rich
pip install -e .[excel]  # Installs openpyxl, xlrd, rapidfuzz
pip install -e .[cfg]    # Installs networkx

# Install everything
pip install -e .[all]

Testing

Run tests using pytest from the root directory:

pytest tests/ -v

(All tests require only numpy — no optional dependencies needed.)

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

rpkbin-0.1.2.tar.gz (114.3 kB view details)

Uploaded Source

Built Distribution

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

rpkbin-0.1.2-py3-none-any.whl (127.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rpkbin-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9d370a9452793d28e8c1e09830e2c79603231dbdf02e122f4ddba79abc043294
MD5 06ee2a8e9cb65ef46f0dac50db2b9744
BLAKE2b-256 3eb34e895590b635382afacacef387c99b5b4802d27bd9675f798c2a43baaabc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpkbin-0.1.2.tar.gz:

Publisher: python-publish.yml on redpigkiller/rpkbin

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

File details

Details for the file rpkbin-0.1.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for rpkbin-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1d2d6a3019e7e87af622634abe3c0f0b6647880d040b43f4b645255a8dba992d
MD5 aacd7c5f9dd41299c2153d80bde3d833
BLAKE2b-256 f6b2c4a0709b91721d85cdfcd90c0d68112c5ab1a10e817a6f6193bb2f3f0713

See more details on using hashes here.

Provenance

The following attestation bundles were made for rpkbin-0.1.2-py3-none-any.whl:

Publisher: python-publish.yml on redpigkiller/rpkbin

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