diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 90bb2bb2f..3c513649c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,7 +66,7 @@ jobs: pull-requests: write strategy: matrix: - python-version: ['3.10', '3.11', '3.12', '3.13'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] component: - name: 'Analyzer' path: 'presidio-analyzer' @@ -88,13 +88,6 @@ jobs: path: 'presidio-structured' extras: '' spacy-models: '' - include: - - python-version: '3.14' - component: - name: 'Analyzer' - path: 'presidio-analyzer' - extras: '--all-extras' - spacy-models: 'en_core_web_lg en_core_web_sm' env: POETRY_CACHE_DIR: /mnt/poetry_cache COVERAGE_THRESHOLD: 90 diff --git a/CHANGELOG.md b/CHANGELOG.md index e9ebd1bb4..c432947b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ All notable changes to this project will be documented in this file. #### Fixed - Retried the Zensical documentation build on transient crashes (e.g. SIGKILL/exit 247) so the docs release pipeline no longer fails intermittently (Thanks @Copilot) +#### Changed +- Added Python 3.14 package support for `presidio-anonymizer`, `presidio-image-redactor`, `presidio-cli`, `presidio-structured`, and `presidio` by allowing Python `<3.15` and excluding `spacy==3.8.14` on Python 3.14 where applicable (#2096) (Thanks @Copilot) + ## [2.2.363] - 2026-06-28 ### General #### Added diff --git a/docs/installation.md b/docs/installation.md index 9990eabd6..24ca307db 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -21,6 +21,7 @@ Presidio is supported for the following python versions: * 3.11 * 3.12 * 3.13 +* 3.14 ### PII anonymization on text diff --git a/presidio-anonymizer/pyproject.toml b/presidio-anonymizer/pyproject.toml index 2ebd6b3e3..864edd1aa 100644 --- a/presidio-anonymizer/pyproject.toml +++ b/presidio-anonymizer/pyproject.toml @@ -15,12 +15,13 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] keywords = ["presidio_anonymizer"] urls = {Homepage = "https://github.com/data-privacy-stack/presidio"} readme = "README.md" -requires-python = ">=3.10,<4.0" +requires-python = ">=3.10,<3.15" dependencies = [ "cryptography (>=48.0.1,<49.0.0)" ] diff --git a/presidio-cli/pyproject.toml b/presidio-cli/pyproject.toml index 43aa58b66..d68c1fa03 100644 --- a/presidio-cli/pyproject.toml +++ b/presidio-cli/pyproject.toml @@ -15,12 +15,13 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] keywords = ["pii", "checker", "presidio_cli"] urls = {Homepage = "https://github.com/data-privacy-stack/presidio"} readme = "README.md" include = ["conf/*", ".presidiocli"] -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" dependencies = [ "presidio-analyzer (>=2.2.0,<3.0.0)", diff --git a/presidio-image-redactor/pyproject.toml b/presidio-image-redactor/pyproject.toml index 76bff00b0..1a15aec49 100644 --- a/presidio-image-redactor/pyproject.toml +++ b/presidio-image-redactor/pyproject.toml @@ -15,11 +15,12 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] keywords = ["presidio_image_redactor"] urls = {Homepage = "https://github.com/data-privacy-stack/presidio"} readme = "README.md" -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" dependencies = [ "pillow (>=9.0.0,<13.0.0)", @@ -31,7 +32,8 @@ dependencies = [ "azure-ai-formrecognizer (>=3.3.3,<4.0.0)", "opencv-python (>=4.13.0.92,<5.0.0)", "python-gdcm (>=3.0.24.1,<4.0.0)", - "spacy >=3.8.7,<4.0.0 ; python_version >= '3.13'"] + "spacy (>=3.8.7,<4.0.0) ; python_version >= '3.13' and python_version < '3.14'", + "spacy (>=3.8.7,!=3.8.14,<4.0.0) ; python_version >= '3.14'"] [project.optional-dependencies] server = [ diff --git a/presidio-structured/pyproject.toml b/presidio-structured/pyproject.toml index f923b0b3f..cc9888bed 100644 --- a/presidio-structured/pyproject.toml +++ b/presidio-structured/pyproject.toml @@ -15,11 +15,12 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] keywords = ["presidio_structured"] urls = {Homepage = "https://github.com/data-privacy-stack/presidio"} readme = "README.md" -requires-python = ">=3.10,<4.0" +requires-python = ">=3.10,<3.15" dependencies = [ "presidio-analyzer (>=2.2.0,<3.0.0)", diff --git a/presidio/pyproject.toml b/presidio/pyproject.toml index a606d3bdb..5cc120fe1 100644 --- a/presidio/pyproject.toml +++ b/presidio/pyproject.toml @@ -15,12 +15,13 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] keywords = ["presidio"] urls = {Homepage = "https://github.com/data-privacy-stack/presidio"} readme = "README.md" -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" dependencies = [ "presidio-analyzer (>=2.2.0,<3.0.0)", "presidio-anonymizer (>=2.2.0,<3.0.0)",