class documentation

class SemanticAnalyzerPreAnalysis(TraverserVisitor): (source)

View In Hierarchy

Analyze reachability of blocks and imports and other local things.

This runs before semantic analysis, so names have not been bound. Imports are also not resolved yet, so we can only access the current module.

This determines static reachability of blocks and imports due to version and platform checks, among others.

The main entry point is 'visit_file'.

Reachability of imports needs to be determined very early in the build since this affects which modules will ultimately be processed.

Consider this example:

import sys

def do_stuff():

# type: () -> None: if sys.python_version < (3,):

import xyz # Only available in Python 2 xyz.whatever()

...

The block containing 'import xyz' is unreachable in Python 3 mode. The import shouldn't be processed in Python 3 mode, even if the module happens to exist.

Method visit​_assignment​_stmt Undocumented
Method visit​_block Undocumented
Method visit​_class​_def Undocumented
Method visit​_expression​_stmt Undocumented
Method visit​_file Undocumented
Method visit​_for​_stmt Undocumented
Method visit​_func​_def Undocumented
Method visit​_if​_stmt Undocumented
Method visit​_import Undocumented
Method visit​_import​_all Undocumented
Method visit​_import​_from Undocumented
Method visit​_return​_stmt Undocumented
Instance Variable cur​_mod​_id Undocumented
Instance Variable cur​_mod​_node Undocumented
Instance Variable is​_global​_scope Undocumented
Instance Variable options Undocumented
Instance Variable platform Undocumented
Instance Variable pyversion Undocumented

Inherited from TraverserVisitor:

Method __init__ Undocumented
Method visit​_assert​_stmt Undocumented
Method visit​_assignment​_expr Undocumented
Method visit​_await​_expr Undocumented
Method visit​_backquote​_expr Undocumented
Method visit​_call​_expr Undocumented
Method visit​_cast​_expr Undocumented
Method visit​_comparison​_expr Undocumented
Method visit​_conditional​_expr Undocumented
Method visit​_decorator Undocumented
Method visit​_del​_stmt Undocumented
Method visit​_dict​_expr Undocumented
Method visit​_dictionary​_comprehension Undocumented
Method visit​_exec​_stmt Undocumented
Method visit​_func Undocumented
Method visit​_generator​_expr Undocumented
Method visit​_index​_expr Undocumented
Method visit​_lambda​_expr Undocumented
Method visit​_list​_comprehension Undocumented
Method visit​_list​_expr Undocumented
Method visit​_member​_expr Undocumented
Method visit​_mypy​_file Undocumented
Method visit​_op​_expr Undocumented
Method visit​_operator​_assignment​_stmt Undocumented
Method visit​_overloaded​_func​_def Undocumented
Method visit​_print​_stmt Undocumented
Method visit​_raise​_stmt Undocumented
Method visit​_reveal​_expr Undocumented
Method visit​_set​_comprehension Undocumented
Method visit​_set​_expr Undocumented
Method visit​_slice​_expr Undocumented
Method visit​_star​_expr Undocumented
Method visit​_super​_expr Undocumented
Method visit​_try​_stmt Undocumented
Method visit​_tuple​_expr Undocumented
Method visit​_type​_application Undocumented
Method visit​_unary​_expr Undocumented
Method visit​_while​_stmt Undocumented
Method visit​_with​_stmt Undocumented
Method visit​_yield​_expr Undocumented
Method visit​_yield​_from​_expr Undocumented
def visit_assignment_stmt(self, s): (source)

Undocumented

Parameters
s:AssignmentStmtUndocumented
def visit_block(self, b): (source)

Undocumented

Parameters
b:BlockUndocumented
def visit_class_def(self, node): (source)

Undocumented

Parameters
node:ClassDefUndocumented
def visit_expression_stmt(self, s): (source)

Undocumented

Parameters
s:ExpressionStmtUndocumented
def visit_file(self, file, fnam, mod_id, options): (source)

Undocumented

Parameters
file:MypyFileUndocumented
fnam:strUndocumented
mod​_id:strUndocumented
options:OptionsUndocumented
def visit_for_stmt(self, s): (source)

Undocumented

Parameters
s:ForStmtUndocumented
def visit_func_def(self, node): (source)

Undocumented

Parameters
node:FuncDefUndocumented
def visit_if_stmt(self, s): (source)

Undocumented

Parameters
s:IfStmtUndocumented
def visit_import(self, node): (source)

Undocumented

Parameters
node:ImportUndocumented
def visit_import_all(self, node): (source)

Undocumented

Parameters
node:ImportAllUndocumented
def visit_import_from(self, node): (source)

Undocumented

Parameters
node:ImportFromUndocumented
def visit_return_stmt(self, s): (source)

Undocumented

Parameters
s:ReturnStmtUndocumented
cur_mod_id = (source)

Undocumented

cur_mod_node = (source)

Undocumented

is_global_scope = (source)

Undocumented

options = (source)

Undocumented

platform = (source)

Undocumented

pyversion = (source)

Undocumented