Python ast.Load() Examples
The following are 30
code examples of ast.Load().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ast
, or try the search function
.
Example #1
Source File: Recording.py From swirlypy with GNU General Public License v3.0 | 8 votes |
def visit_Expr(self, node): newnode = ast.copy_location(ast.Expr( value = ast.Call( func = ast.Attribute( value = ast.Name(id='__swirlypy_recorder__', ctx=ast.Load()), attr="record", ctx=ast.Load()), args=[node.value], keywords=[], starargs=None, kwargs=None ) ), node) ast.fix_missing_locations(newnode) return newnode
Example #2
Source File: test_ast.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_dump(self): node = ast.parse('spam(eggs, "and cheese")') self.assertEqual(ast.dump(node), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " "keywords=[], starargs=None, kwargs=None))])" ) self.assertEqual(ast.dump(node, annotate_fields=False), "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " "Str('and cheese')], [], None, None))])" ) self.assertEqual(ast.dump(node, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " "col_offset=11)], keywords=[], starargs=None, kwargs=None, " "lineno=1, col_offset=0), lineno=1, col_offset=0)])" )
Example #3
Source File: extended_ast.py From YAPyPy with MIT License | 6 votes |
def __init__( self, keys: t.List[ast.expr], values: t.List[ast.expr], ctx: t.Union[ast.Store, ast.Load], lineno=None, col_offset=None, ): super().__init__() self.keys = keys self.values = values self.ctx = ctx if lineno: self.lineno = lineno if col_offset: self.col_offset = col_offset
Example #4
Source File: expr.py From recruit with Apache License 2.0 | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx if isinstance(ctx, ast.Load): # resolve the value resolved = self.visit(value).value try: v = getattr(resolved, attr) name = self.env.add_tmp(v) return self.term_type(name, self.env) except AttributeError: # something like datetime.datetime where scope is overridden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {name}" .format(name=ctx.__name__))
Example #5
Source File: checker.py From linter-pylama with MIT License | 6 votes |
def NAME(self, node): """ Handle occurrence of Name (which can be a load/store/delete access.) """ # Locate the name in locals / function / globals scopes. if isinstance(node.ctx, (ast.Load, ast.AugLoad)): self.handleNodeLoad(node) if (node.id == 'locals' and isinstance(self.scope, FunctionScope) and isinstance(node.parent, ast.Call)): # we are doing locals() call in current scope self.scope.usesLocals = True elif isinstance(node.ctx, (ast.Store, ast.AugStore)): self.handleNodeStore(node) elif isinstance(node.ctx, ast.Del): self.handleNodeDelete(node) else: # must be a Param context -- this only happens for names in function # arguments, but these aren't dispatched through here raise RuntimeError("Got impossible expression context: %r" % (node.ctx,))
Example #6
Source File: pytables.py From Computable with MIT License | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx.__class__ if ctx == ast.Load: # resolve the value resolved = self.visit(value) # try to get the value to see if we are another expression try: resolved = resolved.value except (AttributeError): pass try: return self.term_type(getattr(resolved, attr), self.env) except AttributeError: # something like datetime.datetime where scope is overriden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {0}".format(ctx.__name__))
Example #7
Source File: expr.py From Computable with MIT License | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx if isinstance(ctx, ast.Load): # resolve the value resolved = self.visit(value).value try: v = getattr(resolved, attr) name = self.env.add_tmp(v) return self.term_type(name, self.env) except AttributeError: # something like datetime.datetime where scope is overridden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {0}".format(ctx.__name__))
Example #8
Source File: node_transformers.py From pynt with GNU General Public License v3.0 | 6 votes |
def make_annotation(node=None, buffer='outside', content=None, cell_type='code', lineno=None): """Return a ast.Expr that looks like ``` __cell__('make-cell', [content, buffer, cell_type]) ``` """ content = astor.to_source(node).strip() if node else content lineno = str(node.lineno) if hasattr(node, 'lineno') else str(-1) if not lineno else str(lineno) call = ast.Call( func=ast.Name(id='__cell__', ctx=ast.Load()), args=[ ast.Str(s=content), ast.Str(s=f'{buffer}'), ast.Str(s=cell_type), ast.Str(s=lineno), ], keywords=[] ) return ast.Expr(call)
Example #9
Source File: node_transformers.py From pynt with GNU General Public License v3.0 | 6 votes |
def visit_Return(self, return_): """Convert returns into assignment/exception pairs Since the body of this function will be in the global namespace we can't have any returns. An acceptable alternative is to set a variable called 'RETURN' and then immediately raise an exception. >>> self = NamespacePromoter(buffer='foo') >>> code = ''' ... ... return 5 ... ... ''' >>> tree = ast.parse(code) >>> return_, = tree.body """ nodes = [ ast.Assign(targets=[ast.Name(id='RETURN', ctx=ast.Store())], value=return_.value, lineno=return_.lineno), ast.Raise(exc=ast.Call(func=ast.Name(id='Exception', ctx=ast.Load()), args=[ast.Str(s='return')], keywords=[]), cause=None), ] return nodes
Example #10
Source File: pytables.py From recruit with Apache License 2.0 | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx.__class__ if ctx == ast.Load: # resolve the value resolved = self.visit(value) # try to get the value to see if we are another expression try: resolved = resolved.value except (AttributeError): pass try: return self.term_type(getattr(resolved, attr), self.env) except AttributeError: # something like datetime.datetime where scope is overridden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {name}" .format(name=ctx.__name__))
Example #11
Source File: test_ast.py From BinderFilter with MIT License | 6 votes |
def test_dump(self): node = ast.parse('spam(eggs, "and cheese")') self.assertEqual(ast.dump(node), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " "keywords=[], starargs=None, kwargs=None))])" ) self.assertEqual(ast.dump(node, annotate_fields=False), "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " "Str('and cheese')], [], None, None))])" ) self.assertEqual(ast.dump(node, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " "col_offset=11)], keywords=[], starargs=None, kwargs=None, " "lineno=1, col_offset=0), lineno=1, col_offset=0)])" )
Example #12
Source File: expressionfunction.py From pyDcop with BSD 3-Clause "New" or "Revised" License | 6 votes |
def visit(self, node) -> Any: if isinstance(node, ast.Name): if isinstance(node.ctx, ast.Load): self.loaded.add(node.id) elif isinstance(node.ctx, ast.Store): self.stored.add(node.id) elif isinstance(node, ast.Return): self.has_return = True # We must keep track of importer name in order to avoid considering as variable # names: elif isinstance(node, ast.Import): self.imported.update([ n.name for n in node.names]) elif isinstance(node, ast.ImportFrom): self.imported.update([ n.name for n in node.names]) self.generic_visit(node)
Example #13
Source File: test_flattening.py From sspam with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_noflattening(self): 'Tests where nothing should be flattened' corresp = [(["a + b", "b + a"], ast.BinOp(ast.Name('a', ast.Load()), ast.Add(), ast.Name('b', ast.Load()))), (["c*d", "d*c"], ast.BinOp(ast.Name('c', ast.Load()), ast.Mult(), ast.Name('d', ast.Load()))), (["a + c*d", "d*c + a"], ast.BinOp(ast.Name('a', ast.Load()), ast.Add(), ast.BinOp(ast.Name('c', ast.Load()), ast.Mult(), ast.Name('d', ast.Load()))))] for refstring, result in corresp: self.generic_flattening(refstring, result)
Example #14
Source File: topython.py From pyrser with GNU General Public License v3.0 | 6 votes |
def visit_Rep0N(self, node: parsing.Rep0N) -> [ast.stmt]: """Generates python code for a clause repeated 0 or more times. #If all clauses can be inlined while clause: pass while True: <code for the clause> """ cl_ast = self.visit(node.pt) if isinstance(cl_ast, ast.expr): return [ast.While(cl_ast, [ast.Pass()], [])] self.in_loop += 1 clause = self._clause(self.visit(node.pt)) self.in_loop -= 1 return [ast.While(ast.Name('True', ast.Load()), clause, [])]
Example #15
Source File: test_ast.py From oss-ftp with MIT License | 6 votes |
def test_dump(self): node = ast.parse('spam(eggs, "and cheese")') self.assertEqual(ast.dump(node), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " "keywords=[], starargs=None, kwargs=None))])" ) self.assertEqual(ast.dump(node, annotate_fields=False), "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " "Str('and cheese')], [], None, None))])" ) self.assertEqual(ast.dump(node, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " "col_offset=11)], keywords=[], starargs=None, kwargs=None, " "lineno=1, col_offset=0), lineno=1, col_offset=0)])" )
Example #16
Source File: test_ast.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_attributes(self): # assert True, "bad" assert0 = ast.Assert() self.assertFalse(hasattr(assert0, 'lineno')) self.assertFalse(hasattr(assert0, 'col_offset')) assert1 = ast.Assert(ast.Name('True', ast.Load()), ast.Str('bad')) self.assertFalse(hasattr(assert1, 'lineno')) self.assertFalse(hasattr(assert1, 'col_offset')) try: tmp=assert1.lineno except Exception as e: self.assertTrue(isinstance(e,AttributeError)) try: tmp=assert1.col_offset except Exception as e: self.assertTrue(isinstance(e,AttributeError)) assert2 = ast.Assert(ast.Name('True', ast.Load()), ast.Str('bad'),2,3) self.assertEqual(assert2.lineno,2) self.assertEqual(assert2.col_offset,3)
Example #17
Source File: test_ast.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_dump(self): node = ast.parse('spam(eggs, "and cheese")') self.assertEqual(ast.dump(node), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " "keywords=[], starargs=None, kwargs=None))])" ) self.assertEqual(ast.dump(node, annotate_fields=False), "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " "Str('and cheese')], [], None, None))])" ) self.assertEqual(ast.dump(node, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " "col_offset=11)], keywords=[], starargs=None, kwargs=None, " "lineno=1, col_offset=0), lineno=1, col_offset=0)])" )
Example #18
Source File: pytables.py From vnpy_crypto with MIT License | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx.__class__ if ctx == ast.Load: # resolve the value resolved = self.visit(value) # try to get the value to see if we are another expression try: resolved = resolved.value except (AttributeError): pass try: return self.term_type(getattr(resolved, attr), self.env) except AttributeError: # something like datetime.datetime where scope is overridden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {name}" .format(name=ctx.__name__))
Example #19
Source File: expr.py From vnpy_crypto with MIT License | 6 votes |
def visit_Attribute(self, node, **kwargs): attr = node.attr value = node.value ctx = node.ctx if isinstance(ctx, ast.Load): # resolve the value resolved = self.visit(value).value try: v = getattr(resolved, attr) name = self.env.add_tmp(v) return self.term_type(name, self.env) except AttributeError: # something like datetime.datetime where scope is overridden if isinstance(value, ast.Name) and value.id == attr: return resolved raise ValueError("Invalid Attribute context {name}" .format(name=ctx.__name__))
Example #20
Source File: rewrite.py From python-netsurv with MIT License | 6 votes |
def pop_format_context(self, expl_expr): """Format the %-formatted string with current format context. The expl_expr should be an ast.Str instance constructed from the %-placeholders created by .explanation_param(). This will add the required code to format said string to .expl_stmts and return the ast.Name instance of the formatted string. """ current = self.stack.pop() if self.stack: self.explanation_specifiers = self.stack[-1] keys = [ast.Str(key) for key in current.keys()] format_dict = ast.Dict(keys, list(current.values())) form = ast.BinOp(expl_expr, ast.Mod(), format_dict) name = "@py_format" + str(next(self.variable_counter)) if self.enable_assertion_pass_hook: self.format_variables.append(name) self.expl_stmts.append(ast.Assign([ast.Name(name, ast.Store())], form)) return ast.Name(name, ast.Load())
Example #21
Source File: topython.py From pyrser with GNU General Public License v3.0 | 6 votes |
def __exit_scope(self) -> ast.stmt: """Create the appropriate scope exiting statement. The documentation only shows one level and always uses 'return False' in examples. 'raise AltFalse()' within a try. 'break' within a loop. 'return False' otherwise. """ if self.in_optional: return ast.Pass() if self.in_try: return ast.Raise( ast.Call(ast.Name('AltFalse', ast.Load()), [], [], None, None), None) if self.in_loop: return ast.Break() return ast.Return(ast.Name('False', ast.Load())) #TODO(bps): find a better name to describe what this does
Example #22
Source File: topython.py From pyrser with GNU General Public License v3.0 | 6 votes |
def visit_Hook(self, node: parsing.Hook) -> ast.expr: """Generates python code calling a hook. self.evalHook('hookname', self.ruleNodes[-1]) """ return ast.Call( ast.Attribute( ast.Name('self', ast.Load()), 'evalHook', ast.Load()), [ ast.Str(node.name), ast.Subscript( ast.Attribute( ast.Name('self', ast.Load()), 'ruleNodes', ast.Load()), ast.Index(ast.UnaryOp(ast.USub(), ast.Num(1))), ast.Load())], [], None, None)
Example #23
Source File: rewrite.py From python-netsurv with MIT License | 6 votes |
def pop_format_context(self, expl_expr): """Format the %-formatted string with current format context. The expl_expr should be an ast.Str instance constructed from the %-placeholders created by .explanation_param(). This will add the required code to format said string to .expl_stmts and return the ast.Name instance of the formatted string. """ current = self.stack.pop() if self.stack: self.explanation_specifiers = self.stack[-1] keys = [ast.Str(key) for key in current.keys()] format_dict = ast.Dict(keys, list(current.values())) form = ast.BinOp(expl_expr, ast.Mod(), format_dict) name = "@py_format" + str(next(self.variable_counter)) if self.enable_assertion_pass_hook: self.format_variables.append(name) self.expl_stmts.append(ast.Assign([ast.Name(name, ast.Store())], form)) return ast.Name(name, ast.Load())
Example #24
Source File: asttools.py From sspam with BSD 3-Clause "New" or "Revised" License | 6 votes |
def visit_BinOp(self, node): 'Replace bitwise operation with function call' self.generic_visit(node) if isinstance(node.op, ast.BitAnd): return ast.Call(ast.Name('mand', ast.Load()), [node.left, node.right], [], None, None) if isinstance(node.op, ast.BitOr): return ast.Call(ast.Name('mor', ast.Load()), [node.left, node.right], [], None, None) if isinstance(node.op, ast.BitXor): return ast.Call(ast.Name('mxor', ast.Load()), [node.left, node.right], [], None, None) if isinstance(node.op, ast.LShift): return ast.Call(ast.Name('mlshift', ast.Load()), [node.left, node.right], [], None, None) if isinstance(node.op, ast.RShift): return ast.Call(ast.Name('mrshift', ast.Load()), [node.left, node.right], [], None, None) return node
Example #25
Source File: test_ast.py From BinderFilter with MIT License | 5 votes |
def test_invalid_identitifer(self): m = ast.Module([ast.Expr(ast.Name(u"x", ast.Load()))]) ast.fix_missing_locations(m) with self.assertRaises(TypeError) as cm: compile(m, "<test>", "exec") self.assertIn("identifier must be of type str", str(cm.exception))
Example #26
Source File: pyupgrade.py From pyupgrade with MIT License | 5 votes |
def visit_Name(self, node: ast.Name) -> None: if self._is_six(node, SIX_SIMPLE_ATTRS): self.six_simple[_ast_to_offset(node)] = node if self._scope_stack: if isinstance(node.ctx, ast.Load): self._scope_stack[-1].reads.add(node.id) elif isinstance(node.ctx, (ast.Store, ast.Del)): self._scope_stack[-1].writes.add(node.id) else: raise AssertionError(node) self.generic_visit(node)
Example #27
Source File: namedlist.py From appcompatprocessor with Apache License 2.0 | 5 votes |
def _make_fn(name, chain_fn, args, defaults): args_with_self = ['_self'] + list(args) arguments = [_ast.Name(id=arg, ctx=_ast.Load()) for arg in args_with_self] defs = [_ast.Name(id='_def{0}'.format(idx), ctx=_ast.Load()) for idx, _ in enumerate(defaults)] if _PY2: parameters = _ast.arguments(args=[_ast.Name(id=arg, ctx=_ast.Param()) for arg in args_with_self], defaults=defs) else: parameters = _ast.arguments(args=[_ast.arg(arg=arg) for arg in args_with_self], kwonlyargs=[], defaults=defs, kw_defaults=[]) module_node = _ast.Module(body=[_ast.FunctionDef(name=name, args=parameters, body=[_ast.Return(value=_ast.Call(func=_ast.Name(id='_chain', ctx=_ast.Load()), args=arguments, keywords=[]))], decorator_list=[])]) module_node = _ast.fix_missing_locations(module_node) # compile the ast code = compile(module_node, '<string>', 'exec') # and eval it in the right context globals_ = {'_chain': chain_fn} locals_ = dict(('_def{0}'.format(idx), value) for idx, value in enumerate(defaults)) eval(code, globals_, locals_) # extract our function from the newly created module return locals_[name] ######################################################################## # Produce a docstring for the class.
Example #28
Source File: node_transformers.py From pynt with GNU General Public License v3.0 | 5 votes |
def visit_For(self, loop): """Pure syntax rewrite of a for loop Unroll only the first iteration through the loop. >>> self = FirstPassForSimple('foo') """ # loop = self.generic_visit(loop) # iter(loop.iter) iter_call = ast.Call( func=ast.Name(id='iter', ctx=ast.Load()), args=[ast.Name(id=loop.iter, ctx=ast.Load())], keywords=[] ) # i = next(iter(loop.iter)) get_first = ast.Assign( targets=[loop.target], value=ast.Call( func=ast.Name(id='next', ctx=ast.Load()), args=[iter_call], keywords=[] ) ) content = f'`for {astor.to_source(loop.target).strip()} in {astor.to_source(loop.iter).strip()} ...`' nodes = [] nodes.append(make_annotation(buffer=self.buffer, content=content, cell_type='2', lineno=loop.lineno)) nodes.append(ast.Expr(loop.iter)) nodes.append(get_first) nodes.extend(loop.body) return nodes
Example #29
Source File: pp_module.py From snoop with MIT License | 5 votes |
def visit_expr(self, node): # type: (ast.expr) -> ast.Call """ each expression e gets wrapped like this: _treetrace_hidden_after_expr(_treetrace_hidden_before_expr(_tree_index), e) where the _treetrace_* functions are the corresponding methods with the TreeTracerBase and traced_file arguments already filled in (see _trace_methods_dict) """ before_marker = ast.Call( func=ast.Name(id=self.before_name, ctx=ast.Load()), args=[ast.Num(node._tree_index)], keywords=[], ) ast.copy_location(before_marker, node) if isinstance(node, FormattedValue): arg = node else: arg = super(NodeVisitor, self).generic_visit(node) after_marker = ast.Call( func=ast.Name(id=self.after_name, ctx=ast.Load()), args=[ before_marker, arg, ], keywords=[], ) ast.copy_location(after_marker, node) ast.fix_missing_locations(after_marker) return after_marker
Example #30
Source File: test_ast.py From oss-ftp with MIT License | 5 votes |
def test_invalid_identitifer(self): m = ast.Module([ast.Expr(ast.Name(u"x", ast.Load()))]) ast.fix_missing_locations(m) with self.assertRaises(TypeError) as cm: compile(m, "<test>", "exec") self.assertIn("identifier must be of type str", str(cm.exception))