Skip to main content

BitVector

Test Check Links

The BitVector.py module is for a memory-efficient packed representation of bit vectors and for the processing of such vectors.

If you wish, you can execute the code in BitVector.py directly in this directory prior to the installation of the module. This will execute all of the example code in the module file.

To see a working example of the BitVector module, see the file:

This is a fork from Avi Kak's BitVector 3.5.0.

Development

This project uses uv for dependency management and pre-commit to enforce code quality and conventional commit messages.

After cloning the repository, set up the development environment and register both pre-commit and commit-msg git hooks:

uv sync
uv run pre-commit install --hook-type pre-commit --hook-type commit-msg

To execute the automated test suite and check code coverage:

uv run pytest

To run coverage without benchmark tests and generate an HTML report:

uv run pytest --benchmark-skip --cov-report=html

To continuously run adaptive, coverage-guided property-based fuzzing on the hypothesis test suite (tests/test_properties.py):

uv run hypothesis fuzz tests/test_properties.py

Releasing

Releases are automated via GitHub Actions. We strictly adhere to Semantic Versioning 2.0.0.

Release Process

To trigger a new package build and release:

  1. Bump Version: Update the version string in pyproject.toml.
    • For final releases, use X.Y.Z (e.g., 1.0.0).
    • For release candidates, append -rc.N (e.g., 1.0.0-rc.1, 1.0.0-rc.2).
  2. Commit and Push: Push the version change to main (typically via a pull request).
  3. Tag and Push: Create and push a git tag matching the version, prefixed with a v:
    # Example for a release candidate
    git tag v1.0.0-rc.1
    git push origin v1.0.0-rc.1
    
    # Example for a final release
    git tag v1.0.0
    git push origin v1.0.0
    

Release Workflow Execution

The Release workflow is triggered by tags matching v[0-9]*.[0-9]*.[0-9]*. It executes the following steps:

  • Verification: Runs the test suite to ensure the package builds cleanly.
  • Build: Compiles package wheels and source distributions using uv build.
  • Publish to PyPI: Publishes the package to PyPI (requires PyPI Trusted Publishing setup).
    • Prerelease versions (like v1.0.0-rc.1) are published as pre-releases on PyPI.
  • GitHub Release: Creates a GitHub Release, uploads the built artifacts (dist/*), and auto-generates release notes.
    • Prerelease tags (containing -rc, -beta, -alpha, or -pre) are automatically marked as Pre-release on GitHub.

Release files for bitvector-modern 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bitvector-modern 0.0.7
File Size Uploaded
bitvector_modern-0.0.7.tar.gz 171.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bitvector-modern 0.0.7
File Interpreter ABI Platform
bitvector_modern-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 191.9 kB

Release files / bitvector_modern-0.0.7.tar.gz

Download URL bitvector_modern-0.0.7.tar.gz
Size 171.5 kB
Tags Source
SHA-256 checksum
How to use checksums
636d61ee7b4ef847fc6cf6a6fcf8540f9e58437d0deb3ffdb26c787ac2f5a7c9
BLAKE2b-256 checksum
How to use checksums
d28492c46c3c31b882b1b701380f218ad8dac34f521fd75981e3a11eab6f1177
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release files / bitvector_modern-0.0.7-py3-none-any.whl

Download URL bitvector_modern-0.0.7-py3-none-any.whl
Size 20.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8cc6b8970c58a47a570f4d7e17e2a3286baa09b7753ba0b5972462a66e93c8ae
BLAKE2b-256 checksum
How to use checksums
139ca56f3cdab75c366400d1806dbadc7d6a4d1e135ce6308d2dac0396a485ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page