[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. If the value is 0, all messages are displayed.
pyta-number-of-messages = 0

# (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

# Path to messages_config toml file
# messages-config-path = messages.toml

# Allowing pylint: comments
allow-pylint-comments = no

# Set whether the default error messages by pylint should be overwritten by PythonTA's custom messages
use-pyta-error-messages = yes

[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 =
allow-local-imports = no

[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, E0244, E0305, E0308, E0309, E0310, E0311, E0312, E0313,
    E0402,
    E0603, E0604, E0605, E0606,
    E0703, W0707,
    E1124, E1125, E1132, E1139, E1142,
    E1200, E1201, E1205, E1206,
    E1300, E1301, E1302, E1303, E1304,
    W1406,
    E1507, E1519,
    E1700, E1701,
    W0120, W0131, W0135, W0150, W0177,
    W0213, W0235, W0236, W0238, W0244, W0246,
    W0601, W0602, W0614, W0640,
    W1113, W1115,
    W1300, W1301, W1302, W1306, W1307,
    W1502, W1503, W1505, W1506, W1507, W1508, W1509, W1510, W1511, W1512, W1513, W1514, W1518,
    C0103, C0105, C0131, C0132,
    C0200, C0202, C0203, C0204, C0205, C0206, C0207, C0208,
    C0327, C0328,
    R0202, R0203, R0206,
    R0901, R0903, R0904, R0911,
    R1703, R1705, R1706, R1708, R1709, R1710, R1711, R1717, R1718, R1719, R1720, R1722, R1723, R1724,
    R1728, R1729, R1730, R1731,
    C1803,
    F0202,
    W0402, W0407,
    W0603,
    W1201, W1202,
    I0023,
    I1101,
    lambda-expressions,
    similarities,
    spelling,
    threading,
    unnecessary-dunder-call,
    unsupported_version,
    E2502, E2510, E2511, E2512, E2513, E2514, E2515,
    missing-timeout, positional-only-arguments-expected


# 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
    E112,  # pylint E0001
    E113,  # pylint E0001
    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
    E741,  # pyta C9103
    E742,  # pyta C9103
    E743,  # pyta C9103
    E901,  # pylint E0001
    W291,  # pylint C0303
    W292,  # pylint C0304
    W293,  # pylint C0303
    W391,  # pylint C0305
    W503,  # this one just conflicts with pycodestyle W504
    W605,  # pylint W1401
