summaryrefslogtreecommitdiff
path: root/pyflakes
Commit message (Collapse)AuthorAgeFilesLines
* Support Python 3.7Steven Myint2017-05-291-1/+13
| | | | This fixes #271.
* Merge branch 'master' of github.com:pyflakes/pyflakesPhil Frost2017-02-263-9/+10
|\ | | | | | | | | Forgot to push the commit that increments to 1.5.0 when I made the release, and some changes have been made since then :(
| * Don't test against file perms when running as root (#86)cfs-pure2017-02-041-0/+3
| | | | | | | | | | | | | | | | * Don't test against file perms when running as root test_permissionDenied tests file modes by creating a temporary file, then sets the mode to 0000 and attempts to process it and see if and permission denied error is generated. This never happens when the unit tests are run as root since it can open files regardless of file permissions. * Fix up UID skip in tests for Windows
| * Process function scope variable annotations (#88)Jakub Stasiak2017-01-222-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though variable annotations in function scope aren't evaluated at runtime it's still useful for static analysis tools to process them and catch some issues (and not report some things that aren't issues). Let's take the following code: from typing import Any def fun(): a: Any Previously pyflakes would report Any to be unused: test.py:1: 'typing.Any' imported but unused With this patch it's no longer the case.
* | Increment version to 1.5.01.5.0Phil Frost2017-01-091-1/+1
|/
* Enable support for PEP 526 annotated assignments (#84)Łukasz Langa2017-01-062-0/+79
| | | | | | Without this change, code with annotated assignments is crashing pyflakes with an attribute error (`object has no attribute 'ANNASSIGN'`). Test plan: new tests introduced conforming to behavior described in the PEP.
* Increment version to 1.4.01.4.0Phil Frost2016-12-301-1/+1
|
* Use %r instead of %s in ImportStarMessage (#81)Jelte Fennema2016-09-281-1/+1
| | | | | This was inconsistent with the other error messages. This is useful as it allows easy detecting of the offending item for editor plugins by simply searching in the message for quotes.
* Fix format string checking (#80)Jared Garst2016-09-082-1/+9
| | | | format strings (PEP 498) defines a new AST node, JOINEDSTR which contains a list of string expressions.
* Point URLs to PyCQA (#79)Ville Skyttä2016-09-021-1/+1
|
* Increment version to 1.3.01.3.0Phil Frost2016-09-011-1/+1
|
* Fix PyPy2 Windows IntegrationTests (#76)John Vandenberg2016-08-041-1/+25
| | | | | | | | | IntegrationTests.test_errors is failing on Windows under PyPy2 as its stderr emits \r\r\n as the line separator. Add AppVeyor testing for three PyPy releases. Also add a test for the other more complex stderr message emitted by the Reporter.
* Fix typos (#77)Jakub Wilk2016-07-273-7/+7
|
* Check for duplicate dictionary keys (#72)geokala2016-07-253-1/+333
|
* Fix TestMain tests on Windows (#75)John Vandenberg2016-07-211-4/+28
| | | | | | | | | Currently the API test module has failures for TestMain class, added in f0084592, on Windows as SysStreamCapturing is in universal newlines mode while its super class IntegrationTests is using a native console stream with newline=os.linesep. Add Appveyor CI script as .appveyor.yml, which can be selected in the Appveyor settings.
* Fix "continue" and "break" checks ignoring py3.5's "async for" loop (#71)Yann Kaiser2016-07-042-1/+64
|
* Increment version to 1.2.31.2.3Phil Frost2016-05-121-1/+1
|
* Fix TypeError when processing relative imports (#61)John Vandenberg2016-05-122-6/+122
| | | | | | | | | | | | | | Fixes lp:1560134 aec68a784 added module names to error messages, however it caused a TypeError for relative imports that do not specify a module such as: from . import x This fixes the TypeError, and also adds the necessary leading dots for relative import error messages. Add tests for various types of relative imports.
* Increment version to 1.2.21.2.2Phil Frost2016-05-061-1/+1
|
* Avoid traceback when exception is del-ed in except (#67)Phil Frost2016-05-062-1/+16
| | | | | | | | | | | | | Fixes a regression introduced by 2a698f87c02a43d4489e30481e9def14ed4b4431. This would fail with a KeyError: try: pass except Exception as e: del e Fixes lp:1578903
* Increment version to 1.2.11.2.1Phil Frost2016-05-051-1/+1
|
* Suppress RedefinedWhileUnused for submodule import (#62)John Vandenberg2016-05-052-4/+24
| | | | | | | | | | Fixes lp:1578051 aec68a7 added module names to error messages, which included a new class SubmoduleImportation to handle the special case of submodule imports. It correctly handled the case of a submodule import occurring after the root module was imported, but didnt handle the opposite case of the submodule import occurring before the root module was imported.
* Increment version to 1.2.01.2.0Phil Frost2016-05-031-1/+1
|
* Warn against reusing exception names after the except: block on Python 3Łukasz Langa2016-04-122-5/+195
|
* Importation classes with imported name and aliasJohn Vandenberg2016-03-152-10/+183
| | | | | | | | | | | | | | | | In order to solve many corner cases related to imports, more information is needed about each import. This change creates two new classes: - SubmoduleImportation - ImportationFrom And adds an optional parameter full_name to the super class Importation. Functionally, this change only improves existing error messages to report the full imported name where previously an error would include only the import alias.
* Increment version to 1.1.01.1.0Phil Frost2016-03-011-1/+1
|
* Allow passing args to main()John Vandenberg2016-01-262-6/+49
|
* Handle matrix-multiplication operator ("@")matmulSteven Myint2015-12-212-1/+9
| | | | | | https://docs.python.org/3.6/whatsnew/3.5.html#pep-465-a-dedicated-infix-operator-for-matrix-multiplication This fixes https://bugs.launchpad.net/pyflakes/+bug/1523163.
* Check feature names imported from futureJohn Vandenberg2015-11-253-0/+25
| | | | | As '*' does not appear in __future__.all_feature_names, this also reports an error on : from __future__ import *
* Allow __future__ in doctestJohn Vandenberg2015-11-252-12/+32
| | | | | Replaces plain attribute Checker.futuresAllowed with a property that supports __future__ in both module and doctest.
* Process doctest scope directly under the module scopeJohn Vandenberg2015-11-252-14/+71
| | | | | | | | | | | | | | | | | | | | | | | | Explicitly place the doctest directly under the module scope, instead of processing it while within the scope where the docstring was encountered. Also do not process doctest which are not processed by default according to the doctest documentation. The primary benefit of moving the doctest scope directly under the module scope is that it may be efficiently identified, as it may only appear second in the stack. However it also ensures that the doctest scope can not access names in scopes between the module scope and the object where the docstring was encountered. As it was, class scope rules prevented the doctest scope from accessing names in a class scope, however the doctest scope was able to access names in an outer function, if the doctest appeared in a nested function. Note that there was no real bug there, as the doctest module does not process doctest in nested functions (Python issue #1650090), so doctest appearing in nested functions are informational only. pyflakes previously inspected doctest in nested functions, and now these are ignored.
* Report each usage of star importsJohn Vandenberg2015-11-244-13/+82
| | | | Also detect unused star imports.
* Report assert using tupleJohn Vandenberg2015-11-243-1/+47
| | | | | | This is a SyntaxWarning on Python 2.6+ Resolves lp:848467
* Fix undefined name in generators in classJohn Vandenberg2015-11-202-16/+36
| | | | | 8c8a27b8 provided a partial solution for generators in the class scope, however it did not account for generators enclosing other generators.
* Fix PyPyJohn Vandenberg2015-11-204-21/+113
|
* Python 3 only allows import * at module levelJohn Vandenberg2015-11-194-0/+34
|
* Merge test_doubleNestingReportsClosestNameJohn Vandenberg2015-11-162-20/+7
| | | | | | The test_doubleNestingReportsClosestName in test_doctest only differs by the expected line number of the error, which can be dynamically determined using TestCase.withDoctest.
* Import in Class is a public memberJohn Vandenberg2015-11-152-5/+23
| | | | | | An import in a class is a member of the class, and may be used outside the class scope, so it can not be marked as unused.
* Check for non-ast SyntaxErrorsnonastAaron Meurer2015-11-133-10/+772
| | | | | | | | | | | This includes return and yield outside of a function and break and continue outside of a loop. Fixes lp 1293654. The problem is that these SyntaxErrors are not encoded in the ast grammar, so they are not detected when just compiling to ast. You must compile down to bytecode to catch them. The advantage here is that we can still check for other kinds of errors in this case, because the ast is still valid.
* Add DoctestScopeJohn Vandenberg2015-11-123-6/+187
| | | | | | | Fix bug in 03ffc76 caused by determining the doctest global scope level based on whether parsing doctests was enabled. Also do not parse docstrings within doctests.
* Fix global removing all UndefinedNameJohn Vandenberg2015-11-122-3/+28
| | | | | | | 03ffc763 introduced better global support, however a logic error caused it to remove any previously detected UndefinedName whenever a global was encountered.
* PEP 498 f-strings supportJohn Vandenberg2015-11-082-1/+9
| | | | | PEP 498 f-strings cause pyflakes to crash with AttributeError: 'Checker' object has no attribute 'FORMATTEDVALUE'
* Fix documentation of Binding.usedJohn Vandenberg2015-11-031-2/+2
| | | | | ef4da24 changed the Binding.used tuple from (scope, line number) to (scope, node). This updates the docstring to reflect this change.
* Merge pull request #36 from pyflakes/typoSteven Myint2015-09-292-2/+2
|\ | | | | Fix typos
| * Fix typostypoSteven Myint2015-09-222-2/+2
| |
* | Increment version to 1.0.01.0.0Phil Frost2015-09-201-1/+1
|/ | | | | Also declare Python 3.5 as supported in the README. We test 3.5 in CI now, and since 0.9.2 support for 3.5's new features have been added.
* os.chmod() supports only read-only flag operations on WindowsEduard-Cristian Stefan2015-09-071-1/+2
|
* Use os.linesep for Windows compatibilityEduard-Cristian Stefan2015-09-071-3/+4
|
* Merge pull request #27 from ryneeverett/used-global-importPhil Frost2015-08-282-3/+14
|\ | | | | Don't report UnusedImport when binding global name
| * Don't report UnusedImport when binding global nameryneeverett2015-08-142-3/+14
| | | | | | | | | | When an import binds to a name declared global by the "global" statment, don't report it as unused.