[mypy] # Logistics of what code to check and how to handle the data. scripts_are_modules = True show_traceback = True # See https://zulip.readthedocs.io/en/latest/testing/mypy.html#mypy-stubs-for-third-party-modules # for notes on how we manage mypy stubs. mypy_path = stubs/ cache_dir = var/mypy-cache # Options to make the checking stricter. check_untyped_defs = True disallow_untyped_defs = True disallow_any_generics = True warn_no_return = True strict_optional = True no_implicit_optional = True warn_redundant_casts = True warn_unused_ignores = True # Display the codes needed for # type: ignore[code] annotations. show_error_codes = True # We use a lot of third-party libraries we don't have stubs for, as # well as a handful of our own modules that we haven't told mypy how # to find. Ignore them. (For some details, see: # `git log -p -S ignore_missing_imports mypy.ini`.) # # This doesn't get in the way of using the stubs we *do* have. ignore_missing_imports = True # Warn of unreachable or redundant code. warn_unreachable = True [mypy-markdown.*] # The typeshed stubs for markdown in mypy 0.790 are very broken; # ignore them for now. (https://github.com/python/typeshed/pull/4758) follow_imports = skip follow_imports_for_stubs = True