ComoPy: Co-modeling Tools for Hardware Generation with Python
ComoPy (Co-modeling tools in Python) is a Python-based Hardware Generation, Simulation, and Debugging Framework (HGSDF) that enables hardware development with the same ease and flexibility as software development.
Development Setup
Prerequisites
- Python 3.10+
- pip (Python package installer)
Install Dependencies
To set up the development environment, install the required dependencies:
# Install core dependencies.
pip install -e .
# Install dependencies for cocotb extension.
pip install -e ".[cocotb]"
# Install development dependencies (for testing).
pip install -e ".[dev]"
Verilator is required for VSimulator and checkpoint. This has been tested with Verilator 5.040.
# Verify the installation.
verilator --version
Icarus Verilog is used for testing the cocotb extension but is not a runtime dependency. This has been tested with iverilog v13_0.
# Verify the installation.
iverilog -v
Install Pre-commit Hooks
If you plan to contribute to the project, install pre-commit hooks to automatically check code quality before commits:
# Install pre-commit
pip install pre-commit
# Install the git hooks
pre-commit install
Run Tests
After installing the development dependencies, you can run the test suite using pytest:
# Run all tests
pytest
# Run tests with coverage report
pytest --cov=comopy
# Run tests with HTML coverage report
pytest --cov=comopy --cov-report=html
# Run tests in verbose mode
pytest -v
# Run specific test file
pytest comopy/tests/test_specific.py
The conftest.py provides a comopy_path fixture for test paths.
For complex directory structures, configure additional paths in pytest.ini.
Metadata
Release files for comopy 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| comopy-0.7.0.tar.gz | 179.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| comopy-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 416.4 kB
Release files / comopy-0.7.0.tar.gz
| Download URL | comopy-0.7.0.tar.gz |
|---|---|
| Size | 179.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d4144c8bb9928b4b2901dfc44fe365ecde8961eea30fa9961de6389cb9576d37
|
|
BLAKE2b-256 checksum How to use checksums |
f0eeb6bd168d1c813bc40da45038f59caff4a61242907ebab22705cebe5d4e3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / comopy-0.7.0-py3-none-any.whl
| Download URL | comopy-0.7.0-py3-none-any.whl |
|---|---|
| Size | 237.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d8eb1cb11345d398c978784d6bd5076a5937430a8f09316195819a147331f99
|
|
BLAKE2b-256 checksum How to use checksums |
f25201fa7f4bfe242a315f72ff1879dce3ca541eaa441c65e6da326db64172f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Security for comopy 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.