Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pyflakes for openSUSE:Factory checked in at 2021-11-06 18:13:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pyflakes (Old) and /work/SRC/openSUSE:Factory/.python-pyflakes.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyflakes" Sat Nov 6 18:13:21 2021 rev:28 rq:929017 version:2.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pyflakes/python-pyflakes.changes 2021-05-12 19:31:26.259232597 +0200 +++ /work/SRC/openSUSE:Factory/.python-pyflakes.new.1890/python-pyflakes.changes 2021-11-06 18:13:40.468748599 +0100 @@ -1,0 +2,9 @@ +Wed Nov 3 09:33:27 UTC 2021 - pgaj...@suse.com + +- version update to 2.4.0 + - Remove unused tracing code (``traceTree``) + - Add support for ``match`` statement + - Detect ``typing`` module attributes when imported with ``import ... as ...`` +- %check: use %pyunittest rpm macro + +------------------------------------------------------------------- Old: ---- pyflakes-2.3.1.tar.gz New: ---- pyflakes-2.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyflakes.spec ++++++ --- /var/tmp/diff_new_pack.jUVrlC/_old 2021-11-06 18:13:41.116748939 +0100 +++ /var/tmp/diff_new_pack.jUVrlC/_new 2021-11-06 18:13:41.116748939 +0100 @@ -17,9 +17,8 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} -%bcond_without test Name: python-pyflakes -Version: 2.3.1 +Version: 2.4.0 Release: 0 Summary: Passive checker of Python programs License: MIT @@ -52,10 +51,8 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib}/pyflakes/ %python_clone -a %{buildroot}%{_bindir}/pyflakes -%if %{with test} %check -%python_exec setup.py test -%endif +%pyunittest discover -v %post %python_install_alternative pyflakes ++++++ pyflakes-2.3.1.tar.gz -> pyflakes-2.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/NEWS.rst new/pyflakes-2.4.0/NEWS.rst --- old/pyflakes-2.3.1/NEWS.rst 2021-03-24 17:31:00.000000000 +0100 +++ new/pyflakes-2.4.0/NEWS.rst 2021-10-06 22:38:52.000000000 +0200 @@ -1,3 +1,9 @@ +2.4.0 (2021-10-06) + +- Remove unused tracing code (``traceTree``) +- Add support for ``match`` statement +- Detect ``typing`` module attributes when imported with ``import ... as ...`` + 2.3.1 (2021-03-24) - Fix regression in 2.3.0: type annotations no longer redefine imports diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/PKG-INFO new/pyflakes-2.4.0/PKG-INFO --- old/pyflakes-2.3.1/PKG-INFO 2021-03-24 17:32:11.632774800 +0100 +++ new/pyflakes-2.4.0/PKG-INFO 2021-10-06 22:39:36.321480800 +0200 @@ -1,101 +1,11 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: pyflakes -Version: 2.3.1 +Version: 2.4.0 Summary: passive checker of Python programs Home-page: https://github.com/PyCQA/pyflakes Author: A lot of people Author-email: code-qual...@python.org License: MIT -Description: ======== - Pyflakes - ======== - - A simple program which checks Python source files for errors. - - Pyflakes analyzes programs and detects various errors. It works by - parsing the source file, not importing it, so it is safe to use on - modules with side effects. It's also much faster. - - It is `available on PyPI <https://pypi.org/project/pyflakes/>`_ - and it supports all active versions of Python: 2.7 and 3.4 to 3.8. - - - - Installation - ------------ - - It can be installed with:: - - $ pip install --upgrade pyflakes - - - Useful tips: - - * Be sure to install it for a version of Python which is compatible - with your codebase: for Python 2, ``pip2 install pyflakes`` and for - Python3, ``pip3 install pyflakes``. - - * You can also invoke Pyflakes with ``python3 -m pyflakes .`` or - ``python2 -m pyflakes .`` if you have it installed for both versions. - - * If you require more options and more flexibility, you could give a - look to Flake8_ too. - - - Design Principles - ----------------- - Pyflakes makes a simple promise: it will never complain about style, - and it will try very, very hard to never emit false positives. - - Pyflakes is also faster than Pylint_ - or Pychecker_. This is - largely because Pyflakes only examines the syntax tree of each file - individually. As a consequence, Pyflakes is more limited in the - types of things it can check. - - If you like Pyflakes but also want stylistic checks, you want - flake8_, which combines - Pyflakes with style checks against - `PEP 8`_ and adds - per-project configuration ability. - - - Mailing-list - ------------ - - Share your feedback and ideas: `subscribe to the mailing-list - <https://mail.python.org/mailman/listinfo/code-quality>`_ - - Contributing - ------------ - - Issues are tracked on `GitHub <https://github.com/PyCQA/pyflakes/issues>`_. - - Patches may be submitted via a `GitHub pull request`_ or via the mailing list - if you prefer. If you are comfortable doing so, please `rebase your changes`_ - so they may be applied to master with a fast-forward merge, and each commit is - a coherent unit of work with a well-written log message. If you are not - comfortable with this rebase workflow, the project maintainers will be happy to - rebase your commits for you. - - All changes should include tests and pass flake8_. - - .. image:: https://github.com/PyCQA/pyflakes/workflows/Test/badge.svg - :target: https://github.com/PyCQA/pyflakes/actions - :alt: GitHub Actions build status - - .. _Pylint: https://www.pylint.org/ - .. _flake8: https://pypi.org/project/flake8/ - .. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/ - .. _Pychecker: http://pychecker.sourceforge.net/ - .. _`rebase your changes`: https://git-scm.com/book/en/v2/Git-Branching-Rebasing - .. _`GitHub pull request`: https://github.com/PyCQA/pyflakes/pulls - - Changelog - --------- - - Please see `NEWS.rst <https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst>`_. - Platform: UNKNOWN Classifier: Development Status :: 6 - Mature Classifier: Environment :: Console @@ -115,3 +25,94 @@ Classifier: Topic :: Software Development Classifier: Topic :: Utilities Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +License-File: LICENSE + +======== +Pyflakes +======== + +A simple program which checks Python source files for errors. + +Pyflakes analyzes programs and detects various errors. It works by +parsing the source file, not importing it, so it is safe to use on +modules with side effects. It's also much faster. + +It is `available on PyPI <https://pypi.org/project/pyflakes/>`_ +and it supports all active versions of Python: 2.7 and 3.4 to 3.8. + + + +Installation +------------ + +It can be installed with:: + + $ pip install --upgrade pyflakes + + +Useful tips: + +* Be sure to install it for a version of Python which is compatible + with your codebase: for Python 2, ``pip2 install pyflakes`` and for + Python3, ``pip3 install pyflakes``. + +* You can also invoke Pyflakes with ``python3 -m pyflakes .`` or + ``python2 -m pyflakes .`` if you have it installed for both versions. + +* If you require more options and more flexibility, you could give a + look to Flake8_ too. + + +Design Principles +----------------- +Pyflakes makes a simple promise: it will never complain about style, +and it will try very, very hard to never emit false positives. + +Pyflakes is also faster than Pylint_. This is +largely because Pyflakes only examines the syntax tree of each file +individually. As a consequence, Pyflakes is more limited in the +types of things it can check. + +If you like Pyflakes but also want stylistic checks, you want +flake8_, which combines +Pyflakes with style checks against +`PEP 8`_ and adds +per-project configuration ability. + + +Mailing-list +------------ + +Share your feedback and ideas: `subscribe to the mailing-list +<https://mail.python.org/mailman/listinfo/code-quality>`_ + +Contributing +------------ + +Issues are tracked on `GitHub <https://github.com/PyCQA/pyflakes/issues>`_. + +Patches may be submitted via a `GitHub pull request`_ or via the mailing list +if you prefer. If you are comfortable doing so, please `rebase your changes`_ +so they may be applied to master with a fast-forward merge, and each commit is +a coherent unit of work with a well-written log message. If you are not +comfortable with this rebase workflow, the project maintainers will be happy to +rebase your commits for you. + +All changes should include tests and pass flake8_. + +.. image:: https://github.com/PyCQA/pyflakes/workflows/Test/badge.svg + :target: https://github.com/PyCQA/pyflakes/actions + :alt: GitHub Actions build status + +.. _Pylint: https://www.pylint.org/ +.. _flake8: https://pypi.org/project/flake8/ +.. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/ +.. _`rebase your changes`: https://git-scm.com/book/en/v2/Git-Branching-Rebasing +.. _`GitHub pull request`: https://github.com/PyCQA/pyflakes/pulls + +Changelog +--------- + +Please see `NEWS.rst <https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst>`_. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/README.rst new/pyflakes-2.4.0/README.rst --- old/pyflakes-2.3.1/README.rst 2021-03-24 17:30:16.000000000 +0100 +++ new/pyflakes-2.4.0/README.rst 2021-10-06 01:27:26.000000000 +0200 @@ -39,8 +39,7 @@ Pyflakes makes a simple promise: it will never complain about style, and it will try very, very hard to never emit false positives. -Pyflakes is also faster than Pylint_ -or Pychecker_. This is +Pyflakes is also faster than Pylint_. This is largely because Pyflakes only examines the syntax tree of each file individually. As a consequence, Pyflakes is more limited in the types of things it can check. @@ -79,7 +78,6 @@ .. _Pylint: https://www.pylint.org/ .. _flake8: https://pypi.org/project/flake8/ .. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/ -.. _Pychecker: http://pychecker.sourceforge.net/ .. _`rebase your changes`: https://git-scm.com/book/en/v2/Git-Branching-Rebasing .. _`GitHub pull request`: https://github.com/PyCQA/pyflakes/pulls diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes/__init__.py new/pyflakes-2.4.0/pyflakes/__init__.py --- old/pyflakes-2.3.1/pyflakes/__init__.py 2021-03-24 17:31:12.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes/__init__.py 2021-10-06 22:38:52.000000000 +0200 @@ -1 +1 @@ -__version__ = '2.3.1' +__version__ = '2.4.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes/checker.py new/pyflakes-2.4.0/pyflakes/checker.py --- old/pyflakes-2.3.1/pyflakes/checker.py 2021-03-24 17:30:16.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes/checker.py 2021-10-06 01:27:26.000000000 +0200 @@ -275,7 +275,8 @@ yield field elif isinstance(field, list): for item in field: - yield item + if isinstance(item, ast.AST): + yield item def convert_to_value(item): @@ -691,6 +692,8 @@ return node.id if hasattr(node, 'name'): # an ExceptHandler node return node.name + if hasattr(node, 'rest'): # a MatchMapping node + return node.rest TYPING_MODULES = frozenset(('typing', 'typing_extensions')) @@ -717,6 +720,16 @@ return False + def _module_scope_is_typing(name): + for scope in reversed(scope_stack): + if name in scope: + return ( + isinstance(scope[name], Importation) and + scope[name].fullName in TYPING_MODULES + ) + + return False + return ( ( isinstance(node, ast.Name) and @@ -724,7 +737,7 @@ ) or ( isinstance(node, ast.Attribute) and isinstance(node.value, ast.Name) and - node.value.id in TYPING_MODULES and + _module_scope_is_typing(node.value.id) and is_name_match_fn(node.attr) ) ) @@ -868,7 +881,6 @@ nodeDepth = 0 offset = None - traceTree = False _in_annotation = AnnotationState.NONE _in_deferred = False @@ -1393,8 +1405,6 @@ if self.offset and getattr(node, 'lineno', None) is not None: node.lineno += self.offset[0] node.col_offset += self.offset[1] - if self.traceTree: - print(' ' * self.nodeDepth + node.__class__.__name__) if self.futuresAllowed and not (isinstance(node, ast.ImportFrom) or self.isDocstring(node)): self.futuresAllowed = False @@ -1406,8 +1416,6 @@ handler(node) finally: self.nodeDepth -= 1 - if self.traceTree: - print(' ' * self.nodeDepth + 'end ' + node.__class__.__name__) _getDoctestExamples = doctest.DocTestParser().get_examples @@ -2383,3 +2391,12 @@ left = right self.handleChildren(node) + + MATCH = MATCH_CASE = MATCHCLASS = MATCHOR = MATCHSEQUENCE = handleChildren + MATCHSINGLETON = MATCHVALUE = handleChildren + + def _match_target(self, node): + self.handleNodeStore(node) + self.handleChildren(node) + + MATCHAS = MATCHMAPPING = MATCHSTAR = _match_target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes/test/test_api.py new/pyflakes-2.4.0/pyflakes/test/test_api.py --- old/pyflakes-2.3.1/pyflakes/test/test_api.py 2021-03-24 17:30:16.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes/test/test_api.py 2021-10-06 01:27:26.000000000 +0200 @@ -441,7 +441,7 @@ evaluate(source) except SyntaxError: e = sys.exc_info()[1] - if not PYPY: + if not PYPY and sys.version_info < (3, 10): self.assertTrue(e.text.count('\n') > 1) else: self.fail() @@ -449,10 +449,17 @@ with self.makeTempFile(source) as sourcePath: if PYPY: message = 'end of file (EOF) while scanning triple-quoted string literal' + elif sys.version_info >= (3, 10): + message = 'unterminated triple-quoted string literal (detected at line 8)' # noqa: E501 else: message = 'invalid syntax' - column = 8 if sys.version_info >= (3, 8) else 11 + if sys.version_info >= (3, 10): + column = 12 + elif sys.version_info >= (3, 8): + column = 8 + else: + column = 11 self.assertHasErrors( sourcePath, ["""\ @@ -468,21 +475,25 @@ """ with self.makeTempFile("def foo(") as sourcePath: if PYPY: - result = """\ -%s:1:7: parenthesis is never closed -def foo( - ^ -""" % (sourcePath,) + msg = 'parenthesis is never closed' + elif sys.version_info >= (3, 10): + msg = "'(' was never closed" else: - result = """\ -%s:1:9: unexpected EOF while parsing -def foo( - ^ -""" % (sourcePath,) + msg = 'unexpected EOF while parsing' - self.assertHasErrors( - sourcePath, - [result]) + if PYPY: + column = 7 + elif sys.version_info >= (3, 10): + column = 8 + else: + column = 9 + + spaces = ' ' * (column - 1) + expected = '{}:1:{}: {}\ndef foo(\n{}^\n'.format( + sourcePath, column, msg, spaces + ) + + self.assertHasErrors(sourcePath, [expected]) def test_eofSyntaxErrorWithTab(self): """ @@ -515,6 +526,8 @@ if ERROR_HAS_LAST_LINE: if PYPY: column = 7 + elif sys.version_info >= (3, 10): + column = 18 elif sys.version_info >= (3, 9): column = 21 elif sys.version_info >= (3, 8): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes/test/test_match.py new/pyflakes-2.4.0/pyflakes/test/test_match.py --- old/pyflakes-2.3.1/pyflakes/test/test_match.py 1970-01-01 01:00:00.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes/test/test_match.py 2021-10-06 01:27:26.000000000 +0200 @@ -0,0 +1,83 @@ +from sys import version_info + +from pyflakes.test.harness import TestCase, skipIf + + +@skipIf(version_info < (3, 10), "Python >= 3.10 only") +class TestMatch(TestCase): + def test_match_bindings(self): + self.flakes(''' + def f(): + x = 1 + match x: + case 1 as y: + print(f'matched as {y}') + ''') + self.flakes(''' + def f(): + x = [1, 2, 3] + match x: + case [1, y, 3]: + print(f'matched {y}') + ''') + self.flakes(''' + def f(): + x = {'foo': 1} + match x: + case {'foo': y}: + print(f'matched {y}') + ''') + + def test_match_pattern_matched_class(self): + self.flakes(''' + from a import B + + match 1: + case B(x=1) as y: + print(f'matched {y}') + ''') + self.flakes(''' + from a import B + + match 1: + case B(a, x=z) as y: + print(f'matched {y} {a} {z}') + ''') + + def test_match_placeholder(self): + self.flakes(''' + def f(): + match 1: + case _: + print('catchall!') + ''') + + def test_match_singleton(self): + self.flakes(''' + match 1: + case True: + print('true') + ''') + + def test_match_or_pattern(self): + self.flakes(''' + match 1: + case 1 | 2: + print('one or two') + ''') + + def test_match_star(self): + self.flakes(''' + x = [1, 2, 3] + match x: + case [1, *y]: + print(f'captured: {y}') + ''') + + def test_match_double_star(self): + self.flakes(''' + x = {'foo': 'bar', 'baz': 'womp'} + match x: + case {'foo': k1, **rest}: + print(f'{k1=} {rest=}') + ''') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes/test/test_type_annotations.py new/pyflakes-2.4.0/pyflakes/test/test_type_annotations.py --- old/pyflakes-2.3.1/pyflakes/test/test_type_annotations.py 2021-03-24 17:30:16.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes/test/test_type_annotations.py 2021-10-06 01:27:26.000000000 +0200 @@ -121,6 +121,23 @@ def f(self, x): return x """) + def test_aliased_import(self): + """Detect when typing is imported as another name""" + self.flakes(""" + import typing as t + + @t.overload + def f(s): # type: (None) -> None + pass + + @t.overload + def f(s): # type: (int) -> int + pass + + def f(s): + return s + """) + def test_not_a_typing_overload(self): """regression test for @typing.overload detection bug in 2.1.0""" self.flakes(""" @@ -531,7 +548,7 @@ def test_type_cast_literal_str_to_str(self): # Checks that our handling of quoted type annotations in the first # argument to `cast` doesn't cause issues when (only) the _second_ - # argument is a literal str which looks a bit like a type annoation. + # argument is a literal str which looks a bit like a type annotation. self.flakes(""" from typing import cast diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes.egg-info/PKG-INFO new/pyflakes-2.4.0/pyflakes.egg-info/PKG-INFO --- old/pyflakes-2.3.1/pyflakes.egg-info/PKG-INFO 2021-03-24 17:32:11.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes.egg-info/PKG-INFO 2021-10-06 22:39:36.000000000 +0200 @@ -1,101 +1,11 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: pyflakes -Version: 2.3.1 +Version: 2.4.0 Summary: passive checker of Python programs Home-page: https://github.com/PyCQA/pyflakes Author: A lot of people Author-email: code-qual...@python.org License: MIT -Description: ======== - Pyflakes - ======== - - A simple program which checks Python source files for errors. - - Pyflakes analyzes programs and detects various errors. It works by - parsing the source file, not importing it, so it is safe to use on - modules with side effects. It's also much faster. - - It is `available on PyPI <https://pypi.org/project/pyflakes/>`_ - and it supports all active versions of Python: 2.7 and 3.4 to 3.8. - - - - Installation - ------------ - - It can be installed with:: - - $ pip install --upgrade pyflakes - - - Useful tips: - - * Be sure to install it for a version of Python which is compatible - with your codebase: for Python 2, ``pip2 install pyflakes`` and for - Python3, ``pip3 install pyflakes``. - - * You can also invoke Pyflakes with ``python3 -m pyflakes .`` or - ``python2 -m pyflakes .`` if you have it installed for both versions. - - * If you require more options and more flexibility, you could give a - look to Flake8_ too. - - - Design Principles - ----------------- - Pyflakes makes a simple promise: it will never complain about style, - and it will try very, very hard to never emit false positives. - - Pyflakes is also faster than Pylint_ - or Pychecker_. This is - largely because Pyflakes only examines the syntax tree of each file - individually. As a consequence, Pyflakes is more limited in the - types of things it can check. - - If you like Pyflakes but also want stylistic checks, you want - flake8_, which combines - Pyflakes with style checks against - `PEP 8`_ and adds - per-project configuration ability. - - - Mailing-list - ------------ - - Share your feedback and ideas: `subscribe to the mailing-list - <https://mail.python.org/mailman/listinfo/code-quality>`_ - - Contributing - ------------ - - Issues are tracked on `GitHub <https://github.com/PyCQA/pyflakes/issues>`_. - - Patches may be submitted via a `GitHub pull request`_ or via the mailing list - if you prefer. If you are comfortable doing so, please `rebase your changes`_ - so they may be applied to master with a fast-forward merge, and each commit is - a coherent unit of work with a well-written log message. If you are not - comfortable with this rebase workflow, the project maintainers will be happy to - rebase your commits for you. - - All changes should include tests and pass flake8_. - - .. image:: https://github.com/PyCQA/pyflakes/workflows/Test/badge.svg - :target: https://github.com/PyCQA/pyflakes/actions - :alt: GitHub Actions build status - - .. _Pylint: https://www.pylint.org/ - .. _flake8: https://pypi.org/project/flake8/ - .. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/ - .. _Pychecker: http://pychecker.sourceforge.net/ - .. _`rebase your changes`: https://git-scm.com/book/en/v2/Git-Branching-Rebasing - .. _`GitHub pull request`: https://github.com/PyCQA/pyflakes/pulls - - Changelog - --------- - - Please see `NEWS.rst <https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst>`_. - Platform: UNKNOWN Classifier: Development Status :: 6 - Mature Classifier: Environment :: Console @@ -115,3 +25,94 @@ Classifier: Topic :: Software Development Classifier: Topic :: Utilities Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +License-File: LICENSE + +======== +Pyflakes +======== + +A simple program which checks Python source files for errors. + +Pyflakes analyzes programs and detects various errors. It works by +parsing the source file, not importing it, so it is safe to use on +modules with side effects. It's also much faster. + +It is `available on PyPI <https://pypi.org/project/pyflakes/>`_ +and it supports all active versions of Python: 2.7 and 3.4 to 3.8. + + + +Installation +------------ + +It can be installed with:: + + $ pip install --upgrade pyflakes + + +Useful tips: + +* Be sure to install it for a version of Python which is compatible + with your codebase: for Python 2, ``pip2 install pyflakes`` and for + Python3, ``pip3 install pyflakes``. + +* You can also invoke Pyflakes with ``python3 -m pyflakes .`` or + ``python2 -m pyflakes .`` if you have it installed for both versions. + +* If you require more options and more flexibility, you could give a + look to Flake8_ too. + + +Design Principles +----------------- +Pyflakes makes a simple promise: it will never complain about style, +and it will try very, very hard to never emit false positives. + +Pyflakes is also faster than Pylint_. This is +largely because Pyflakes only examines the syntax tree of each file +individually. As a consequence, Pyflakes is more limited in the +types of things it can check. + +If you like Pyflakes but also want stylistic checks, you want +flake8_, which combines +Pyflakes with style checks against +`PEP 8`_ and adds +per-project configuration ability. + + +Mailing-list +------------ + +Share your feedback and ideas: `subscribe to the mailing-list +<https://mail.python.org/mailman/listinfo/code-quality>`_ + +Contributing +------------ + +Issues are tracked on `GitHub <https://github.com/PyCQA/pyflakes/issues>`_. + +Patches may be submitted via a `GitHub pull request`_ or via the mailing list +if you prefer. If you are comfortable doing so, please `rebase your changes`_ +so they may be applied to master with a fast-forward merge, and each commit is +a coherent unit of work with a well-written log message. If you are not +comfortable with this rebase workflow, the project maintainers will be happy to +rebase your commits for you. + +All changes should include tests and pass flake8_. + +.. image:: https://github.com/PyCQA/pyflakes/workflows/Test/badge.svg + :target: https://github.com/PyCQA/pyflakes/actions + :alt: GitHub Actions build status + +.. _Pylint: https://www.pylint.org/ +.. _flake8: https://pypi.org/project/flake8/ +.. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/ +.. _`rebase your changes`: https://git-scm.com/book/en/v2/Git-Branching-Rebasing +.. _`GitHub pull request`: https://github.com/PyCQA/pyflakes/pulls + +Changelog +--------- + +Please see `NEWS.rst <https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst>`_. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyflakes-2.3.1/pyflakes.egg-info/SOURCES.txt new/pyflakes-2.4.0/pyflakes.egg-info/SOURCES.txt --- old/pyflakes-2.3.1/pyflakes.egg-info/SOURCES.txt 2021-03-24 17:32:11.000000000 +0100 +++ new/pyflakes-2.4.0/pyflakes.egg-info/SOURCES.txt 2021-10-06 22:39:36.000000000 +0200 @@ -29,6 +29,7 @@ pyflakes/test/test_doctests.py pyflakes/test/test_imports.py pyflakes/test/test_is_literal.py +pyflakes/test/test_match.py pyflakes/test/test_other.py pyflakes/test/test_return_with_arguments_inside_generator.py pyflakes/test/test_type_annotations.py