From df9bf80170bbfd4c281ec52dbacab3e34c8c6c3f Mon Sep 17 00:00:00 2001 From: Marko Durkovic Date: Wed, 1 Mar 2023 20:12:57 +0100 Subject: [PATCH] Update tooling --- .gitlab-ci.yml | 6 +++++- pyproject.toml | 44 +++++++++++++++++++------------------------- setup.cfg | 13 +++++-------- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d102bd4e..fb06de2b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,11 @@ test: - python3.8 -m venv venv - venv/bin/python -m pip install -r requirements-dev.txt - venv/bin/python -m pip install -e .[dev] - - venv/bin/python -m pytest + - venv/bin/pytest --cov-report=term --cov-report=xml --junit-xml=report.xml + - venv/bin/flake8 src tests + - venv/bin/mypy --no-error-summary src tests + - venv/bin/pylint --jobs 0 --score n src tests + - venv/bin/yapf -dpr src tests - venv/bin/sphinx-build docs public coverage: '/\d+\%\s*$/' artifacts: diff --git a/pyproject.toml b/pyproject.toml index 1494a21e..252a2f78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,25 +1,25 @@ [build-system] -requires = ["setuptools>=56.2.0", "wheel"] +requires = ["setuptools>=65.4.0", "wheel"] build-backend = "setuptools.build_meta" -[tool.coverage.report] -exclude_lines = [ +[tool.coverage] +report.exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "if __name__ == '__main__':", ] +report.show_missing = true +report.skip_covered = true +run.branch = true +run.source = ["src"] -[tool.coverage.run] -source = [ - "src", -] [tool.flake8] avoid_escape = false docstring_convention = "all" docstring_style = "google" -extend_exclude = ["venv*", ".venv*"] +extend_exclude = ["venv"] ignore = [ # do not require annotation of `self` "ANN101", @@ -40,25 +40,31 @@ max_line_length = 100 strictness = "long" suppress_none_returning = true + [tool.isort] include_trailing_comma = true line_length = 100 multi_line_output = 3 + [tool.mypy] explicit_package_bases = true -mypy_path = "$MYPY_CONFIG_FILE_DIR/src" +fast_module_lookup = true +mypy_path = "src" namespace_packages = true strict = true + [[tool.mypy.overrides]] module = "lz4.frame" ignore_missing_imports = true + [tool.pydocstyle] convention = "google" add_select = ["D204", "D400", "D401", "D404", "D413"] + [tool.pylint.'MESSAGES CONTROL'] enable = "all" disable = [ @@ -72,7 +78,7 @@ disable = [ "too-many-branches", # fixme "fixme", - # pep8-naming (pylint FAQ", keep: invalid-name) + # pep8-naming (pylint FAQ, keep: invalid-name) "bad-classmethod-argument", "bad-mcs-classmethod-argument", "no-self-argument", @@ -95,22 +101,10 @@ disable = [ "unused-variable", ] + [tool.pytest.ini_options] -addopts = [ - "-v", - "--flake8", - "--mypy", - "--pylint", - "--yapf", - "--cov", - "--cov-branch", - "--cov-report=html", - "--cov-report=term", - "--cov-report=xml", - "--no-cov-on-fail", - "--junitxml=report.xml", -] -junit_family = "xunit2" +addopts = ["--cov=src", "--verbose"] + [tool.yapf] based_on_style = "google" diff --git a/setup.cfg b/setup.cfg index cf214f18..0b4ded51 100644 --- a/setup.cfg +++ b/setup.cfg @@ -44,7 +44,6 @@ include_package_data = true package_dir = = src packages = find_namespace: -zip_safe = false python_requires = >=3.8.2 install_requires = @@ -79,22 +78,20 @@ dev = flake8-use-fstring mypy pep8-naming + pylint pytest pytest-cov - pytest-flake8 - pytest-mypy - pytest-pylint - pytest-yapf3 sphinx sphinx-autodoc-typehints sphinx-rtd-theme + toml # required by yapf yapf -[options.packages.find] -where = src - [options.package_data] * = py.typed +[options.packages.find] +where = src + [sdist] formats = gztar, zip