class documentation

class LimitedVariableRenameVisitor(TraverserVisitor): (source)

View In Hierarchy

Perform some limited variable renaming in with statements. This allows reusing a variable in multiple with statements with different types. For example, the two instances of 'x' can have incompatible types: with C() as x: f(x) with D() as x: g(x) The above code gets renamed conceptually into this (not valid Python!): with C() as x': f(x') with D() as x: g(x) If there's a reference to a variable defined in 'with' outside the statement, or if there's any trickiness around variable visibility (e.g. function definitions), we give up and won't perform renaming. The main use case is to allow binding both readable and writable binary files into the same variable. These have different types: with open(fnam, 'rb') as f: ... with open(fnam, 'wb') as f: ...

Method __init__ Undocumented
Method analyze_lvalue Undocumented
Method enter_scope Undocumented
Method flush_refs Undocumented
Method record_skipped Undocumented
Method reject_redefinition_of_vars_in_scope Undocumented
Method visit_class_def Undocumented
Method visit_func_def Undocumented
Method visit_import Undocumented
Method visit_import_all Undocumented
Method visit_import_from Undocumented
Method visit_mypy_file Rename variables within a file.
Method visit_name_expr Undocumented
Method visit_with_stmt Undocumented
Instance Variable bound_vars Undocumented
Instance Variable refs Undocumented
Instance Variable skipped Undocumented

Inherited from TraverserVisitor:

Method visit_as_pattern Undocumented
Method visit_assert_stmt Undocumented
Method visit_assert_type_expr Undocumented
Method visit_assignment_expr Undocumented
Method visit_assignment_stmt Undocumented
Method visit_await_expr Undocumented
Method visit_block Undocumented
Method visit_call_expr Undocumented
Method visit_cast_expr Undocumented
Method visit_class_pattern 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_expression_stmt Undocumented
Method visit_for_stmt Undocumented
Method visit_func Undocumented
Method visit_generator_expr Undocumented
Method visit_if_stmt Undocumented
Method visit_index_expr Undocumented
Method visit_lambda_expr Undocumented
Method visit_list_comprehension Undocumented
Method visit_list_expr Undocumented
Method visit_mapping_pattern Undocumented
Method visit_match_stmt Undocumented
Method visit_member_expr Undocumented
Method visit_op_expr Undocumented
Method visit_operator_assignment_stmt Undocumented
Method visit_or_pattern Undocumented
Method visit_overloaded_func_def Undocumented
Method visit_raise_stmt Undocumented
Method visit_return_stmt Undocumented
Method visit_reveal_expr Undocumented
Method visit_sequence_pattern Undocumented
Method visit_set_comprehension Undocumented
Method visit_set_expr Undocumented
Method visit_slice_expr Undocumented
Method visit_star_expr Undocumented
Method visit_starred_pattern 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_value_pattern Undocumented
Method visit_while_stmt Undocumented
Method visit_yield_expr Undocumented
Method visit_yield_from_expr Undocumented

Inherited from NodeVisitor (via TraverserVisitor):

Method visit__promote_expr Undocumented
Method visit_break_stmt Undocumented
Method visit_bytes_expr Undocumented
Method visit_complex_expr Undocumented
Method visit_continue_stmt Undocumented
Method visit_ellipsis Undocumented
Method visit_enum_call_expr Undocumented
Method visit_float_expr Undocumented
Method visit_global_decl Undocumented
Method visit_int_expr Undocumented
Method visit_namedtuple_expr Undocumented
Method visit_newtype_expr Undocumented
Method visit_nonlocal_decl Undocumented
Method visit_paramspec_expr Undocumented
Method visit_pass_stmt Undocumented
Method visit_placeholder_node Undocumented
Method visit_singleton_pattern Undocumented
Method visit_str_expr Undocumented
Method visit_temp_node Undocumented
Method visit_type_alias Undocumented
Method visit_type_alias_expr Undocumented
Method visit_type_var_expr Undocumented
Method visit_type_var_tuple_expr Undocumented
Method visit_typeddict_expr Undocumented
Method visit_var Undocumented
def __init__(self): (source)
def analyze_lvalue(self, lvalue: Lvalue): (source)

Undocumented

@contextmanager
def enter_scope(self) -> Iterator[None]: (source)

Undocumented

def flush_refs(self): (source)

Undocumented

def record_skipped(self, name: str): (source)

Undocumented

def reject_redefinition_of_vars_in_scope(self): (source)

Undocumented

def visit_class_def(self, cdef: ClassDef): (source)
def visit_func_def(self, fdef: FuncDef): (source)
def visit_import(self, imp: Import): (source)
def visit_import_all(self, imp: ImportAll): (source)
def visit_import_from(self, imp: ImportFrom): (source)
def visit_mypy_file(self, file_node: MypyFile): (source)

Rename variables within a file. This is the main entry point to this class.

def visit_name_expr(self, expr: NameExpr): (source)
def visit_with_stmt(self, stmt: WithStmt): (source)
bound_vars: list[str] = (source)

Undocumented

Undocumented

Undocumented