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.
  • 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) — M1 Max, mode="fast":

Text redact() restore() Throughput
Short (17 chars) 0.07ms 0.04ms 13,036 docs/sec
Medium (770 chars) 1.00ms 0.05ms 1,031 docs/sec
Long (10K chars) 22.2ms 0.05ms 45 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) 78.3% 30.3% 43.7%
ner (+ spaCy) 72.8% 41.4% 52.8%
auto (+ Ollama 32B) skipped this run

ai4privacy en, 500 samples, v0.6.6. 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.6) 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) Adversarial testing
Usable PRvL U=100%. Pseudonym codes + realistic mode (zh + en + RFC shared) + per-call strategy overrides + keep strategy (whitelisted) + resumable streaming sessions + incremental streaming default + cross-language alias restore (zh ↔ en) Task-aware guidance
Reversible PRvL R by task: reference 100%, extract 50%, creative 0% (by design). Cross-language LLM rewrites (张三Zhang San) auto-restored via result.aliases + restore(text, key, aliases=...) Task-aware guidance
Compliance Meets PIPL Art.28 sensitive PII categories, risk assessment + profiles PIPL/GDPR/HIPAA (byproduct)
Coverage 8 langs, 4 LLMs benchmarked, 6 frameworks Browser extension

Risk Assessment

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

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

Realistic Redaction (pseudonym-llm profile)

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

Each call returns three text forms sharing one key dict:

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

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

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

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

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

Reserved ranges:

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

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

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

Streaming

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

from argus_redact.streaming import StreamingRedactor, StreamingRestorer

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

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

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

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

Full API → · Design constraints →

Integrations

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

Security

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

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

Documentation

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

Contributing

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

Contributors

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

License

Apache 2.0

Project details


Download files

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

Source Distribution

