class documentation

class DefUseChains(gast.NodeVisitor): (source)

Constructor: DefUseChains(filename)

View In Hierarchy

Module visitor that gathers two kinds of informations:
  • locals: Dict[node, List[Def]], a mapping between a node and the list of variable defined in this node,
  • chains: Dict[node, Def], a mapping between nodes and their chains.
>>> import gast as ast
>>> module = ast.parse("from b import c, d; c()")
>>> duc = DefUseChains()
>>> duc.visit(module)
>>> for head in duc.locals[module]:
...     print("{}: {}".format(head.name(), len(head.users())))
c: 1
d: 0
>>> alias_def = duc.chains[module.body[0].names[0]]
>>> print(alias_def)
c -> (c -> (<Call> -> ()))

One instance of DefUseChains is only suitable to analyse one AST Module in it's lifecycle.

Static Method add_to_definition Undocumented
Method __init__ filename: str, included in error messages if specified
Method add_to_locals Undocumented
Method compute_annotation_defs Undocumented
Method compute_defs Performs an actual lookup of node's id in current context, returning the list of def linked to that use.
Method DefinitionContext Undocumented
Method dump_chains Undocumented
Method dump_definitions Undocumented
Method extend_definition Undocumented
Method extend_global Undocumented
Method invalid_name_lookup Undocumented
Method is_global Undocumented
Method is_nonlocal Undocumented
Method location Undocumented
Method process_annotations Undocumented
Method process_body Undocumented
Method process_functions_bodies Undocumented
Method process_undefs Undocumented
Method ScopeContext Undocumented
Method set_definition Undocumented
Method set_or_extend_global Undocumented
Method SwitchScopeContext Undocumented
Method unbound_identifier Undocumented
Method visit_AnnAssign Undocumented
Method visit_annotation Undocumented
Method visit_arguments Undocumented
Method visit_Assert Undocumented
Method visit_Assign Undocumented
Method visit_AugAssign Undocumented
Method visit_Await Undocumented
Method visit_BinOp Undocumented
Method visit_BoolOp Undocumented
Method visit_Break Undocumented
Method visit_Call Undocumented
Method visit_ClassDef Undocumented
Method visit_Compare Undocumented
Method visit_comprehension Undocumented
Method visit_Constant Undocumented
Method visit_Continue Undocumented
Method visit_Delete Undocumented
Method visit_Destructured Undocumented
Method visit_Dict Undocumented
Method visit_DictComp Undocumented
Method visit_excepthandler Undocumented
Method visit_Expr Undocumented
Method visit_For Undocumented
Method visit_FormattedValue Undocumented
Method visit_FunctionDef Undocumented
Method visit_Global Undocumented
Method visit_If Undocumented
Method visit_IfExp Undocumented
Method visit_Import Undocumented
Method visit_ImportFrom Undocumented
Method visit_JoinedStr Undocumented
Method visit_Lambda Undocumented
Method visit_List Undocumented
Method visit_ListComp Undocumented
Method visit_Match Undocumented
Method visit_MatchAs Undocumented
Method visit_MatchClass Undocumented
Method visit_MatchMapping Undocumented
Method visit_MatchOr Undocumented
Method visit_MatchSequence Undocumented
Method visit_MatchStar Undocumented
Method visit_MatchValue Undocumented
Method visit_Module Undocumented
Method visit_Name Undocumented
Method visit_NamedExpr Undocumented
Method visit_Nonlocal Undocumented
Method visit_Raise Undocumented
Method visit_Return Undocumented
Method visit_Set Undocumented
Method visit_skip_annotation Undocumented
Method visit_Slice Undocumented
Method visit_Starred Undocumented
Method visit_Subscript Undocumented
Method visit_Try Undocumented
Method visit_UnaryOp Undocumented
Method visit_While Undocumented
Method visit_With Undocumented
Method visit_withitem Undocumented
Method visit_Yield Undocumented
Method warn Undocumented
Instance Variable chains Undocumented
Instance Variable defs Undocumented
Instance Variable filename Undocumented
Instance Variable future_annotations Undocumented
Instance Variable locals Undocumented
Instance Variable module Undocumented
Instance Variable visit_arg Undocumented
Instance Variable visit_Bytes Undocumented
Instance Variable visit_Ellipsis Undocumented
Instance Variable visit_ExceptHandler Undocumented
Instance Variable visit_ExtSlice Undocumented
Instance Variable visit_Index Undocumented
Instance Variable visit_NameConstant Undocumented
Instance Variable visit_Num Undocumented
Instance Variable visit_Str Undocumented
Method _dump_locals Like dump_definitions but returns the result grouped by symbol name and it includes linenos.
Method _first_non_comprehension_scope Undocumented
Method _support_stdlib Undocumented
Instance Variable _breaks Undocumented
Instance Variable _builtins Undocumented
Instance Variable _continues Undocumented
Instance Variable _deadcode Undocumented
Instance Variable _defered Undocumented
Instance Variable _defered_annotations Undocumented
Instance Variable _definitions Undocumented
Instance Variable _globals Undocumented
Instance Variable _nonlocals Undocumented
Instance Variable _precomputed_locals Undocumented
Instance Variable _scope_depths Undocumented
Instance Variable _scopes Undocumented
Instance Variable _undefs Undocumented
def add_to_definition(definition, name, dnode_or_dnodes): (source)

