Configure mypy and flake8 for our re-export files

This removes the need to use __all__ in these files, while also
allowing us to have strictness elsewhere in the codebase.
This commit is contained in:
Peter Law
2020-07-26 12:20:08 +01:00
parent 45c90efb5c
commit cefc363f64
4 changed files with 15 additions and 35 deletions

View File

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

View File

@@ -1,23 +1,10 @@
# This file also re-exports symbols for wider use. We configure mypy and flake8
# to be aware that this file does this.
from jedi.inference.compiled.value import CompiledValue, CompiledName, \ from jedi.inference.compiled.value import CompiledValue, CompiledName, \
CompiledValueFilter, CompiledValueName, create_from_access_path CompiledValueFilter, CompiledValueName, create_from_access_path
from jedi.inference.base_value import LazyValueWrapper from jedi.inference.base_value import LazyValueWrapper
__all__ = (
'CompiledValue',
'CompiledName',
'CompiledValueFilter',
'CompiledValueName',
'create_from_access_path',
'LazyValueWrapper',
'builtin_from_name',
'ExactValue',
'create_simple_object',
'get_string_value_set',
'load_module',
)
def builtin_from_name(inference_state, string): def builtin_from_name(inference_state, string):
typing_builtins_module = inference_state.builtins_module typing_builtins_module = inference_state.builtins_module

View File

@@ -1,21 +1,9 @@
# Re-export symbols for wider use. We configure mypy and flake8 to be aware that
# this file does this.
from jedi.inference.value.module import ModuleValue from jedi.inference.value.module import ModuleValue
from jedi.inference.value.klass import ClassValue from jedi.inference.value.klass import ClassValue
from jedi.inference.value.function import FunctionValue, \ from jedi.inference.value.function import FunctionValue, \
MethodValue MethodValue
from jedi.inference.value.instance import AnonymousInstance, BoundMethod, \ from jedi.inference.value.instance import AnonymousInstance, BoundMethod, \
CompiledInstance, AbstractInstanceValue, TreeInstance CompiledInstance, AbstractInstanceValue, TreeInstance
__all__ = (
'ModuleValue',
'ClassValue',
'FunctionValue',
'MethodValue',
'AnonymousInstance',
'BoundMethod',
'CompiledInstance',
'AbstractInstanceValue',
'TreeInstance',
)

View File

@@ -15,6 +15,12 @@ ignore =
W503, W503,
# Single letter loop variables are often fine # Single letter loop variables are often fine
E741, E741,
per-file-ignores =
# Ignore apparently unused imports in files where we're (implicitly)
# re-exporting them.
jedi/__init__.py:F401
jedi/inference/compiled/__init__.py:F401
jedi/inference/value/__init__.py:F401
exclude = jedi/third_party/* .tox/* exclude = jedi/third_party/* .tox/*
[pycodestyle] [pycodestyle]
@@ -48,8 +54,8 @@ implicit_reexport = False
strict_equality = True strict_equality = True
[mypy-jedi] [mypy-jedi,jedi.inference.compiled,jedi.inference.value]
# jedi/__init__.py contains only re-exports. # Various __init__.py files which contain re-exports we want to implicitly make.
implicit_reexport = True implicit_reexport = True
[mypy-jedi.debug] [mypy-jedi.debug]