55requires = [
66 " setuptools == 68.1.0" ,
77 " setuptools_scm[toml] == 7.1.0" ,
8- " frequenz-repo-config[lib] == 0.5.2 " ,
8+ " frequenz-repo-config[lib] == 0.6.1 " ,
99]
1010build-backend = " setuptools.build_meta"
1111
@@ -49,10 +49,12 @@ name = "Frequenz Energy-as-a-Service GmbH"
49495050
5151[project .optional-dependencies ]
52- dev-docstrings = [
52+ dev-flake8 = [
53+ " flake8 == 6.1.0" ,
54+ " flake8-docstrings == 1.7.0" ,
55+ " flake8-pyproject == 1.2.3" , # For reading the flake8 config from pyproject.toml
56+ " pydoclint == 0.3.1" ,
5357 " pydocstyle == 6.3.0" ,
54- " darglint == 1.8.1" ,
55- " tomli == 2.0.1" , # Needed by pydocstyle to read pyproject.toml
5658]
5759dev-examples = [" polars == 0.18.15" ]
5860dev-formatting = [" black == 23.7.0" , " isort == 5.12.0" ]
@@ -63,35 +65,40 @@ dev-mkdocs = [
6365 " mkdocs-material == 9.2.5" ,
6466 " mkdocs-section-index == 0.3.5" ,
6567 " mkdocstrings[python] == 0.22.0" ,
66- " frequenz-repo-config[lib] == 0.5.2 " ,
68+ " frequenz-repo-config[lib] == 0.6.1 " ,
6769]
6870dev-mypy = [
6971 " mypy == 1.5.1" ,
70- " grpc-stubs == 1.24.12" , # This dependency introduces breaking changes in patch releases
72+ " grpc-stubs == 1.24.12" , # This dependency introduces breaking changes in patch releases
73+ " types-Markdown == 3.4.2.10" ,
74+ " types-PyYAML == 6.0.12.11" ,
75+ " types-Pygments == 2.16.0.0" ,
76+ " types-colorama == 0.4.15.12" ,
7177 " types-protobuf == 4.24.0.1" ,
78+ " types-python-dateutil == 2.8.19.14" ,
79+ " types-pytz == 2023.3.0.1" ,
80+ " types-setuptools == 68.1.0.0" ,
7281 # For checking the noxfile, docs/ script, and tests
7382 " frequenz-sdk[dev-mkdocs,dev-noxfile,dev-pytest]" ,
7483]
75- dev-noxfile = [" nox == 2023.4.22" , " frequenz-repo-config[lib] == 0.5.2 " ]
84+ dev-noxfile = [" nox == 2023.4.22" , " frequenz-repo-config[lib] == 0.6.1 " ]
7685dev-pylint = [
7786 " pylint == 2.17.5" ,
7887 # For checking the noxfile, docs/ script, and tests
7988 " frequenz-sdk[dev-mkdocs,dev-noxfile,dev-pytest]" ,
8089]
8190dev-pytest = [
8291 " pytest == 7.4.0" ,
83- " frequenz-repo-config[extra-lint-examples] == 0.5.2 " ,
92+ " frequenz-repo-config[extra-lint-examples] == 0.6.1 " ,
8493 " pytest-mock == 3.11.1" ,
8594 " pytest-asyncio == 0.21.1" ,
8695 " time-machine == 2.12.0" ,
8796 " async-solipsism == 0.5" ,
8897 # For checking docstring code examples
89- " sybil == 5.0.3" ,
90- " pylint == 2.17.5" ,
9198 " frequenz-sdk[dev-examples]" ,
9299]
93100dev = [
94- " frequenz-sdk[dev-mkdocs,dev-docstrings ,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]" ,
101+ " frequenz-sdk[dev-mkdocs,dev-flake8 ,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]" ,
95102]
96103
97104[project .urls ]
@@ -110,6 +117,23 @@ profile = "black"
110117line_length = 88
111118src_paths = [" benchmarks" , " examples" , " src" , " tests" ]
112119
120+ [tool .flake8 ]
121+ # We give some flexibility to go over 88, there are cases like long URLs or
122+ # code in documenation that have extra indentation. Black will still take care
123+ # of making everything that can be 88 wide, 88 wide.
124+ max-line-length = 100
125+ extend-ignore = [
126+ " E203" , # Whitespace before ':' (conflicts with black)
127+ " W503" , # Line break before binary operator (conflicts with black)
128+ ]
129+ # pydoclint options
130+ style = " google"
131+ allow-init-docstring = true
132+ arg-type-hints-in-docstring = false
133+ arg-type-hints-in-signature = true
134+ check-return-types = false
135+ check-yield-types = false
136+
113137[tool .pylint .similarities ]
114138ignore-comments = [' yes' ]
115139ignore-docstrings = [' yes' ]
@@ -125,6 +149,10 @@ disable = [
125149 # pylint's unsubscriptable check is buggy and is not needed because
126150 # it is a type-check, for which we already have mypy.
127151 " unsubscriptable-object" ,
152+ # Checked by flake8
153+ " line-too-long" ,
154+ " unused-variable" ,
155+ " unnecessary-lambda-assignment" ,
128156]
129157
130158[tool .pylint .design ]
0 commit comments