• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python ast.dump函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中ast.dump函数的典型用法代码示例。如果您正苦于以下问题:Python dump函数的具体用法?Python dump怎么用?Python dump使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了dump函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: eval_left

    def eval_left(self, input_line, line_holder):
        """Evaluate left side of the comparison argument line."""
        left_holder = list()
        left_bin = list()
        left_holder.append(self.oper_clean(input_line.test.ops[0]))
        if isinstance(input_line.test.comparators[0], ast.BinOp):
            if ast.dump(input_line.test.comparators[0].op) == "Mod()":
                left_holder.append(input_line.test.comparators[0].left.id)
                left_holder.append(self.oper_clean(input_line.test
                                                   .comparators[0].op))
                left_holder.append(self.var_clean(input_line.test
                                                  .comparators[0].right))
            else:
                left_holder.extend(self.binop_clean(input_line.test
                                                    .comparators[0], left_bin))
        else:
            left_holder.append(self.var_clean(input_line.test.comparators[0]))

        if isinstance(input_line.test.left, ast.Name):
            left_holder.insert(0, input_line.test.left.id)
            line_holder.append(left_holder)
        elif isinstance(input_line.test.left, ast.BinOp):
            if ast.dump(input_line.test.left.op) == "Mod()":
                left_holder.insert(0, input_line.test.left.left.id)
                left_holder.insert(1, self.oper_clean(input_line.test.left.op))
                left_holder.insert(2, self.var_clean(input_line.test
                                                     .left.right))
                line_holder.append(left_holder)
            else:
                self.eval_binop(input_line.test.left, left_holder, line_holder)
        return line_holder
开发者ID:gitter-badger,项目名称:ihnil,代码行数:31,代码来源:ihnil.py


示例2: prepare

 def prepare(self, node, ctx):
     self.env = {'__builtin__': __import__('__builtin__')}
     class OperatorRenamer(ast.NodeTransformer):
         def visit_Import(self, node):
             for n in node.names:
                 if n.name == "operator_":
                     n.name = "operator"
             return node
     node = OperatorRenamer().visit(node)
     for module_name in modules:
         # module starting with "__" are pythran internal module and
         # should not be imported in the Python interpreter
         if not module_name.startswith('__'):
             if module_name == "operator_":
                 module_name = "operator"  # to import the python module
                 # operator instead of trying to import the module
                 # operator_ that does not exist
             self.env[module_name] = __import__(module_name)
     try:
         eval(compile(node, '<constant_folding>', 'exec'), self.env)
     except Exception as e:
         print ast.dump(node)
         print 'error in constant folding: ', e
         pass
     super(ConstantFolding, self).prepare(node, ctx)
开发者ID:franckCJ,项目名称:pythran,代码行数:25,代码来源:optimizations.py


示例3: parse_compare

def parse_compare(compare_node):
    assert len(compare_node.ops) == 1, "multiple comparison ops?" + ast.dump(compare_node)
    assert isinstance(compare_node.ops[0], ast.Eq), "comparison should be ==" + \
        ast.dump(compare_node.ops[0])

    lhs = compare_node.left
    rhs = compare_node.comparators[0]
    if isinstance(lhs, ast.Name) and isinstance(rhs, ast.Num):
        var_name = lhs.id
        val = rhs.n
    elif isinstance(rhs, ast.Name) and isinstance(lhs, ast.Num):
        var_name = rhs.id
        val = lhs.n
    elif isinstance(rhs, ast.Name) and isinstance(lhs, ast.Name):
        # try to apply macro
        if is_int_constant(rhs):
            var_name = lhs.id
            val = rhs.id
        elif is_int_constant(lhs):
            var_name = rhs.id
            val = lhs.id
        else:
            assert False, "Unable to apply macro to fix comparator " + ast.dump(compare_node)
    else:
        assert False, "unexpected comparator" + ast.dump(compare_node)
    return var_name, val
开发者ID:ml-lab,项目名称:TerpreT,代码行数:26,代码来源:utils.py


示例4: visit_Mod

	def visit_Mod(self, node):
		if DEBUG: 
			print "-----------start node  %s -----------" % node.__class__.__name__
			print ast.dump(node)
		ast.NodeVisitor.generic_visit(self, node)
		self.active.push(JavaMod())
		if DEBUG: print "-----------end node   %s -----------" % node.__class__.__name__
开发者ID:JanX2,项目名称:p2j,代码行数:7,代码来源:visitor.py


