Skip to content

Commit 3b5fe9e

Browse files
authored
Merge pull request #172 from DataFog/codex/fix-python-314
fix: support Python 3.14 core installs
2 parents b34c04c + 2201ce4 commit 3b5fe9e

8 files changed

Lines changed: 38 additions & 14 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,13 @@ jobs:
2929
strategy:
3030
fail-fast: false
3131
matrix:
32-
python-version: ["3.10", "3.11", "3.12", "3.13"]
32+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
3333
install-profile: ["core", "nlp", "nlp-advanced"]
34+
exclude:
35+
- python-version: "3.14"
36+
install-profile: nlp
37+
- python-version: "3.14"
38+
install-profile: nlp-advanced
3439
steps:
3540
- uses: actions/checkout@v6
3641
- name: Set up Python
@@ -162,6 +167,10 @@ jobs:
162167
- distributed
163168
- web
164169
include:
170+
- python-version: "3.14"
171+
install-profile: core
172+
- python-version: "3.14"
173+
install-profile: cli
165174
- python-version: "3.13"
166175
install-profile: nlp
167176
- python-version: "3.13"

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ jobs:
140140
OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 OPENBLAS_NUM_THREADS=4 python tests/simple_performance_test.py
141141
142142
# ── 3. Build & Publish ────────────────────────────────────────────────
143-
python313-core:
143+
python314-core:
144144
needs: determine-release
145145
if: needs.determine-release.outputs.has_changes == 'true'
146146
runs-on: ubuntu-latest
@@ -150,18 +150,18 @@ jobs:
150150
fetch-depth: 0
151151
ref: ${{ needs.determine-release.outputs.target_branch }}
152152

153-
- name: Set up Python 3.13
153+
- name: Set up Python 3.14
154154
uses: actions/setup-python@v6
155155
with:
156-
python-version: "3.13"
156+
python-version: "3.14"
157157
cache: "pip"
158158

159159
- name: Install core + CLI dependencies
160160
run: |
161161
python -m pip install --upgrade pip
162162
pip install -e ".[test,cli]" -r requirements-test.txt
163163
164-
- name: Run Python 3.13 core + CLI tests
164+
- name: Run Python 3.14 core + CLI tests
165165
run: |
166166
pytest tests/ \
167167
-m "not slow" \
@@ -172,7 +172,7 @@ jobs:
172172
--ignore=tests/test_text_service_integration.py
173173
174174
publish:
175-
needs: [determine-release, test, python313-core]
175+
needs: [determine-release, test, python314-core]
176176
runs-on: ubuntu-latest
177177
outputs:
178178
version: ${{ steps.version.outputs.version }}

CHANGELOG.MD

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
## [Unreleased]
44

5+
#### Fixed
6+
7+
- Allow installation on Python 3.14 and certify the core SDK and CLI with
8+
dedicated CI and release-gate coverage.
9+
510
## [2026-07-05]
611

712
### `datafog-python` [4.8.0]

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ Python 3.13 support is certified for the core SDK, CLI, `nlp`,
7575
that is available locally before runtime use. `distributed` and `all` remain
7676
optional, heavier profiles and are not part of the lightweight core path.
7777

78+
Python 3.14 support is certified for the core SDK and CLI. Optional profiles
79+
remain dependent on upstream Python 3.14 package availability until they are
80+
covered by the corresponding CI install-profile checks.
81+
7882
## Quick Start
7983

8084
```python

docs/contributing.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ final version and release-note alignment in the dedicated release slice.
2222
Python Environments
2323
===================
2424

25-
DataFog currently declares support for Python ``>=3.10,<3.14``. The CI matrix
26-
tests core, NLP, and NLP-advanced installs on Python 3.10, 3.11, 3.12, and
27-
3.13. OCR profile smoke checks also run on Python 3.13 with system Tesseract
28-
installed. Distributed and all-profile installs remain heavier optional
29-
profiles rather than the lightweight core support claim.
25+
DataFog declares support for Python ``>=3.10``. The CI matrix tests core, NLP,
26+
and NLP-advanced installs on Python 3.10, 3.11, 3.12, and 3.13. Python 3.14
27+
is certified for the core SDK and CLI. OCR profile smoke checks also run on
28+
Python 3.13 with system Tesseract installed. Optional Python 3.14 profiles
29+
remain dependent on upstream package availability until their install-profile
30+
checks are added to CI.
3031

3132
Create one virtual environment per Python version when you need to compare
3233
profiles locally:

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
package_data={"datafog": ["py.typed"]},
118118
install_requires=core_deps,
119119
extras_require=extras_require,
120-
python_requires=">=3.10,<3.14",
120+
python_requires=">=3.10",
121121
entry_points={
122122
"console_scripts": [
123123
"datafog=datafog.client:app [cli]", # Requires cli extra
@@ -133,6 +133,7 @@
133133
"Programming Language :: Python :: 3.11",
134134
"Programming Language :: Python :: 3.12",
135135
"Programming Language :: Python :: 3.13",
136+
"Programming Language :: Python :: 3.14",
136137
"Topic :: Software Development :: Libraries :: Python Modules",
137138
"Topic :: Text Processing",
138139
"Topic :: Security",

setup_lean.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
packages=find_packages(),
8585
install_requires=core_deps,
8686
extras_require=extras_require,
87-
python_requires=">=3.10,<3.13",
87+
python_requires=">=3.10",
8888
entry_points={
8989
"console_scripts": [
9090
"datafog=datafog.client:app [cli]", # Requires cli extra
@@ -98,6 +98,8 @@
9898
"Programming Language :: Python :: 3.10",
9999
"Programming Language :: Python :: 3.11",
100100
"Programming Language :: Python :: 3.12",
101+
"Programming Language :: Python :: 3.13",
102+
"Programming Language :: Python :: 3.14",
101103
"Topic :: Software Development :: Libraries :: Python Modules",
102104
"Topic :: Text Processing",
103105
"Topic :: Security",

setup_original.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,16 @@
4747
"sphinx",
4848
"cryptography",
4949
],
50-
python_requires=">=3.10,<3.13",
50+
python_requires=">=3.10",
5151
entry_points={
5252
"console_scripts": [
5353
"datafog=datafog.client:app",
5454
],
5555
},
5656
classifiers=[
5757
"Programming Language :: Python :: 3.12",
58+
"Programming Language :: Python :: 3.13",
59+
"Programming Language :: Python :: 3.14",
5860
"Programming Language :: Python :: 3.11",
5961
"Programming Language :: Python :: 3.10",
6062
"License :: OSI Approved :: MIT License",

0 commit comments

Comments
 (0)