@@ -9,13 +9,13 @@ description = "Apify SDK for Python"
99authors = [{
name =
" Apify Technologies s.r.o." ,
email =
" [email protected] " }]
1010license = { file = " LICENSE" }
1111readme = " README.md"
12- requires-python = " >=3.9 "
12+ requires-python = " >=3.10 "
1313classifiers = [
1414 " Development Status :: 5 - Production/Stable" ,
15+ " Environment :: Console" ,
1516 " Intended Audience :: Developers" ,
1617 " License :: OSI Approved :: Apache Software License" ,
1718 " Operating System :: OS Independent" ,
18- " Programming Language :: Python :: 3.9" ,
1919 " Programming Language :: Python :: 3.10" ,
2020 " Programming Language :: Python :: 3.11" ,
2121 " Programming Language :: Python :: 3.12" ,
@@ -52,27 +52,30 @@ dependencies = [
5252scrapy = [" scrapy>=2.11.0" ]
5353
5454[project .urls ]
55- "Homepage" = " https://docs.apify.com/sdk/python/"
56- "Apify homepage" = " https://apify.com"
55+ "Apify Homepage" = " https://apify.com"
5756"Changelog" = " https://docs.apify.com/sdk/python/docs/changelog"
58- "Documentation" = " https://docs.apify.com/sdk/python/"
59- "Issue tracker" = " https://github.com/apify/apify-sdk-python/issues"
60- "Repository" = " https://github.com/apify/apify-sdk-python"
57+ "Discord" = " https://discord.com/invite/jyEM2PRvMU"
58+ "Documentation" = " https://docs.apify.com/sdk/python/docs/overview/introduction"
59+ "Homepage" = " https://docs.apify.com/sdk/python/"
60+ "Issue Tracker" = " https://github.com/apify/apify-sdk-python/issues"
61+ "Release Notes" = " https://docs.apify.com/sdk/python/docs/upgrading/upgrading-to-v2"
62+ "Source Code" = " https://github.com/apify/apify-sdk-python"
6163
6264[dependency-groups ]
6365dev = [
6466 " build~=1.2.0" ,
67+ " dycw-pytest-only>=2.1.1" ,
6568 " griffe~=1.7.0" ,
6669 " mypy~=1.16.0" ,
6770 " pre-commit~=4.2.0" ,
6871 " pydoc-markdown~=4.8.0" ,
6972 " pytest-asyncio~=1.0.0" ,
7073 " pytest-cov~=6.2.0" ,
71- " pytest-only~ =2.1 .0" ,
72- " pytest-xdist~=3.7 .0" ,
74+ " pytest-timeout> =2.4 .0" ,
75+ " pytest-xdist~=3.8 .0" ,
7376 " pytest~=8.4.0" ,
7477 " respx~=0.22.0" ,
75- " ruff~=0.11 .0" ,
78+ " ruff~=0.12 .0" ,
7679 " setuptools" , # setuptools are used by pytest but not explicitly required
7780 " types-cachetools>=6.0.0.20250525" ,
7881]
@@ -139,6 +142,9 @@ indent-style = "space"
139142 " TRY301" , # Abstract `raise` to an inner function
140143 " TID252" , # Prefer absolute imports over relative imports from parent modules
141144]
145+ "**/{tests}/{integration}/*" = [
146+ " PLC0415" , # `import` should be at the top-level of a file
147+ ]
142148"**/{docs,website}/**" = [
143149 " D" , # Everything from the pydocstyle
144150 " INP001" , # File {filename} is part of an implicit namespace package, add an __init__.py
@@ -186,7 +192,7 @@ asyncio_mode = "auto"
186192timeout = 1200
187193
188194[tool .mypy ]
189- python_version = " 3.9 "
195+ python_version = " 3.10 "
190196plugins = [" pydantic.mypy" ]
191197files = [" src" , " tests" , " docs" , " website" ]
192198check_untyped_defs = true
@@ -213,7 +219,7 @@ module = [
213219ignore_missing_imports = true
214220
215221[tool .basedpyright ]
216- pythonVersion = " 3.9 "
222+ pythonVersion = " 3.10 "
217223typeCheckingMode = " standard"
218224include = [" src" , " tests" , " docs" , " website" ]
219225
0 commit comments