Changelog
2.5.0
- Drop support for EOL python 2.7 / 3.4 / 3.5
- Ignore ``__all__`` when not directly assigned
- Handle ``TypeAlias`` annotations as aliases (PEP 613)
- Assignment expressions (``:=``) target outer scope in comprehensions
- Add support for new python 3.11 syntax
- Unify output so it is always ``filename:lineno:col: message``
- Properly report ``SyntaxError`` from stdin in python < 3.9
- Fix offsets of ``SyntaxError``s in pypy
2.4.0
- Remove unused tracing code (``traceTree``)
- Add support for ``match`` statement
- Detect ``typing`` module attributes when imported with ``import ... as ...``
2.3.1
- Fix regression in 2.3.0: type annotations no longer redefine imports
2.3.0
- Recognize tuple concatenation in ``__all__`` export definitions
- Better support use of annotation-only assignments when using
``from __future__ import annotations``
- Recognize special-case typing for ``Annotated``
- Fix undefined name ``__qualname__`` in class scope
- Recognize special-cased typing for ``TypeVar``
- Errors for undefined exports in ``__all__`` are shown in a deterministic order
- Fix false positives in certain typing constructs (``TypeVar``,
``NamedTuple``, ``TypedDict``, ``cast``)
2.2.0
- Include column information in error messages
- Fix ``overload`` detection with other decorators and in non-global scopes
- Fix return-type annotation being a class member
- Fix assignment to ``_`` in doctests with existing ``_`` name
- Namespace attributes which are attached to ast nodes with ``_pyflakes_`` to
avoid conflicts with other libraries (notably bandit)
- Add check for f-strings without placeholders
- Add check for unused/extra/invalid ``'string literal'.format(...)``
- Add check for unused/extra/invalid ``'string literal % ...``
- Improve python shebang detection
- Allow type ignore to be followed by a code `` type: ignore[attr-defined]``
- Add support for assignment expressions (PEP 572)
- Support ``overload`` detection from ``typing_extensions`` as well
- Fix ``overload`` detection for async functions
- Allow ``continue`` inside ``finally`` in python 3.8+
- Fix handling of annotations in positional-only arguments
- Make pyflakes more resistant to future syntax additions
- Fix false positives in partially quoted type annotations
- Warn about ``is`` comparison to tuples
- Fix ``Checker`` usage with async function subtrees
- Add check for ``if`` of non-empty tuple
- Switch from ``optparse`` to ``argparse``
- Fix false positives in partially quoted type annotations in unusual contexts
- Be more cautious when identifying ``Literal`` type expressions