11[build-system ]
22# jinja2 is required to generate JS and Python rules at build time
33# PyYAML is used to parse fuzzy rules and generate Python/JS code
4- requires = [" hatchling" , " hatch-openzim>=0.2" , " jinja2==3.1.6" , " PyYAML==6.0.2 " ]
4+ requires = [" hatchling" , " hatch-openzim>=0.2" , " jinja2==3.1.6" , " PyYAML==6.0.3 " ]
55build-backend = " hatchling.build"
66
77[project ]
88name = " zimscraperlib"
9- requires-python = " >=3.13 ,<3.14 "
9+ requires-python = " >=3.14 ,<3.15 "
1010description = " Collection of python tools to re-use common code across scrapers"
1111readme = " README.md"
1212dependencies = [
@@ -16,7 +16,7 @@ dependencies = [
1616 " python-resize-image>=1.1.19,<1.2" ,
1717 " Babel>=2.9,<3.0" ,
1818 " python-magic>=0.4.3,<0.5" ,
19- " libzim>=3.4 .0,<4.0" ,
19+ " libzim>=3.8 .0,<4.0" ,
2020 " beautifulsoup4>=4.9.3,<5.0" ,
2121 " lxml>=4.6.3,<7.0" ,
2222 " optimize-images>=1.3.6,<2.0" ,
@@ -26,10 +26,10 @@ dependencies = [
2626 " regex>=2020.7.14" ,
2727 " pymupdf>=1.24.0,<2.0" ,
2828 " CairoSVG>=2.2.0,<3.0" ,
29- " beartype>=0.19,<0.22 " ,
29+ " beartype>=0.19,<0.23 " ,
3030 # youtube-dl should be updated as frequently as possible
3131 " yt-dlp" ,
32- " pillow>=7.0.0,<12 .0" ,
32+ " pillow>=7.0.0,<13 .0" ,
3333 " urllib3>=1.26.5,<2.6.0" ,
3434 " piexif==1.1.3" , # this dep is a nightmare in terms of release management, better pinned just like in optimize-images anyway
3535 " idna>=2.5,<4.0" ,
@@ -49,39 +49,39 @@ additional-classifiers = [
4949
5050[project .optional-dependencies ]
5151scripts = [
52- " invoke==2.2.0 " ,
52+ " invoke==2.2.1 " ,
5353 # jinja2 is required to generate JS and Python rules at build time
5454 # PyYAML is used to parse fuzzy rules and generate Python/JS code
5555 # also update version in build-system above
5656 " jinja2==3.1.6" ,
57- " PyYAML==6.0.2 " ,
57+ " PyYAML==6.0.3 " ,
5858
5959]
6060lint = [
61- " black==25.9 .0" ,
62- " ruff==0.13.1 " ,
61+ " black==25.11 .0" ,
62+ " ruff==0.14.5 " ,
6363]
6464check = [
65- " pyright==1.1.405 " ,
66- " pytest==8.4.2 " ,
65+ " pyright==1.1.407 " ,
66+ " pytest==9.0.1 " ,
6767]
6868test = [
69- " pytest==8.4.2 " ,
69+ " pytest==9.0.1 " ,
7070 " pytest-mock==3.15.1" ,
71- " coverage==7.10.7 " ,
71+ " coverage==7.11.3 " ,
7272]
7373docs = [
7474 " mkdocs==1.6.1" ,
75- " mkdocs-include-markdown-plugin==7.1.7 " ,
76- " mkdocs-material==9.6.20 " ,
75+ " mkdocs-include-markdown-plugin==7.2.0 " ,
76+ " mkdocs-material==9.7.0 " ,
7777 " mkdocstrings[python]==0.30.1" ,
78- " pymdown-extensions==10.16 .1" ,
78+ " pymdown-extensions==10.17 .1" ,
7979 " mkdocs-gen-files==0.5.0" ,
8080 " mkdocs-literate-nav==0.6.2" ,
8181]
8282dev = [
83- " ipython==9.5 .0" ,
84- " pre-commit==4.3 .0" ,
83+ " ipython==9.7 .0" ,
84+ " pre-commit==4.4 .0" ,
8585 " zimscraperlib[scripts]" ,
8686 " zimscraperlib[lint]" ,
8787 " zimscraperlib[test]" ,
@@ -157,10 +157,10 @@ build = "inv docs-build --args '{args}'"
157157
158158[tool .black ]
159159line-length = 88
160- target-version = [' py313 ' ]
160+ target-version = [' py314 ' ]
161161
162162[tool .ruff ]
163- target-version = " py313 "
163+ target-version = " py314 "
164164line-length = 88
165165src = [" src" , " contrib" ]
166166
@@ -293,12 +293,6 @@ exclude_lines = [
293293include = [" contrib" , " src" , " tests" , " tasks.py" ]
294294exclude = [" .env/**" , " .venv/**" ]
295295extraPaths = [" src" ]
296- pythonVersion = " 3.13 "
296+ pythonVersion = " 3.14 "
297297typeCheckingMode =" strict"
298298disableBytesTypePromotions = true
299-
300- [[tool .pyright .overrides .files ]]
301- files = [
302- " src/zimscraperlib/rewriting**/*.py" ,
303- " tests/rewriting/**/*.py"
304- ]
0 commit comments