Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/pylint/checkers/python3.py

Issue 876793002: pylint: upgrade to 1.4.1 (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/pylint/checkers/misc.py ('k') | third_party/pylint/checkers/similar.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 # Copyright 2014 Google Inc. 1 # Copyright 2014 Google Inc.
2 # This program is free software; you can redistribute it and/or modify it under 2 # This program is free software; you can redistribute it and/or modify it under
3 # the terms of the GNU General Public License as published by the Free Software 3 # the terms of the GNU General Public License as published by the Free Software
4 # Foundation; either version 2 of the License, or (at your option) any later 4 # Foundation; either version 2 of the License, or (at your option) any later
5 # version. 5 # version.
6 # 6 #
7 # This program is distributed in the hope that it will be useful, but WITHOUT 7 # This program is distributed in the hope that it will be useful, but WITHOUT
8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 9 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
10 # 10 #
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 '(method is not used by Python 3)', 245 '(method is not used by Python 3)',
246 {'maxversion': (3, 0)}), 246 {'maxversion': (3, 0)}),
247 'W1631': ('map is used as implicitly evaluated call', 247 'W1631': ('map is used as implicitly evaluated call',
248 'implicit-map-evaluation', 248 'implicit-map-evaluation',
249 'Used when the map builtin is used as implicitly ' 249 'Used when the map builtin is used as implicitly '
250 'evaluated call, as in "map(func, args)" on a single line. ' 250 'evaluated call, as in "map(func, args)" on a single line. '
251 'This behaviour will not work in Python 3, where ' 251 'This behaviour will not work in Python 3, where '
252 'map is a generator and must be evaluated. ' 252 'map is a generator and must be evaluated. '
253 'Prefer a for-loop as alternative.', 253 'Prefer a for-loop as alternative.',
254 {'maxversion': (3, 0)}), 254 {'maxversion': (3, 0)}),
255 'W1632': ('input built-in referenced',
256 'input-builtin',
257 'Used when the input built-in is referenced '
258 '(backwards-incompatible semantics in Python 3)',
259 {'maxversion': (3, 0)}),
260 'W1633': ('round built-in referenced',
261 'round-builtin',
262 'Used when the round built-in is referenced '
263 '(backwards-incompatible semantics in Python 3)',
264 {'maxversion': (3, 0)}),
255 } 265 }
256 266
257 _missing_builtins = frozenset([ 267 _bad_builtins = frozenset([
258 'apply', 268 'apply',
259 'basestring', 269 'basestring',
260 'buffer', 270 'buffer',
261 'cmp', 271 'cmp',
262 'coerce', 272 'coerce',
263 'execfile', 273 'execfile',
264 'file', 274 'file',
275 'input', # Not missing, but incompatible semantics
265 'long', 276 'long',
266 'raw_input', 277 'raw_input',
267 'reduce', 278 'reduce',
279 'round', # Not missing, but incompatible semantics
268 'StandardError', 280 'StandardError',
269 'unicode', 281 'unicode',
270 'xrange', 282 'xrange',
271 'reload', 283 'reload',
272 ]) 284 ])
273 285
274 _unused_magic_methods = frozenset([ 286 _unused_magic_methods = frozenset([
275 '__coerce__', 287 '__coerce__',
276 '__delslice__', 288 '__delslice__',
277 '__getslice__', 289 '__getslice__',
(...skipping 25 matching lines...) Expand all
303 @utils.check_messages('implicit-map-evaluation') 315 @utils.check_messages('implicit-map-evaluation')
304 def visit_discard(self, node): 316 def visit_discard(self, node):
305 if (isinstance(node.value, astroid.CallFunc) and 317 if (isinstance(node.value, astroid.CallFunc) and
306 isinstance(node.value.func, astroid.Name) and 318 isinstance(node.value.func, astroid.Name) and
307 node.value.func.name == 'map'): 319 node.value.func.name == 'map'):
308 module = node.value.func.lookup('map')[0] 320 module = node.value.func.lookup('map')[0]
309 if getattr(module, 'name', None) == '__builtin__': 321 if getattr(module, 'name', None) == '__builtin__':
310 self.add_message('implicit-map-evaluation', node=node) 322 self.add_message('implicit-map-evaluation', node=node)
311 323
312 def visit_name(self, node): 324 def visit_name(self, node):
313 """Detect when a built-in that is missing in Python 3 is referenced.""" 325 """Detect when a "bad" built-in is referenced."""
314 found_node = node.lookup(node.name)[0] 326 found_node = node.lookup(node.name)[0]
315 if getattr(found_node, 'name', None) == '__builtin__': 327 if getattr(found_node, 'name', None) == '__builtin__':
316 if node.name in self._missing_builtins: 328 if node.name in self._bad_builtins:
317 message = node.name.lower() + '-builtin' 329 message = node.name.lower() + '-builtin'
318 self.add_message(message, node=node) 330 self.add_message(message, node=node)
319 331
320 @utils.check_messages('print-statement') 332 @utils.check_messages('print-statement')
321 def visit_print(self, node): 333 def visit_print(self, node):
322 self.add_message('print-statement', node=node) 334 self.add_message('print-statement', node=node)
323 335
324 @utils.check_messages('no-absolute-import') 336 @utils.check_messages('no-absolute-import')
325 def visit_from(self, node): 337 def visit_from(self, node):
326 if node.modname == '__future__': 338 if node.modname == '__future__':
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 self.add_message('long-suffix', line=start[0]) 467 self.add_message('long-suffix', line=start[0])
456 elif _is_old_octal(token): 468 elif _is_old_octal(token):
457 self.add_message('old-octal-literal', line=start[0]) 469 self.add_message('old-octal-literal', line=start[0])
458 if tokens[idx][1] == '<>': 470 if tokens[idx][1] == '<>':
459 self.add_message('old-ne-operator', line=tokens[idx][2][0]) 471 self.add_message('old-ne-operator', line=tokens[idx][2][0])
460 472
461 473
462 def register(linter): 474 def register(linter):
463 linter.register_checker(Python3Checker(linter)) 475 linter.register_checker(Python3Checker(linter))
464 linter.register_checker(Python3TokenChecker(linter)) 476 linter.register_checker(Python3TokenChecker(linter))
OLDNEW
« no previous file with comments | « third_party/pylint/checkers/misc.py ('k') | third_party/pylint/checkers/similar.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698