Undocumented

def __init__(self, filename=None): (source)

  • filename: str, included in error messages if specified

def add_to_locals(self, name, dnode): (source)

Undocumented

def compute_annotation_defs(self, node, quiet=False): (source)

Undocumented

def compute_defs(self, node, quiet=False): (source)

Performs an actual lookup of node's id in current context, returning the list of def linked to that use.

@contextmanager
def DefinitionContext(self, definitions): (source)

Undocumented

def dump_chains(self, node): (source)

Undocumented

def dump_definitions(self, node, ignore_builtins=True): (source)

Undocumented

def extend_definition(self, name, dnode_or_dnodes): (source)

Undocumented

def extend_global(self, name, dnode_or_dnodes): (source)

Undocumented

def invalid_name_lookup(self, name, scope, precomputed_locals, local_defs): (source)

Undocumented

def is_global(self, name): (source)

Undocumented

def is_nonlocal(self, name): (source)

Undocumented

def location(self, node): (source)

Undocumented

def process_annotations(self): (source)

Undocumented

def process_body(self, stmts): (source)

Undocumented

def process_functions_bodies(self): (source)

Undocumented

def process_undefs(self): (source)

Undocumented

@contextmanager
def ScopeContext(self, node): (source)

Undocumented

def set_definition(self, name, dnode_or_dnodes, index=-1): (source)

Undocumented

def set_or_extend_global(self, name, dnode): (source)

Undocumented

@contextmanager
def SwitchScopeContext(self, defs, scopes, scope_depths, precomputed_locals): (source)

Undocumented

def unbound_identifier(self, name, node): (source)

Undocumented

def visit_AnnAssign(self, node): (source)

Undocumented

def visit_annotation(self, node): (source)

Undocumented

def visit_arguments(self, node): (source)

Undocumented

def visit_Assert(self, node): (source)

Undocumented

def visit_Assign(self, node): (source)

Undocumented

def visit_AugAssign(self, node): (source)

Undocumented

def visit_Await(self, node): (source)

Undocumented

def visit_BinOp(self, node): (source)

Undocumented

def visit_BoolOp(self, node): (source)

Undocumented

def visit_Break(self, _): (source)

Undocumented

def visit_Call(self, node): (source)

Undocumented

def visit_ClassDef(self, node): (source)

Undocumented

def visit_Compare(self, node): (source)

Undocumented

def visit_comprehension(self, node, is_nested): (source)

Undocumented

def visit_Constant(self, node): (source)

Undocumented

def visit_Continue(self, _): (source)