示例5: my_generic_visit

	def my_generic_visit(self, node):
		if DEBUG: 
			print "-----------node  %s -----------" % node.__class__.__name__
			print ast.dump(node)
		#ast.NodeVisitor.generic_visit(self, node)
		self.visit(node)
		if DEBUG: print "-----------node-----------"
开发者ID:JanX2,项目名称:p2j,代码行数:7,代码来源:visitor.py


示例6: test_load_simple

def test_load_simple():
    node = orchestra.ast_util.load('var')
    print ast.dump(node)

    assert isinstance(node, ast.Name)
    assert node.id == 'var'
    assert isinstance(node.ctx, ast.Load)
开发者ID:armooo,项目名称:orchestra,代码行数:7,代码来源:test_ast_util.py


示例7: test_rewrite_notin_precedence

def test_rewrite_notin_precedence():
    code1 = "a and b not in c"
    code2 = "(a and b) not in c"
    code3 = "a and (b not in c)"
    code4 = "(b not in c) and a"

    rw = query_processor.RewriteChangeNotInPrescedence()

    tree1 = ast.parse(code1)
    tree2 = ast.parse(code2)
    tree3 = ast.parse(code3)

    tree1_rw = ast.parse(code1)
    tree2_rw = ast.parse(code2)
    tree3_rw = ast.parse(code3)

    rw.visit(tree1_rw)
    rw.visit(tree2_rw)
    rw.visit(tree3_rw)

    assert_not_equal(ast.dump(tree1), ast.dump(tree2))
    assert_equal(ast.dump(tree2), ast.dump(tree2_rw))
    assert_equal(ast.dump(tree1_rw), ast.dump(tree2))

    assert_equal(ast.dump(tree3), ast.dump(tree3_rw))

    assert_equal(ast.dump(tree1), ast.dump(tree3_rw))
开发者ID:llcmgh,项目名称:slicer_tract_querier,代码行数:27,代码来源:tests_query_rewrite.py


示例8: test_import_multi

 def test_import_multi(self):
     src = 'import mod1, mod2 as x, mod3'
     expect_src = '_LX_import_module("mod1")\n_LX_import_module("mod2", asname="x")\n_LX_import_module("mod3")'
     tree = ast.parse(src)
     tree = TransformImportsAst().visit(tree)
     expect_tree = ast.parse(expect_src)
     self.assertEquals(ast.dump(expect_tree), ast.dump(tree))
开发者ID:dpwhite2,项目名称:limitedexec,代码行数:7,代码来源:test_transform.py


示例9: test_import_from_asname

 def test_import_from_asname(self):
     src = 'from mymodule import name as alias'
     expect_src = '_LX_import_module("mymodule", froms=[("name","alias")])'
     tree = ast.parse(src)
     tree = TransformImportsAst().visit(tree)
     expect_tree = ast.parse(expect_src)
     self.assertEquals(ast.dump(expect_tree), ast.dump(tree))
开发者ID:dpwhite2,项目名称:limitedexec,代码行数:7,代码来源:test_transform.py


示例10: test_import_asname

 def test_import_asname(self):
     src = 'import mymodule as thatmodule'
     expect_src = '_LX_import_module("mymodule", asname="thatmodule")'
     tree = ast.parse(src)
     tree = TransformImportsAst().visit(tree)
     expect_tree = ast.parse(expect_src)
     self.assertEquals(ast.dump(expect_tree), ast.dump(tree))
开发者ID:dpwhite2,项目名称:limitedexec,代码行数:7,代码来源:test_transform.py


示例11: test_import_dotted

 def test_import_dotted(self):
     src = 'import package.mymodule'
     expect_src = '_LX_import_module("package.mymodule")'
     tree = ast.parse(src)
     tree = TransformImportsAst().visit(tree)
     expect_tree = ast.parse(expect_src)
     self.assertEquals(ast.dump(expect_tree), ast.dump(tree))
开发者ID:dpwhite2,项目名称:limitedexec,代码行数:7,代码来源:test_transform.py


示例12: main

