[mypy]
python_version = 3.10
ignore_missing_imports = True
warn_redundant_casts = True
warn_unused_ignores = True
warn_return_any = False
strict_optional = False
pretty = True
files = src, tests, examples
# `examples/e2e-suite/app/` shares the top-level package name `app` with
# `examples/hello-world/app/`, which makes mypy fail with a duplicate-module
# error in whole-tree mode. The suite is exercised end-to-end by Maestro and
# imports `app.screens.*` via a PYTHONPATH that only `pn run` sets, so it is
# not a meaningful mypy target. Ruff + Black still cover it.
exclude = (^build/|^examples/.*/build/|^examples/e2e-suite/)
disallow_untyped_defs = True
disallow_incomplete_defs = True
[mypy-pythonnative.*]
implicit_reexport = True
disable_error_code = attr-defined,no-redef
[mypy-pythonnative.native_views]
disable_error_code = misc
[mypy-pythonnative.native_views.*]
disable_error_code = misc