Unified wrapper and convenience facade for the Microsoft Presidio ecosystem.
Project description
Presidio
Presidio is a small aggregation library whose objective is to provide a single, stable, and ergonomic entry point to the Microsoft Presidio ecosystem. Instead of installing and importing multiple Presidio packages independently, this repository defines a thin facade that centralizes dependency management and exposes commonly used engines through a unified namespace. The library does not alter behavior, reimplement logic, or introduce abstractions that could diverge from upstream Presidio. Its responsibility is limited to composition, consistency, and ease of use.
The primary audience for this package is engineers who already rely on Presidio for PII detection, anonymization, evaluation, image redaction, or structured data handling and want a simpler installation and import experience. By installing one package, you gain access to all supported Presidio components, while still interacting with the original engines exactly as they are defined upstream.
Installation
The package is published to PyPI under the name presidio. Installing it without extras provides a batteries included experience and installs all supported Presidio components.
pip install presidio
In addition to the full installation, the package defines subgroup extras that correspond to common Presidio usage patterns. These extras are additive and are primarily intended to document functional groupings and support advanced dependency management workflows.
To install analysis related components:
pip install presidio[analysis]
To install anonymization support, including the required analyzer dependency:
pip install presidio[anonymization]
To install evaluation tooling:
pip install presidio[evaluation]
To install image redaction support:
pip install presidio[image]
To install structured data processing support:
pip install presidio[structured]
Usage
Once installed, all major Presidio engines can be imported from a single namespace. This removes the need to remember individual package names and results in more readable application code. The objects you import are the original Presidio classes and behave identically to direct imports from their source packages.
from presidio import AnalyzerEngine, AnonymizerEngine
analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()
results = analyzer.analyze(text="My email is test@example.com", language="en")
output = anonymizer.anonymize(
text="My email is test@example.com",
analyzer_results=results
)
The same pattern applies to evaluation, image redaction, and structured data use cases. Each domain specific engine is exposed through a dedicated module and reexported at the top level for convenience. This design keeps the learning curve flat while preserving full access to Presidio’s configuration options and extension points.
Design Philosophy
This repository intentionally avoids adding orchestration logic, opinionated pipelines, or convenience wrappers that could become a maintenance burden or limit flexibility. Presidio evolves quickly, and the safest abstraction is one that stays close to the source. Presidio therefore focuses on three guarantees: a single install surface, a consistent import path, and transparent pass through to upstream functionality.
As a result, upgrading Presidio versions remains straightforward, debugging remains intuitive, and users can always fall back to official Presidio documentation without translation or adaptation.
Versioning and Upstream Compatibility
Presidio follows a compatibility driven versioning strategy rather than feature driven semantic versioning. Because the package does not introduce original functionality and instead aggregates upstream Presidio libraries, version numbers are used to communicate stability of the public import surface and tested compatibility with upstream releases.
Patch releases are reserved for packaging fixes, documentation updates, and dependency resolution issues that do not change the exposed API. Minor releases indicate that the package has been validated against newer versions of one or more Presidio components while preserving the same import paths and symbols. Major releases are reserved for intentional breaking changes to the public namespace, such as renamed modules or removed reexports, and are expected to be rare.
The package does not pin exact upstream versions unless required to prevent known incompatibilities. Instead, it relies on Presidio’s own version constraints and validates that the aggregated packages work together as a set. The versions of the upstream libraries included in a given release can always be inspected via the resolved dependency graph after installation, and changes in upstream compatibility are reflected in the release notes rather than encoded directly into the API.
This approach ensures that users can upgrade Presidio with confidence, knowing that a new release represents tested compatibility rather than hidden behavioral changes.
License and Maintenance
Presidio is released under the MIT license and is intended to be lightweight and low maintenance. Contributions should preserve the core goal of aggregation and ergonomics and should not introduce behavioral divergence from upstream Presidio packages.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file presidio-0.2.0.tar.gz.
File metadata
- Download URL: presidio-0.2.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7348f1538fa3297a7060a12a45fcf918feb4efdd411b959ddc0f5470d395a5b
|
|
| MD5 |
0243a2899cd44b3d3c7b9e2fcbc05c1a
|
|
| BLAKE2b-256 |
c5549cb5d3f3850a4fc820ce238ae0673ef27f650df6375a17b0e4920e247e07
|
Provenance
The following attestation bundles were made for presidio-0.2.0.tar.gz:
Publisher:
pypi_cd.yml on papercloudtech/presidio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
presidio-0.2.0.tar.gz -
Subject digest:
c7348f1538fa3297a7060a12a45fcf918feb4efdd411b959ddc0f5470d395a5b - Sigstore transparency entry: 842531104
- Sigstore integration time:
-
Permalink:
papercloudtech/presidio@4c7c914c5d957ae869cb374ffbb3b955f4a7dbaa -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/papercloudtech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_cd.yml@4c7c914c5d957ae869cb374ffbb3b955f4a7dbaa -
Trigger Event:
push
-
Statement type:
File details
Details for the file presidio-0.2.0-py3-none-any.whl.
File metadata
- Download URL: presidio-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b373eddf413c0a3890b234ae693003a84740c6ca668cf2f217d588bc4ef42441
|
|
| MD5 |
9d7bc777aca0758938fd772a2b837706
|
|
| BLAKE2b-256 |
a4d293b4e3774603cd980077582e1dbd48d9d3ae8aa0bd5859bfe1ffc27e1624
|
Provenance
The following attestation bundles were made for presidio-0.2.0-py3-none-any.whl:
Publisher:
pypi_cd.yml on papercloudtech/presidio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
presidio-0.2.0-py3-none-any.whl -
Subject digest:
b373eddf413c0a3890b234ae693003a84740c6ca668cf2f217d588bc4ef42441 - Sigstore transparency entry: 842531106
- Sigstore integration time:
-
Permalink:
papercloudtech/presidio@4c7c914c5d957ae869cb374ffbb3b955f4a7dbaa -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/papercloudtech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_cd.yml@4c7c914c5d957ae869cb374ffbb3b955f4a7dbaa -
Trigger Event:
push
-
Statement type: