bugdna (Python)
Deterministic exception fingerprinting, similarity comparison, regression detection, and thread-safe failure tracking for Python.
Installation
pip install bugdna
Quick Start
from bugdna import generate, FailureTracker, compare_fingerprints, diff_exceptions
try:
# application logic
raise ValueError("Invalid account id 12345")
except Exception as exc:
fp = generate(exc)
print(fp.id) # BUGDNA-...
print(fp.signature) # module#func or ClassName#method
print(fp.category) # FailureCategory.VALIDATION
print(fp.family) # FailureFamily.VALIDATION
print(fp.stability_score) # 70..98
Features
- Zero runtime dependencies — pure Python standard library (
hashlib,traceback,dataclasses,threading). - Deterministic IDs — excludes exception messages and line numbers from hashes so nearby source edits do not split failure groups.
- Causal Chain Support — walks
__cause__and__context__chains with cycle protection to fingerprint the deepest root cause. - Similarity & Diffs —
compare_fingerprints(a, b)anddiff_exceptions(old_exc, new_exc). - Failure Tracking — thread-safe
FailureTrackerwith bounded timelines and per-minute burst detection. - Deployment Regression Detection —
RegressionDetector.compare(old_snapshot, new_snapshot)anddetect_drift(old_fp, new_fp).
Release files for bugdna 1.2.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 | |
|---|---|---|---|
| bugdna-1.2.0.tar.gz | 26.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bugdna-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.8 kB
Release files / bugdna-1.2.0.tar.gz
| Download URL | bugdna-1.2.0.tar.gz |
|---|---|
| Size | 26.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71e8ecbe94ae136ea2145003a67b60eba6e851ae805d9ca4ca3e6ae3a745efa0
|
|
BLAKE2b-256 checksum How to use checksums |
5415c6e7cf2ed5001addc70680fc279804275b6979ba3679182821cf025e48cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / bugdna-1.2.0-py3-none-any.whl
| Download URL | bugdna-1.2.0-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dbbbd07d98f5133e3a48c6c0be7719c3d06f1800b4782c87ca0b1a8bfd51c3c4
|
|
BLAKE2b-256 checksum How to use checksums |
4b9f41c61f93f531067b3226805a9b51e29e2bfadf8e1f9daa2f573e89a52606
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log