def main():
    logging.basicConfig(level=logging.INFO)

    argument_parser = argparse.ArgumentParser(
        description='Translate PHP code from stdin to Python on stdout',
    )
    argument_parser.add_argument('--php-ast', action='store_true',
                                 help='Dump PHP AST instead of translating to Python')
    argument_parser.add_argument('--python-ast', action='store_true',
                                 help='Dump Python AST instead of code')
    argument_parser.add_argument('--input-file', help='Read the given file instead of stdin')
    command_line_args = argument_parser.parse_args()

    if command_line_args.input_file:
        input_stream = open(command_line_args.input_file)
    else:
        input_stream = sys.stdin

    parser = XmlPhpParseTreeReader()
    statements = parser.parse_php(input_stream)
    input_stream.close()

    if command_line_args.php_ast:
        formatter = PhpAstPrettyFormatter()
        print formatter.pretty_format(statements)
        return

    translator = Translator()
    translated_statements = translator.translate_statements(statements)
    module = ast.Module(body=translated_statements)

    if command_line_args.python_ast:
        print ast.dump(module)
    else:
        unparse.Unparser(module)
开发者ID:gostevehoward,项目名称:phpython,代码行数:35,代码来源:phpython.py


示例13: _diff_ast

 def _diff_ast(self, code_ast):
     # Check if the code structure has changed and update
     # the internal variables accordingly
     
     diff_node_index = None
     try:
         nodes = itertools.izip_longest(code_ast.body, self._code_ast.body)
     except AttributeError:
         diff_node_index = -1
     else:
         for i, node in enumerate(nodes):
             if (node[0] and not node[1] or
                 not node[0] and node[1] or
                 ast.dump(node[0]) != ast.dump(node[1])):
                 
                 diff_node_index = i
                 break
     
     if diff_node_index is not None:
         self._code_ast = code_ast
         try:
             self._body_len = len(code_ast.body)
         except AttributeError:
             self._body_len = -1
         if diff_node_index < len(self._compiled_cache):
             self._compiled_cache = self._compiled_cache[:diff_node_index]
         if diff_node_index < self._next_node_index:
             self._reset_execution()
开发者ID:m4nu3lf,项目名称:PyCSGScriptLive,代码行数:28,代码来源:dynamic_code_execution.py


示例14: wrap

    def wrap(func):
        env=Env()
        source=get_func_source(func)
        print source
        argnames=get_args(func)
        print argnames
        args={arg_name:arg_type for arg_name,arg_type in zip(argnames, argtypes)}
        
        node=ast.parse(source)
        env.node=node
        
        InsertPass(env).run()
        InsertReturn(env).run()
        print ast.dump(node)
        myControlFlowAnalysis(env).run()
        clearUnreachedNode(env).run()   
        
        TypeInfer(env, args, func.func_globals).run()
        print env.cf.blocks
        InsertCoerceNode(env).run()
        CoerceReturn(env).run()
        print ast.dump(node)
        NameRewrite(env).run()
        SubscriptRewrite(env).run()
        InsertArrayInfo(env).run()
        InsertDefination(env).run()
        print map_name_types

        
        from astunparse import Unparser
        from cStringIO import StringIO
        buf=StringIO()
        Unparser(node,buf)
        print buf.getvalue()      
        print get_return_type(env.return_node_infos)
开发者ID:rainwoodman,项目名称:cyjit,代码行数:35,代码来源:control_flow.py


示例15: get_changes

	def get_changes(self):
		if not self.text_before: return
		tree_before = ast.parse(self.text_before)
		tree = ast.parse(self.text)
		if ast.dump(tree)==ast.dump(tree_before): print('status','no changes to the script')
		else: 
			print('status','executing changes to %s'%self.file)
			# identify changed nodes in the tree and execute
			# note that this feature reruns any changed child of the script parent
			#! track line numbers are report to the user?
			tree_before,tree = [[self.CodeChunk(i,index=ii) for ii,i in 
				enumerate(ast.iter_child_nodes(ast.parse(t)))]
				for t in [self.text_before,self.text]]
			intersect = set.intersection(set(tree),set(tree_before))
			novel = list(set.difference(set(tree),intersect))
			novel_linenos = set([i.this.lineno for i in novel])
			class CodeSurgery(ast.NodeTransformer):
				def visit(self, node):
					if hasattr(node,'lineno') and node.lineno not in novel_linenos: 
						return ast.parse('last_lineno = %d'%node.lineno).body[0]
					else: return ast.NodeTransformer.generic_visit(self,node)
			code_ready = ast.fix_missing_locations(CodeSurgery().visit(ast.parse(self.text)))
			# run the remainder
			out = self.namespace
			#! exec to eval for python <2.7.15
			eval(compile(code_ready,filename='<ast>',mode='exec'),out,out)
开发者ID:bradleyrp,项目名称:factory,代码行数:26,代码来源:reexec.py


