Skip to main content

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

presidio-0.2.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

presidio-0.2.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

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

Hashes for presidio-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c7348f1538fa3297a7060a12a45fcf918feb4efdd411b959ddc0f5470d395a5b
MD5 0243a2899cd44b3d3c7b9e2fcbc05c1a
BLAKE2b-256 c5549cb5d3f3850a4fc820ce238ae0673ef27f650df6375a17b0e4920e247e07

See more details on using hashes here.

Provenance

The following attestation bundles were made for presidio-0.2.0.tar.gz:

Publisher: pypi_cd.yml on papercloudtech/presidio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for presidio-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b373eddf413c0a3890b234ae693003a84740c6ca668cf2f217d588bc4ef42441
MD5 9d7bc777aca0758938fd772a2b837706
BLAKE2b-256 a4d293b4e3774603cd980077582e1dbd48d9d3ae8aa0bd5859bfe1ffc27e1624

See more details on using hashes here.

Provenance

The following attestation bundles were made for presidio-0.2.0-py3-none-any.whl:

Publisher: pypi_cd.yml on papercloudtech/presidio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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