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 |
Undocumented |
Method | push |
Push node into inference path. |
Method | restore |
Undocumented |
Class Variable | __slots__ |
Undocumented |
Class Variable | max |
Undocumented |
Instance Variable | boundnode |
:type: optional[NodeNG] |
Instance Variable | callcontext |
The call arguments and keywords for the given context. |
Instance Variable | constraints |
The constraints on nodes. |
Instance Variable | extra |
:type: dict(NodeNG, Context) |
Instance Variable | lookupname |
The original name of the node. |
Instance Variable | path |
:type: set(tuple(NodeNG, optional(str))) |
Property | inferred |
Inferred node contexts to their mapped results. |
Property | nodes |
Number of nodes inferred in this context and all its clones/descendents. |
Instance Variable | _nodes |
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. :return: Whether node is already in context path. Allows one to see if the given node has already been looked at for this inference context
:type: optional[NodeNG] The bound node of the given context e.g. the bound node of object.__new__(cls) is the object node
:type: dict(NodeNG, Context) Context that needs to be passed down through call stacks for call arguments
The original name of the node. e.g. foo = 1 The inference of 'foo' is nodes.Const(1) but the lookup name is 'foo'
:type: set(tuple(NodeNG, optional(str))) Path of visited nodes and their lookupname Currently this key is ``(node, context.lookupname)``
Inferred node contexts to their mapped results. Currently the key is ``(node, lookupname, callcontext, boundnode)`` and the value is tuple of the inferred results