PIICleaner
A fast, Rust-powered Python library for detecting and cleaning Personal Identifiable Information (PII) from text data, with seamless Polars and Pandas integration.
Features
- Fast PII Detection: Rust-based regex engine for high-performance text processing
- Case-Insensitive Matching: Detects PII regardless of case by default, with optional case-sensitive mode
- Multiple PII Types: Detects emails, phone numbers, postcodes, National Insurance numbers, addresses, and more
- Flexible Cleaning: Replace or redact detected PII with customisable strategies
- Semantic Redaction: Replace PII with meaningful labels like
[email-redacted]instead of generic dashes - Custom Replacement Strings: Define your own replacement text for the "replace" cleaning method
- PII Type Detection: Get detailed information about what type of PII was detected
- Polars Integration: Native support for cleaning DataFrames and Series
- Pandas Integration: Native support for cleaning DataFrames and Series
- Easy to Use: Simple API for both single strings and batch processing
Installation
# Using uv
uv add piicleaner
# With Polars support
uv add 'piicleaner[polars]'
# With Pandas support
uv add 'piicleaner[pandas]'
# Using pip
pip install piicleaner
# With Polars support
pip install 'piicleaner[polars]'
# With Pandas support
pip install 'piicleaner[pandas]'
Platform Support
PIICleaner provides pre-built wheels for:
- Windows: x86_64 (Intel/AMD 64-bit)
- macOS: x86_64 (Intel) and arm64 (Apple Silicon)
- Linux: x86_64 (Intel/AMD 64-bit)
Note: Linux ARM64 (aarch) wheels are not currently provides. Users on ARM64 Linux systems (e.g. Raspberry Pi, AWS Graviton) will need to build from source. See Building from Source below.
Building from Source
For platforms without pre-built wheels you'll need:
- Rust toolchain (1.70 or newer), install from rustup.rs
- Python development headers
# Using uv
uv add piicleaner --no-binary piicleaner
# Using pip
pip install piicleaner --no-binary piicleaner
Quick Start
Basic Usage
from piicleaner import Cleaner
# Instantiate a cleaner
cleaner = Cleaner()
# Clean a single string (case-insensitive by default)
text = "Contact John at JOHN@EXAMPLE.COM or call +44 20 7946 0958"
cleaned = cleaner.clean_pii(text, "redact")
print(cleaned) # "Contact John at [email-redacted] or call [telephone-redacted]"
# Detect PII locations with type information
matches = cleaner.detect_pii(text)
print(matches)
# [{'start': 16, 'end': 32, 'text': 'JOHN@EXAMPLE.COM', 'type': 'email'},
# {'start': 41, 'end': 57, 'text': '+44 20 7946 0958', 'type': 'telephone'}]
# 'start' and 'end' are character offsets, so they slice the original string:
# text[16:32] == 'JOHN@EXAMPLE.COM', even when the text contains non-ASCII
# characters such as '£' or 'é'
# Case-sensitive detection
nino_cleaner = Cleaner(cleaners=["nino"])
matches_sensitive = nino_cleaner.detect_pii("nino: ab123456c", ignore_case=False)
print(matches_sensitive) # [] - no match because NINO pattern expects uppercase
matches_insensitive = nino_cleaner.detect_pii("nino: ab123456c", ignore_case=True)
print(matches_insensitive) # [{'start': 6, 'end': 15, 'text': 'ab123456c', 'type': 'nino'}]
Polars Integration
import polars as pl
from piicleaner import Cleaner
# Create DataFrame with PII
df = pl.DataFrame({
"text": [
"Email: alice@company.com",
"NINO: AB123456C",
"Phone: +44 20 7946 0958"
],
"id": [1, 2, 3]
})
cleaner = Cleaner()
# Clean PII in DataFrame
cleaned_df = cleaner.clean_dataframe(df, "text", "redact", "cleaned_text")
print(cleaned_df)
# Detect PII in DataFrame
pii_df = cleaner.detect_dataframe(df, "text")
print(pii_df)
# Using namespace API
result = df.with_columns(
pl.col("text").pii.clean_pii("redact").alias("cleaned")
)
Pandas Integration
import pandas as pd
from piicleaner import Cleaner
# Create DataFrame with PII
df = pd.DataFrame({
"text": [
"Email: alice@company.com",
"NINO: AB123456C",
"Phone: +44 20 7946 0958"
],
"id": [1, 2, 3]
})
cleaner = Cleaner()
# Clean PII in DataFrame
cleaned_df = cleaner.clean_pandas_dataframe(df, "text", "redact", "cleaned_text")
print(cleaned_df)
# Detect PII in DataFrame
pii_df = cleaner.detect_pandas_dataframe(df, "text")
print(pii_df)
# Using Series accessor API
df["cleaned"] = df["text"].pii.clean_pii("redact")
df["pii_detected"] = df["text"].pii.detect_pii()
Specific PII Types and Custom Replacement
# Use specific cleaners
email_cleaner = Cleaner(cleaners=["email"])
phone_cleaner = Cleaner(cleaners=["telephone", "postcode"])
# Case-insensitive cleaning with specific cleaners
text = "EMAIL: JOHN@EXAMPLE.COM"
cleaned = email_cleaner.clean_pii(text, "redact", ignore_case=True)
print(cleaned) # "EMAIL: [email-redacted]"
# Custom replacement string
custom_cleaner = Cleaner(replace_string="[CONFIDENTIAL]")
text = "Contact john@example.com"
replaced = custom_cleaner.clean_pii(text, "replace")
print(replaced) # "[CONFIDENTIAL]"
# See available cleaners
print(Cleaner.get_available_cleaners())
# ['address', 'case-id', 'cash-amount', 'email', 'ip_address', 'nino', 'postcode', 'tag', 'telephone']
Supported PII Types
| Type | Description | Example |
|---|---|---|
email |
Email addresses | john@example.com |
telephone |
UK phone numbers | +44 20 7946 0958 |
postcode |
UK postcodes | SW1A 1AA |
nino |
National Insurance numbers | AB123456C |
address |
Street addresses | 123 High Street |
cash-amount |
Currency amounts | £1,500, $2000 |
case-id |
Case/reference IDs | UUIDs, reference numbers |
tag |
HTML/XML tags | <script>, <div> |
Cleaning Methods
"redact": Redact the PII, replacing it with semantic labels like[email-redacted],[telephone-redacted]. Where matches from different cleaners overlap, the whole overlapping region is redacted and labelled with the highest-priority cleaner, in the order returned bypiicleaner.get_available_cleaners(). The same input always produces the same output."replace": Replace the entire string if any PII is detected (uses custom replacement string if provided)
Case Sensitivity
By default, PIICleaner performs case-insensitive matching to catch PII regardless of how it's formatted:
ignore_case=True(default): Detectsab123456c,AB123456C, andAb123456Cas valid NINOsignore_case=False: Only detects patterns matching the exact case defined in regex patterns
This ensures maximum PII detection while allowing precise control when needed.
API Reference
Cleaner Class
class Cleaner(cleaners="all")
Parameters:
cleaners(str | list[str]): PII types to detect. Use"all"for all types or specify a list like["email", "telephone"]replace_string(str | None): Custom replacement string for "replace" cleaning method
Methods:
detect_pii(text, ignore_case=True): Detect PII and return match locations with type informationdetect_pii_list(texts, ignore_case=True): Detect PII in list of stringsclean_pii(text, cleaning, ignore_case=True): Clean PII from textclean_pii_list(texts, cleaning, ignore_case=True): Clean list of stringsclean_dataframe(df, column, cleaning, new_column_name=None): Clean Polars DataFramedetect_dataframe(df, column): Detect PII in Polars DataFrameclean_pandas_dataframe(df, column, cleaning, new_column_name=None): Clean Pandas DataFramedetect_pandas_dataframe(df, column): Detect PII in Pandas DataFrameget_available_cleaners(): Get list of available PII types
DataFrame Integration Features:
- Polars: Native
.pii.clean_pii()and.pii.detect_pii()expression namespace - Pandas: Series accessor
.pii.clean_pii()and.pii.detect_pii()methods - Null Handling: Both integrations properly handle null/missing values
- Vectorized Processing: Efficient batch processing for large datasets
Performance
PIICleaner is built with Rust for maximum performance:
- Compiled regex patterns for fast matching
- Efficient string processing
- Minimal Python overhead
- Scales well with large datasets
Requirements
- Python ≥ 3.10
- Polars ≥ 1.0.0 (optional, for Polars DataFrame support)
- Pandas ≥ 2.0.0 (optional, for Pandas DataFrame support)
License
MIT License - see LICENSE file for details.
Contributing
Contributions welcome! Please see the GitHub repository for development setup and guidelines.
Metadata
Release files for piicleaner 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| piicleaner-0.5.1.tar.gz | 125.9 kB | Details |
Built distributions (wheels)
Total release size: 14.8 MB
Release files / piicleaner-0.5.1.tar.gz
| Download URL | piicleaner-0.5.1.tar.gz |
|---|---|
| Size | 125.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e410f37bbac28fb76dbcd1e2e0cfa136d1cef5b1442dc6a79c7666a870059eb5
|
|
BLAKE2b-256 checksum How to use checksums |
95ac8cb29e5667e072bbf9ec002b82e792d4126e73cd07d9c450f5768746d283
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp313-cp313-win_amd64.whl
| Download URL | piicleaner-0.5.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 795.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ad58e99989a38fd6e365db158dfed1b77f57d698b75287f2d97934338094b237
|
|
BLAKE2b-256 checksum How to use checksums |
8784947541624a3a65298d1d435fa887ffc6552e159b7b7d396061d486d5468f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piicleaner-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
803ffb9d7c1d989381e4761b8afcb85560f9397c1e70c70452c6254e2dfd6e5b
|
|
BLAKE2b-256 checksum How to use checksums |
e8765606de850f3535911000a7a1756348b8701754f93b53a1eb5092da21035c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | piicleaner-0.5.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 889.6 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ef012d2e078d54e8819e8776994c6e6b2739bd76fff9e87fc2c132ee0b830d8
|
|
BLAKE2b-256 checksum How to use checksums |
b4a30ee2b1fac1b59475f01d24fbf94694b6aef7bc96c6251e7ffd261abd5c97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | piicleaner-0.5.1-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 930.0 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
99f725a9f479647a49631e45783d4f59d1f1c871cdda7aae8eab5748073a328e
|
|
BLAKE2b-256 checksum How to use checksums |
1b9c8b73fc86b54547be9f438eb9457e23a69e5c01c235dbe6d324703afa9e22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp312-cp312-win_amd64.whl
| Download URL | piicleaner-0.5.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 796.0 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8cae5f84a04f633dabe1ee5c9bc3377bdac317c76814fd922e178e4d312f5b6a
|
|
BLAKE2b-256 checksum How to use checksums |
817b52ef0f07ed81b5bd5fd00de1d813bb5df08ac0a77c15fce0c554e6275da2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piicleaner-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fb567ddf4b5b9746f8b7e09e938926362aa98400d29dd96bec4f5752d493a7e1
|
|
BLAKE2b-256 checksum How to use checksums |
9237618aea6769315da70d287afb96e0a1d654f41eeeb47f7bfb942f053004ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | piicleaner-0.5.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 890.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
39b166bd4ac1d3a334b267534b9812bb0feb1a673e78a09c1bd7814096d8fa28
|
|
BLAKE2b-256 checksum How to use checksums |
1ece24331f103dc0fd8a717469f63f40f3a65b3f5a43071292c1ed9c9a27a0d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | piicleaner-0.5.1-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 930.4 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
ead9a8506cacbcd4f9145b0d39e877fb1dd18ac69f7257a9cb95b78cb32709ea
|
|
BLAKE2b-256 checksum How to use checksums |
e55ef41a2bbe68cda5c9ac7bd3c4354d4eccd883142772ed4ab00f2c76fa04a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp311-cp311-win_amd64.whl
| Download URL | piicleaner-0.5.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 795.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5c8ecad85aa91418c601af513fd03e58cdcccfc74baaa0cf3580991a47b9a1bd
|
|
BLAKE2b-256 checksum How to use checksums |
d82ff22c2115b998b6e39009a0134b1b382ad51e5f3e8a18b62bd2c0d204d642
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piicleaner-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cf52dce085bb5f6b543985459d26e6ead67469ac41c5d82646ddbe21b2e5c7a9
|
|
BLAKE2b-256 checksum How to use checksums |
76b313703feecead8a48c0ddc40fa6c3b2ddb79da51d25cc0b62dbf21636c9b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | piicleaner-0.5.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 893.4 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3fcf26094e2b5e261ede0bc957c752640ce699f01ca3cb2355243c0d62de6546
|
|
BLAKE2b-256 checksum How to use checksums |
0e50ac6a233286c9fa18f0df0d8ebf5d617e58c1eeb244a4f3f92d1d0df7db7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | piicleaner-0.5.1-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 933.4 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
4b3bd4b58df16c5ca302ce0793846ffe9cfd7288e4d0a06e514b6ee79d828349
|
|
BLAKE2b-256 checksum How to use checksums |
56b568f7f0b293c58b08269ecc8fc5ee3aee7e45b24aabe5e9d131f5df3ca68c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp310-cp310-win_amd64.whl
| Download URL | piicleaner-0.5.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 795.2 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e0d00e931057a3a560e1420456b372ce948378fd1ba63bdbcdaa8a4a4ff12d07
|
|
BLAKE2b-256 checksum How to use checksums |
5696f9d90f9effaed56232ad7fdc8bde64d1a7d210b6fa8ab55b8a8ad2213b4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piicleaner-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
46990ad694cc0b1a263877d646d2e69a27d34924801678ade70e5cd49c667452
|
|
BLAKE2b-256 checksum How to use checksums |
c04c40b630c6d36ae8ef548f11d0a8c6bbb44ac53dd7ebc81aa94111e36ce202
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | piicleaner-0.5.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 893.4 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
92e754f74db53e765c094bb7f7773b842c1d12c533ed6bd2dcafc7d02419eb32
|
|
BLAKE2b-256 checksum How to use checksums |
11bbb28ce8b696414546b00ed8a30f0930c2a01999abaebb49aac5525c0224ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / piicleaner-0.5.1-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | piicleaner-0.5.1-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 933.5 kB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
66751e19b9cb732c2c21246471c12010754bdcbc34ec8fe17d40abdd54670bee
|
|
BLAKE2b-256 checksum How to use checksums |
f8917689248d6bcd63745c5df1eaadec389409675eb40cf261db6b3cbfb021f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log