Undocumented

def visit_Delete(self, node): (source)

Undocumented

def visit_Destructured(self, node): (source)

Undocumented

def visit_Dict(self, node): (source)

Undocumented

def visit_DictComp(self, node): (source)

Undocumented

def visit_excepthandler(self, node): (source)

Undocumented

def visit_Expr(self, node): (source)

Undocumented

def visit_For(self, node): (source)

Undocumented

def visit_FormattedValue(self, node): (source)

Undocumented

def visit_FunctionDef(self, node, step=DeclarationStep): (source)

Undocumented

def visit_Global(self, node): (source)

Undocumented

def visit_If(self, node): (source)

Undocumented

def visit_IfExp(self, node): (source)

Undocumented

def visit_Import(self, node): (source)

Undocumented

def visit_ImportFrom(self, node): (source)

Undocumented

def visit_JoinedStr(self, node): (source)

Undocumented

def visit_Lambda(self, node, step=DeclarationStep): (source)

Undocumented

def visit_List(self, node): (source)

Undocumented

def visit_ListComp(self, node): (source)

Undocumented

def visit_Match(self, node): (source)

Undocumented

def visit_MatchAs(self, node): (source)

Undocumented

def visit_MatchClass(self, node): (source)

Undocumented

def visit_MatchMapping(self, node): (source)

Undocumented

def visit_MatchOr(self, node): (source)

Undocumented

def visit_MatchSequence(self, node): (source)

Undocumented

def visit_MatchStar(self, node): (source)

Undocumented

def visit_MatchValue(self, node): (source)

Undocumented

def visit_Module(self, node): (source)

Undocumented

def visit_Name(self, node, skip_annotation=False, named_expr=False): (source)

Undocumented

def visit_NamedExpr(self, node): (source)

Undocumented

def visit_Nonlocal(self, node): (source)

Undocumented

def visit_Raise(self, node): (source)

Undocumented

def visit_Return(self, node): (source)

Undocumented

def visit_Set(self, node): (source)

Undocumented

def visit_skip_annotation(self, node): (source)

Undocumented

def visit_Slice(self, node): (source)

Undocumented

def visit_Starred(self, node): (source)

Undocumented

def visit_Subscript(self, node): (source)

Undocumented

def visit_Try(self, node): (source)

Undocumented

def visit_UnaryOp(self, node): (source)

Undocumented

def visit_While(self, node): (source)

Undocumented

def visit_With(self, node): (source)

Undocumented

def visit_withitem(self, node): (source)

Undocumented

def visit_Yield(self, node): (source)

Undocumented

def warn(self, msg, node): (source)

Undocumented

Undocumented

Undocumented

filename = (source)

Undocumented

future_annotations: bool = (source)

Undocumented

Undocumented

Undocumented

visit_arg = (source)

Undocumented

visit_Bytes = (source)

Undocumented

visit_Ellipsis = (source)

Undocumented

visit_ExceptHandler = (source)

Undocumented

visit_ExtSlice = (source)

Undocumented

visit_Index = (source)

Undocumented

visit_NameConstant = (source)

Undocumented

visit_Num = (source)

Undocumented

visit_Str = (source)

Undocumented

def _dump_locals(self, node, only_live=False): (source)

Like dump_definitions but returns the result grouped by symbol name and it includes linenos.

Returns
List of string formatted like: '{symbol name}:{def lines}'
def _first_non_comprehension_scope(self): (source)

Undocumented

def _support_stdlib(self): (source)

Undocumented

Undocumented

_builtins = (source)

Undocumented

_continues: list = (source)

Undocumented

_deadcode: int = (source)

Undocumented

_defered: list = (source)

Undocumented

_defered_annotations: list = (source)

Undocumented

_definitions = (source)

Undocumented

_globals: list = (source)

Undocumented

_nonlocals: list = (source)

Undocumented

_precomputed_locals = (source)

Undocumented

_scope_depths = (source)

Undocumented

Undocumented

Undocumented