Module fixes

This commit is contained in:
Dave Halter
2019-08-17 17:56:57 +02:00
parent a9b1de7060
commit 895e774962
4 changed files with 15 additions and 11 deletions

View File

@@ -72,6 +72,9 @@ class AbstractContext(object):
def py__name__(self):
return self._value.py__name__()
def py__doc__(self):
return self._value.py__doc__()
def infer_node(self, node):
return self.inference_state.infer_element(self, node)

View File

@@ -183,7 +183,7 @@ def _strip_rst_role(type_str):
return type_str
def _infer_for_statement_string(module_value, string):
def _infer_for_statement_string(module_context, string):
code = dedent(u("""
def pseudo_docstring_stuff():
'''
@@ -205,7 +205,7 @@ def _infer_for_statement_string(module_value, string):
# will be impossible to use `...` (Ellipsis) as a token. Docstring types
# don't need to conform with the current grammar.
debug.dbg('Parse docstring code %s', string, color='BLUE')
grammar = module_value.inference_state.latest_grammar
grammar = module_context.inference_state.latest_grammar
try:
module = grammar.parse(code.format(indent_block(string)), error_recovery=False)
except ParserSyntaxError:
@@ -223,8 +223,8 @@ def _infer_for_statement_string(module_value, string):
from jedi.inference.value import FunctionValue
function_value = FunctionValue(
module_value.inference_state,
module_value,
module_context.inference_state,
module_context,
funcdef
)
func_execution_context = function_value.get_function_execution()
@@ -235,15 +235,15 @@ def _infer_for_statement_string(module_value, string):
return list(_execute_types_in_stmt(func_execution_context, stmt))
def _execute_types_in_stmt(module_value, stmt):
def _execute_types_in_stmt(module_context, stmt):
"""
Executing all types or general elements that we find in a statement. This
doesn't include tuple, list and dict literals, because the stuff they
contain is executed. (Used as type information).
"""
definitions = module_value.infer_node(stmt)
definitions = module_context.infer_node(stmt)
return ValueSet.from_sets(
_execute_array_values(module_value.inference_state, d)
_execute_array_values(module_context.inference_state, d)
for d in definitions
)

View File

@@ -542,12 +542,13 @@ def get_modules_containing_name(inference_state, modules, name):
used_mod_paths = set()
folders_with_names_to_be_checked = []
for m in modules:
if m.file_io is not None:
path = m.file_io.path
file_io = m.get_value().file_io
if file_io is not None:
path = file_io.path
if path not in used_mod_paths:
used_mod_paths.add(path)
folders_with_names_to_be_checked.append((
m.file_io.get_parent_folder(),
file_io.get_parent_folder(),
m.py__package__()
))
yield m

View File

@@ -14,7 +14,7 @@ def _add_argument_issue(error_name, lazy_value, message):
node = lazy_value.data
if node.parent.type == 'argument':
node = node.parent
return analysis.add(lazy_value.value, error_name, node, message)
return analysis.add(lazy_value.context, error_name, node, message)
class ExecutedParam(object):