[CUSTOM PYTA OPTIONS]

# Make sure to register custom options tuple first in `python_ta/__init__.py`
# ===========================================================
# Default max amount of messages for reporter to display.
pyta-number-of-messages = 5

# Set whether to use the type-checking checker.
pyta-type-check = no

# (DEPRECATED: Use output-format option below.) Set the [REPORTS] output-format option instead.
# pyta-reporter = HTMLReporter

# Set the location of the template for HTMLreporter.
pyta-template-file = template.html.jinja

#Set whether you wish to opt-in to anonymous data collection of errors reported when you run PyTA.
pyta-error-permission = no

#Set whether you wish to opt-in to anonymous data collection of the files you run PyTA on.
pyta-file-permission = no

# Server address for data submission participation.
pyta-server-address = http://127.0.0.1:5000

[REPORTS]
# The type of reporter to use to display results. Available PyTA classes are
# PlainReporter, ColorReporter, HTMLReporter, JSONReporter.
# Replaces the pyta-reporter option.
output-format = python_ta.reporters.HTMLReporter

[ELIF]

# Set maximum allowed if nesting.
max-nested-blocks = 3

[FORMAT]

# Set the maximum line length. The maximum line length in pep8 is 80 characters.
max-line-length = 80

# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines = ^\s*((# )?<?https?://\S+>?)|(>>>.*)$

[FORBIDDEN IMPORT]

# Set the whitelist of modules that are allowed to be imported
allowed-import-modules = dataclasses, doctest, unittest, hypothesis, pytest, python_ta, python_ta.contracts,
                         timeit, typing, __future__
extra-imports =
[FORBIDDEN IO]

# Comma-separated names of functions that are allowed to contain IO actions
allowed-io =

[MESSAGES CONTROL]

# Disable the message, report, category or checker with the given id(s).
disable=
    E0100, E0105, E0106, E0110, E0112, E0113, E0114, E0115, E0116, E0117, E0118,
    E0236, E0237, E0238, E0240, E0242, E0243, E0305, E0308, E0309, E0310, E0311, E0312, E0313,
    E0402,
    E0603, E0604, E0605,
    E0703, W0707,
    E1124, E1125, E1132, E1139, E1142,
    E1200, E1201, E1205, E1206,
    E1300, E1301, E1302, E1303, E1304,
    W1406,
    E1507,
    E1700, E1701,
    W0111, W0120, W0150, W0177,
    W0232, W0235, W0236, W0238,
    W0601, W0602, W0614, W0640,
    W1113, W1115,
    W1300, W1301, W1302, W1306, W1307,
    W1502, W1503, W1505, W1506, W1507, W1508, W1509, W1510, W1511, W1512, W1513, W1514,
    C0122,
    C0200, C0202, C0203, C0204, C0205, C0206, C0207, C0208,
    C0327, C0328,
    R0202, R0203, R0206,
    R0901, R0903, R0904, R0911,
    R1703, R1705, R1706, R1708, R1709, R1711, R1717, R1718, R1719, R1720, R1722, R1723, R1724,
    R1728, R1730, R1731,
    F0202,
    W0402, W0407,
    W0603,
    W1201, W1202,
    I0023,
    I1101,
    python3,
    similarities,
    spelling


# Enable single-letter identifiers
function-rgx = (([a-z][a-z0-9_]{0,30})|(_[a-z0-9_]*))$
variable-rgx = (([a-z][a-z0-9_]{0,30})|(_[a-z0-9_]*)|([A-Z_][A-Z0-9_]*))$
const-rgx    = (([A-Z_][A-Z0-9_]*)|(__.*__))$
attr-rgx     = (([a-z][a-z0-9_]{0,30})|(_[a-z0-9_]*))$
argument-rgx = (([a-z][a-z0-9_]{0,30})|(_[a-z0-9_]*))$
class-rgx    = (([A-Z][a-zA-Z0-9]{0,30})|(_[A-Z][a-zA-Z0-9]*))$
method-rgx   = (([a-z][a-z0-9_]{0,30})|(_[a-z0-9_]*))$
class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{0,30}|(__.*__))$

[PYCODESTYLE]
# Ignored pycodestyle checks
pycodestyle-ignore =
    E111,  # pylint W0311
    E114,  # pylint W0311
    E117,  # pylint W0311
    E401,  # pylint C0410
    E402,  # pylint C0413
    E501,  # pylint C0301
    E701,  # pylint C0321
    E702,  # pylint C0321
    E703,  # pylint W0301
    E711,  # pylint C0121
    E712,  # pylint C0121
    E722,  # pylint W0702
    W291,  # pylint C0303
    W292,  # pylint C0304
    W293,  # pylint C0303
    W391,  # pylint C0305
    W503   # this one just conflicts with pycodestyle W504
