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.12) 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.12.tar.gz (559.1 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.12-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

argus_redact-0.7.12-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.12-cp313-cp313-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

argus_redact-0.7.12-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.12-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.12-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

argus_redact-0.7.12-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.12-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

argus_redact-0.7.12-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.12-cp312-cp312-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

argus_redact-0.7.12-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.12-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.12-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

argus_redact-0.7.12-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.12-cp311-cp311-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

argus_redact-0.7.12-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.12-cp311-cp311-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.12-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.12-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.12-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

argus_redact-0.7.12-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.12-cp310-cp310-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

argus_redact-0.7.12-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.12-cp310-cp310-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.12-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.12-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.12-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.12-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.12.tar.gz.

File metadata

  • Download URL: argus_redact-0.7.12.tar.gz
  • Upload date:
  • Size: 559.1 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.12.tar.gz
Algorithm Hash digest
SHA256 d7dfe31073f229362b60fbe3df17eced27f801e85777515336c8f751967a3075
MD5 8179563f3cae783843ba17d5ca3f62fd
BLAKE2b-256 be9b78337f5219048771c9746c8944a60968f2bbadbd28190cc9757b78f43f98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e6b3ceb43092192f6435713f9e24e64cd04835893c72452612c37e91a7253bee
MD5 ae7e01dc7ad5ce015c2c4991e93521e4
BLAKE2b-256 2124a087fe6e869e49f73990f12f5260f6b012b54999f74b7ca8fe040874a9f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 81dab7a1067e14feb879ecbba227355fe9da3ae9ba3b16bedce4fd48b16c561a
MD5 a940613c058730a77d1e6e59af0c987b
BLAKE2b-256 5e9e40886aa76c1910b5c69f9ce045b86047b935df5465388269ff70c82de65b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fd596aa360105b62856979f4497e2a62424e1492cdea336e0ce237a2c069e2b3
MD5 012644628d13af1a95f56533fcaf48a4
BLAKE2b-256 c11f3054443f3e916a783a7914a8c7c65fa7722534c6ff75d166c05093751998

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a184d64be8b1a8ec9167cb393254f8b4826cf911d16f23d7be0249c3c4f6c7a
MD5 5fb1a046d071a6ee1b5273d5cd0f8324
BLAKE2b-256 fb2ee40aed58d0e69806e1967284ebeba3afa41bd81655d73f90d9bcaf7953eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0598c45145eb1d68dcb5341a4be663653db514954f5e040cfe3782d74c0968ee
MD5 f1775efc2c9c1b8d43f07084b96a3675
BLAKE2b-256 e96f856de2cfa763369e421cf2f6ab5765dd8460d0e3ec71a52e74d797c2e707

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab0fa95b47ef8df846e92f5b593baf8d298bb361abfff276d42f44aca448cda7
MD5 ef88e41962f4d5b5c3e2c79c9badbd83
BLAKE2b-256 6994be1a862f67700b5e98171c99185b79da42ccde0c78cdd63c629b3e135e5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7d3cc0beb6989e4770b7819784dbb88055d1895d26609c599d2f2f8a6b845c83
MD5 312ecc21d7e8852128eb890ad60c915b
BLAKE2b-256 9372161412666d8824d65bbbe70f845dda0d1461e2f29b98ee99886673069455

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 719931d6e6a4333272ed583f4d975c5dc973b3bcebf72c2d5d26a1307ec0cc9a
MD5 bb3f991fb3479b63f7d960bcb223b769
BLAKE2b-256 da9999f6f094986d63c9d551e91e1680f79d95fba341a76d39cbb336db924762

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a3181262e315c5986b89243b7ff292385e4c04689c668349fee1b927250ef305
MD5 658f7360f91700941f6cc84dd4dfcdd8
BLAKE2b-256 0f9020aea37f868a209066e947be5182299fb0437aaad43076f801f38418e565

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2d1f6eec5c8baa4c21997586dbf46bbe8091c22eef646d74a187f16137244e17
MD5 a7a52b31f70ff854a3965324d0262072
BLAKE2b-256 4637c587d6052fc0bb519340ca27fde2728f2f20c014bee9c9caeceae6d6f773

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00ce8e43029d769bb0e7c61155bda93d04e4546c6385f24153da9d5d5c6c848c
MD5 d31fc7450273e9024f9f5798418d8869
BLAKE2b-256 edcd272722341c7128bc54ff08e74900ab4bd65c728573bb296a1bb22cede263

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e3e176c6be407b6b42af31e1eeb8e9b4f1d4f57c8f591ae88919d1341609c550
MD5 f259ca72384e6261278c6defee809efe
BLAKE2b-256 ed03a9337650e3df3ab937726c56992185e1b649781455423f8b92f9140ee5f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe9b3e1bab56fdeec26fa839049f0f4a327788a4aa61007068d78306dbe6e543
MD5 9939cd92d2c8b3f816117c7eb6d1d7bd
BLAKE2b-256 92998146c77f895bee9f4a746d34fdfbfab5105ca7bf4eba71b166b21318dd00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4d5aa9657fa85769b7ac7b1e71cefff78f2cc6b44804d0c1b00f2069b935551d
MD5 972472022acda7c0a54a9564115f9a86
BLAKE2b-256 ff2140939e8681ad9aac103d6ecaa0b6b7431e80299f346a763477e11660946e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c38037419fbf4fba9d9e98302027e47233fd074641a01107d1df51ec5bd003ce
MD5 0c875cf00ce54e24f3c534ba4e96f8c5
BLAKE2b-256 702a0cc21e0731e605a5192bd514bfe6113686879d98fe515df11ca62cbcd963

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3755bb7d2b0c7d4bb44cb9b816448ac04a1e86f1501d34444c8fe55de3fc43d7
MD5 1995a8c8687b1067a7620dd6c676e96e
BLAKE2b-256 a828cbc471bdd1a8cbd876deede36a70b4e7d81d5a67c2ca355f1d7b6cf5cb4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 90ef5a8aa28f7921f03136548b31443223edad2ca3bac73242f36e060fa2743e
MD5 2d18a5af3e0f23545b4ed082b2227bf1
BLAKE2b-256 b1f587b78801f5ae3cadedff7547a9d5b1a72b225fef714405e5f60347a06d27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1f3ee40400e7d19cae06f04a648f5e06c9f09df9603c27540632e39dda40a25
MD5 eb0f32b8cd00b668ad5e21c2a01a9e10
BLAKE2b-256 3619af0c1a4c59869c40dcd7f3e9c4c2582ae694772628eb2f32ae7db9f6b085

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 45a5fa6c32dde7d1d72bee8b9c66732aabc3ad3a496baccf6bb6569ad428ab02
MD5 3ddc51fee0570f0866d3b5dc85ff9f84
BLAKE2b-256 292dc998afb7a1b9f9dd013a593e1685b00abcb38482e5be59939e6e3b120d40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3aa59d473e39848f71dc21b5a32103d7c9986454a27d96836b8b2750982b52bf
MD5 db540351070beb4e40803a33b82c5db7
BLAKE2b-256 c88de52f19a5313f22264bd7701bb9787b94f5ffd59a7325a513d0bea7b296e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2302fd430c47f31cd95134b64ac784b89031da7474765bff454ded54e1c56434
MD5 32303dd626e028332d0bd9ad4b698bda
BLAKE2b-256 69e6dac35998912534e204d0334c438f3cd951acf69f95ddf296ac06c3f32e8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 904c26862eff2ac2d9ad0d05aed462cdfc9ff51396d1a9192b61c41f5a487a43
MD5 da8942c5572b6c66592b33339ac9c033
BLAKE2b-256 cd5758395c36623ee0f698d1934fd81a1e8a1b9330e25aa1a22d1e0713e458b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c4570ab66a9f859b1fe68e7317e54d9b6fb7c90ff35162e794ad1fc855bffb04
MD5 9fdd65a69cfafd6b125296d874997046
BLAKE2b-256 f53d4c48d97df90b800039b294a52e91591c7a6c7097556c9d6cdcad0f8b0770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ef84b9f00d6d5eac81fa20f09aae590fc7656ba683f9c2a4c6e042555b5c5812
MD5 3216039bf7d1accf40bebdab23045177
BLAKE2b-256 5df0a64816e04f7b9e324b5fd00b1732e9b66c8eb15bd21360bbf89b04b1358e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12993a471ead967b59f0834cc477491c2a559e298dddcb55da19fdee4df4200b
MD5 e0614b0e03cc4e6cfc1d1fcdf4da1b43
BLAKE2b-256 89147ec206797eb2ecb5285b033c97de665a739ad3ee57292418232111ea5507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e23b8ff97f5a50a2ad64a7c2affc3e3bd9c0fa04da709697851c8846f711b23
MD5 f56c0a4e5fe9cf8c6d866d23888b1a2e
BLAKE2b-256 7427f939e3594e7ef84bd064b6f4356a42fac832c86a134b481247188b7ae638

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7b0bbbe83c0a3452975bf74e6d9339f0f44400ee7f9e05dc2ff653913376079
MD5 b027addd1824892c30800eaa741f3114
BLAKE2b-256 951e523b8b91ebcf7219b0594008fd62a3d6e3085211101f1ace94de2c1e76a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.12-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eff2056105c7c2606669b86e50273a9c4852418fbaff173e1043ed801003ef78
MD5 34b17ee09441b068f138e8e3e308d67b
BLAKE2b-256 08ec382fdd2979e7806303acb00caa959e8d9e7e958436cad8c699809e3c7d8d

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