@@ -9,13 +9,13 @@ description = "Apify SDK for Python"
9
9
authors = [{
name =
" Apify Technologies s.r.o." ,
email =
" [email protected] " }]
10
10
license = { file = " LICENSE" }
11
11
readme = " README.md"
12
- requires-python = " >=3.9 "
12
+ requires-python = " >=3.10 "
13
13
classifiers = [
14
14
" Development Status :: 5 - Production/Stable" ,
15
+ " Environment :: Console" ,
15
16
" Intended Audience :: Developers" ,
16
17
" License :: OSI Approved :: Apache Software License" ,
17
18
" Operating System :: OS Independent" ,
18
- " Programming Language :: Python :: 3.9" ,
19
19
" Programming Language :: Python :: 3.10" ,
20
20
" Programming Language :: Python :: 3.11" ,
21
21
" Programming Language :: Python :: 3.12" ,
@@ -52,27 +52,30 @@ dependencies = [
52
52
scrapy = [" scrapy>=2.11.0" ]
53
53
54
54
[project .urls ]
55
- "Homepage" = " https://docs.apify.com/sdk/python/"
56
- "Apify homepage" = " https://apify.com"
55
+ "Apify Homepage" = " https://apify.com"
57
56
"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"
61
63
62
64
[dependency-groups ]
63
65
dev = [
64
66
" build~=1.2.0" ,
67
+ " dycw-pytest-only>=2.1.1" ,
65
68
" griffe~=1.7.0" ,
66
69
" mypy~=1.16.0" ,
67
70
" pre-commit~=4.2.0" ,
68
71
" pydoc-markdown~=4.8.0" ,
69
72
" pytest-asyncio~=1.0.0" ,
70
73
" 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" ,
73
76
" pytest~=8.4.0" ,
74
77
" respx~=0.22.0" ,
75
- " ruff~=0.11 .0" ,
78
+ " ruff~=0.12 .0" ,
76
79
" setuptools" , # setuptools are used by pytest but not explicitly required
77
80
" types-cachetools>=6.0.0.20250525" ,
78
81
]
@@ -139,6 +142,9 @@ indent-style = "space"
139
142
" TRY301" , # Abstract `raise` to an inner function
140
143
" TID252" , # Prefer absolute imports over relative imports from parent modules
141
144
]
145
+ "**/{tests}/{integration}/*" = [
146
+ " PLC0415" , # `import` should be at the top-level of a file
147
+ ]
142
148
"**/{docs,website}/**" = [
143
149
" D" , # Everything from the pydocstyle
144
150
" INP001" , # File {filename} is part of an implicit namespace package, add an __init__.py
@@ -186,7 +192,7 @@ asyncio_mode = "auto"
186
192
timeout = 1200
187
193
188
194
[tool .mypy ]
189
- python_version = " 3.9 "
195
+ python_version = " 3.10 "
190
196
plugins = [" pydantic.mypy" ]
191
197
files = [" src" , " tests" , " docs" , " website" ]
192
198
check_untyped_defs = true
@@ -213,7 +219,7 @@ module = [
213
219
ignore_missing_imports = true
214
220
215
221
[tool .basedpyright ]
216
- pythonVersion = " 3.9 "
222
+ pythonVersion = " 3.10 "
217
223
typeCheckingMode = " standard"
218
224
include = [" src" , " tests" , " docs" , " website" ]
219
225
0 commit comments