Python ast.Break() Examples
The following are 16
code examples of ast.Break().
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: checker.py From linter-pylama with MIT License | 6 votes |
def CONTINUE(self, node): # Walk the tree up until we see a loop (OK), a function or class # definition (not OK), for 'continue', a finally block (not OK), or # the top module scope (not OK) n = node while hasattr(n, 'parent'): n, n_child = n.parent, n if isinstance(n, LOOP_TYPES): # Doesn't apply unless it's in the loop itself if n_child not in n.orelse: return if isinstance(n, (ast.FunctionDef, ast.ClassDef)): break # Handle Try/TryFinally difference in Python < and >= 3.3 if hasattr(n, 'finalbody') and isinstance(node, ast.Continue): if n_child in n.finalbody: self.report(messages.ContinueInFinally, node) return if isinstance(node, ast.Continue): self.report(messages.ContinueOutsideLoop, node) else: # ast.Break self.report(messages.BreakOutsideLoop, node)
Example #2
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 #3
Source File: checker.py From pyflakes with MIT License | 6 votes |
def CONTINUE(self, node): # Walk the tree up until we see a loop (OK), a function or class # definition (not OK), for 'continue', a finally block (not OK), or # the top module scope (not OK) n = node while hasattr(n, '_pyflakes_parent'): n, n_child = n._pyflakes_parent, n if isinstance(n, LOOP_TYPES): # Doesn't apply unless it's in the loop itself if n_child not in n.orelse: return if isinstance(n, (ast.FunctionDef, ast.ClassDef)): break # Handle Try/TryFinally difference in Python < and >= 3.3 if hasattr(n, 'finalbody') and isinstance(node, ast.Continue): if n_child in n.finalbody and not PY38_PLUS: self.report(messages.ContinueInFinally, node) return if isinstance(node, ast.Continue): self.report(messages.ContinueOutsideLoop, node) else: # ast.Break self.report(messages.BreakOutsideLoop, node)
Example #4
Source File: checker.py From blackmamba with MIT License | 6 votes |
def CONTINUE(self, node): # Walk the tree up until we see a loop (OK), a function or class # definition (not OK), for 'continue', a finally block (not OK), or # the top module scope (not OK) n = node while hasattr(n, 'parent'): n, n_child = n.parent, n if isinstance(n, LOOP_TYPES): # Doesn't apply unless it's in the loop itself if n_child not in n.orelse: return if isinstance(n, (ast.FunctionDef, ast.ClassDef)): break # Handle Try/TryFinally difference in Python < and >= 3.3 if hasattr(n, 'finalbody') and isinstance(node, ast.Continue): if n_child in n.finalbody: self.report(messages.ContinueInFinally, node) return if isinstance(node, ast.Continue): self.report(messages.ContinueOutsideLoop, node) else: # ast.Break self.report(messages.BreakOutsideLoop, node)
Example #5
Source File: bugbear.py From flake8-bugbear with MIT License | 6 votes |
def check_for_b012(self, node): def _loop(node, bad_node_types): if isinstance(node, (ast.AsyncFunctionDef, ast.FunctionDef)): return if isinstance(node, (ast.While, ast.For)): bad_node_types = (ast.Return,) elif isinstance(node, bad_node_types): self.errors.append(B012(node.lineno, node.col_offset)) for child in ast.iter_child_nodes(node): _loop(child, bad_node_types) for child in node.finalbody: _loop(child, (ast.Return, ast.Continue, ast.Break))
Example #6
Source File: core.py From vulture with MIT License | 6 votes |
def _handle_ast_list(self, ast_list): """ Find unreachable nodes in the given sequence of ast nodes. """ for index, node in enumerate(ast_list): if isinstance( node, (ast.Break, ast.Continue, ast.Raise, ast.Return) ): try: first_unreachable_node = ast_list[index + 1] except IndexError: continue class_name = node.__class__.__name__.lower() self._define( self.unreachable_code, class_name, first_unreachable_node, last_node=ast_list[-1], message="unreachable code after '{class_name}'".format( **locals() ), confidence=100, ) return
Example #7
Source File: _343.py From codetransformer with GNU General Public License v2.0 | 5 votes |
def _jump_break_loop(instr, queue, stack, body, context): if context.top_of_loop is None: raise DecompilationError("BREAK_LOOP outside of loop.") body.append(ast.Break())
Example #8
Source File: hgawk_grammar.py From histogrammar-python with Apache License 2.0 | 5 votes |
def p_break_stmt(p): '''break_stmt : BREAK''' # 1 p[0] = ast.Break(rule=inspect.currentframe().f_code.co_name, **p[1][1]) # continue_stmt: 'continue'
Example #9
Source File: python2ir.py From ppci with BSD 2-Clause "Simplified" License | 5 votes |
def gen_statement(self, statement): """ Generate code for a statement """ if isinstance(statement, list): for inner_statement in statement: self.gen_statement(inner_statement) else: with self.use_location(statement): if isinstance(statement, ast.Pass): pass # No comments :) elif isinstance(statement, ast.Return): self.gen_return(statement) elif isinstance(statement, ast.If): self.gen_if(statement) elif isinstance(statement, ast.While): self.gen_while(statement) elif isinstance(statement, ast.Break): self.gen_break(statement) elif isinstance(statement, ast.Continue): self.gen_continue(statement) elif isinstance(statement, ast.For): self.gen_for(statement) elif isinstance(statement, ast.Assign): self.gen_assign(statement) elif isinstance(statement, ast.Expr): self.gen_expr(statement.value) elif isinstance(statement, ast.AugAssign): self.gen_aug_assign(statement) else: # pragma: no cover self.not_impl(statement)
Example #10
Source File: translation.py From mochi with MIT License | 5 votes |
def translate_break(self, exp): if len(exp) > 1: raise MochiSyntaxError(exp, self.filename) return (), ast.Break(lineno=exp[0].lineno, col_offset=0)
Example #11
Source File: translation.py From mochi with MIT License | 5 votes |
def _tail_recursion_optimize(self, func_ast): transformer = self.SelfTailRecursiveCallTransformer(func_ast) optimized_func_ast = transformer.visit(func_ast) if self.SelfTailRecursiveCallTransformer.optimized: if IS_PYPY: optimized_func_ast.body = [ast.While(test=ast.Name(id='True', ctx=ast.Load(), lineno=0, col_offset=0), body=optimized_func_ast.body + [ast.Break(lineno=0, col_offset=0)], orelse=[], lineno=0, col_offset=0)] else: optimized_func_ast.body = [ast.While(test=ast.Num(n=1, lineno=0, col_offset=0), body=optimized_func_ast.body + [ast.Break(lineno=0, col_offset=0)], orelse=[], lineno=0, col_offset=0)] self.SelfTailRecursiveCallTransformer.optimized = False return optimized_func_ast else: return func_ast
Example #12
Source File: cps.py From kappa with BSD 2-Clause "Simplified" License | 5 votes |
def visit_Break(self, br: ast.Break, _ctx: CPSTransformerContext) -> VisitReturnT: return br, []
Example #13
Source File: flatten.py From kappa with BSD 2-Clause "Simplified" License | 5 votes |
def visit_Break(self, br: ast.Break) -> ActionsT: return [br]
Example #14
Source File: liveness.py From kappa with BSD 2-Clause "Simplified" License | 5 votes |
def visit_Break(self, _br: ast.Break) -> None: pass
Example #15
Source File: exceptions.py From wemake-python-styleguide with MIT License | 5 votes |
def _check_break_or_continue_in_finally(self, node: ast.Try) -> None: has_wrong_nodes = any( is_contained(line, (ast.Break, ast.Continue)) for line in node.finalbody ) if has_wrong_nodes: self.add_violation(LoopControlFinallyViolation(node))
Example #16
Source File: loops.py From wemake-python-styleguide with MIT License | 5 votes |
def has_break(node: AnyLoop) -> bool: """Tells whether or not given loop has ``break`` keyword in its body.""" closest_loop = None for sub in ast.walk(node): if _is_nested_loop(node, sub): closest_loop = sub if isinstance(sub, ast.Break): if not closest_loop or not walk.is_contained_by(sub, closest_loop): return True return False