class documentation

this class provides locals handling common to Module, FunctionDef and ClassDef nodes, including a dict like interface for direct access to locals information

Method __contains__ Check if a local is defined in this scope.
Method __getitem__ The first node the defines the given local.
Method __iter__ Iterate over the names of locals defined in this scoped node.
Method add_local_node Append a child that should alter the locals of this scope node.
Method items Get the names of the locals and the node that defines the local.
Method keys The names of locals defined in this scoped node.
Method qname Get the 'qualified' name of the node.
Method scope The first parent node defining a new scope.
Method scope_lookup Lookup where the given variable is assigned.
Method set_local Define that the given name is declared in the given statement node.
Method values The nodes that define the locals in this scoped node.
Class Variable locals A map of the name of a local variable to the node defining the local.
Method _append_node append a child, linking it in the tree
Method _scope_lookup XXX method for interfacing the scope lookup

Inherited from LookupMixIn:

Method ilookup Lookup the inferred values of the given variable.
Method lookup Lookup where the given variable is assigned.

Inherited from NodeNG (via LookupMixIn):

Method __init__ :param lineno: The line that this node appears on in the source code.
Method __repr__ Undocumented
Method __str__ Undocumented
Method accept Visit this node using the given visitor.
Method as_string Get the source code that this node represents.
Method block_range Get a range from the given line number to where this node ends.
Method bool_value Determine the boolean value of this node.
Method callable Whether this node defines something that is callable.
Method child_sequence Search for the sequence that contains this child.
Method eq Undocumented
Method frame The first parent frame node.
Method get_children Get the child nodes below this node.
Method has_base Check if this node inherits from the given type.
Method infer Get a generator of the inferred values.
Method inferred Get a list of the inferred values.
Method instantiate_class Instantiate an instance of the defined class.
Method last_child An optimized version of list(get_children())[-1].
Method locate_child Find the field of this node that contains the given child.
Method next_sibling The next sibling statement node.
Method node_ancestors Yield parent, grandparent, etc until there are no more.
Method nodes_of_class Get the nodes (including this one or below) of the given types.
Method op_left_associative Undocumented
Method op_precedence Undocumented
Method parent_of Check if this node is the parent of the given node.
Method previous_sibling The previous sibling statement.
Method repr_tree Get a string representation of the AST from this node.
Method root Return the root node of the syntax tree.
Method statement The first parent node, including self, marked as statement node.
Class Variable is_function Whether this node indicates a function.
Class Variable is_lambda Undocumented
Class Variable is_statement Whether this node indicates a statement.
Class Variable optional_assign Whether this node optionally assigns a variable.
Instance Variable col_offset The column that this node appears on in the source code.
Instance Variable end_col_offset The end column this node appears on in the source code.
Instance Variable end_lineno The last line this node appears on in the source code.
Instance Variable lineno The line that this node appears on in the source code.
Instance Variable parent The parent node in the syntax tree.
Instance Variable position Position of keyword(s) and name.
Property fromlineno The first line that this node appears on in the source code.
Property tolineno The last line that this node appears on in the source code.
Method _fixed_source_line Attempt to find the line that this node appears on.
Method _get_assign_nodes Undocumented
Method _get_name_nodes Undocumented
Method _get_return_nodes_skip_functions Undocumented
Method _get_yield_nodes_skip_lambdas Undocumented
Method _infer We don't know how to resolve a statement by default.
Method _infer_name Undocumented
Method _repr_name Get a name for nice representation.
Class Variable _astroid_fields Node attributes that contain child nodes.
Class Variable _explicit_inference Undocumented
Class Variable _other_fields Node attributes that do not contain child nodes.
Class Variable _other_other_fields Attributes that contain AST-dependent fields.
def __contains__(self, name) -> bool: (source)

Check if a local is defined in this scope. :param name: The name of the local to check for. :type name: str :returns: Whether this node has a local of the given name,

def __getitem__(self, item: str) -> SuccessfulInferenceResult: (source)

The first node the defines the given local. :param item: The name of the locally defined object. :raises KeyError: If the name is not defined.

def __iter__(self): (source)

Iterate over the names of locals defined in this scoped node. :returns: The names of the defined locals. :rtype: iterable(str)

@overload
def add_local_node(self, child_node: nodes.ClassDef, name: str|None = ...):
@overload
def add_local_node(self, child_node: nodes.NodeNG, name: str):
(source)

Append a child that should alter the locals of this scope node. :param child_node: The child node that will alter locals. :param name: The name of the local that will be altered by the given child node.

def items(self): (source)

Get the names of the locals and the node that defines the local. :returns: The names of locals and their associated node. :rtype: list(tuple(str, NodeNG))

def keys(self): (source)

The names of locals defined in this scoped node. :returns: The names of the defined locals. :rtype: list(str)

def qname(self) -> str: (source)

Get the 'qualified' name of the node. For example: module.name, module.class.name ... :returns: The qualified name. :rtype: str

def scope(self: _T) -> _T: (source)

The first parent node defining a new scope. :returns: The first parent scope node. :rtype: Module or FunctionDef or ClassDef or Lambda or GenExpr

def scope_lookup(self, node, name: str, offset: int = 0): (source)

Lookup where the given variable is assigned. :param node: The node to look for assignments up to. Any assignments after the given node are ignored. :type node: NodeNG :param name: The name of the variable to find assignments for. :param offset: The line offset to filter statements up to. :returns: This scope node and the list of assignments associated to the given name according to the scope where it has been found (locals, globals or builtin). :rtype: tuple(str, list(NodeNG))

def set_local(self, name: str, stmt: nodes.NodeNG): (source)

Define that the given name is declared in the given statement node. .. seealso:: :meth:`scope` :param name: The name that is being defined. :param stmt: The statement that defines the given name.

def values(self): (source)

The nodes that define the locals in this scoped node. :returns: The nodes that define locals. :rtype: list(NodeNG)

def _append_node(self, child: nodes.NodeNG): (source)

append a child, linking it in the tree

def _scope_lookup(self, node, name, offset=0): (source)

XXX method for interfacing the scope lookup