@@ -16,8 +16,6 @@ pandas = "*"
1616[tool .poetry .group .dev .dependencies ]
1717build = " *"
1818coverage-lcov = " *"
19- flake8-bandit = " *"
20- flake8-pydocstyle = " *"
2119mypy = " *"
2220parameterized = " *"
2321pytest = " *"
@@ -27,3 +25,100 @@ types-mock = "*"
2725[build-system ]
2826requires = [" setuptools>=61.0" ]
2927build-backend = " setuptools.build_meta"
28+
29+ [tool .ruff ]
30+ line-length = 120
31+ # Exclude a variety of commonly ignored directories.
32+ exclude = [
33+ " .bzr" ,
34+ " .direnv" ,
35+ " .eggs" ,
36+ " .env" ,
37+ " .git" ,
38+ " .git-rewrite" ,
39+ " .hg" ,
40+ " .ipynb_checkpoints" ,
41+ " .mypy_cache" ,
42+ " .nox" ,
43+ " .pants.d" ,
44+ " .pyenv" ,
45+ " .pytest_cache" ,
46+ " .pytype" ,
47+ " .ruff_cache" ,
48+ " .svn" ,
49+ " .tox" ,
50+ " .venv" ,
51+ " .vscode" ,
52+ " __pypackages__" ,
53+ " _build" ,
54+ " buck-out" ,
55+ " build" ,
56+ " dist" ,
57+ " node_modules" ,
58+ " site-packages" ,
59+ " venv" ,
60+ ]
61+
62+
63+ [tool .ruff .format ]
64+ quote-style = " double"
65+
66+ [tool .ruff .lint .pylint ]
67+ max-nested-blocks = 6
68+ max-args = 8
69+ max-positional-args = 8
70+
71+ [tool .ruff .lint ]
72+ preview = true
73+ select = [
74+ " ASYNC" , # Async: https://docs.astral.sh/ruff/rules/#flake8-async-async
75+ " B" , # Flake8 Bugbear: https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
76+ " C901" , # complex-structure
77+ " D" , # Docstyle: https://docs.astral.sh/ruff/rules/#pydocstyle-d
78+ " DOC" , # Pydoclint: https://docs.astral.sh/ruff/rules/#pydoclint-doc
79+ " E" , # Errors: https://docs.astral.sh/ruff/rules/#error-e
80+ " F" , # Flakes: https://docs.astral.sh/ruff/rules/#pyflakes-f
81+ " G" , # Logging format: https://docs.astral.sh/ruff/rules/#flake8-logging-format-g
82+ " I" , # Isort: https://docs.astral.sh/ruff/rules/#isort-i
83+ " ISC001" , # single-line-implicit-string-concatenation
84+ " N" , # Naming: https://docs.astral.sh/ruff/rules/#pep8-naming-n
85+ " PL" , # Pylint: https://docs.astral.sh/ruff/rules/#pylint-pl
86+ " Q" , # Quotes: https://docs.astral.sh/ruff/rules/#flake8-quotes-q
87+ " RET" , # Return: https://docs.astral.sh/ruff/rules/#flake8-return-ret
88+ " SIM" , # Simplify: https://docs.astral.sh/ruff/rules/#flake8-simplify-sim
89+ " SLF" , # Private member access: https://docs.astral.sh/ruff/rules/#flake8-self-slf
90+ " UP" , # Upgrade: https://docs.astral.sh/ruff/rules/#pyupgrade-up
91+ " W" , # Warnings: https://docs.astral.sh/ruff/rules/#warning-w
92+ ]
93+ ignore = [
94+ " B017" , # Do not assert blind exception: `Exception`
95+ " D100" , # undocumented-public-module
96+ " D101" , # undocumented-public-class
97+ " D102" , # undocumented-public-method
98+ " D103" , # undocumented-public-function
99+ " D104" , # undocumented-public-package
100+ " D105" , # undocumented-magic-method
101+ " D106" , # undocumented-public-nested-class
102+ " D107" , # undocumented-public-init
103+ " D203" , # one blank line required before class docstring
104+ " D213" , # multi-line summary starts on second line
105+ " DOC201" , # docstring-missing-returns
106+ " DOC501" , # docstring-missing-exception"
107+ " ISC001" , # single-line-implicit-string-concatenation
108+ " N818" , # error-suffix-on-exception-name
109+ " N999" , # invalid-module-name
110+ ]
111+
112+ [tool .ruff .lint .per-file-ignores ]
113+ "tests/**" = [
114+ " D400" , # first-line-should-end-with-period
115+ " D415" , # first-line-should-end-with
116+ " PLC2701" , # import-private-name
117+ " PLR2004" , # magic-value-comparison
118+ " PLR6301" , # static method
119+ " PLR0904" , # too-many-public-methods
120+ " SLF001" , # private-member-access
121+ " N802" , # invalid-function-name
122+ " N818" , # invalid-class-name
123+ " N999" , # invalid-module-name
124+ ]
0 commit comments