summaryrefslogtreecommitdiff
path: root/pylint/checkers/python3.py
Commit message (Collapse)AuthorAgeFilesLines
* Need to also use the builtin module for Python 2Claudiu Popa2018-07-241-0/+3
|
* `chain.from_iterable` no longer emits `dict-{}-not-iterating` when dealing ↵Claudiu Popa2018-07-241-1/+2
| | | | with dict values and keys
* frozenset is an iterating context for dict.values() and friendsClaudiu Popa2018-07-241-1/+1
|
* [].extend and similar builtin operations don't emit `dict-*-not-iterating` ↵Claudiu Popa2018-07-241-0/+13
| | | | | | with the Python 3 porting checker Close #2187
* `in` is considered iterating context for some of the Python 3 porting checkersClaudiu Popa2018-06-141-0/+5
| | | | Close #2186
* min() and max() accept iterators (#2138)Anthony Sottile2018-06-061-1/+2
|
* Check that the potential leaked names are not used in the except handlerClaudiu Popa2018-06-011-0/+8
|
* Don't use scope() to check if the variable is defined in the current statementClaudiu Popa2018-06-011-1/+1
| | | | | | | This works on Python 3 because scope() for a ListComp will always be the ListComp, but on Python 2 that's going to be the outer scope/frame instead. Close #2106
* Make sure the value is not defined in the same comprehension when looking ↵Claudiu Popa2018-05-241-1/+8
| | | | for comprehension-escape values. Close #2106
* Don't include excepthandlers that don't have a name when looking for ↵Claudiu Popa2018-05-231-0/+3
| | | | exception-escape
* Rewrite the comprehension-escape and exception-escape to work only on the ↵Claudiu Popa2018-05-231-33/+56
| | | | | | | | | | | | | corresponding nodes These two checks were implemented in terms of visit_namne, that is, for every name in the tree, we looked to see if that name leaked. This was resulting in a couple of false positives and also in a performance issue, since we were calling nodes_of_class() and scope() for each name node. Instead, this approach uses the visit methods for exception and comprehension nodes and looks to see from there if the current scope uses leaked names. This is not the ideal situation as well, ideal would be to have access to the definition frame of each name, but that requires some extra engineering effort in astroid to get it right. Close #2106
* Use last previous assignment for comprehension-escape (#2131)Anthony Sottile2018-05-221-3/+4
|
* Refixed old-raise-syntax not looking for tracebackpylint-1.9.1Ashley Whetter2018-05-161-2/+1
|
* old-raise-syntax can be triggered only on Python 2Claudiu Popa2018-05-161-3/+5
|
* Updated copyright notices for version 1.9.0Ashley Whetter2018-05-151-1/+2
|
* Fix lintClaudiu Popa2018-05-131-4/+6
|
* Reimplement the lookup() call by manually looking for the right nodesClaudiu Popa2018-05-131-13/+28
| | | | | | On Python 3 we can't see the assignment statement of a deleted node, such as an assignment from a loop or from the except handler. Instead of relying on lookup() itself, look through the current scope manually for the right objects.
* Added two new Python 3 porting checks, `exception-escape` and ↵Claudiu Popa2018-05-121-1/+27
| | | | | | | `comprehension-escape` These two are emitted whenever pylint detects that a variable defined in the said blocks is used outside of the given block. On Python 3 these values are deleted.
* Emit a warning when sys.exc_clear is accessedClaudiu Popa2018-05-111-0/+7
|
* Emit a warning when .xreadlines() is accessedClaudiu Popa2018-05-111-5/+13
|
* No need to check for the traceback for old-raise-syntax in its 3-tuple formClaudiu Popa2018-05-101-2/+1
|
* Never push without testing firstClaudiu Popa2018-05-101-0/+1
|
* The Python 3 porting checker can run with Python 3 as wellClaudiu Popa2018-05-101-146/+82
|
* Add new check py3k invalid-unicode-literal. (#2068)Sushobhit2018-05-091-0/+7
| | | Close #1938
* Rip invalid-raise-syntax, we already have old-raise-syntaxClaudiu Popa2018-04-181-20/+5
| | | | | Instead of adding a new check, old-raise-syntax was modified to account for the case when we throw with a traceback.
* Handle dict subclasses for dict-not-iterating checksClaudiu Popa2018-04-181-7/+8
|
* defaultdict and subclasses of dict are now handled for dict-iter-* checksClaudiu Popa2018-04-181-2/+9
| | | | Close #2005
* Rip lambda paremeter unpacking, we already have parameter-unpackingClaudiu Popa2018-04-181-11/+1
|
* Added a new Python 2/3 check for invalid raise syntax.Claudiu Popa2018-04-171-6/+18
| | | | Close #1937
* Added a new Python 2/3 check for invalid lambda parameter list, ↵Claudiu Popa2018-04-171-0/+11
| | | | | | `lambda-parameter-parens` Close #1995
* Added a new Python 2/3 check for accessing removed urllib functionsClaudiu Popa2018-04-121-1/+19
| | | | Close #1997
* Added a new Python 2/3 check for accessing `operator.div`, which is removed ↵Claudiu Popa2018-04-121-0/+8
| | | | | | in Python 3 Close #1936
* Fix lint errorspylint-1.8.4Claudiu Popa2018-04-051-3/+3
|
* Catch string.letters with the Python 3 porting checkerClaudiu Popa2018-04-051-2/+2
| | | | Close #1935
* Add missing string functions to the Python 3 porting checkerClaudiu Popa2018-04-041-1/+3
|
* Regenerate copyright noticesClaudiu Popa2017-12-151-1/+15
|
* Do not warn no-absolute-import multiple times per file (#1725)Daniel Miller2017-11-111-1/+4
|
* Adding a check for ``inconsistent-return-statements`` inside function or ↵hippo912017-09-261-0/+2
| | | | | methods. (#1641) Close #1267
* A map enclosed by a filter call does not trigger map-builtin-not-iterating ↵Claudiu Popa2017-09-191-1/+1
| | | | on Python 3 porting checker any longer
* Adding a warning about keyword argument appearing before variable args list ↵ahirnish2017-09-151-0/+1
| | | | in the function definition (#1636)
* Add a couple of Uninferable filters where we weren't using anyClaudiu Popa2017-08-151-2/+5
|
* cProfile is not deprecated in Python 3 apparently. Close #1612Claudiu Popa2017-08-091-1/+1
|
* Fix a false positive with bad-python3-import on relative importsClaudiu Popa2017-08-071-1/+1
| | | | Close #1608
* Added a new Python 3 check, non-ascii-bytes-literals. Close #1545Claudiu Popa2017-07-231-0/+8
|
* Added a couple of new Python 3 checks for accessing dict methods in ↵Claudiu Popa2017-07-211-0/+28
| | | | non-iterable context. Part of #377
* Flag sets module as having moved in Python 3 (#1570)Roy Williams2017-07-111-2/+2
|
* Exempt exceptions with .message specifically implemented. Close #1564Claudiu Popa2017-07-081-2/+7
|
* Remove module that wasn't actually moved. Close #1565Claudiu Popa2017-07-081-1/+1
|
* Implement a Python3 warning for declaring a method `next` method that would ↵Roy Williams2017-06-021-5/+23
| | | | | | implement the Iterator protocol in Python 2 but not in Python 3. (#1509) In Python 2 implementing a no argument instance method `next` would implement the Iterator protocol, allowing the class to be used with `next()` or a `for` loop. In Python 3 this is now `__next__`.
* Add a warning for bad imports from the types module (#1501)Roy Williams2017-05-291-0/+14
|