11[project ]
22name = " apify"
3- version = " 1.3.1 "
3+ version = " 1.4.0 "
44description = " Apify SDK for Python"
55readme = " 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] " }]
108keywords = [" apify" , " sdk" , " actor" , " scraping" , " automation" ]
119
1210classifiers = [
@@ -26,8 +24,8 @@ requires-python = ">=3.8"
2624dependencies = [
2725 " aiofiles >= 22.1.0" ,
2826 " 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 " ,
3129 " colorama >= 0.4.6" ,
3230 " cryptography >= 39.0.0" ,
3331 " httpx >= 0.24.1" ,
@@ -40,25 +38,9 @@ dependencies = [
4038
4139[project .optional-dependencies ]
4240dev = [
43- " autopep8 ~= 2.0.4" ,
4441 " build ~= 1.0.3" ,
4542 " 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" ,
6244 " pre-commit ~= 3.4.0" ,
6345 " pydoc-markdown ~= 4.8.2" ,
6446 " pytest ~= 7.4.2" ,
@@ -67,6 +49,7 @@ dev = [
6749 " pytest-timeout ~= 2.2.0" ,
6850 " pytest-xdist ~= 3.3.1" ,
6951 " respx ~= 0.20.1" ,
52+ " ruff ~= 0.1.6" ,
7053 " twine ~= 4.0.2" ,
7154 " types-aiofiles ~= 23.2.0.0" ,
7255 " types-colorama ~= 0.4.15.11" ,
@@ -94,3 +77,72 @@ include = ["apify*"]
9477
9578[tool .setuptools .package-data ]
9679apify = [" 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