def getstate(self, next_offset): # getfastscope() can return real None, for undefined locals data = self.save_locals_stack() if self.last_exception is None: data.append(Constant(None)) data.append(Constant(None)) else: data.append(self.last_exception.w_type) data.append(self.last_exception.w_value) recursively_flatten(data) return FrameState(data, self.blockstack[:], next_offset)
def __init__(self, func, code): from rpython.flowspace.flowcontext import SpamBlock locals = [None] * code.co_nlocals for i in range(code.formalargcount): locals[i] = Variable(code.co_varnames[i]) state = FrameState(locals, [], None, [], 0) initialblock = SpamBlock(state) super(PyGraph, self).__init__(self._sanitize_funcname(func), initialblock) self.func = func self.signature = code.signature self.defaults = func.__defaults__ or ()
def __init__(self, func, code): from rpython.flowspace.flowcontext import SpamBlock locals = [None] * code.co_nlocals for i in range(code.formalargcount): locals[i] = Variable(code.co_varnames[i]) state = FrameState(locals, [], None, [], 0) initialblock = SpamBlock(state) unsafe = False if func.func_doc and func.func_doc.lstrip().startswith('UNSAFE'): unsafe = True super(PyGraph, self).__init__(self._sanitize_funcname(func), initialblock, unsafe=unsafe) self.func = func self.signature = code.signature self.defaults = func.func_defaults or ()
def getstate(self, next_offset): return FrameState(self.locals_w[:], self.stack[:], self.last_exception, self.blockstack[:], next_offset)