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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.14-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.14.tar.gz.

File metadata

  • Download URL: argus_redact-0.7.14.tar.gz
  • Upload date:
  • Size: 583.4 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.14.tar.gz
Algorithm Hash digest
SHA256 51ddefda1268d6e2ab05857d2c67f9cb2c640d55f337634b84e5c0cfb7b67ce0
MD5 f4835a922240da3b51f6f11913315358
BLAKE2b-256 c3a83cd9517745c1bf0e663027120f6dc0149362d41c93d7b1373513fae8013a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e2a7f94bc485fb4b3b47107df2561ca7c391c5cfd1ec27a097074d76f5655cec
MD5 c4610609fd97d0e1534d705e1e04a423
BLAKE2b-256 3df56562ebfc7ea77f905c488a1ddb95c9268ad4c8aacbee9897589941ac5591

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 965b74c0cf1e945891902d6bd23b65cb4d996cb4a9473c737d69c6b7b8698380
MD5 619152f6b0df2c809eccd53512b95243
BLAKE2b-256 f1625d85b14be13fb4343d7b2b0338e7349bbfd3249c4bb85b0de56797b5607e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 768ec0c8c91ccf963ef7b325ced1bf4fc6343ac32421a561e31aee020f71f5f3
MD5 30f4b466292a739cad9480356cda5581
BLAKE2b-256 3d38552dcf5ce4659eddb51eb9b183c58be3684442403849d3731736a251dbda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28c6b4329fcc780a3bdb09a335b29e5c5104d7f1df8b1e8e1c822a263b6c68be
MD5 8e4e77fe26e84779e3fc27068c0729d8
BLAKE2b-256 83d213aa2032fd26d245ecc8da6496b361b94f0fdc96510ad6f804713ec3b04b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c345e5c1d8d2bcb23d5426c980a5fd14846f4ebc67b2356dbeb9c71a6524ac1c
MD5 94d92bedf9db5500285c3234ca4a43cb
BLAKE2b-256 052d06b3f0bc46b032a6588c9862a88f2cb24280293a194452556021f931ce07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bff64a7149dad8733608c8acdef021cb49d990017f97e0104cbe97309a061903
MD5 083ff55cf7e76d1c54b732f9c89f5ba7
BLAKE2b-256 90545ab6bf1489fa8269847dc7cffbd7b85415456f2da4003ec1afd4e276eabe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 23030ad8176b2cdb2621a367239d03975faf97a95e2864a92dfd2d4c778615d8
MD5 9ecb7d89d086b91b90fcb6de4460af29
BLAKE2b-256 132fd7ced48bc4ca47ae922d17da284ca2efbaf7f73d03ec36d6eeef58743da4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 495b67793c4412aa5be745ce45fdeb381f079a9aa05dd9be8fb284cadcddfe85
MD5 163314f955e890b0b6ce717aed3afe23
BLAKE2b-256 5549935fee589fa45c59e8cdfb57517609d8e46bec70b2d545db9aa5f413b3be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b86e986523339088003d586ae0eefb5c6693377fad4f20935d1a65f9a122f29
MD5 54e0fda00c6599c9e2170aa5b53bf531
BLAKE2b-256 2b52af54cc8db8f9e14796378042f7926f49dbde5451137d97d894899af6d8ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ed46c09229037c28b5252a244a63f91b4daa9d2f9eb255a9a5681e6889596621
MD5 6337da9fe29a0386bb5d591f4892e3a4
BLAKE2b-256 526ea13b94393df20f4337e6bbfc6237c01ee7a97fbcf62cc1da1e4d714350e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 854f23ba11b233d1a72cfb9f01dda4db97702cf463696b084c22bb1b24e996f6
MD5 d1978e6017479b3a62a70d9db9c23f83
BLAKE2b-256 5279d88a3bb2dd8676b7daed733067cc4b0815146614c690e3629df968f841c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c86606d1c2ba7b088bb20c6258409c8587fbee4bb9a88ae16f1bf4ea8860561
MD5 0ae13ebe6ee031f9c6f3f8616bdfb559
BLAKE2b-256 7237a0d1ddf6f6729332dd1be56d8979e6068d72eaf69d80527b1e1784a3f10a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16c4ce686802bcbe17c95bcb78a908f8fa0ac20fe5a01f880f78da57909fd1ee
MD5 c2958c9685de766d0fb81b6a7ff3d18b
BLAKE2b-256 9c55eb0807f339735e0cc548d9746ebd347883d992ae04c6c8baf5304a8080d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3e4aca7d3f4de1790d0782ef7d167c87b2014e53a9590fd96126418e9df6364a
MD5 1b9acd20b36c0158d034759274cedf81
BLAKE2b-256 0d6dacf700885eee8605cb241e976ad5100e91e5008eee4918d004aeb29dd29d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fc51b8731eee61e68d23c0e60c1f33b7a1410cc81b616524c47d0502022d2361
MD5 c9d8f56e0ce80ec35cc4f20c2b158c37
BLAKE2b-256 dcaa10f476d469aad922492a577c08e679865d662bc460c83cceed0f23f1d164

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b5af8e5635dcd33c9393d2fa17b3d39cabf1c6811bd663f231ee06672d1ddef2
MD5 47b534afcb9fa273271edce2d820b6b2
BLAKE2b-256 3f092dc081ce26a5d90068aef22a5b88404e8375d9a24fc26c1802da2b276e5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6fe942e620f5d40f02c5b850d9eb757ec43246eefaeefe4cb1c1cdf54d077ea
MD5 7abc2f101bd3462e9dc96769a3e677b2
BLAKE2b-256 203ba949960ce4297e4731d505bcd9c4aecda9830b338d3009af1294833cc094

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 295d388986ba3f251e480b84ba6a76c9b1cde1c90ee4d5deb5a9123c5e7fd590
MD5 0ae667a0e77e51667494ace91aa5b313
BLAKE2b-256 56558ab5a2cbab05636dc561ef89336b76db4dc62294889acfdfe4463fe2882e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cfaf2c05d933ff7bca9da9d7692d481446724444fcb2ff0a9a47c5a54cbf2c88
MD5 cdc819ac9aa0c668201f2e06b491e43d
BLAKE2b-256 9a84a570b1b776f4a024090e42467b619d8c832721bc07abf6c041dc153b4b14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81815b1184e148f5f1fb51a463dca68a0bf848213967d2cb162524604f62cd8b
MD5 73e63054159243af2881e41ca932849a
BLAKE2b-256 10801b5a07204243089f76da71b2d489ed7f9f56ce7e0249993468f30d1b393b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 43cbcb0d473ee9fbf912defe298717c4afaff6e8f1e53afd659f1574956c4fb3
MD5 892e47cb4f764ce382a9ca98b63d8b91
BLAKE2b-256 8c22385481cf6092256d4b20d19fc88d65966da5f567b2c83a101af65ae32164

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1f67bbf271d87f90dde1520f390c4ee63ec45e1b033751007e60ad7d5b93e211
MD5 e3fc8d889bf71264609b80c3487aa2ec
BLAKE2b-256 efa20e82d9a8e545b89d7077507721112c0e172ecc41b3b61c162d15b8707beb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1dcda0d654f430e711c38b590626a55b9fd892007b2210fce32856e29ed21c0b
MD5 5217d494f301d3093242921aa1a0406d
BLAKE2b-256 8ce56aa19d04add5d3f01ef5346e366e0f78ef805ebd1b7880bba9e798dceaf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 15dd36dbdc6567665bdffb3800c8d7a4c31db4d7a1d2ba559514c5226ea778bd
MD5 5450e384a00f159b2d417e981f5f5108
BLAKE2b-256 f327837492fbeccf22ec9a16f0ac59327d0fb00cfc499e8226e446ad9d8883c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eaec4415bb23ae7925fcb058ca14ef3e4b963a73bf663752dd52bca3f8680521
MD5 d816e0e45bf73db3e75bc58210e30e80
BLAKE2b-256 942c80f3e7b401a3e5a17ac1f97b32ad8d10afc8105bae1376ad83679955afaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e319e442236db04807e2515e04201d068a2e62bb9476b3cbcfa5d54142ed6b9a
MD5 84df16b4adff59bee54aa04c226d1f2b
BLAKE2b-256 41ac7282cb93e00273b07d542ca2b4239c6ba7956a2a7bbbd3c1ee1f8fad8262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfa50a9233a2bc83829506cbded9f8311ee723bdea3c7f8bdda36249c7cfcb12
MD5 01b6f9a86b062b27d2e06ffc68776c4d
BLAKE2b-256 d5270e9099c6de5774e275ee0db2a8f1af700a2907c4a88f98cbbb52395b4989

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.14-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 987253c421f5c0cf9c3ee1b7e0e84f9bafb576ea78f12e19f9c8ef33e2b6efdc
MD5 660ef066d84b79eaa071ec413dc0ff35
BLAKE2b-256 62d4ae2cbadb9b1237a95fbaa94addd829d8f77fc644a41ce371e197914082ed

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