Skip to main content

Encrypt PII, not meaning. Locally.

Project description

argus-redact

English · 中文说明

PyPI crates.io Tests codecov Demo

Encrypt PII, not meaning. Locally.

The privacy layer between you and AI. Your identity stays on your device — AI gets the meaning, not you.

Rated PRvL-Gold on the PRvL reference suite — see the spec for what it measures.

from argus_redact import redact

redacted, key = redact("张三的电话是13812345678,身份证号110101199003074610", names=["张三"], lang="zh", salt=42)
print(redacted)
# expected: P-83811的电话是138****5678,身份证号ID-03292

print(sorted(key.items()))
# expected: [('138****5678', '13812345678'), ('ID-03292', '110101199003074610'), ('P-83811', '张三')]
pip install argus-redact

Three Promises

Promise How
🛡️ Protected — your PII never leaves your device 3-layer local detection: regex → NER → local LLM
🧠 Usable — AI can still understand and help you Pseudonym replacement preserves meaning and context
🔄 Reversible — substring-level inverse via per-message key One-line restore() for verbatim LLM echoes; paraphrase / coref handled by compose layer, best-effort

Other tools shred your PII — it's gone forever. argus-redact encrypts it with a different key every time. ETH Zurich research shows LLMs can deanonymize users for $1-4/person when pseudonyms are fixed. We generate fresh random keys per call — the cloud sees unrelated pseudonyms every time.

Default redaction output

redact() emits per-type pseudonym codes, not Chinese label literals:

>>> redact("员工张三,身份证110101199003074610,电话13812345678", mode='fast', lang='zh')
('员工P-83811,身份证ID-89732,电话138****5678',
 {'P-83811': '张三', 'ID-89732': '110101199003074610', '138****5678': '13812345678'})
Type group Default output Strategy Reversible
person / organization P-NNNNN / O-NNNNN pseudonym
phone / email / bank_card 138****5678 (partial digits visible) mask
id_number / medical / ssn / ... ID-NNNNN / MED-NNNNN / SSN-NNNNN remove → per-type code
self_reference / 我妈 (kept verbatim) keep

To unify all reversible types under one prefix (hides PII type from the LLM):

redact(
    text,
    unified_prefix="R",
    config={
        "phone": {"strategy": "remove"},   # mask types must opt in to participate
        "email": {"strategy": "remove"},
    },
)
# → "员工R-83811,身份证R-89732,电话R-12345"

<TYPE_N> 1-based sequential token style is on the future-release candidate list (no committed timeline). See docs/configuration.md for the current strategy reference.

Privacy Levels

argus-redact evaluates your text from your perspective, not a regulator's:

🟢 Safe      — nothing about you is exposed
🟡 Caution   — contains personal info, not dangerous alone
🟠 Danger    — can narrow down to you specifically
🔴 Exposed   — directly identifies you
from argus_redact import redact

report = redact("身份证110101199003074610,手机13812345678,确诊糖尿病", report=True)
report.risk.level    # "critical"
report.risk.score    # 1.0
report.risk.reasons  # ("id_number (critical)", "phone (high)", "medical (critical)", ...)

This is what compliance frameworks don't tell you: how dangerous is it to share this specific text with AI?

Three Layers, Collaborative

Layer 1  Rust+Regex   phone, ID, bank card, email, self-reference, ...    <0.2ms
             │
         produce_hints() → text_intent, pii_density, self_reference_tier
             │
Layer 2  NER ← hints   locations, organizations, standalone names         10-100ms
Layer 3  Local LLM      implicit PII — symptoms→disease, behavior→belief  ~20s

Layers are not independent — L1 passes hints to L2, enabling collaborative detection. Instruction text ("帮我看看这段代码") skips NER entirely. High PII density lowers NER thresholds. Cross-layer agreement boosts confidence.

Unicode-hardened: NFKC normalization, zero-width stripping, Cyrillic/Greek confusable defense, Chinese digit detection (一三八零零一三八零零零 → detected as phone).

