[flake8]

# !!! BRING THE PAIN !!!
select = A,B,B9,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z

show-source = True
doctests    = True

max-line-length = 80

extend-exclude =
    .git,
    .tox,
    __pycache__,
    dist

# Codes: https://flake8.pycqa.org/en/latest/user/error-codes.html
extend-ignore =
    ######## WARNINGS BELOW SHOULD BE FIXED ########

    # Missing docstring in public module
    D100,

    # Missing docstring in public class
    D101,

    # Missing docstring in public method
    D102,

    # Missing docstring in public function
    D103,

    # Missing docstring in public package
    D104,

    # Missing docstring in magic method
    D105,

    # Missing docstring in __init__
    D107,

    # Use """triple double quotes"""
    D300,

    # First word of the first line should be properly capitalized
    D403,

    # Additional newline in a group of imports
    I202,

    ######## WARNINGS ABOVE SHOULD BE FIXED ########

    # Invalid first argument used for instance method
    B902,

    # One-line docstring should fit on one line with quotes
    D200,

    # No blank lines allowed after function docstring
    D202,

    # 1 blank line required between summary line and description
    D205,

    # First line should end with a period
    D400,

    # First line should be in imperative mood
    D401,

    # missing whitespace after ','
    E231,

    # function name should be lowercase
    N802,

    # argument name should be lowercase
    N803,

    # first argument of a method should be named 'self'
    N805,

    # variable in function should be lowercase
    N806,

    # lowercase imported as non lowercase
    N812,

    # variable in class scope should not be mixedCase
    N815,

    # variable in global scope should not be mixedCase
    N816,

    # line break before binary operator
    W503,

    B901,
    B904,
    B907,
    D419,
    N818,
