1
1
[project ]
2
2
name = " apify"
3
- version = " 1.3.1 "
3
+ version = " 1.4.0 "
4
4
description = " Apify SDK for Python"
5
5
readme = " README.md"
6
- license = {text = " Apache Software License" }
7
- authors = [
8
- {
name =
" Apify Technologies s.r.o." ,
email =
" [email protected] " },
9
- ]
6
+ license = { text = " Apache Software License" }
7
+ authors = [{
name =
" Apify Technologies s.r.o." ,
email =
" [email protected] " }]
10
8
keywords = [" apify" , " sdk" , " actor" , " scraping" , " automation" ]
11
9
12
10
classifiers = [
@@ -26,8 +24,8 @@ requires-python = ">=3.8"
26
24
dependencies = [
27
25
" aiofiles >= 22.1.0" ,
28
26
" aioshutil >= 1.0" ,
29
- " apify-client ~= 1.5 .0" ,
30
- " apify-shared ~= 1.0.4 " ,
27
+ " apify-client ~= 1.6 .0" ,
28
+ " apify-shared ~= 1.1.0 " ,
31
29
" colorama >= 0.4.6" ,
32
30
" cryptography >= 39.0.0" ,
33
31
" httpx >= 0.24.1" ,
@@ -40,25 +38,9 @@ dependencies = [
40
38
41
39
[project .optional-dependencies ]
42
40
dev = [
43
- " autopep8 ~= 2.0.4" ,
44
41
" build ~= 1.0.3" ,
45
42
" filelock ~= 3.12.4" ,
46
- " flake8 ~= 6.1.0" ,
47
- " flake8-bugbear ~= 23.9.16" ,
48
- " flake8-commas ~= 2.1.0; python_version < '3.12'" ,
49
- " flake8-comprehensions ~= 3.14.0" ,
50
- " flake8-datetimez ~= 20.10.0" ,
51
- " flake8-docstrings ~= 1.7.0" ,
52
- " flake8-encodings ~= 0.5.0" ,
53
- " flake8-isort ~= 6.1.0" ,
54
- " flake8-noqa ~= 1.3.1; python_version < '3.12'" ,
55
- " flake8-pytest-style ~= 1.7.2" ,
56
- " flake8-quotes ~= 3.3.2; python_version < '3.12'" ,
57
- " flake8-simplify ~= 0.21.0" ,
58
- " flake8-unused-arguments ~= 0.0.13" ,
59
- " isort ~= 5.12.0" ,
60
- " mypy ~= 1.5.1" ,
61
- " pep8-naming ~= 0.13.3" ,
43
+ " mypy ~= 1.7.1" ,
62
44
" pre-commit ~= 3.4.0" ,
63
45
" pydoc-markdown ~= 4.8.2" ,
64
46
" pytest ~= 7.4.2" ,
@@ -67,6 +49,7 @@ dev = [
67
49
" pytest-timeout ~= 2.2.0" ,
68
50
" pytest-xdist ~= 3.3.1" ,
69
51
" respx ~= 0.20.1" ,
52
+ " ruff ~= 0.1.6" ,
70
53
" twine ~= 4.0.2" ,
71
54
" types-aiofiles ~= 23.2.0.0" ,
72
55
" types-colorama ~= 0.4.15.11" ,
@@ -94,3 +77,72 @@ include = ["apify*"]
94
77
95
78
[tool .setuptools .package-data ]
96
79
apify = [" py.typed" ]
80
+
81
+ [tool .ruff ]
82
+ line-length = 150
83
+ select = [" ALL" ]
84
+ ignore = [
85
+ " ANN401" , # Dynamically typed expressions (typing.Any) are disallowed in {filename}
86
+ " BLE001" , # Do not catch blind exception
87
+ " C901" , # `{name}` is too complex
88
+ " COM812" , # This rule may cause conflicts when used with the formatter
89
+ " D100" , # Missing docstring in public module
90
+ " D104" , # Missing docstring in public package
91
+ " EM" , # flake8-errmsg
92
+ " G004" , # Logging statement uses f-string
93
+ " ISC001" , # This rule may cause conflicts when used with the formatter
94
+ " FIX" , # flake8-fixme
95
+ " PGH003" , # Use specific rule codes when ignoring type issues
96
+ " PLR0911" , # Too many return statements
97
+ " PLR0913" , # Too many arguments in function definition
98
+ " PLR0915" , # Too many statements
99
+ " PTH" , # flake8-use-pathlib
100
+ " PYI034" , # `__aenter__` methods in classes like `{name}` usually return `self` at runtime
101
+ " PYI036" , # The second argument in `__aexit__` should be annotated with `object` or `BaseException | None`
102
+ " S102" , # Use of `exec` detected
103
+ " S105" , # Possible hardcoded password assigned to
104
+ " S106" , # Possible hardcoded password assigned to argument: "{name}"
105
+ " S301" , # `pickle` and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue
106
+ " S303" , # Use of insecure MD2, MD4, MD5, or SHA1 hash function
107
+ " S311" , # Standard pseudo-random generators are not suitable for cryptographic purposes
108
+ " TD002" , # Missing author in TODO; try: `# TODO(<author_name>): ...` or `# TODO @<author_name>: ...
109
+ " TID252" , # Relative imports from parent modules are bannedRuff
110
+ " TRY003" , # Avoid specifying long messages outside the exception class
111
+
112
+ # TODO: Remove this once the following issue is fixed
113
+ # https://github.com/apify/apify-sdk-python/issues/150
114
+ " SLF001" , # Private member accessed: `{name}`
115
+ ]
116
+
117
+ [tool .ruff .format ]
118
+ quote-style = " single"
119
+ indent-style = " space"
120
+
121
+ [tool .ruff .lint .per-file-ignores ]
122
+ "**/__init__.py" = [
123
+ " F401" , # Unused imports
124
+ ]
125
+ "**/{scripts}/*" = [
126
+ " D" , # Everything from the pydocstyle
127
+ " INP001" , # File {filename} is part of an implicit namespace package, add an __init__.py
128
+ " PLR2004" , # Magic value used in comparison, consider replacing {value} with a constant variable
129
+ " T20" , # flake8-print
130
+ ]
131
+ "**/{tests}/*" = [
132
+ " D" , # Everything from the pydocstyle
133
+ " INP001" , # File {filename} is part of an implicit namespace package, add an __init__.py
134
+ " PLR2004" , # Magic value used in comparison, consider replacing {value} with a constant variable
135
+ " S101" , # Use of assert detected
136
+ " T20" , # flake8-print
137
+ " TRY301" , # Abstract `raise` to an inner function
138
+ ]
139
+
140
+ [tool .ruff .lint .flake8-quotes ]
141
+ docstring-quotes = " double"
142
+ inline-quotes = " single"
143
+
144
+ [tool .ruff .lint .isort ]
145
+ known-first-party = [" apify" , " apify_client" , " apify_shared" ]
146
+
147
+ [tool .ruff .lint .pydocstyle ]
148
+ convention = " google"
0 commit comments