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; and why detecting more English quasi-identifiers didn't reduce re-id either).
  • 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.15) 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


Release history Release notifications | RSS feed

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

Uploaded CPython 3.13Windows x86-64

argus_redact-0.7.15-cp313-cp313-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

argus_redact-0.7.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

argus_redact-0.7.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

argus_redact-0.7.15-cp312-cp312-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

argus_redact-0.7.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

argus_redact-0.7.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

argus_redact-0.7.15-cp311-cp311-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.15-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.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

argus_redact-0.7.15-cp310-cp310-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.15-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.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.15-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.15.tar.gz.

File metadata

  • Download URL: argus_redact-0.7.15.tar.gz
  • Upload date:
  • Size: 585.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.15.tar.gz
Algorithm Hash digest
SHA256 704e9be56dd28c18e78db59c9bf75d42faf05e3ec499dcb79473922e601d3917
MD5 af849deef678123914e322b66ba141c9
BLAKE2b-256 b8cdc9e512eb52ff4624187586e66081432fcffd00516ab4cf8b8b8f089373a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 402a7e99e60241980bea5304a07e3a1afd0af57af9545942858e492966c2f1e7
MD5 414349b082182191267c70c516e274cd
BLAKE2b-256 910dada070c43b5a354784d8237a9f48b4ef44294092f33f16d4942463fcb6ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 313b74d0edfa7e366ac6e0cbadb83d8950a1ad723850886925953f3afdddda13
MD5 d18c29dd1d8c19d795e4bb9e6eb11c1f
BLAKE2b-256 9d64ce8b1a0870a00bb960fbb8ed7a046eb03906a047ce187b3acb21214ab625

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2b195868d3d8522c8e628e2d82517ce5d2f54df8b5026213944cd12735db0522
MD5 3e2304b7c45ae5e0c1628c761620c70b
BLAKE2b-256 ecc3c27c16813b089977220b98c712e8f82de283cdc6f8ef4eb5d361752483c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 017f18c2d9a2b505cfefb3e380b4addb544069468fe7891cd19c13bda3fe5c40
MD5 400e64e5f990390438ddc0fe1f531839
BLAKE2b-256 bb5a09f76cac83f1b588357c62ab4fd2d793d1f448c54027b25d22fcaefa0764

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 03fbe7075d7b56c1dcea0e8c52e659e73290b05986ef743ce1c13d7802ef4190
MD5 68b0ca907e0bb8839ae720e24de3f4a3
BLAKE2b-256 faa4036abb3a46a8ba03fc193dc4d4993a85530d70b84b7f18eeb8f75b56bc4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5855fc3fa726cae2d644ae83b98dffe0d8db894188592e4cc57351bdc68d5dd
MD5 13f1b20de0cd0aaaecbd387b61fd919e
BLAKE2b-256 86cbbb7d7255d1e369a8721e172c23ecd699fc0e395b22c57f3ee2308f8eef53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 381e5c7c7cc2c1038fa2531c352961daf9d9787aad7c8a235f1dee44690377ca
MD5 cd71e0b9aa358fb4e360e8ee1a144e7e
BLAKE2b-256 80041b17b17e05654f11d199f21d067c543aa95fd3ecab36aecaa0f0f56a31ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76d2d195a05cd3bf49f4168243e64ee7ec6ed9b10b698b0d404bcf77d2eca822
MD5 8ef38229b097e6dd3e3b7556ee9be7fb
BLAKE2b-256 f7b57b3f40bff310abb21a73b5c72b351e3b8415c5fd442a30e6143640481e86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d1effb992d93cad9cdb1b62a31250b1a8c7ba7e530b6d82c977e2eada77d4e8d
MD5 c2c7ddae18b7c2427dae96738cf51623
BLAKE2b-256 f7f02d7703779f1e92e800bf70ae1e5ae331ac0afbbb4abb219aee48b1ce0fae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2cacb9e14f18ea67dcb0221bd733b1267c00237676e7011716d11529255cd8d8
MD5 bfd426bb077e397ebc90a0b14e5f7d55
BLAKE2b-256 7e2e7a0530c8753475b1195ddb054aae67f3c47ac293b11a3b9f20fcaa78ed28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 57846f5a2576a9711aae4be5fbd6d37f91d47f7b85548ac3d362e56608260476
MD5 2af02de178a9fc7ceffa6e665d59639b
BLAKE2b-256 53e90a97924ca343d859882b111223dd89a9d5d5016feff4e4637ca2326d35d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4b7b5788111012052fdf84a576bed923f434eee699cc9cce1fcad56608326598
MD5 de4cc5893ccfb709d469d72cdfae721a
BLAKE2b-256 70e2a1c8139864ad44844540647f9ee49272ced558e4c630fb615cbb9df298c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f89ee8dc81880d6d90f6448bcf4d7405aeb516639fabd07dba5ece2dfe54683
MD5 f9be59d808957a999907f19c65a14645
BLAKE2b-256 5a17502f9eb791f3de061c41a229fd1945615a7d2fe147430ed7eb51baa57a5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ffab3ae7c852502ca31616fa6ce62c781a2d2d51a371b42043423318d55b8641
MD5 fbd6d9317052b8c6fb5fbef78823db95
BLAKE2b-256 3d865884345028b4545a3754fbb0ffac3d47c26cda9403e2b857e3902757ef05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d6cb537de1d697de11a1626c275c34192753f3291631202affc538af1700c955
MD5 8aa4a9107660ae3e5cd946a431914d44
BLAKE2b-256 f50f82cefdfe94f3cf06f951b158dcdc3a80e88260a40e67fba02d1d41a417ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bb15bef4efe8a28ffd95bc0cbd8296a0cfd7beae8e1e60c5286763dc5d30d10d
MD5 7fc4c1c1f49706fb0b38886df92984b9
BLAKE2b-256 cdaf474a0dd3ea789aeeb225984c43d138b54666eb9b38255904f73a636d8ee4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 157b4c65b43863243adb63a93cd733771e71d0ee84fc3734a88ac5df7606d423
MD5 5f7918312101f82e95bd9a7988713101
BLAKE2b-256 90b674cbc363a17812b98ae5e14171e8faae8d5897312be092393a148da26cef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc78178d024688ac2222d4898cabe8cf099d5a6df9b25919e60a95d35e0cb710
MD5 c2d1c832e70e8ef4cdda8098be7a8b40
BLAKE2b-256 ed8362e73ee278dd3317a1853a3b48b17bf823220b6f6dae8b525677de9006fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0b15d6633119e342972e659dc6c92f8b05d30aad9ed8a3889a21e8337065cc4c
MD5 b33b1231eee6be18a54487e134f1103f
BLAKE2b-256 e8b598e4088934743c11ca47d290836a05176bd0e799218d58303200346a3ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0fbe1364fd93c5dcb16df1131950e0dce3a82440ed9ca86392179961c9aa3819
MD5 f46f9b67d7b8df8ee966c5b696afbf01
BLAKE2b-256 7f9030afe2f91abe208b06155b9032253603fd96efa0ebf1d21f6ce177ed0b03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 14f36d800140faadbc5aec81252a2b37d13729cfad962e9a443f8704b8451181
MD5 1b103e113979d292679acd95f5cea512
BLAKE2b-256 2f4b4a98fa78d17e04dd6519309f52a781c6b3c6b54a43a4851ae7f1c8084fb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 414276d5e30a8085cd85453dc9e02c4059d8902302a6f2ebdc834f8a2d4ffd62
MD5 f30665631456c3b9be7c4122061064d0
BLAKE2b-256 62ab9ec94285c5cd81ee87cd6c477b30d7a70f606a458971ce0c5ab256d3988f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5750688da2e69d69e1cea517be5edb0931ceef493e7dbccb686406202d02793d
MD5 55fd0cc67136bfd856394e3aa58e177f
BLAKE2b-256 973bb70131b2d00c0d723d67a644172ed1e6f7444e450367fe74472530f6e61a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 42b724e129031e17a4a92f056cf12b427fd4be78d8d9cb2517e66a4081c24138
MD5 94b229b436165d31b6680f770dd0878b
BLAKE2b-256 19dae239f826c71da1e1bc9cc1ec86980819169ada470ca1020ab5f61cfeba34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2f67f63b698268a736fb7ab5d8639a207f6386e895c3a6dd44212e63b7b0537
MD5 b6909dfc777a0a923f5cfc935abc57ce
BLAKE2b-256 491f52c04a731e9ea61380be0fe6d407b748427ff9ab04cd3bb7e8811d51b8cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c00e45578402a0a1839528d6af6f9fa041004518d909922689b1425aeae64f8c
MD5 857e12c25200a45d3353f73083d59836
BLAKE2b-256 4f84ec7addb2db185f192b455529d2ccc8a1f943f21e1267ddd4b147252baf64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe9806c0ab61b12c98eaed30b6da95531abd29b11ffbaeff4a97a927953d885b
MD5 76396cf029c5b313f7ee9e14cf49b9e7
BLAKE2b-256 63bf19098b32e022dd3fad8370bc58ea1a0b4bcfa3a26cdac70e95eb44fdabef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.15-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7815d28fc28985308d55e6d6b1ed7e7cd895f0b847b7c22242bf3adc40ab0c1f
MD5 0c5459717299a4119506148d26a3c96d
BLAKE2b-256 fb91cc603ed48c176541a8226656a6bf6e0c8a6d1c268050f11cfff433bd252f

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