[flake8]
ignore =
    # E203 whitespace before ':'
    E203,
    # E221: multiple spaces before operator
    E221,
    # E241: multiple spaces after ':'
    E241,
    # E402: module level import not at top of file
    E402,
    # E501: line too long
    E501,
    # E741 ambiguous variable name
    E741,
    # W503: line break before binary operator
    W503,
    # flake8-requirements import checks
    I
per-file-ignores =
    core/mocks/generated/*:F4

[isort]
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
combine_as_imports = True
line_length = 88
not_skip=__init__.py
known_standard_library = micropython,ubinascii,ustruct,uctypes,utime,utimeq,trezorio,trezorui,trezorutils,trezorconfig,trezorcrypto
known_third_party = curve25519,ecdsa,hypothesis,pytest,mnemonic,shamir-mnemonic,trezor,storage,protobuf
known_first_party = trezorlib,apps

[tool:pytest]
addopts = -rfE --strict-markers --random-order
testpaths = tests crypto storage python/tests
xfail_strict = true
junit_family = xunit2

[mypy]
mypy_path = src,mocks,mocks/generated
check_untyped_defs = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_decorators = True
disallow_untyped_defs = True
disallow_incomplete_defs = True
namespace_packages = True
no_implicit_optional = True
warn_redundant_casts = True
warn_return_any = True
warn_unused_configs = True
warn_unused_ignores = True
show_error_codes = True
# type union operator support, should be removed after 3.10 is the default
python_version = 3.10

[pylint.MASTER]
ignore-paths=
    core/src/all_modules.py,
    core/src/apps/ethereum/tokens.py,
    core/src/trezor/res/resources.py,
    core/src/trezor/messages.py,
    core/src/trezor/enums,
    crypto,
    legacy,
    storage,
fail-under=10.0
jobs=0

[pylint."MESSAGE CONTROL"]
disable=all
enable=
    assignment-from-none,
    chained-comparison,
    consider-merging-isinstance,
    consider-using-dict-comprehension,
    consider-using-dict-items,
    consider-using-f-string,
    consider-using-in,
    dangerous-default-value,
    inconsistent-return-statements,
    lost-exception,
    pointless-string-statement,
    reimported,
    simplifiable-if-statement,
    super-init-not-called,
    superfluous-parens,
    unused-variable,
    use-list-literal,
    useless-else-on-loop,
    useless-object-inheritance,