-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
setup.cfg
122 lines (97 loc) · 2.65 KB
/
setup.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# All configuration for plugins and other utils is defined here.
# Read more about `setup.cfg`:
# https://docs.python.org/3/distutils/configfile.html
[flake8]
format = wemake
show-source = true
doctests = false
statistics = false
# darglint configuration:
# https://github.com/terrencepreilly/darglint
strictness = long
docstring-style = numpy
# Plugins:
max-complexity = 6
max-line-length = 80
# wemake-python-styleguide
max-line-complexity = 16
i-control-code = false
exclude =
# Trash and cache:
.git
__pycache__
.venv
.eggs
*.egg
temp
ignore = D100, D104, D401, W504, X100, WPS121, RST299, RST303, RST304, DAR103, DAR203
per-file-ignores =
classes/__init__.py: F401, WPS113, WPS436
classes/_typeclass.py: WPS320, WPS436
# We need `assert`s to please mypy:
classes/contrib/mypy/*.py: S101
# There are multiple assert's in tests:
tests/*.py: S101, WPS202, WPS226, WPS431, WPS432, WPS436
[isort]
# isort configuration:
# # https://pycqa.github.io/isort/docs/configuration/profiles.html
profile = wemake
[tool:pytest]
# py.test options:
norecursedirs = temp *.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-config
--strict-markers
--doctest-modules
--doctest-glob='*.md'
--doctest-glob='*.rst'
--cov=classes
--cov-report=term:skip-covered
--cov-report=html
--cov-report=xml
--cov-branch
--cov-fail-under=100
--mypy-ini-file=setup.cfg
[coverage:run]
omit =
# We test mypy plugins with `pytest-mypy-plugins`,
# which does not work with coverage:
classes/contrib/mypy/*
[coverage:report]
exclude_lines =
# a more strict default pragma
\# pragma: no cover\b
^if TYPE_CHECKING:
[mypy]
# mypy configurations: http://bit.ly/2zEl9WI
# Plugins, includes custom:
plugins =
classes.contrib.mypy.classes_plugin
allow_redefinition = false
check_untyped_defs = 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_no_return = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_unused_configs = true
warn_unreachable = true
[doc8]
# doc8 configuration: https://pypi.org/project/doc8/
ignore-path = docs/_build
max-line-length = 80
sphinx = true
[codespell]
# codespell configuration: https://pypi.org/project/codespell
skip = __pycache__,_build,.mypy_cache,docs/htmlcov