11[build-system ]
22requires = [
3- " setuptools == 74.1.1 " ,
4- " wheel == 0.44.0 " ,
5- " cython == 3.0.11 " ,
3+ " setuptools == 80.9.0 " ,
4+ " wheel == 0.45.1 " ,
5+ " cython == 3.1.6 " ,
66 # https://github.com/pypa/cibuildwheel/blob/v2.22/cibuildwheel/resources/constraints.txt
7- " delocate == 0.12 .0 ; platform_system=='Windows'" ,
7+ " delocate == 0.13 .0 ; platform_system=='Windows'" ,
88]
99build-backend = " setuptools.build_meta"
1010
1111[project ]
1212name = " libzim"
1313version = " 3.7.1-dev0"
14- requires-python = " >=3.9 ,<3.14 "
14+ requires-python = " >=3.10 ,<3.15 "
1515description = " A python-facing API for creating and interacting with ZIM files"
1616authors = [
1717 {
name =
" openZIM" ,
email =
" [email protected] " },
@@ -30,11 +30,11 @@ classifiers = [
3030 " Intended Audience :: Developers" ,
3131 " Programming Language :: Cython" ,
3232 " Programming Language :: Python :: 3" ,
33- " Programming Language :: Python :: 3.9" ,
3433 " Programming Language :: Python :: 3.10" ,
3534 " Programming Language :: Python :: 3.11" ,
3635 " Programming Language :: Python :: 3.12" ,
3736 " Programming Language :: Python :: 3.13" ,
37+ " Programming Language :: Python :: 3.14" ,
3838 " Typing :: Stubs Only" ,
3939 " License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)" ,
4040 " Operating System :: MacOS" ,
@@ -50,43 +50,43 @@ scripts = [
5050 " invoke==2.2.0" ,
5151]
5252lint = [
53- " black==25.1 .0" ,
54- " ruff==0.9.5 " ,
53+ " black==25.9 .0" ,
54+ " ruff==0.14.3 " ,
5555 " libzim" ,
5656 " libzim[build]" ,
5757]
5858check = [
59- " pyright==1.1.393 " ,
59+ " pyright==1.1.407 " ,
6060 " libzim" ,
6161 " libzim[build]" ,
6262 " libzim[test]" ,
6363 " types-setuptools" ,
6464]
6565test = [
66- " pytest==8.3.4 " ,
67- " coverage==7.6.10 " ,
66+ " pytest==8.4.2 " ,
67+ " coverage==7.11.0 " ,
6868 # for cython coverage plugin
6969 " libzim[build]" ,
7070]
7171build = [
72- " setuptools == 75.8 .0" ,
72+ " setuptools == 80.9 .0" ,
7373 " wheel == 0.45.1" ,
74- " cython == 3.0.11 " ,
75- " delocate == 0.12 .0 ; platform_system=='Windows'" ,
74+ " cython == 3.1.6 " ,
75+ " delocate == 0.13 .0 ; platform_system=='Windows'" ,
7676]
7777docs = [
7878 " mkdocs==1.6.1" ,
79- " mkdocstrings-python==1.14.5 " ,
80- " mkdocs-material==9.5.49 " ,
81- " pymdown-extensions==10.14 " ,
79+ " mkdocstrings-python==1.18.2 " ,
80+ " mkdocs-material==9.6.23 " ,
81+ " pymdown-extensions==10.16.1 " ,
8282 " mkdocs-gen-files==0.5.0" ,
83- " mkdocs-literate-nav==0.6.1 " ,
84- " mkdocs-include-markdown-plugin==7.1.2 " ,
85- " griffe==1.5.6 " ,
83+ " mkdocs-literate-nav==0.6.2 " ,
84+ " mkdocs-include-markdown-plugin==7.2.0 " ,
85+ " griffe==1.14.0 " ,
8686]
8787dev = [
88- " pre-commit==4.1 .0" ,
89- " ipython==8.32 .0" ,
88+ " pre-commit==4.3 .0" ,
89+ " ipython==9.6 .0" ,
9090 " types-setuptools" ,
9191 " libzim[scripts]" ,
9292 " libzim[lint]" ,
@@ -123,6 +123,11 @@ skip = "pp* *win32*"
123123test-requires = [" pytest" ]
124124test-command = " py.test {project}/tests/"
125125
126+ # Override test command for free-threaded builds to force GIL on
127+ [[tool .cibuildwheel .overrides ]]
128+ select = " cp313t-* cp314t-*"
129+ test-command = " python -X gil=1 -m pytest {project}/tests/"
130+
126131manylinux-x86_64-image = " manylinux_2_28"
127132manylinux-aarch64-image = " manylinux_2_28"
128133manylinux-pypy_x86_64-image = " manylinux_2_28"
@@ -137,12 +142,10 @@ archs = ["x86_64", "aarch64"]
137142
138143[tool .cibuildwheel .macos ]
139144archs = [" x86_64" , " arm64" ]
140- # macOS arm64 is cross-compiled and can not be tested.
141- # cibuildwheel skips it already. *_arm64 this removes the warning
142- # skipping tests on cp <=3.9 as the wheels we produce are on unexpected combinations
143- # because those python versions were released before our building host version
145+ # macOS x86_64 is cross-compiled and can not be tested.
146+ # cibuildwheel skips it already. *_x86_64 this removes the warning
144147# > requires changing wheel names
145- test-skip = " *_arm64 cp39* "
148+ test-skip = " *_x86_64 "
146149
147150[tool .hatch .build ]
148151exclude = [
@@ -168,7 +171,7 @@ features = ["scripts", "test"]
168171PROFILE = " 1"
169172
170173[[tool .hatch .envs .test .matrix ]]
171- python = [" 3.9 " , " 3.10 " , " 3.11 " , " 3.12 " , " 3.13 " ]
174+ python = [" 3.10 " , " 3.11 " , " 3.12 " , " 3.13 " , " 3.14 " ]
172175
173176[tool .hatch .envs .test .scripts ]
174177run = " inv test --args '{args}'"
@@ -206,10 +209,10 @@ all = "inv checkall --args '{args}'"
206209
207210[tool .black ]
208211line-length = 88
209- target-version = [' py312 ' ]
212+ target-version = [' py314 ' ]
210213
211214[tool .ruff ]
212- target-version = " py312 "
215+ target-version = " py314 "
213216line-length = 88
214217src = [" src" ]
215218
@@ -336,6 +339,6 @@ exclude_lines = [
336339[tool .pyright ]
337340include = [" libzim" , " tests" , " tasks.py" ]
338341exclude = [" .env/**" , " .venv/**" ]
339- pythonVersion = " 3.13 "
342+ pythonVersion = " 3.14 "
340343typeCheckingMode =" basic"
341344disableBytesTypePromotions = true
0 commit comments