Metadata-Version: 2.5
Name: noodle-bucket
Version: 2.7.3
Summary: Functional coverage written in Python
Project-URL: Homepage, https://github.com/Noodle-Bytes/bucket
Project-URL: Documentation, https://noodle-bytes.github.io/bucket/docs/
Project-URL: Repository, https://github.com/Noodle-Bytes/bucket
Project-URL: Coverage viewer, https://noodle-bytes.github.io/bucket/
Project-URL: Issues, https://github.com/Noodle-Bytes/bucket/issues
Author-email: Stuart Alldred <stuartalldred@gmail.com>, Edward Kotarski <edktrsk@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: cocotb,functional-coverage,verification
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.11
Requires-Dist: click>=8.1.3
Requires-Dist: pydantic>=2.8.2
Requires-Dist: rich>=13.3.4
Requires-Dist: sqlalchemy>=2.0.40
Provides-Extra: dev
Requires-Dist: mkdocs>=1.6.0; extra == 'dev'
Requires-Dist: pre-commit>=3.8.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest<9,>=8.0.1; extra == 'dev'
Description-Content-Type: text/markdown

<!--
  ~ SPDX-License-Identifier: MIT
  ~ Copyright (c) 2023-2026 Noodle-Bytes. All Rights Reserved
  -->

<!--
  ~ SPDX-License-Identifier: MIT
  ~ Copyright (c) 2023-2024 Vypercore. All Rights Reserved
  -->
<div align="center">
<img alt="Bucket logo" src="https://raw.githubusercontent.com/Noodle-Bytes/bucket/main/.github/images/Logo-192x192.png">
</div>

# Bucket


Bucket is a python library to create nicer functional coverpoints. There are several benefits writing the coverage in python, such as:

* Easier integration into cocotb and other python testbenches
* No commercial EDA license required
* Vendor independence - easily collect coverage from multiple tools/sources (eg. models, log parsers, etc)

## Install

```bash
pip install noodle-bucket
```

This installs the Python library (`import bucket`) and the `bucket` CLI.
It is enough to write coverpoints, collect coverage, and export `.bktgz` /
SQL / JSON / console output. View results in the [hosted viewer](https://noodle-bytes.github.io/bucket/)
or the desktop app.

Generating standalone HTML (`bucket write html` / `bucket write report`)
needs a source checkout of this repository and Node.js; it is not part of
the pip package.

## Documentation

The user documentation lives in the `docs/` directory and can be read directly on GitHub, starting from [`docs/index.md`](docs/index.md).

For a richer browsing experience, you can also run the MkDocs site locally:

```bash
./bin/shell
mkdocs serve
```

Then open `http://127.0.0.1:8000/` in your browser.

## Viewer

A copy of the viewer is hosted at: https://noodle-bytes.github.io/bucket/

## Support

This library is being actively built, and is expected to change while it matures and key features are added.
We are not providing external support for use of this library, however we are aiming to make it as easy to use as possible.

As per the licence:
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## Contributions

**We will be introducing a contributor licence agreement in the near future. In the meantime, if you want to contribute please get in touch.**

Please feel free to contribute to the project, following these guidelines:

* Please contribute by creating a fork and submitting a pull request.
* Pull requests should be as small as possible to resolve the issue they are trying to address.
* Pull requests must respect the goals of the library, as stated in the documentation.
* Pull requests should take care not to make performance worse except for cases which require bug fixes.
* Pull requests should update the documentation for any added/changed functionality.
