Configure mypy

No fixes yet, this just gets the config in place.

Note: I'm assuming that we'll pick up a change to parso such that
it exposes its type stubs here. Otherwise we'll want to tweak the
imports config to ignore those errors.
This commit is contained in:
Peter Law
2020-07-21 22:19:24 +01:00
parent 480c352d33
commit c09e21ae4b
3 changed files with 34 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ matrix:
script:
# Ignore F401, which are unused imports. flake8 is a primitive tool and is sometimes wrong.
- 'flake8 --extend-ignore F401 jedi setup.py'
- 'mypy jedi'
install:
- sudo apt-get -y install python3-venv
- pip install .[testing]

View File

@@ -19,3 +19,35 @@ exclude = jedi/third_party/* .tox/*
[pycodestyle]
max-line-length = 100
[mypy]
# Ensure generics are explicit about what they are (e.g: `List[str]` rather than
# just `List`)
disallow_any_generics = True
disallow_subclassing_any = True
# Ensure that optional types are explicit
no_implicit_optional = True
strict_optional = True
# Avoid creating future gotchas emerging from bad typing
warn_redundant_casts = True
warn_unused_ignores = True
warn_return_any = True
warn_unused_configs = True
warn_unreachable = True
# Require values to be explicitly re-exported; this makes things easier for
# Flake8 too and avoids accidentally importing thing from the "wrong" place
# (which helps avoid circular imports)
implicit_reexport = False
strict_equality = True
[mypy-jedi.debug]
# jedi.debug is configured by setting module-level values, which mypy doesn't
# know about.
warn_unreachable = False

View File

@@ -46,6 +46,7 @@ setup(name='jedi',
],
'qa': [
'flake8==3.8.3',
'mypy==0.782',
],
},
package_data={'jedi': ['*.pyi', 'third_party/typeshed/LICENSE',