コード例 #1
0
ファイル: method.py プロジェクト: merl111/neo-boa
    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()
コード例 #2
0
    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()