class documentation

For every class, assume the last FunctionDef is the top level method to call. And for every instance, only the top level method will be call. This means that we could safely assume that every instance has only the attributes coming from __init__ and the top level method. The assumption being made: 1. Top level method has only `self` arg 2. Top level method is placed at the last of the class 3. Only top level method will be called by the class instance. All other method will be called only by the top level method The overall steps will be carried out: 1. visit the ClassDef. 2. Construct an instance and load context with all attributes in __init__ 3. Identify the top level method. 4. overload phi function infer handler. 5. Resolve the returned value by the top level method. this will trigger the overloaded phi function handler and those are the dependencies required.

Method __init__ Undocumented
Method analyze_phi Undocumented
Method compute_arg :param node_exprs: list of ast nodes :return: dict contain ast_node to value
Method initialize Visit all the class and initialize constructor, and initialize all `self` of bound method
Method register_transform Undocumented
Method solve_classdef Undocumented
Method uninitialize Undocumented
Method unregister_transform Undocumented
Method visit_classdef Undocumented
Instance Variable as_tree Undocumented
Instance Variable bound_conditions Undocumented
Instance Variable cfg Undocumented
Instance Variable classes Undocumented
Instance Variable entry_class Undocumented
Instance Variable entry_func Undocumented
Instance Variable ins_collector Undocumented
Instance Variable is_multi_processes Undocumented
Instance Variable old_infer Undocumented
Instance Variable processes Undocumented
Instance Variable z3_opt Undocumented
Instance Variable _created_nodes Undocumented
Instance Variable _z3_index Undocumented
Instance Variable _z3_var Undocumented

Inherited from ClassInstanceBuilder:

Instance Variable class_ins Undocumented
Instance Variable context Undocumented

Inherited from AstVisitor (via ClassInstanceBuilder):

Method generic_visit Undocumented
Method visit Undocumented
def analyze_phi(self, use_z3_check=False): (source)

Undocumented

def compute_arg(self, identifier, ins_collector, conditions, z3_assumptions, context=None): (source)

:param node_exprs: list of ast nodes :return: dict contain ast_node to value

def initialize(self): (source)

Visit all the class and initialize constructor, and initialize all `self` of bound method

def register_transform(self): (source)

Undocumented

def solve_classdef(self): (source)

Undocumented

def uninitialize(self): (source)

Undocumented

def unregister_transform(self): (source)

Undocumented

def visit_classdef(self, node): (source)

Undocumented

Parameters
node:nodes.ClassDefUndocumented
as_tree = (source)

Undocumented

bound_conditions: list = (source)

Undocumented

Undocumented

classes: list = (source)

Undocumented

entry_class: str = (source)

Undocumented

entry_func: str = (source)

Undocumented

ins_collector = (source)

Undocumented

is_multi_processes = (source)

Undocumented

old_infer = (source)

Undocumented

processes = (source)

Undocumented

z3_opt = (source)

Undocumented

_created_nodes: list = (source)

Undocumented

_z3_index: int = (source)

Undocumented

_z3_var: dict = (source)

Undocumented