attribution-suite
One install and one CLI over the attribution toolchain.
pip install attribution-suite
attribution run --case case.yaml --index adtx.sqlite --out ./out
Why the packages are separate at all
attribution-graph is a pure
inference library with no network I/O — that is what makes its scoring auditable,
since every number is a function of claims plus index counts with no hidden
network state. adtx-attribution
carries the collectors and their dependencies.
handle-correlation is
independent of both.
Someone who only wants the scoring model should not have to install an HTTP client, and someone writing their own collectors should not inherit ours. This package exists for when you want all of it.
Unified run
One case file drives the whole chain:
attribution run \
--case case.yaml \
--index adtx.sqlite \
--handles observed_handles.csv \
--spiderfoot scan.db \
--opencti bundle.json \
--robin investigations/kraken.json \
--out ./out
Robin handles feed the handle-correlation pass automatically, carrying the
durable identifiers found alongside them. .onion-derived claims raise a warning
in the run summary: those sources have no archive and no preserved body, so they
cannot be verified after the fact by anyone, including you.
Order is fixed, and the ordering is the point: imported claims seed the frontier
before collection, adversarial checks run before scoring so a planted identifier
never reaches the model at full weight, and evidence verification runs before
reporting so findings from a package that failed its integrity check are never
presented. attribution run exits non-zero if verification fails, so a
scripted caller can detect an unpresentable result.
Passthrough commands
attribution index build --domains tranco.txt --db adtx.sqlite
attribution portfolio scraper-site.example --index adtx.sqlite --registrants
attribution handles --observations handles.csv --corpus usernames.txt
attribution registries --jurisdiction IN
attribution verify ./out/evidence
attribution version
These delegate to the component CLIs rather than duplicating their flags.
Outputs
| File | What it is |
|---|---|
attribution_report.md / .html |
Findings, ICD 203 language, source terms |
verification_trail.md |
Ordered timestamped steps with numbered citations |
investigation_graph.json |
Every claim with full provenance |
entities.ftm.json |
FollowTheMoney — loads into yente / Aleph |
graph.cypher |
Neo4j |
evidence/evidence_manifest.json |
Hash-chained capture record |
evidence/verify.py |
Standalone integrity checker, no dependencies |
evidence/DECLARATION_DRAFT.md |
Qualified-person certification skeleton |
Collection policy
robots_policy in the case file: respect, record (default), or ignore.
There is no silent enforcement — robots.txt is routinely bypassed in practice and a library pretending otherwise would be enforcing an abandoned norm. What matters for this toolchain is different: the output is meant to survive review, and the question there is never "did the tool obey robots.txt" but "can you state what your collection policy was". Whichever setting you choose is written into the evidence manifest and the declaration draft.
In practice it rarely bites. RDAP, crt.sh, GLEIF, EDGAR, sellers.json and
ads.txt are all published for machine consumption; only imprint scraping and
county-records HTML touch robots-relevant paths.
Version reporting
Every run prints the version of each component, and attribution version reports
them. A finding that cannot name its toolchain is hard to re-examine once the
scoring model has moved.
License
Apache-2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file attribution_suite-0.6.0.tar.gz.
File metadata
- Download URL: attribution_suite-0.6.0.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32ce3c03355c528a2f9655ca77705ea5e26b5d462c721ec2b171824b31717706
|
|
| MD5 |
bf5c61e573214c7edc5fef18a34a4ebd
|
|
| BLAKE2b-256 |
17543374a507c276982af31b4988663812b6682d3fe92446384ff6bb2b8c68b2
|
File details
Details for the file attribution_suite-0.6.0-py3-none-any.whl.
File metadata
- Download URL: attribution_suite-0.6.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f11be137aee4f1a3b367e2f7a7fa3b0dff2f1404493ed764fdbe4c76beabcd44
|
|
| MD5 |
050b68a0271d93a501c0dd2ab6677664
|
|
| BLAKE2b-256 |
cfe45dc5439f41977af6f8414f222556f449b632a65f180ef864a6341630336e
|