Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: flake8-abp/flake8_abp.py

Issue 29344615: Noissue - Allow calling map() with lambda and multiple sequences (Closed)
Patch Set: Created May 26, 2016, 2:49 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | flake8-abp/tests/A104.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # This file is part of Adblock Plus <https://adblockplus.org/>, 1 # This file is part of Adblock Plus <https://adblockplus.org/>,
2 # Copyright (C) 2006-2016 Eyeo GmbH 2 # Copyright (C) 2006-2016 Eyeo GmbH
3 # 3 #
4 # Adblock Plus is free software: you can redistribute it and/or modify 4 # Adblock Plus is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 3 as 5 # it under the terms of the GNU General Public License version 3 as
6 # published by the Free Software Foundation. 6 # published by the Free Software Foundation.
7 # 7 #
8 # Adblock Plus is distributed in the hope that it will be useful, 8 # Adblock Plus is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 substitute = DISCOURAGED_APIS.get(name) 277 substitute = DISCOURAGED_APIS.get(name)
278 if substitute: 278 if substitute:
279 self.errors.append((node, 'A301 use {}() instead of ' 279 self.errors.append((node, 'A301 use {}() instead of '
280 '{}()'.format(substitute, name))) 280 '{}()'.format(substitute, name)))
281 281
282 def visit_Call(self, node): 282 def visit_Call(self, node):
283 func = get_identifier(node.func) 283 func = get_identifier(node.func)
284 arg = next(iter(node.args), None) 284 arg = next(iter(node.args), None)
285 redundant_literal = False 285 redundant_literal = False
286 286
287 if isinstance(arg, ast.Lambda) and func in {'map', 'filter', 287 if isinstance(arg, ast.Lambda):
288 'imap', 'ifilter', 288 if len(node.args) == 2 and func in {'map', 'filter',
289 'itertools.imap', 289 'imap', 'ifilter',
290 'itertools.ifilter'}: 290 'itertools.imap',
291 self.errors.append((node, 'A104 use a comprehension ' 291 'itertools.ifilter'}:
292 'instead of calling {}() with ' 292 self.errors.append((node, 'A104 use a comprehension '
293 'lambda function'.format(func))) 293 'instead of calling {}() with '
294 'lambda function'.format(func)))
294 elif isinstance(arg, (ast.List, ast.Tuple)): 295 elif isinstance(arg, (ast.List, ast.Tuple)):
295 if func == 'dict': 296 if func == 'dict':
296 redundant_literal = all(isinstance(elt, (ast.Tuple, ast.List)) 297 redundant_literal = all(isinstance(elt, (ast.Tuple, ast.List))
297 for elt in arg.elts) 298 for elt in arg.elts)
298 else: 299 else:
299 redundant_literal = func in {'list', 'set', 'tuple'} 300 redundant_literal = func in {'list', 'set', 'tuple'}
300 elif isinstance(arg, (ast.ListComp, ast.GeneratorExp)): 301 elif isinstance(arg, (ast.ListComp, ast.GeneratorExp)):
301 if func == 'dict': 302 if func == 'dict':
302 redundant_literal = isinstance(arg.elt, (ast.Tuple, ast.List)) 303 redundant_literal = isinstance(arg.elt, (ast.Tuple, ast.List))
303 else: 304 else:
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 if tokens[i + 1][:2] != (tokenize.OP, ':'): 463 if tokens[i + 1][:2] != (tokenize.OP, ':'):
463 break 464 break
464 465
465 return [(pos, 'A111 redundant parenthesis for {} ' 466 return [(pos, 'A111 redundant parenthesis for {} '
466 'statement'.format(statement))] 467 'statement'.format(statement))]
467 468
468 return [] 469 return []
469 470
470 check_redundant_parenthesis.name = 'abp-redundant-parenthesis' 471 check_redundant_parenthesis.name = 'abp-redundant-parenthesis'
471 check_redundant_parenthesis.version = __version__ 472 check_redundant_parenthesis.version = __version__
OLDNEW
« no previous file with comments | « no previous file | flake8-abp/tests/A104.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld