forked from MirrorHub/synapse
7148c2a0d6
We use the oldest Python version because later Python versions can include some overloads which don't work in the older versions which we still support. We're using Python 3.8 instead of 3.7 which is our actual minimum support version because it's EOL is in a matter of weeks so can avoid the extra effort. And in any case, minimum Python 3.8 support is better than winging it on Python 3.11.
86 lines
2.1 KiB
INI
86 lines
2.1 KiB
INI
[mypy]
|
|
namespace_packages = True
|
|
plugins = pydantic.mypy, mypy_zope:plugin, scripts-dev/mypy_synapse_plugin.py
|
|
follow_imports = normal
|
|
check_untyped_defs = True
|
|
show_error_codes = True
|
|
show_traceback = True
|
|
mypy_path = stubs
|
|
warn_unreachable = True
|
|
warn_unused_ignores = True
|
|
local_partial_types = True
|
|
no_implicit_optional = True
|
|
disallow_untyped_defs = True
|
|
strict_equality = True
|
|
warn_redundant_casts = True
|
|
# Run mypy type checking with the minimum supported Python version to catch new usage
|
|
# that isn't backwards-compatible (types, overloads, etc).
|
|
python_version = 3.8
|
|
|
|
files =
|
|
docker/,
|
|
scripts-dev/,
|
|
synapse/,
|
|
tests/,
|
|
build_rust.py
|
|
|
|
[mypy-synapse.metrics._reactor_metrics]
|
|
# This module imports select.epoll. That exists on Linux, but doesn't on macOS.
|
|
# See https://github.com/matrix-org/synapse/pull/11771.
|
|
warn_unused_ignores = False
|
|
|
|
[mypy-synapse.util.caches.treecache]
|
|
disallow_untyped_defs = False
|
|
|
|
[mypy-tests.util.caches.test_descriptors]
|
|
disallow_untyped_defs = False
|
|
|
|
;; Dependencies without annotations
|
|
;; Before ignoring a module, check to see if type stubs are available.
|
|
;; The `typeshed` project maintains stubs here:
|
|
;; https://github.com/python/typeshed/tree/master/stubs
|
|
;; and for each package `foo` there's a corresponding `types-foo` package on PyPI,
|
|
;; which we can pull in as a dev dependency by adding to `pyproject.toml`'s
|
|
;; `[tool.poetry.dev-dependencies]` list.
|
|
|
|
[mypy-authlib.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-ijson.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-lxml]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-msgpack]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-parameterized.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-pymacaroons.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-pympler.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-rust_python_jaeger_reporter.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-saml2.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-service_identity.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-srvlookup.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-treq.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-incremental.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-setuptools_rust.*]
|
|
ignore_missing_imports = True
|