# All configuration for plugins and other utils is defined here. # Read more about `setup.cfg`: # https://docs.python.org/3/distutils/configfile.html [flake8] # flake8 configuration: # https://flake8.pycqa.org/en/latest/user/configuration.html format = wemake show-source = True statistics = False doctests = True enable-extensions = G # darglint configuration: # https://github.com/terrencepreilly/darglint strictness = long docstring-style = numpy # Flake plugins: max-line-length = 80 max-complexity = 6 # Excluding some directories: exclude = .git,__pycache__,.venv,.eggs,*.egg # Disable some pydocstyle checks: ignore = D100, D104, D106, D401, X100, W504, RST303, RST304, DAR103, DAR203 # Docs: https://github.com/snoack/flake8-per-file-ignores # You can completely or partially disable our custom checks, # to do so you have to ignore `WPS` letters for all python files: per-file-ignores = # Allow `__init__.py` with logic for configuration: server/settings/*.py: WPS226, WPS407, WPS412, WPS432 # Allow to have magic numbers inside migrations and wrong module names: server/*/migrations/*.py: WPS102, WPS114, WPS432 # Enable `assert` keyword and magic numbers for tests: tests/*.py: S101, WPS432 [isort] # isort configuration: # https://github.com/timothycrosley/isort/wiki/isort-Settings include_trailing_comma = true use_parentheses = true # See https://github.com/timothycrosley/isort#multi-line-output-modes multi_line_output = 3 line_length = 80 [tool:pytest] # pytest configuration: # https://docs.pytest.org/en/stable/customize.html # pytest-django configuration: # https://pytest-django.readthedocs.io/en/latest/ DJANGO_SETTINGS_MODULE = server.settings # Timeout for tests, so they can not take longer # than this amount of seconds. # You should adjust this value to be as low as possible. # Configuration: # https://pypi.org/project/pytest-timeout/ timeout = 5 # Directories that are not visited by pytest collector: norecursedirs = *.egg .eggs dist build docs .tox .git __pycache__ # You will need to measure your tests speed with `-n auto` and without it, # so you can see whether it gives you any performance gain, or just gives # you an overhead. See `docs/template/development-process.rst`. addopts = --strict-markers --strict-config --doctest-modules --fail-on-template-vars --dup-fixtures # Output: --tb=short # Parallelism: # -n auto # --boxed # Coverage: --cov=server --cov=tests --cov-branch --cov-report=term-missing:skip-covered --cov-report=html --cov-fail-under=100 [coverage:run] # Coverage configuration: # https://coverage.readthedocs.io/en/latest/config.html plugins = # Docs: https://github.com/nedbat/django_coverage_plugin django_coverage_plugin [mypy] # Mypy configuration: # https://mypy.readthedocs.io/en/latest/config_file.html allow_redefinition = False check_untyped_defs = True disallow_untyped_decorators = True disallow_any_explicit = True disallow_any_generics = True disallow_untyped_calls = True ignore_errors = False ignore_missing_imports = True implicit_reexport = False local_partial_types = True strict_optional = True strict_equality = True no_implicit_optional = True warn_unused_ignores = True warn_redundant_casts = True warn_unused_configs = True warn_unreachable = True warn_no_return = True plugins = mypy_django_plugin.main [mypy.plugins.django-stubs] django_settings_module = server.settings [mypy-server.apps.*.migrations.*] # Django migrations should not produce any errors: ignore_errors = True [mypy-server.apps.*.models] # FIXME: remove this line, when `django-stubs` will stop # using `Any` inside. disallow_any_explicit = False [doc8] # doc8 configuration: # https://github.com/pycqa/doc8 ignore-path = docs/_build max-line-length = 80 sphinx = True