blob: 74cb3aece88a88b60cc27674c07bb03f8ce9f6df [file] [log] [blame]
[mypy]
# Everything that can be ignored at package level (further below) should be.
# Here some paths are excluded from even being parsed, working around cases of
# invalid syntax we can't fix (yet) or where the code isn't in a package and
# there's no good place to add __init__.py files. The following are excluded:
# - tools/runner/ (written in Python 2)
# - tools/third_party/ (vendored dependencies)
# - All conftest.py and setup.py files
# - tests+docs directly under wptrunner+wptserve, which aren't packages.
exclude = (^tools/runner/|^tools/third_party/|/(conftest|setup)\.py$|^tools/wptrunner/test/|^tools/wptserve/docs/|^tools/wptserve/tests/)
#check_untyped_defs = True
disallow_any_generics = True
disallow_incomplete_defs = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_decorators = True
disallow_untyped_defs = True
no_implicit_optional = True
strict_equality = True
warn_redundant_casts = True
warn_return_any = True
warn_unused_configs = True
warn_unused_ignores = True
# Ignore missing or untyped libraries.
[mypy-github.*]
ignore_missing_imports = True
[mypy-html5lib.*]
ignore_missing_imports = True
[mypy-marionette_driver.*]
ignore_missing_imports = True
[mypy-mod_pywebsocket.*]
ignore_missing_imports = True
[mypy-mozcrash.*]
ignore_missing_imports = True
[mypy-mozdebug.*]
ignore_missing_imports = True
[mypy-mozdevice.*]
ignore_missing_imports = True
[mypy-mozinfo.*]
ignore_missing_imports = True
[mypy-mozinstall.*]
ignore_missing_imports = True
[mypy-mozleak.*]
ignore_missing_imports = True
[mypy-mozlog.*]
ignore_missing_imports = True
[mypy-moznetwork.*]
ignore_missing_imports = True
[mypy-mozprocess.*]
ignore_missing_imports = True
[mypy-mozprofile.*]
ignore_missing_imports = True
[mypy-mozrunner.*]
ignore_missing_imports = True
[mypy-mozversion.*]
ignore_missing_imports = True
[mypy-PIL.*]
ignore_missing_imports = True
[mypy-psutil.*]
ignore_missing_imports = True
[mypy-pytest.*]
ignore_missing_imports = True
[mypy-selenium.*]
ignore_missing_imports = True
[mypy-taskcluster.*]
ignore_missing_imports = True
[mypy-ua_parser.*]
ignore_missing_imports = True
[mypy-websockets.*]
ignore_missing_imports = True
[mypy-zstandard.*]
ignore_missing_imports = True
# Ignore errors in tests.
[mypy-tools.ci.tests.*]
ignore_errors = True
[mypy-tools.ci.tc.tests.*]
ignore_errors = True
[mypy-tools.gitignore.tests.*]
ignore_errors = True
[mypy-tools.lint.tests.*]
ignore_errors = True
[mypy-tools.manifest.tests.*]
ignore_errors = True
[mypy-tools.wpt.tests.*]
ignore_errors = True
[mypy-wptrunner.tests.*]
ignore_errors = True
[mypy-wptrunner.formatters.tests.*]
ignore_errors = True
[mypy-wptrunner.wptmanifest.tests.*]
ignore_errors = True
# Ignore errors in parts of the code which don't have type annotations or where
# mypy has never been run. TODO: Enable mypy for all of the below.
[mypy-tools.ci.*]
disallow_untyped_defs = False
[mypy-tools.docker.*]
disallow_untyped_defs = False
[mypy-tools.serve.*]
disallow_untyped_defs = False
[mypy-tools.wave.*]
disallow_untyped_defs = False
[mypy-tools.wpt.*]
disallow_untyped_defs = False
[mypy-webdriver.*]
disallow_untyped_defs = False
[mypy-wptrunner.*]
disallow_untyped_defs = False
[mypy-wptserve.*]
ignore_errors = True
[mypy-tools.webtransport.*]
disallow_subclassing_any = False
warn_return_any = False