def __init__(self, module, block, annotation, module_name, extra): self.module = module self.annotation = annotation self.block = block self.module_name = module_name self._extra = extra method_block_index = self.get_code_block_index(self.block) if method_block_index is None: raise Exception( 'Block of code of a method from %s module was not found', self.module_name) self.name = self.block[method_block_index + 1].arg self._id = uuid3(UUID('{baa187e0-2c51-4ef6-aa42-b3421c22d5e1}'), self.full_name) self.start_line_no = self.block[method_block_index].lineno self.code_object = self.block[method_block_index].arg # dis.dis(code_object) self.code, self.dictionary_defs = preprocess_method_body( self.code_object) self.bytecode = Bytecode.from_code(self.code) if (self.annotation is not None and len(self.annotation) > 0): self.evaluate_annotations(method_block_index + 1) self.setup()
def __init__(self, module, block, module_name, extra): self.module = module self.block = block self.module_name = module_name self._extra = extra self._id = uuid4() self.name = self.block[1].arg self.start_line_no = self.block[0].lineno self.code_object = self.block[0].arg # dis.dis(code_object) self.code, self.dictionary_defs = preprocess_method_body( self.code_object) self.bytecode = Bytecode.from_code(self.code) self.setup()