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), 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.11) 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.11.tar.gz (509.2 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.11-cp313-cp313-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86-64

argus_redact-0.7.11-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

argus_redact-0.7.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

argus_redact-0.7.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

argus_redact-0.7.11-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

argus_redact-0.7.11-cp313-cp313-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

argus_redact-0.7.11-cp312-cp312-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86-64

argus_redact-0.7.11-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

argus_redact-0.7.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

argus_redact-0.7.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

argus_redact-0.7.11-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

argus_redact-0.7.11-cp312-cp312-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

argus_redact-0.7.11-cp311-cp311-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

argus_redact-0.7.11-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.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

argus_redact-0.7.11-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

argus_redact-0.7.11-cp311-cp311-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

argus_redact-0.7.11-cp310-cp310-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

argus_redact-0.7.11-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.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

argus_redact-0.7.11-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

argus_redact-0.7.11-cp310-cp310-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: argus_redact-0.7.11.tar.gz
  • Upload date:
  • Size: 509.2 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.11.tar.gz
Algorithm Hash digest
SHA256 b97c539b50698a4e33e6f354a55d2a4ccddd1a39b7151eb4f95481b09b09b07e
MD5 449fde4f6f12384128c3055ae9a6347f
BLAKE2b-256 108af1cf67554d950f14132716b039cc267014c0504a4fc1da17a0a5722d3810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ab71f54774b00fc57302fbe44a0ac1e13cfafb8b3cd0d776ae043ebb57e9901c
MD5 e1bdc3e6d6ed8444131a3e09e646d83b
BLAKE2b-256 69d5eade358b4693927bc064c6f290e6f0a6a99ac2de5fb56a605864f5655102

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 860cb4d730b411a24c87f84ea6683657b0547c05212197c1b69e6e83ded23a3b
MD5 c6999b4ef6f857e8e6bba916fe51b124
BLAKE2b-256 1d704a5e595c3de5d84abd758f254916b4e518dbd1bc620e784eaa399ead075b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a95b2224e2b4b30d2be344acd6246c99193902a6a165023937dd433046da69ea
MD5 ed93f6759e77d96443b151eb1b43c134
BLAKE2b-256 7f84fe6285415038ed0806bd5505dc551bd1aa193a19c88e89dca934a48bbcf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e33d5ba1825507fd1bd8a855a4df1062abeb2f5e800157a6843b27ebb45af09b
MD5 70a73f7fa5ffe3be00b5a9e1faf275f4
BLAKE2b-256 b34c4077575b1c09c028ce30c7196e44a5d260599f14b3b8e627f634e968fea0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b32ae6ac1519ac0f12c4bac0a58709534c04b1ebbbba48e3c6b900538dcbed3
MD5 bdadea80dc47b7c42c50d1befbeafb06
BLAKE2b-256 3f04e199f7da4f806cec0521489004be444cb7d046e6c6b1683512ae6f20f1c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb03b32da17dc8325d34ede84e4f161c99564ab3d27e9ea785a98daecdf95ae5
MD5 e197dd29fc9b665410740cf9d742ddc9
BLAKE2b-256 5f3233278e42d296ab8c13b086c47c8f7d8454b5a3a62d1ded7348880cd59912

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 df83e7ade0449bea07493197f1682b2f8f8848807fecbd7cd9eefc66e6663145
MD5 d6f4c191fb7c43784ec75c4565497bdd
BLAKE2b-256 bad39031878fecd1931633faf022768fa7414d19d3a7fb3697febb5402287c70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 437481fb872df5ff79ca2c14ce60cf7079b1c1c6b348f22c6441c70e26fefc66
MD5 1f580a04a1b41e1b447ee0bcd8598ba3
BLAKE2b-256 0796aeeb3a183277a575c41abf7302f02a1a19e9cc0b1315ba02277e19500ef6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 52c526682bc8edb359570bf7a7e1e3d4e90bc9d902e43d4e97f1e37963b99e0a
MD5 5bef764b9a5d5623ffeca3a3c4e7a4d5
BLAKE2b-256 fbf407fa4c287a721d8d04ce0c7638e08b13763aa42a9de9dca25761df256fc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ff66938c000339945b763acb02a14070798307c807038577b99cd911c5781eef
MD5 6828d8902d19ee0c04d8bd488e171ec4
BLAKE2b-256 33741715c49ae1b4e9b48dcb0d17e8fa0bf06a0ede8f614c52879f4d561eeaa0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7fba0396a367674b0cd628d3a17ad731104b7dfb6d80e40b1dc70ff5005eaf74
MD5 bd064e221700a145de9361969df43e8d
BLAKE2b-256 706d40353156e5865a4f69d848c806643f2afa9988e5868f4626f7b54a5fe0f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 87babbd55fb3b76bba413caf6882083068b9c28e4c2fb6354aacdeb93e6d76bc
MD5 954e0305023e63502eb02304a00704b4
BLAKE2b-256 cda6a117d9187beaba7efb8b6c08a83a266b2989e1be24fc99e9b68af59ec985

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed7782646ba99fd2d516f41485fbee63c2ee0ea743b4700bd5d829a7f9a1b631
MD5 5ca0614301445d96aa07ee6f1d24d3cc
BLAKE2b-256 708ad0027f8640488248e17a0a84764310f33bc314902719d341f95ff598f4b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0a1f10a465dc2f7ea06604fea7a0629f7c858c67b48957e310231f065c01f337
MD5 15e4f2db6f712fdc101ed792dfa9b213
BLAKE2b-256 83f067b16fd14794d3d8084a672df20a3fdfb5cd691dd52d4d85c6652091f5f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 303c5b87d1efb844dcdac5815f1eff99ec860841162203401a6118ed682c978c
MD5 dcfabc97ce4cfe3dc8c7d89cb2b46a6a
BLAKE2b-256 4cb8579d081936158ea3fba0f6f4407cc4a55a548b669f649dffa5f13197c8cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6805ceda7601430e31b377d4997172e30088b6a59436973a6537f7cf2c7765a5
MD5 66e0f976aefec6a5899ba8fc92f8cbda
BLAKE2b-256 0262ca4523a3b9c3df0bda6a0bce246d7b463b7ec174d090f5371e2e6f34a389

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4415b9703d683146225fc241eeb58c4f6a90d9a4ec3f9d1b32ca5bac79d539e0
MD5 72270f079157e63cdbc94f4f9fd65c7a
BLAKE2b-256 05740f1c713c2ef3684d7f76754dc72a595254074e93ae9d252a25baafe0fe1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99416237f9ce0a8dfe5b46e79be41478417c065def21f496e63e2debdaacec0b
MD5 8cb13978b3399256c4015ff7c3a08c12
BLAKE2b-256 868ef8c99c054aebac0bb993233014d34e553f4c2a317eae8d22d76740caec75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08689605c2f94bbb6919698367d8a0cc3921fb5878b950ec62e8d550fad8e75b
MD5 606ba4d5e3ac204f69b6446e90a3646b
BLAKE2b-256 ae36f0ddc9ce043e8b3cd33ca9008d7b92038c747997a81ebdb7b82813726ecd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82cb062800dfe4ba558eaeb38a944f933f973b87897adb009b72bf424e6b76f0
MD5 ae7b843f4e16be963c70d578c942b811
BLAKE2b-256 02bc2c9f92c7511c3eb6a1268bddbdfafb25a001c1ad69930a247a3f3b2d82ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ddd4e367b16b01e6fa31b8ee88f6fe09bc54ca2248ce9ced303d592cc7d8fe5e
MD5 52f68dc0ff3a43a5f0bf567b1cf1e1b4
BLAKE2b-256 874cdcd3858f3ed24e577de09e8ca4dfa32892eb51b525e7aa796d5f59f9a9c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9bc89a9238d93e36a9d3dd4503e2f92dca3b9f2b886733102a99026e2c955e18
MD5 bcdc1f0addcc54954d8063fc8961e48a
BLAKE2b-256 bda6273be539de3674bbb264b01eb4aba8f6c24c07dd128f1997abe32a4e1405

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05e6293589f762f176c8f02ccd949f2371c4901ec49d6af1a6b8c0d43aa34118
MD5 57dcbd01c0eb79955700efff34fc3e04
BLAKE2b-256 b42f276bfbc66764484e9b221c4155b6b2e2d2471df0ab857ad9b06e35dd9f82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 83f5bc782083ece517d412bb472723cc2fb438059f9d8dad5f4bf85f1afa33e2
MD5 b79b6b0e1901d9e50eae26971b2b82f4
BLAKE2b-256 ea68cf5526e9ad9c596c0ce5045ec0bb4bf8258f4f5be330579cce125f1a0e9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 36e528724b77189cd243437140638cd965869a6163ed24ccba940dbdff5a6a93
MD5 5519e576c1de6956de529002efc2ea12
BLAKE2b-256 4ae11df0c98c8b4c81c7692360670ba4d0850da8791061e7eddc59bf583d4453

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1465effe97f51cb7054059f2e77daae393300756e4c520f10bf50ea681094861
MD5 c17e298dae79cc92b9deef23c9d7eb9e
BLAKE2b-256 190f5906c8912df4b873bb294c7943993cb7a9a9af1106baee390ccda6c6c703

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e4d6e5dd442ed2b4eebaf014dbf165bb8aaef91f009a35e6edfb60183ea681e
MD5 5738cf692f682bbda968b02d9c286990
BLAKE2b-256 d55e11ca7ab0e5586eac77014e5e70ec7912e35c2579117869773754a0ae0af4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for argus_redact-0.7.11-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 813afd7d5265afed2360b861d6ae930bb3baaaf16dcfdada81ac98f64d113076
MD5 2b54f6f7a7a82c66d638b9123672c8c5
BLAKE2b-256 00467928dd46a75b08dad3c997c94d7fe011b94ba10787d0f74e2cd4bf366b9b

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