Skip to content

Instantly share code, notes, and snippets.

@anatoly-scherbakov
Last active March 18, 2020 08:10
Show Gist options
  • Save anatoly-scherbakov/2cbf5553064565fe4e6258b9ba92014b to your computer and use it in GitHub Desktop.
Save anatoly-scherbakov/2cbf5553064565fe4e6258b9ba92014b to your computer and use it in GitHub Desktop.
My custom setup.cfg file for wemake-python-styleguide
# Source:
# https://github.com/wemake-services/wemake-python-styleguide/blob/master/setup.cfg
# All configuration for plugins and other utils is defined here.
# Read more about `setup.cfg`:
# https://docs.python.org/3/distutils/configfile.html
# === Linter configuration ===
# You can reuse this configuration in your own projects.
# See: https://wemake-python-stylegui.de/en/latest/pages/usage/integrations/nitpick.html
[flake8]
# Base flake8 configuration:
# https://flake8.pycqa.org/en/latest/user/configuration.html
format = wemake
show-source = True
statistics = False
doctests = True
# Plugins:
accept-encodings = utf-8
max-complexity = 6
max-line-length = 80
# Self settings:
max-imports = 15
# Excluding some directories:
exclude =
.git
__pycache__
.venv
.eggs
*.egg
venv
build
# Exclude some pydoctest checks globally:
ignore =
# Default WPS ignores
D100, D104, D401, W504, RST303, RST304, DAR103, DAR203,
# Let the coding magic comment die in depths of history
C101
# Inheriting a class from `object` is antiquated
WPS306
# I love f-strings!
WPS305
# What smart things can I say in __init__()?!
D107
per-file-ignores =
# There are multiple fixtures, `assert`s, and subprocesses in tests:
tests/*.py:
# Default WPS
S101, S105, S404, S603, S607, WPS211, WPS226,
# And magic numbers
WPS432,
# Test classes not necessarily have docstrings, I think
D101, D103,
# And short variable names
WPS110, WPS111,
# Pytest fixtures are sometimes shadowing a name from the outer scope
WPS442
__init__.py:
# it is allowed to import things you're not using in the __init__.py file itself.
F401
[isort]
# isort configuration:
# https://github.com/timothycrosley/isort/wiki/isort-Settings
include_trailing_comma = true
# See https://github.com/timothycrosley/isort#multi-line-output-modes
multi_line_output = 3
# Is the same as 80 in flake8:
line_length = 79
# Otherwise isort uses 2 spaces as indentation in continuation lines
indent = 4
[darglint]
# darglint configuration:
# https://github.com/terrencepreilly/darglint
strictness = long
[mypy]
# The mypy configurations: http://bit.ly/2zEl9WI
ignore_missing_imports = True
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
implicit_reexport = True
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
[mypy-tests.*]
# Prevents mypy from roaring at Pytest decorators.
disallow_untyped_decorators = False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment