# .flake8
#
# DESCRIPTION
#     Configuration file for the python linter flake8.
#
[flake8]

################### PROGRAM ################################

# Specify the number of subprocesses that Flake8 will use to run checks in parallel.
jobs = auto


################### OUTPUT #################################

########## FORMATTING ##########

# Select the formatter used to display errors to the user.
format = pylint
# Print the total number of errors.
count = True
# Print the source code generating the error/warning in question.
show-source = True
# Count the number of occurrences of each error/warning code and print a report.
statistics = False

################### FILE PATTERNS ##########################

# Provide a comma-separated list of glob patterns to exclude from checks.
exclude =

# Provide a comma-separate list of glob patterns to include for checks.
filename =
    *.py


################### LINTING ################################

########## ENVIRONMENT ##########

# Provide a custom list of builtin functions, objects, names, etc.
builtins =


########## OPTIONS ##########

# Set the maximum length that any line (with some exceptions) may be.
max-line-length = 100
# Set the maximum allowed McCabe complexity value for a block of code.
max-complexity = 10
# Toggle whether pycodestyle should enforce matching the indentation of the opening bracket’s line.
# incluences E131 and E133
hang-closing = True


########## RULES ##########

# ERROR CODES
#
# E/W  - PEP8 errors/warnings (pycodestyle)
# F    - linting errors (pyflakes)
# C    - McCabe complexity error (mccabe)
#
# C407 - Unnecessary list comprehension.
# C408 - Unnecessary dict call.
# E133 - Closing bracket is missing indentation.
# E226 - Missing whitespace around arithmetic operator.
#
# Specify a list of codes to ignore.
ignore =
    C407,
    C408,
    E133,
    E226,
# Specify the list of error codes you wish Flake8 to report.
select =
    E,
    W,
    F,
    C
