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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.16-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.16.tar.gz.

File metadata

  • Download URL: argus_redact-0.7.16.tar.gz
  • Upload date:
  • Size: 587.6 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.16.tar.gz
Algorithm Hash digest
SHA256 784e442d1bf1c39f8941841f1875e51268d2ef325f0e91b725c12e7e6061d39c
MD5 195e9134651dbeec2f76a7bf6e262766
BLAKE2b-256 c28fd5459310e04401ce23b04925f0b96e4ad37cbcf9f98644bab372cef3ef7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2b2f0c951d163127158a1bb6b1162f3b8c4377bd80c72eaf978868a9cb4b9654
MD5 3535920f0d0cd425b5590cd37212a7d2
BLAKE2b-256 85446bc1e4759ae5bdde67ca00d67af88b06a9270cbe324ab3a53f94d00cb0b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8dc52910029a68c4ae17452bdeb6a224482ff27718311698c6a8423f8264610d
MD5 846638c8d7b111c3e1bf9720e34be34d
BLAKE2b-256 a9670363cbd43b3ffdc46e61cf03237e7b5c070810bb2fa096636014114db3ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1c25bf7ad5828ecdee491f0cd5d07bcecddcf5a6b0cfd0dc2e7dc9a40682bb7e
MD5 648b3a353476c4956bb56e22294e7586
BLAKE2b-256 22a50ed5fa74e1883059be8e69fd4ee204a368898b4f411196b25de7b23c1e60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5c467102ba94134d3e92e7477eef7fb88669d311d360c4544af67f4d06e4238
MD5 e86a2d83ed32e72c8277b51c058782a9
BLAKE2b-256 a6dd1df4122c5b99308bf5eb2f793d8ca8934b5a71b4fec0d4881f1f5f52d2c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4c7e1c5dd188354275f68d40124324417a60d7f733352e8bb6024aef8cc3fd18
MD5 5d82c51c85560dd014ded64bf2ebe488
BLAKE2b-256 cad7fea02de199f134335c40e5dac2c71e4b66acffd7b5a46d3b0ac90fe0f651

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f4a2b6433fa2d2879c99e9d1b5c4ef14894b3a704a0b3b49ba04530d29352f9
MD5 84d2997d7739f2eb372df1a7d8c5d257
BLAKE2b-256 7ca359ab93c834127fc2ec6041cd5773cfe681bb552b4b14e47545e6412769f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58917238d019af0a49c91bab1dc56d3fa94c292acd9743c12ba6f4b2e1980f4d
MD5 f288dde09b8d03f6f40ad75dd37d6ea2
BLAKE2b-256 a01fb799f394ea6eaab50f41c25f3cbdd92143e575393e6ef58f886fa0a3f95d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c637e8d43b3e9c202083d68e3e494593b7be5857df40b0c3bc3b3db9eeb41f20
MD5 19477747786494dcb00b1485633dcea1
BLAKE2b-256 daa04232ef4867e0dcae91c71d06996d9af720cf248beb1e1d4d7abf4d75258e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5cf79a5cb733b714e38ba2afe5698767330c41137562c22ede59e06ddb7108e5
MD5 3cc4299ad34ae2839952811699f6105e
BLAKE2b-256 50857a9b35c31c773c5228d00b7a3257725b86150ffc520886bd13476716710c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9216d531886d04b0c3d65c53e12c121b3f505c839e8a2a1aedd9de981adbefb2
MD5 8743d9e51dfb3a27d4a31d0d0370f436
BLAKE2b-256 d6a7d68d9a373b4d3c3023b50099780f05169bbecb2e8ed792cec050efdd0c57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb205ea43d9ffd97aa73a5dcb86cc32376dc18bce601fb20acfcc9d2536d76f9
MD5 41a4df66ab3152aafe0c6890fd4753e2
BLAKE2b-256 8bb5636c366de2719957399929bca84cd4a3067b28d0aab71c732443c3769ef7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 45d7398e26e3ec98cb9a9330a38106c7c8815b341c29be2a49eacc22be13c3fa
MD5 450caa9b55f5091dc0f6213d46b52c6c
BLAKE2b-256 2e475fff396817ad6ccd6b8c53f38e7cf80879d2b27e57a8a954da5db810ca58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22344c703720c09f64b623084b5be04feac9a970253b3f2c18da4372d9e98956
MD5 4ab741c3c24cf7adf91a25cde82610c6
BLAKE2b-256 9abffbdab7fef2079f37e16098ccf42bd2e95db1edb4d56057ace9dcf2327062

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2dbeb0b523ec90f009715776f73f6a6efc1120ddaf6114a888d5342b3f8873df
MD5 f96bb186bed41b496de3bcc84b2a1bbb
BLAKE2b-256 af5a401ef358bfe57c7bf8ba57e2ae0f396406499fe17eb489ca021b50f00742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 29f9b07993c10dbd15bb68ea0c5ad2022faf169211acbaa56dd52abe4188d220
MD5 85f3e9e5829e08f7911697b52e25e0ab
BLAKE2b-256 014aa4a45de8054ef0d7d3052098e2b4063baf8a3b02beb317087f5cc2c5e93c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8dc10a8e6f8013561015591ec4517812187e12939fa5c6bdea95b72b46bb0e80
MD5 0504184e34137b4b1f1c99410838f485
BLAKE2b-256 fcc72c998a7741a4c753468e7b30d9b20e4ee5765523875b9fa3d2cd3e97311f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2389ca21f7c9db30095667b6466cd6f0ad4528adeee91d4a3d8ba26e7cbcc0bb
MD5 d2d52e9b8170bc993b18702d934b1ba4
BLAKE2b-256 87cb80531f138c1917cf12d90922fddf4ff9253814f348884547c9daebebe76c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9b0bc749e9de17b207d84ce66d3723bd6457af2f385d97e05974b0bc936c03c
MD5 cef7fc9d2b1a301877c494396499354c
BLAKE2b-256 c1027cddf577610d556c8a36dba0f4c6e66833beea37f4b9ad6651b2a9e7326d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60a6492893e3bdc238d4115e2bf4c6b9f6c1cb2104f318271baa9c392fa9a3d4
MD5 cccdc4a717f8db48dc8f3b6ed3a1b9e2
BLAKE2b-256 fbedf1797df263eeb6a4016599248e7aefc1f327b38449099eaf0f2871700250

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6bbb8daead645ca1c19183b98123a2d6ef2073d04d02c0eba174544652b2d54
MD5 0146238d241116df649d14d293bd62d9
BLAKE2b-256 f1bf4e315437b519c9e8756a26b9c0ae232d6337b19f75b9f0f57665d745332d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 991b7e0bfbcda118d098c14cb2cfc785a4c2c6d426200810ee9412d04cffa7f4
MD5 dbc346234ce11e342eec8e6c26329cfe
BLAKE2b-256 efa37095fd184590820a0ca209b619dac54ba14a0796e93748a3a9f9228fd983

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d875737097498f0bebabbb9944a11ad1bd0261f8f226d43a76b0601b1468cf00
MD5 3b93e2130e25178b98f3cdaaaccf5783
BLAKE2b-256 70c39075863a193fc1447ac61e9c811279e77ece1ca9349624ffaf11f7ef5a58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c1c61770fa0873aa712d04ee11c619f820309f5e152b0f9599a495ad72fe37e4
MD5 7097ccd27cc6a16a8d5b246435015df0
BLAKE2b-256 330424dc8ccd1595ead6ff81162a67bf3e6da3f908206bc65a5913dc64146c4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 de17dca76c29382a61bd7f90ee75c369fc754c1829aaf6dfcc6c70b05c5395c9
MD5 c2517251f2f730b34e426ac6f0e381e7
BLAKE2b-256 246d24154b00691f60f14e93b1982b981b6b601bfc0267defa7f86c76d765c0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54efbca9199b4e06031ee7e1c8947188300f683390085ba0175a8f50379f02ff
MD5 31b751367428332317e62e7629f63eaf
BLAKE2b-256 9a374409111584fae16e730f7c068d180a11eae7a12779e92fd5b3b27b961557

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3d01cdc5b7c31454617b3b986f3049722bddd220fb3a066e4dc957c2d00b3113
MD5 f08e7fa86d2d933c73b354b7848983a4
BLAKE2b-256 bf88605b9a950afabec88b1a2b14010ebeed5d322474370e53f2570d64c1fec9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9239bd2c20d9dca461cf941def2a8ebb88823a4b58dea2593bb6e38fbb090202
MD5 8cffebefed33bf7f2d8677a5ea8d9435
BLAKE2b-256 30d967a5bde6a616b6d7382811bc27f50a228bd8898952dd05273c97553656e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.16-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7f23941f37b5d93a8fbfc2cf9204f27628ce97bcee0f642073b604592a6aeb98
MD5 bb0a261511a2527d41783862f52295df
BLAKE2b-256 ea1ee1943a06597799ebe6e2ce5ed521f1a51c15d052b63372eb0fe490f84789

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