class InferenceContext: (source)
Provide context for inference
Store already inferred nodes to save time Account for already visited nodes to stop infinite recursion
Method | __init__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | clone |
Clone inference path |
Method | nodes_inferred.setter |
Undocumented |
Method | push |
Push node into inference path |
Method | restore_path |
Undocumented |
Class Variable | __slots__ |
Undocumented |
Class Variable | max_inferred |
Undocumented |
Instance Variable | boundnode |
|
Instance Variable | callcontext |
|
Instance Variable | extra_context |
|
Instance Variable | lookupname |
|
Instance Variable | path |
|
Property | inferred |
Inferred node contexts to their mapped results |
Property | nodes_inferred |
Number of nodes inferred in this context and all its clones/descendents |
Instance Variable | _nodes_inferred |
Undocumented |
Clone inference path
For example, each side of a binary operation (BinOp) starts with the same context but diverge as each side is inferred so the InferenceContext will need be cloned
Push node into inference path
Allows one to see if the given node has already been looked at for this inference context
Returns | |
bool | True if node is already in context path else False |
The bound node of the given context
e.g. the bound node of object.__new__(cls) is the object node
The original name of the node
e.g. foo = 1 The inference of 'foo' is nodes.Const(1) but the lookup name is 'foo'
Path of visited nodes and their lookupname
Currently this key is (node, context.lookupname)
MutableMapping[ Tuple[ NodeNG, Optional[ str], Optional[ str], Optional[ str]], Sequence[ NodeNG]]
=
(source)
Inferred node contexts to their mapped results
Currently the key is (node, lookupname, callcontext, boundnode) and the value is tuple of the inferred results