def buildflowgraph(self, func, mute_dot=False): """Get the flow graph for a function.""" if not isinstance(func, types.FunctionType): raise TypeError("buildflowgraph() expects a function, " "got %r" % (func,)) if func in self._prebuilt_graphs: graph = self._prebuilt_graphs.pop(func) else: if self.config.translation.verbose: log.start(nice_repr_for_func(func)) space = FlowObjSpace(self.flowconfig) if self.annotator: # ZZZ self.annotator.policy._adjust_space_config(space) elif hasattr(self, 'no_annotator_but_do_imports_immediately'): space.do_imports_immediately = ( self.no_annotator_but_do_imports_immediately) graph = space.build_flow(func) if self.config.translation.simplifying: simplify.simplify_graph(graph) if self.config.translation.list_comprehension_operations: simplify.detect_list_comprehension(graph) if self.config.translation.verbose: log.done(func.__name__) elif not mute_dot: log.dot() self.graphs.append(graph) # store the graph in our list return graph
def buildflowgraph(self, func, mute_dot=False): """Get the flow graph for a function.""" if not isinstance(func, types.FunctionType): raise TypeError("buildflowgraph() expects a function, " "got %r" % (func, )) if func in self._prebuilt_graphs: graph = self._prebuilt_graphs.pop(func) else: if self.config.translation.verbose: log.start(nice_repr_for_func(func)) space = FlowObjSpace(self.flowconfig) if self.annotator: # ZZZ self.annotator.policy._adjust_space_config(space) elif hasattr(self, 'no_annotator_but_do_imports_immediately'): space.do_imports_immediately = ( self.no_annotator_but_do_imports_immediately) graph = space.build_flow(func) if self.config.translation.simplifying: simplify.simplify_graph(graph) if self.config.translation.list_comprehension_operations: simplify.detect_list_comprehension(graph) if self.config.translation.verbose: log.done(func.__name__) elif not mute_dot: log.dot() self.graphs.append(graph) # store the graph in our list return graph
def __str__(self): if hasattr(self, 'func'): return nice_repr_for_func(self.func, self.name) else: return self.name