[mypy] namespace_packages = True plugins = 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 local_partial_types = True no_implicit_optional = True # To find all folders that pass mypy you run: # # find synapse/* -type d -not -name __pycache__ -exec bash -c "mypy '{}' > /dev/null" \; -print files = scripts-dev/sign_json, synapse/__init__.py, synapse/api, synapse/appservice, synapse/config, synapse/crypto, synapse/event_auth.py, synapse/events/builder.py, synapse/events/presence_router.py, synapse/events/snapshot.py, synapse/events/spamcheck.py, synapse/events/third_party_rules.py, synapse/events/utils.py, synapse/events/validator.py, synapse/federation, synapse/groups, synapse/handlers, synapse/http, synapse/logging, synapse/metrics, synapse/module_api, synapse/notifier.py, synapse/push, synapse/replication, synapse/rest, synapse/server.py, synapse/server_notices, synapse/spam_checker_api, synapse/state, synapse/storage/__init__.py, synapse/storage/_base.py, synapse/storage/background_updates.py, synapse/storage/databases/main/appservice.py, synapse/storage/databases/main/client_ips.py, synapse/storage/databases/main/events.py, synapse/storage/databases/main/keys.py, synapse/storage/databases/main/pusher.py, synapse/storage/databases/main/registration.py, synapse/storage/databases/main/relations.py, synapse/storage/databases/main/session.py, synapse/storage/databases/main/stream.py, synapse/storage/databases/main/ui_auth.py, synapse/storage/databases/state, synapse/storage/database.py, synapse/storage/engines, synapse/storage/keys.py, synapse/storage/persist_events.py, synapse/storage/prepare_database.py, synapse/storage/purge_events.py, synapse/storage/push_rule.py, synapse/storage/relations.py, synapse/storage/roommember.py, synapse/storage/state.py, synapse/storage/types.py, synapse/storage/util, synapse/streams, synapse/types.py, synapse/util, synapse/visibility.py, tests/replication, tests/test_event_auth.py, tests/test_utils, tests/handlers/test_password_providers.py, tests/handlers/test_room.py, tests/handlers/test_room_summary.py, tests/handlers/test_send_email.py, tests/handlers/test_sync.py, tests/handlers/test_user_directory.py, tests/rest/client/test_login.py, tests/rest/client/test_auth.py, tests/rest/client/test_relations.py, tests/rest/media/v1/test_filepath.py, tests/rest/media/v1/test_oembed.py, tests/storage/test_state.py, tests/storage/test_user_directory.py, tests/util/test_itertools.py, tests/util/test_stream_change_cache.py [mypy-synapse.api.*] disallow_untyped_defs = True [mypy-synapse.crypto.*] disallow_untyped_defs = True [mypy-synapse.events.*] disallow_untyped_defs = True [mypy-synapse.handlers.*] disallow_untyped_defs = True [mypy-synapse.push.*] disallow_untyped_defs = True [mypy-synapse.rest.*] disallow_untyped_defs = True [mypy-synapse.server_notices.*] disallow_untyped_defs = True [mypy-synapse.state.*] disallow_untyped_defs = True [mypy-synapse.storage.databases.main.client_ips] disallow_untyped_defs = True [mypy-synapse.storage.util.*] disallow_untyped_defs = True [mypy-synapse.streams.*] disallow_untyped_defs = True [mypy-synapse.util.batching_queue] disallow_untyped_defs = True [mypy-synapse.util.caches.cached_call] disallow_untyped_defs = True [mypy-synapse.util.caches.dictionary_cache] disallow_untyped_defs = True [mypy-synapse.util.caches.lrucache] disallow_untyped_defs = True [mypy-synapse.util.caches.response_cache] disallow_untyped_defs = True [mypy-synapse.util.caches.stream_change_cache] disallow_untyped_defs = True [mypy-synapse.util.caches.ttl_cache] disallow_untyped_defs = True [mypy-synapse.util.daemonize] disallow_untyped_defs = True [mypy-synapse.util.file_consumer] disallow_untyped_defs = True [mypy-synapse.util.frozenutils] disallow_untyped_defs = True [mypy-synapse.util.hash] disallow_untyped_defs = True [mypy-synapse.util.httpresourcetree] disallow_untyped_defs = True [mypy-synapse.util.iterutils] disallow_untyped_defs = True [mypy-synapse.util.linked_list] disallow_untyped_defs = True [mypy-synapse.util.logcontext] disallow_untyped_defs = True [mypy-synapse.util.logformatter] disallow_untyped_defs = True [mypy-synapse.util.macaroons] disallow_untyped_defs = True [mypy-synapse.util.manhole] disallow_untyped_defs = True [mypy-synapse.util.module_loader] disallow_untyped_defs = True [mypy-synapse.util.msisdn] disallow_untyped_defs = True [mypy-synapse.util.patch_inline_callbacks] disallow_untyped_defs = True [mypy-synapse.util.ratelimitutils] disallow_untyped_defs = True [mypy-synapse.util.retryutils] disallow_untyped_defs = True [mypy-synapse.util.rlimit] disallow_untyped_defs = True [mypy-synapse.util.stringutils] disallow_untyped_defs = True [mypy-synapse.util.templates] disallow_untyped_defs = True [mypy-synapse.util.threepids] disallow_untyped_defs = True [mypy-synapse.util.wheel_timer] disallow_untyped_defs = True [mypy-synapse.util.versionstring] disallow_untyped_defs = True [mypy-tests.handlers.test_user_directory] disallow_untyped_defs = True [mypy-tests.storage.test_user_directory] disallow_untyped_defs = True ;; 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 `setup.py`'s ;; `CONDITIONAL_REQUIREMENTS["mypy"]` list. [mypy-authlib.*] ignore_missing_imports = True [mypy-bcrypt] ignore_missing_imports = True [mypy-canonicaljson] ignore_missing_imports = True [mypy-constantly] ignore_missing_imports = True [mypy-daemonize] ignore_missing_imports = True [mypy-h11] ignore_missing_imports = True [mypy-hiredis] ignore_missing_imports = True [mypy-hyperlink] ignore_missing_imports = True [mypy-ijson.*] ignore_missing_imports = True [mypy-jaeger_client.*] ignore_missing_imports = True [mypy-josepy.*] ignore_missing_imports = True [mypy-jwt.*] ignore_missing_imports = True [mypy-lxml] ignore_missing_imports = True [mypy-msgpack] ignore_missing_imports = True [mypy-nacl.*] ignore_missing_imports = True [mypy-netaddr] ignore_missing_imports = True [mypy-opentracing] ignore_missing_imports = True [mypy-phonenumbers.*] ignore_missing_imports = True [mypy-prometheus_client.*] 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-sentry_sdk] ignore_missing_imports = True [mypy-service_identity.*] ignore_missing_imports = True [mypy-signedjson.*] ignore_missing_imports = True [mypy-treq.*] ignore_missing_imports = True [mypy-twisted.*] ignore_missing_imports = True [mypy-zope] ignore_missing_imports = True