Core engine (regex matching, entity merging, restore, pseudonym generation) is written in Rust via PyO3 for maximum performance. Python handles orchestration, NER models, and LLM integration.

60+ PII types across 3 layers — from phone numbers to medical diagnoses, religious beliefs, political opinions. Default is mode="fast" (Layer 1 only, zero deps, sub-ms). Opt in: mode="ner" (+ NER models) → mode="auto" (all three layers).

Telemetry: ARGUS_PERF_LOG=perf.jsonl for per-call timing breakdown. Details →

Deployment fit — modes have very different latency budgets; pick by where you sit in the request path:

Mode Latency (per doc) Suitable as
fast <1ms Inline gateway plugin / hot LLM proxy path
ner 10–100ms Sidecar / pre-flight middleware
auto ~20s (LLM-bound) Async batch / offline review queue

Don't put auto in front of an interactive LLM call. Use fast inline + auto in a parallel audit lane.

Limitations & When NOT to Rely on This

argus-redact is a PII data minimization aid, not an anonymization or compliance certification:

  • L1 fast (regex) matches well-defined formats. Novel or obfuscated variants, cross-field inference attacks pass through.
  • L2 NER is statistical inference; out-of-distribution text (informal, typo-heavy, minority names) has higher miss rate. See benchmark results for measured numbers.
  • No guarantee against adversarial inputs — attackers can craft text that evades detection.
  • Removing explicit PII ≠ anonymity. LLM agents can re-identify individuals by combining residual, individually-non-identifying cues with public data — even on redacted text, even during benign tasks (Ko et al. 2026). Reversible substitution protects explicit identifiers and preserves LLM utility; it does not defend against inference-based re-identification, which a per-document redactor cannot fully prevent — the residual comes from combinations of quasi-identifiers, not single fields (why coarsening one field doesn't fix it).
  • Not a GDPR / PIPL anonymization framework — anonymization is a compliance process decision, not a single-library output.

When to use argus-redact: reversible pseudonymization for LLM pipelines where you need redact() → LLM → restore() with zero PII crossing the network boundary.

When to consider alternatives: if you need one-way English PII masking with a single model call, OpenAI Privacy Filter and similar model-based maskers may fit better. argus-redact's strongest suit is reversible pseudonymization with per-message keys; Chinese has the deepest support (HanLP + native validators), the other 7 languages have regex + spaCy NER coverage. Pick by the workload, not by exclusivity.

Combine argus-redact with audit logging, rate limiting, and upstream policy — no single layer is sufficient.

8 Languages

zh en ja ko de uk in br
Phone
National ID MOD11-2 + 15位旧版 SSN My Number RRN Tax ID NINO Aadhaar CPF/CNPJ
Bank/Card Luhn Luhn IBAN PAN
Person names HanLP spaCy spaCy spaCy spaCy spaCy spaCy spaCy
Email

Mix freely: lang=["zh", "en", "de"]. Pass known names: names=["王一", "张三"].

Performance

Rust core (PyO3), mode="fast" — p50, Apple M-series, Python 3.11. Reproduce with python tests/benchmark/bench_l1_rust_vs_python.py:

Text redact() restore() Throughput
Short (17 chars) 0.03ms <0.01ms ~29,000 docs/sec
Medium (770 chars) 0.75ms 0.15ms ~1,330 docs/sec
Long (10K chars) 9.3ms 0.18ms ~107 docs/sec

Pre-built wheels for all major platforms — no Rust toolchain needed to install:

✓ Linux x86_64 (glibc + musl/Alpine)
✓ Linux aarch64 (Raspberry Pi + Alpine ARM)
✓ macOS (Apple Silicon + Intel)
✓ Windows x64
× Python 3.10 / 3.11 / 3.12 / 3.13

Detection accuracy

Mode Precision Recall F1
fast (regex) 81.6% 31.9% 45.8%
ner (+ spaCy) 74.9% 42.8% 54.4%
auto (+ Ollama 32B) skipped this run

ai4privacy en, 500 samples, v0.7.9. auto mode skipped on the maintainer's hardware — see benchmark-report.md for full matrix + reproduction commands.

For context: fast mode is high-precision / low-recall by design — it only emits formats it can validate (Luhn, MOD11-2, etc.). Recall comes from ner and auto at the cost of latency. Pick the mode for your deployment shape (see Deployment fit above). Full benchmarks → | Performance →

North Star

Dimension Current (v0.7.13) Next milestone
Protected 60+ PII types, L1-L3. 0% PII leak on default profile across GPT-5 / Claude-Opus-4.5 / Gemini-2.5-Pro / GLM-4.5 in the PRvL reference suite. pseudonym-llm profile: 100% on three of four models; 96% / Bronze on Claude-Opus-4.5 (single reroll cell). Not a guarantee against adversarial inputs — see prvl-standard.md for full matrix. Cross-layer hints in 8 langs (zh/en/ja/ko/de/uk/in/br). SHAKE-256 derivation + full-salt entropy + faker identity-pass guard. State export omits salt by default; HTTP server refuses no-auth start; CLI writes O_NOFOLLOW + key files mode 0600; MCP token store TTL+LRU (v0.6.2). Windows CI + property-tested invariants + mutation-tested core (v0.6.3) + perf budget CI gate (v0.6.4) + session-isolation in integrations (v0.6.6) + README pinned-to-doctest + version-sync CI guard (v0.6.6) + compose namespace + pure-layer purity guard (v0.6.7) + seed→salt API rename + PIITypeDef SSOT + Presidio bridge through public redact + 3 new types (v0.6.8) + compose helpers shipped (v0.6.9) + Layer 1 freeze guards + KDF replay vectors + dead code subtract + manylinux digest pin (v0.6.10) + Adapter authoring surface (compose.register_pii_type / PIITypeDef / PatternMatch) + KDF replay edge cases (full-FF salt fix) + Layer 2 signature snapshot (v0.6.11) + HK/Macao travel permits + housing-fund zh L1 coverage (v0.6.12). v0.7.x — 100% Rust core SSOT: argus-redact-core crate + crates.io publish, with patterns/validators/normalization/replace+restore/fakers/person-scoring + the full L1 redact/restore engine ported to Rust (v0.7.0–v0.7.8) + fail-closed hardening & detection-correctness (v0.7.9–v0.7.10) + in-browser wasm build (v0.7.11). v0.7.12 — quasi-identifier detection breadth: evidence-gated zh bare-region, occupation, medical condition/allergy, and hobby (new type) detection via a shared evidence_detector framework, plus a re-identification eval (PRvL+ X-axis); the unreleased generalize strategy removed Adversarial testing
Usable PRvL U=100%. Pseudonym codes + realistic mode (zh + en + RFC shared) + per-call strategy overrides + keep strategy (whitelisted) + resumable streaming sessions + incremental streaming default + cross-language alias restore (zh ↔ en) Task-aware guidance
Reversible PRvL R by task: reference 100%, extract 50%, creative 0% (by design). Cross-language LLM rewrites (张三Zhang San) auto-restored via result.aliases + restore(text, key, aliases=...) Task-aware guidance
Compliance Meets PIPL Art.28 sensitive PII categories, risk assessment + profiles PIPL/GDPR/HIPAA (byproduct)
Coverage 8 langs, 4 LLMs benchmarked, 6 frameworks Browser extension

Risk Assessment

# Assess risk before sending to AI
report = redact(text, report=True)
report.risk.level         # "critical"
report.risk.pipl_articles # ("PIPL Art.28", "PIPL Art.51", ...)
report.entities           # detected PII details
report.stats              # per-layer timing
# CLI
argus-redact assess <<< "身份证110101199003074610"

Compliance profiles: redact(text, profile="pipl") / "gdpr" / "hipaa". Type filtering: redact(text, types=["phone", "id_number"]) / types_exclude=["address"].

Realistic Redaction (pseudonym-llm profile)

Default redaction emits placeholder labels ([TEL-79329], P-164) — clear for audit, but breaks downstream LLM reasoning because the message structure is gone. The pseudonym-llm profile replaces PII with realistic-looking but reserved-range fake values (e.g., 19999... mobile, 999... ID, 999999... bank card). LLMs reason correctly; humans can still tell it's synthetic if they know the convention.

Each call returns three text forms sharing one key dict:

Form Example Use for
audit_text 请拨打 [TEL-79329] 联系 P-164 Compliance archive — placeholder labels are auditable
downstream_text 请拨打 19999123456 联系张明 LLM input — semantic structure preserved
display_text 请拨打 19999123456ⓕ 联系张明ⓕ UI rendering — visible marker prevents confusion
from argus_redact import redact_pseudonym_llm, restore

# Chinese
zh = redact_pseudonym_llm("请拨打 13912345678 联系王建国", lang="zh")
zh.downstream_text  # "请拨打 19999123456 联系张明"           → LLM
zh.display_text     # "请拨打 19999123456ⓕ 联系张明ⓕ"        → UI

# English
en = redact_pseudonym_llm("Call (415) 555-1234, SSN 123-45-6789", lang="en")
en.downstream_text  # "Call (555) 555-0142, SSN 999-37-2811" → LLM
en.audit_text       # "Call [PHONE-23801], SSN [SSN-15772]"  → audit

# Mixed (auto-detect)
mx = redact_pseudonym_llm("客户Wang at user@company.com", lang="auto")

# Round-trip works on any of the three forms, in any language
restore(zh.downstream_text, zh.key)   # → original
restore(en.downstream_text, en.key)   # → original
restore(mx.downstream_text, mx.key)   # → original
# CLI emits all three forms as JSON
echo "Call (415) 555-1234" | \
  argus-redact redact -k key.json --profile pseudonym-llm -l en | \
  jq .downstream_text
# "Call (555) 555-0142"

Reserved ranges:

  • zh: 199-99-XXXXXX mobile (sub-segment unassigned by 工信部), 099- landline (no such area code), 999XXX ID address code (GB/T 2260 unassigned), 999999 bank BIN (银联 unassigned), 滨海市 fictional city.
  • en: (555) 555-01XX phone (FCC permanent fictional reservation), 999-XX-XXXX SSN (SSA never assigns 9XX), 999999 credit card BIN, John Doe / Jane Roe person, 1313 Mockingbird Lane address.
  • shared (RFC): example.com / .org / .net email (RFC 2606), 192.0.2.0/24 / 198.51.100.0/24 / 203.0.113.0/24 IPv4 (RFC 5737), 2001:db8::/32 IPv6 (RFC 3849), 00:00:5E:00:53:xx MAC (RFC 7042).

Argus Gateway integration: response headers should include X-Argus-Redact-Profile: pseudonym-llm; UI clients render display_text, LLM clients consume downstream_text. Storage of downstream_text as business truth is unsafe — it's synthetic by design.

Real users named like canonical fakes (e.g., a real customer named 张三 or John Doe): pass reserved_names={"person_zh": ()} (or person_en) to disable that locale's canonical-name pollution detection so the real user's name flows through normal redaction.

Streaming

For chat sessions or long-form input where text arrives in chunks, use StreamingRedactor (input side) and StreamingRestorer (output side). Both require complete logical units per chunk (sentence / paragraph / turn) — entities split across chunk boundaries are not handled.

from argus_redact.streaming import StreamingRedactor, StreamingRestorer

# Input side: redact each chunk; same original value across chunks → same fake
r = StreamingRedactor(salt=b"my-secret-salt", lang="zh")
for chunk in input_stream:                  # one sentence/paragraph/turn each
    res = r.feed(chunk)
    send_to_llm(res.downstream_text)

# Output side: restore LLM output stream at sentence boundaries
restorer = StreamingRestorer(r.aggregate_key())
for chunk in llm_output_stream:
    restored = restorer.feed(chunk)
    if restored:
        print(restored, end="")
print(restorer.flush(), end="")

True byte-level streaming (entities crossing chunk boundaries) needs full incremental detection and is roadmapped for a later release.

⚠️ Realistic-mode output must not be re-redacted (it would corrupt the key dict). redact_pseudonym_llm will raise PseudonymPollutionError if called on already-faked input — call restore() first.

Full API → · Design constraints →

Integrations

Install
LangChain / LlamaIndex / FastAPI core
Presidio bridge pip install argus-redact[presidio]
MCP Server (Claude Desktop / Cursor) pip install argus-redact[mcp]
HTTP API Server pip install argus-redact[serve]
Structured data (JSON / CSV) core
Streaming restore core
Docker slim 157MB / full 5GB

Security

PII never leaves your device. Per-message keys prevent cross-request profiling. Full security model →

Meets PIPL · GDPR · HIPAA technical requirements as a byproduct of its privacy-first design. Details →

Documentation

Getting Started Install, first redact/restore, key management
API Reference All parameters, return types, streaming, structured data
CLI Reference Commands, flags, serve, MCP server
Configuration Per-type strategies, enterprise mask rules, false positive reduction
Sensitive Info Taxonomy, privacy levels, roadmap
PII Type Catalog All PII types — strategy, sensitivity, PIPL/GDPR/HIPAA mapping (auto-generated)
Architecture Three-layer engine, cross-layer hints, pure/impure separation
Language Packs Adding new languages
Security Model Threat model, compliance, per-message keys
PRvL Standard Open evaluation standard: Privacy × Reversibility × Language
Layer 3 Benchmark LLM model comparison, prompt design, regulatory analysis
Benchmarks Evaluation against 9 public PII datasets
Performance Latency, throughput, benchmark results

Contributing

CONTRIBUTING.md — language packs, test scenarios, framework integrations welcome.

Contributors

Who Contribution
@aiedwardyi Brazilian Portuguese language pack (CPF, CNPJ, phone)

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argus_redact-0.7.13.tar.gz (560.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

argus_redact-0.7.13-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

argus_redact-0.7.13-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

argus_redact-0.7.13-cp313-cp313-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

argus_redact-0.7.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

argus_redact-0.7.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

argus_redact-0.7.13-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

argus_redact-0.7.13-cp313-cp313-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

argus_redact-0.7.13-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

argus_redact-0.7.13-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

argus_redact-0.7.13-cp312-cp312-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

argus_redact-0.7.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

argus_redact-0.7.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

argus_redact-0.7.13-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

argus_redact-0.7.13-cp312-cp312-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

argus_redact-0.7.13-cp311-cp311-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

argus_redact-0.7.13-cp311-cp311-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

argus_redact-0.7.13-cp311-cp311-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

argus_redact-0.7.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

argus_redact-0.7.13-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

argus_redact-0.7.13-cp311-cp311-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

argus_redact-0.7.13-cp310-cp310-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

argus_redact-0.7.13-cp310-cp310-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

argus_redact-0.7.13-cp310-cp310-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

argus_redact-0.7.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

argus_redact-0.7.13-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.13-cp310-cp310-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file argus_redact-0.7.13.tar.gz.

File metadata

  • Download URL: argus_redact-0.7.13.tar.gz
  • Upload date:
  • Size: 560.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for argus_redact-0.7.13.tar.gz
Algorithm Hash digest
SHA256 0ed8f5e50cf916851e6cd4e51dde20dd96d5b6a107bcff42633576789d7c7638
MD5 7baed6ce5d20599f1794c7d8e3cc105e
BLAKE2b-256 6d8020463371dda3c0dc381f9b470e364670313e6416568e3199d2698b6c3006

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f9a75dea245e932f8bd00728592961868a3187fa39c9a97436e2c3e50c91ec21
MD5 740c2baceffc57e132a129b0c15ee31c
BLAKE2b-256 225a5bd36154712d83e861f95a4bc4547f4860fae137d042f96a35d8716febc0

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f50e4e6cb83d891fb0b533273c244e9abaa67bc0e1a23e13e7dc9439f0e420e5
MD5 17f9fdbc2bfb6947064c76ead09500f5
BLAKE2b-256 f1e4e1c3b850673ef5a1b39ef0359e9e92ef35dc062a9289431b6c00e3f0b0a6

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 32c46c3045d5c2055ad84036f71dfd5670706450fdda33fc4a31a2daa95d9aa1
MD5 8f2afd7dcb0d80466ccf8d2491552aae
BLAKE2b-256 d3dee161ffec6a714a707982a4e0934af290e87a30b3ecb7a172c8dd8a1ba324

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1883f41891ee6c21b533691196c7e00d26ca3ff4b49e10dc902447abf815eef9
MD5 023a5f0b32978c3104a2300c840ce9df
BLAKE2b-256 17a546469a6c58bc277345ecb51df2d29e400fd07b0bbdde57f86ec82b004387

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 59970e72de605e2a85d90608c31e12d01a2cf6233f429f68db096dd7ea5d904a
MD5 ec07cd5ec4a2ed6745600da6056d7529
BLAKE2b-256 dcc25a37dab4a9c15b5efcfeea8da6fe781b7170428ea88d281c7ab308b23c08

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a40d78848e0d9768bd618d40f698e03cd082d1b90df9679cf964d43b6f55f00d
MD5 45e4aa50d98d32ccdd9165468266eff7
BLAKE2b-256 254a9ed3dbbdf7fdfefcc9c2ff6aaf4e58ce3ea237e3efec1ad3644d6ebda7df

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 13a6f27cf9ed61732c93b9d3b216bb1e1f795ec00b45676e513a3726e9bd07f5
MD5 1fbbbac5ae9905cfdd1954da1f8b338f
BLAKE2b-256 b80390a7cba1547357400202abb1fa6d55939ac6c9d4f9ed6a1485c288ef29f2

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 28b8b40c83e7323abfe47170e30045b4ead904115b844bef88e567eb163fa4d8
MD5 c7be2b296988d3021f9110d4240b0ad7
BLAKE2b-256 eccbc158c8c0043eb88dc902353e59ea8103dd42564e918cf47bcc126dcc6ede

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eaf504b5a75ca1782f7c676d68fd8efce42d5de5b8c735014edbfdf0212cd21b
MD5 c9a7a74a667a525bba11a3012ba0bcc4
BLAKE2b-256 c68b8c94c9b23277ecfb0eb21e56e41a897b7448549cfc68165b21180e29796d

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 22b225ea9f836d1bbc6170d840ce9fd55b936785d9118bc0bd4f473663f74951
MD5 e8ace7c0b4a81e8975619f6f587fe262
BLAKE2b-256 040e07a58f9131c87d40ba7c55b1a0d188fe34ebe810d86e2dd63e6580dbb148

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b231fe525fd6adebe1b684f5fce18981fd21bed5d994ee6ba307e97b3ff75f43
MD5 93e8d47f725929b2474c09322b1142af
BLAKE2b-256 19c7010790165fbab8605744aab6836d3464a3a03742897fad20e7627e1d6793

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3eb965c59d7a9868ec209ee4175eb538caf8930a376852fb5535ca3c2198e7f0
MD5 e4ec66377f519cd51d9148a921f38c31
BLAKE2b-256 bb052201321be084c389560765cddd397dd64e07683a89062841be092367f8b8

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37571fa9a988618c555887cfdb6a4bde1befb631679a169455af194d575d2998
MD5 e0a2b17b5e52aac68fe8a060af63ac39
BLAKE2b-256 3160db7bfeca0e1011fc596c43339441a156390146cb61bc5806c7fc2fad382f

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5fb5840825deb6dbb1fd84541d85464ad6d629394aabbcac7f586aefe1757370
MD5 fb2ecd9794dd88e6662e92774e6f8ce9
BLAKE2b-256 9b50d1c57efd75f55ac32e8ad8fdbb4dab9a144abed2b6a5b065c0e1f49d592b

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ba501834e7e3f818d5676fb71ac9340e17b5ac8c66fc30d97a7b47e7dc57b5e6
MD5 976e0e46b71a71dbcd8f876fc0c2869a
BLAKE2b-256 59ab2ecba0adcc6b1cbcc2fd04429e48b97846e06c8cb0988f1aae40ede708e8

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6705d0e81e96a6b1853fa85045dd727b2fdf79b6d72806216a0d896906651ca9
MD5 cf06729026a4de279a36c21f94793998
BLAKE2b-256 2525853ef93dbf1bd94b08c785c03e14fb5c54609ec15c2eaee75322d4f9264e

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 efc513c25936d29ffaf4410b89ade47b2383048cf1b516ac2e5df93873cde211
MD5 c3380fd3f2a61268dea40fbffc390315
BLAKE2b-256 af7a268dc1e7ce2c2b1c116d7a33320f6660dabf82b477339e249a172411131e

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 513d5052062c342fb713a9ba5409b211a06529c58263ffed59764c7b6e928131
MD5 ea952b0af5e44b7d4be33fab22cfd7f7
BLAKE2b-256 bd2d2ef122cfc5a7ec90930fbf90ff1ae65342cab95387137f5d9c3908708dd5

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 564837dcbf2a00881c22eb2ba1af2a2497f38dd36c77f973dfb298921c876323
MD5 29945b4eb4ffa2844763a8d4b8fc8b3c
BLAKE2b-256 f0ef4c0ed17b4d0654e5caec6b79cbdb838484c1b2f422cb21b68ee4c85e2edc

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 563be89e3aba2539a169aeb575bce63e2de0163f3acd1304f583cca8f5adb981
MD5 0b7131c373db6643b8773bace9df53cb
BLAKE2b-256 a2edc7391110232f6c5b0f659661edacb612e3a70fc3c9dac73385ad3979a093

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 27d6f30d7f5cecc056530619d8c9d098b8e6c3080b68ed1b5aa2adc81b872649
MD5 ec74c64e327d80eedb438429710d0d4b
BLAKE2b-256 04b53f0d6e817ee888f8e34fdbb098e2ad39d948da7770aa349364c4caf94ccd

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e1805765f8932bd4f7d413b7a3f1fe6edc947d1927f2008841ee51da1d198e4c
MD5 09d507cff65369588cf6fcb37e74078e
BLAKE2b-256 405601c273a9232a505c8cf8263751ca18293edc59726f979266fea95510e943

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea3f518c1f6f179b088e9c1ac525f12bb5135f69ffbcf09b9686dd9ddde48f6f
MD5 c2d2918439c76f954f01005facced3ed
BLAKE2b-256 1ae7abef3a0c5f22ec44587858478ccef185723ddda10740cd40eceebfdda01b

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c9bbdf04270d99d1db6a0d880a6aae3d18632b862a372d85f3ef15339271e679
MD5 d352d6eb2f001fe525ac2116e3ec2867
BLAKE2b-256 1d7de781eb32b5f825b5a1fe38879dac99861e85bd5fd032c3f698a6ee16fc02

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e8eca3f87545e7c730f782240721fa07388d5346a575df23d640c21cd099065
MD5 e016a81073fb299e5ec9b3acfb95824e
BLAKE2b-256 cb964361bd7d8df01459345026297eb4ceeb29626d47df6423936483a43b5da4

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c6ae3a5b1dc3de44bc34d9b84485cf72bd41e4341fb7e2411bf9c01a8d14cfe4
MD5 9758458901c9335aefbb18ff18e95444
BLAKE2b-256 373e8835c76966969e59e5bf4ef81ead790e0f988c3b094716df8e5aa89e8acb

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 417db1e1fce0e857548dd7854b94929d300018813ddd0022a2e64319fb4d4ede
MD5 2e6b7fc7c1dd0976ba4dcf0ba149cbec
BLAKE2b-256 0ec0a102739fcd290ad955a88ce4edbda2ba946eb52c5d3d877e5c306375e1e7

See more details on using hashes here.

File details

Details for the file argus_redact-0.7.13-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for argus_redact-0.7.13-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 226b73ae06af1fbda49ae239e36c88042483935c6bfc3dcfddc68b4af99104e8
MD5 1a80b3087732755cd774e3e1dbcfcb22
BLAKE2b-256 e1bc22c7a7de1298b6053c172db1f02defdb4ee51b5957360c9fe78fb9f8879c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page