argus_redact-0.7.6.tar.gz (376.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.6-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

argus_redact-0.7.6-cp313-cp313-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

argus_redact-0.7.6-cp313-cp313-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

argus_redact-0.7.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

argus_redact-0.7.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

argus_redact-0.7.6-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

argus_redact-0.7.6-cp313-cp313-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

argus_redact-0.7.6-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

argus_redact-0.7.6-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

argus_redact-0.7.6-cp312-cp312-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

argus_redact-0.7.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

argus_redact-0.7.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

argus_redact-0.7.6-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

argus_redact-0.7.6-cp312-cp312-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

argus_redact-0.7.6-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

argus_redact-0.7.6-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

argus_redact-0.7.6-cp311-cp311-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

argus_redact-0.7.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

argus_redact-0.7.6-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

argus_redact-0.7.6-cp311-cp311-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

argus_redact-0.7.6-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

argus_redact-0.7.6-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

argus_redact-0.7.6-cp310-cp310-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

argus_redact-0.7.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

argus_redact-0.7.6-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.6-cp310-cp310-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: argus_redact-0.7.6.tar.gz
  • Upload date:
  • Size: 376.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.6.tar.gz
Algorithm Hash digest
SHA256 3d32d8cb4e748c307ab1cc43d64b26a744a46113dfd50431a0d4a847d79f2f96
MD5 0ee90fdcb0044cf0afb6b8cc91b48d37
BLAKE2b-256 682e24168c987507ce14b70b82e6c04d8b52e9fb53d702366de7fef967a55ae4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 506f3462f01d6274593dd0d5a572b82653a0f030f837f2cc21230c26fac1c569
MD5 4a71448cbe03f566bb1eb9ff4d998262
BLAKE2b-256 8b6be6da28aa24fbb2665d182ccf42af3ccf9749ead40e7be3e00226dd7c4e9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 764c7a4ec1adfe2b2c6382ceb7406dfba0a094bb7dd38bcdc0eac93dafba11f9
MD5 faae874a24a3f46f8d55a90c215dd976
BLAKE2b-256 2a6880cd79ef54bd0696515b28b50b42e490427ea6742cfb92f9c4ac34231dd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 71c53d15975ee6e777432567d948c45524b28de30d374786765e7f342db38cbb
MD5 60f5e78b07b188ca3f15b8c903165f65
BLAKE2b-256 4de1f51bc34eae47cb23683173bcc17089c02e9eb176c0279f051a9f22809e2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4537078ee1c1e03da70db3ac993b5349eee795c8f54c534c83fa1e1d7299f38
MD5 27752d1cfdebc9ba44736a4509b81377
BLAKE2b-256 97355e31af4714a3c3d1b5e4f725f2cd42e40c36da5407dd040e9b6022ec3312

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 145d4068ac54e45d16983654f2ec7714dc47920bd2f3b82447b8e15fd42359c0
MD5 6adff9463a777e9f5d38f1facbfaa671
BLAKE2b-256 fd7b98d0b9f101d81b114724d03f6da82e4fcec86c25d7ad0e4e84aca9dd8b62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f250d1e583f9b7cbe574bb0324543e788041c06bd7c9eca4420b62ce3f9d2d6
MD5 7e5e517ca1965fc98b91a246d0f5b38d
BLAKE2b-256 4a07cfd406f87c4b5d79102ae3eaa94bc8e062ababa99c7008e86578164e3875

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 77c2c70017f8e18d4b25b57a6d0acf4e52073982cc72b2c7cd0605212d1a1658
MD5 a6ff3c277fe01b3178089e7849e1bec4
BLAKE2b-256 a930512892203214135b03015d9bf3ffb7e0504c43fef5dad35639aa45266739

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 366189dabc7d9a7fab740febea920c712dbae9182b92a67bfce01a519956b498
MD5 7f614e938d25add63fe3724fc264b50f
BLAKE2b-256 7368e0c4b9e0f602a231df48a76b8a1e31067f49229a90a599272ef96e416a57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ebf165fdfaf18772fe99ae2a2324865cbb4336e77dee1000bdf32078c2447829
MD5 b3991c1301a3b8403671b05245648154
BLAKE2b-256 2b45768056d3419f079e5c9e94447381b30f8703780b55c7ee23a41dd9c10427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b928bd74ebbb2a065ea4e1c798c03fa5e560ba2e135cf2bca339d0779aac453c
MD5 b26b2d35004b6d69f895e6bdaf492ea0
BLAKE2b-256 88bfcb2bf83a3d7e58db00093b8c3fcc0abfaa54509cfc79465338b6d672f287

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cd310dd424be16ca9110fa4166f1df9daf4fa8838f08aee2059393e242babfb
MD5 8c39b210bd466c8cfe7a090aad7a09af
BLAKE2b-256 edbad7432580e3abc8f391351fe9be6a25e70f1790828a055d54adbd4aadf2cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7658fa8f115caf095728c78b89841f20342482b96bf3763291c615ca8e4393d5
MD5 2dea78f41954e0f0201df751f1e31528
BLAKE2b-256 409546ba8c470e9f891e85424d7f10d189a2327f4ba8a2fc7b75f5c767d5ce8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a6df84bbf646e2515726e64d36f41b7e06a334572138669152f479fb3c46c52
MD5 3e1ab8c2827eea6d1299e48c305de390
BLAKE2b-256 96dfd00b9a3f40afa2284ef1a42f2da0414307b4fd9c60c3a57d65b4554b8c44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4bff577ad1defddd092e7f84f20bc0a34c01c57ededc676ae8d439b79a05289b
MD5 9a1f2344094de36609dd761b9c19bd5e
BLAKE2b-256 7ee716508ab08d5f8de637d9dfb646d17f687085f3fd027ae1fbb089e0cfbf7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 030b2fe6e31137334e7d8b40581c77a1be4619b8f73c50ff94a49aa6b7b1da9d
MD5 da117b498729fe296d32685f40a5e767
BLAKE2b-256 5f55ed7e6e0b7ab3a15bc7c221cbface1b3aa63ec03ca87ac7aab06589fa973e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 545f5f0cc708d6187473998a32f857779d30616ea32e8947d5e842ba2c880c04
MD5 19480ebabeec602776048b7a795014f0
BLAKE2b-256 66da27812d4dbb9c378acf96d6cd54295d414421f9f6262f6de010a21ca83fa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 431270d8d39009b5ef98ce50788805d65c07d4d2e017211e0cbb983ea3953ad0
MD5 9b025612fcf98a72d159fbc7c6462d78
BLAKE2b-256 ab04a53c3623b9e84bd985db848e398dc244e9aad5bc803b97fcabf208a74dbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b7268a9b97cca077b788b4c7e173d672543c81faf1a2c3b8e65ce2a7d1b96d0a
MD5 840d6d8d6b400cd8f7201ca25ecf4ed1
BLAKE2b-256 9459272087af20acd082d1224af6683816f488464c3d946531e015f86e27f078

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c743d0afc80344b1c582e2f3dba5af25c73315a4eb28bd0da80bbb2a459968da
MD5 9604bd38290f6f99d70e127e2db862ab
BLAKE2b-256 8bf6dd691f8f36ae1df03ec2cfac8ea3baeab7f8ad599d4393803f2b99c7aea8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7ade03da7da0661dec18d324c20dd5bf767464629f15d368920bb0d7bd9af5e
MD5 99c2ad7d01aec0062594b17d9b374620
BLAKE2b-256 713e55df855fdd537cbe9e85eab581e37e9cbc90ba28d8fe43918a1d17e5b6de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5065b8be21f7da3b5e00f2c66a4cbc31572eb21e8914b8e4fe2a6651bdee63a4
MD5 c71af862c90c5c63c3ab460c74785b4b
BLAKE2b-256 f876c800723124da874f3d226f95f90a71f25ae7157685e7a675a746340d3aa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 88c451cf04529be7df40693628c9e605a7d7d8d882c7a9ee09d08541e9e6d77d
MD5 b8a2c925a43d4d7246af81dcfb663d82
BLAKE2b-256 787a1b4fe01115ae0667a065d6e9a82002b64e50afae001085fd5ae85b625930

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 61d88def759d80edb6c1590c55948566f14453c64f0a561e385f383c39070c58
MD5 a85eebebf2e2b7fd0cfd56c3eb5bbd85
BLAKE2b-256 eda6bed8d5444f788be26cf3b08fbb9589dfd73ddf87965f0fe00af98d437057

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7482aa51dea5800914b02a1aa0799ae883e0590c9aa9f5fbf562d06a2b4ba5f7
MD5 06f1e1f04ac73f78f2222bddaa09e278
BLAKE2b-256 28ff645766c263a0791e8ba6afc68b3fdab54c57a5c05df94e5f2fe2b5cf1b4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cadc8fabb9469583c36fd5e5ec00a6d14b62e8b5006f45e0bf61bb006e67f126
MD5 1304e35ddf63f7fd430f4aae57722987
BLAKE2b-256 fdb9d2c98bef457c2e7d1ad668a9378e54c2808ec7f2194b620a744f8c4179b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 57ea56a8a0d782105f920c87bc3a23c421d0cee6ad5f1833053c4aaad5c0e26c
MD5 e618b49ed188f6631ced6a70e70cc7c2
BLAKE2b-256 59dce543ab921cd0c8e17ad4ac045fb4f2920fa6a50bcf91e1b4d78583d9873c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c786ae3dcd13bf5237d71edecf41522d56587727a30cbc902fb677b354c6c08
MD5 dfc4d81954fd714d33725a91b860395c
BLAKE2b-256 4da9d76b86db7f418ff6b947733afdb917f339e2a6865293cf8b165c7ac7b7c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.6-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 16f861fa31baf294705f66f7ca4b6f93dec2e3ccf53d7ee2da802b2679e2b403
MD5 ac4af08a27b6f5d4fab2f03805dbbaa2
BLAKE2b-256 00d860b7d2d4019207960e87969459cfeb5b43f1faf669aafb1cbdeb757f83ed

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