示例16: test_import_from_multi

 def test_import_from_multi(self):
     src = 'from mymodule import name1, name2 as x, name3'
     expect_src = '_LX_import_module("mymodule", froms=[("name1",None),("name2","x"),("name3",None),])'
     tree = ast.parse(src)
     tree = TransformImportsAst().visit(tree)
     expect_tree = ast.parse(expect_src)
     self.assertEquals(ast.dump(expect_tree), ast.dump(tree))
开发者ID:dpwhite2,项目名称:limitedexec,代码行数:7,代码来源:test_transform.py


示例17: check_transform

 def check_transform(self, input_, expect):
     result = self.transform.visit(input_)
     if expect is None:
         if result is not None:
             self.fail('{} is not None'.formatast.dump(result, False))
     else:
         self.assertEqual(ast.dump(result, False), ast.dump(expect, False))
开发者ID:DulithaRanatunga,项目名称:victims-lib-python,代码行数:7,代码来源:test_mnfy.py


示例18: iterscribe

 def iterscribe(self, line, line_num, indentation, program_ast):
     variable_id, variable_type = utils.get_id_and_type(line, program_ast)
     for node in ast.walk(program_ast):
         # TODO: handle nested for loops
         if ('iter' in node._fields and
             ast.dump(ast.parse(line).body[0]) in ast.dump(node)):
             line_number = node.lineno + self.offset()
             self.desugared_lines.insert(line_number,
                                         self.iter_start(node,
                                                         line,
                                                         line_num,
                                                         program_ast,
                                                         indentation))
             iterator_index = "".join(random.choice(string.ascii_uppercase) for _ in range(10))
             iterator_update = indentation + iterator_index + " += 1\n"
             self.desugared_lines.insert(line_number,
                                         indentation[:-4] + iterator_index + " = -1\n")
             self.desugared_lines.append(iterator_update)
             output = ("In iteration ' + str(" +
                       iterator_index +
                       ") + ', " +
                       variable_id +
                       " changed to ' + str(" +
                       variable_id +
                       ") ")
             return output
     raise KeyError("Could not find for loop")
开发者ID:jnbala,项目名称:PyScribe,代码行数:27,代码来源:pyscribe.py


示例19: test_function_call

def test_function_call(load):
    load.return_value = mock.sentinel.load 

    node = orchestra.ast_util.function_call(
        mock.sentinel.name,
        ast.Num(1),
        ast.Num(2),
        a=ast.Num(3),
        b=ast.Num(4),
    )
    print ast.dump(node)

    load.assert_called_with(mock.sentinel.name)

    assert isinstance(node, ast.Call)
    assert node.func == mock.sentinel.load
    assert node.args[0].n == 1
    assert node.args[1].n == 2

    assert isinstance(node.keywords[0], ast.keyword)
    assert node.keywords[0].arg == 'a'
    assert node.keywords[0].value.n == 3

    assert isinstance(node.keywords[1], ast.keyword)
    assert node.keywords[1].arg == 'b'
    assert node.keywords[1].value.n == 4
开发者ID:armooo,项目名称:orchestra,代码行数:26,代码来源:test_ast_util.py


示例20: test_count_thresh

def test_count_thresh():
    import ast
    import inspect

    p = ast.parse(inspect.getsource(count_thresh_orig))
    print "AST"
    print ast.dump(p)
    print "Bytecode"
    import dis

    dis.dis(count_thresh_orig)
    v = np.array([1.2, 1.4, 5.0, 2, 3])
    parakeet_result = count_thresh(v, 2.0)
    python_result = count_thresh_orig(v, 2.0)
    assert parakeet_result == python_result, "Parakeet %s != Python %s" % (parakeet_result, python_result)

    v = np.random.randn(10 ** 4)
    py_start = time.time()
    count_thresh_orig(v, 2.0)
    py_time = time.time() - py_start

    np_start = time.time()
    np_thresh(v, 2.0)
    np_time = time.time() - np_start

    par_start = time.time()
    count_thresh(v, 2.0)
    par_time = time.time() - par_start

    print "Python time: %.5f" % py_time
    print "NumPy time: %.5f" % np_time
    print "Parakeet time: %.5f" % par_time
开发者ID:Tillsten,项目名称:parakeet,代码行数:32,代码来源:test_thresholds.py



注:本文中的ast.dump函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python ast.fix_missing_locations函数代码示例发布时间:2022-05-24
下一篇:
Python ast.copy_location函数代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap