Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-autopep8 for openSUSE:Factory checked in at 2025-01-23 18:05:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-autopep8 (Old) and /work/SRC/openSUSE:Factory/.python-autopep8.new.5589 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-autopep8" Thu Jan 23 18:05:50 2025 rev:33 rq:1239863 version:2.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-autopep8/python-autopep8.changes 2024-11-19 22:23:51.749817905 +0100 +++ /work/SRC/openSUSE:Factory/.python-autopep8.new.5589/python-autopep8.changes 2025-01-23 18:06:49.871649558 +0100 @@ -1,0 +2,9 @@ +Thu Jan 23 10:39:57 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to 2.3.2 + * Update README.rst: Typo fix + * Bump codecov/codecov-action from 4 to 5 + * support Python 3.13 and drop 3.8 + * Fix E721 type comparison pattern handling + +------------------------------------------------------------------- Old: ---- autopep8-2.3.1.tar.gz New: ---- autopep8-2.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-autopep8.spec ++++++ --- /var/tmp/diff_new_pack.m59xvE/_old 2025-01-23 18:06:50.551677650 +0100 +++ /var/tmp/diff_new_pack.m59xvE/_new 2025-01-23 18:06:50.551677650 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-autopep8 # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{?sle15_python_module_pythons} Name: python-autopep8 -Version: 2.3.1 +Version: 2.3.2 Release: 0 Summary: Automatic generated to pep8 checked code License: MIT ++++++ autopep8-2.3.1.tar.gz -> autopep8-2.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/MANIFEST.in new/autopep8-2.3.2/MANIFEST.in --- old/autopep8-2.3.1/MANIFEST.in 2024-06-23 07:15:31.000000000 +0200 +++ new/autopep8-2.3.2/MANIFEST.in 2025-01-14 15:45:57.000000000 +0100 @@ -15,7 +15,6 @@ include tox.ini recursive-exclude test/suite *.py recursive-exclude test/suite/out *.py -exclude .travis.yml exclude CONTRIBUTING.rst exclude Makefile exclude hooks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/PKG-INFO new/autopep8-2.3.2/PKG-INFO --- old/autopep8-2.3.1/PKG-INFO 2024-06-23 07:15:47.283583200 +0200 +++ new/autopep8-2.3.2/PKG-INFO 2025-01-14 15:46:06.206034000 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.2 Name: autopep8 -Version: 2.3.1 +Version: 2.3.2 Summary: A tool that automatically formats Python code to conform to the PEP 8 style guide Author-email: Hideo Hattori <hhatto...@gmail.com> Project-URL: Repository, https://github.com/hhatto/autopep8 @@ -12,14 +12,14 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Software Development :: Quality Assurance -Requires-Python: >=3.8 +Requires-Python: >=3.9 Description-Content-Type: text/x-rst License-File: LICENSE License-File: AUTHORS.rst @@ -339,7 +339,8 @@ Disabling line-by-line ---------------------- -It is possible to disable autopep8 untill it it turned back on again in the file, using ``autopep8: off`` and then renabling ``autopep8: on``. +It is possible to disable autopep8 until it is turned back on again in the file, +using ``autopep8: off`` and then reenabling with ``autopep8: on``. .. code-block:: python @@ -432,7 +433,7 @@ Test cases are in ``test/test_autopep8.py``. They can be run directly via ``python test/test_autopep8.py`` or via tox_. The latter is useful for testing against multiple Python interpreters. (We currently test against -CPython versions 3.8, 3.9, 3.10, 3.11 and 3.12. We also test against PyPy.) +CPython versions 3.9, 3.10, 3.11, 3.12 and 3.13. We also test against PyPy.) .. _`tox`: https://pypi.org/project/tox/ @@ -463,10 +464,8 @@ * PyPI_ * GitHub_ -* `Travis CI`_ * Codecov_ .. _PyPI: https://pypi.org/project/autopep8/ .. _GitHub: https://github.com/hhatto/autopep8 -.. _`Travis CI`: https://travis-ci.org/hhatto/autopep8 .. _`Codecov`: https://app.codecov.io/gh/hhatto/autopep8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/README.rst new/autopep8-2.3.2/README.rst --- old/autopep8-2.3.1/README.rst 2024-06-23 07:15:31.000000000 +0200 +++ new/autopep8-2.3.2/README.rst 2025-01-14 15:45:57.000000000 +0100 @@ -311,7 +311,8 @@ Disabling line-by-line ---------------------- -It is possible to disable autopep8 untill it it turned back on again in the file, using ``autopep8: off`` and then renabling ``autopep8: on``. +It is possible to disable autopep8 until it is turned back on again in the file, +using ``autopep8: off`` and then reenabling with ``autopep8: on``. .. code-block:: python @@ -404,7 +405,7 @@ Test cases are in ``test/test_autopep8.py``. They can be run directly via ``python test/test_autopep8.py`` or via tox_. The latter is useful for testing against multiple Python interpreters. (We currently test against -CPython versions 3.8, 3.9, 3.10, 3.11 and 3.12. We also test against PyPy.) +CPython versions 3.9, 3.10, 3.11, 3.12 and 3.13. We also test against PyPy.) .. _`tox`: https://pypi.org/project/tox/ @@ -435,10 +436,8 @@ * PyPI_ * GitHub_ -* `Travis CI`_ * Codecov_ .. _PyPI: https://pypi.org/project/autopep8/ .. _GitHub: https://github.com/hhatto/autopep8 -.. _`Travis CI`: https://travis-ci.org/hhatto/autopep8 .. _`Codecov`: https://app.codecov.io/gh/hhatto/autopep8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/autopep8.egg-info/PKG-INFO new/autopep8-2.3.2/autopep8.egg-info/PKG-INFO --- old/autopep8-2.3.1/autopep8.egg-info/PKG-INFO 2024-06-23 07:15:47.000000000 +0200 +++ new/autopep8-2.3.2/autopep8.egg-info/PKG-INFO 2025-01-14 15:46:06.000000000 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.2 Name: autopep8 -Version: 2.3.1 +Version: 2.3.2 Summary: A tool that automatically formats Python code to conform to the PEP 8 style guide Author-email: Hideo Hattori <hhatto...@gmail.com> Project-URL: Repository, https://github.com/hhatto/autopep8 @@ -12,14 +12,14 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Software Development :: Quality Assurance -Requires-Python: >=3.8 +Requires-Python: >=3.9 Description-Content-Type: text/x-rst License-File: LICENSE License-File: AUTHORS.rst @@ -339,7 +339,8 @@ Disabling line-by-line ---------------------- -It is possible to disable autopep8 untill it it turned back on again in the file, using ``autopep8: off`` and then renabling ``autopep8: on``. +It is possible to disable autopep8 until it is turned back on again in the file, +using ``autopep8: off`` and then reenabling with ``autopep8: on``. .. code-block:: python @@ -432,7 +433,7 @@ Test cases are in ``test/test_autopep8.py``. They can be run directly via ``python test/test_autopep8.py`` or via tox_. The latter is useful for testing against multiple Python interpreters. (We currently test against -CPython versions 3.8, 3.9, 3.10, 3.11 and 3.12. We also test against PyPy.) +CPython versions 3.9, 3.10, 3.11, 3.12 and 3.13. We also test against PyPy.) .. _`tox`: https://pypi.org/project/tox/ @@ -463,10 +464,8 @@ * PyPI_ * GitHub_ -* `Travis CI`_ * Codecov_ .. _PyPI: https://pypi.org/project/autopep8/ .. _GitHub: https://github.com/hhatto/autopep8 -.. _`Travis CI`: https://travis-ci.org/hhatto/autopep8 .. _`Codecov`: https://app.codecov.io/gh/hhatto/autopep8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/autopep8.py new/autopep8-2.3.2/autopep8.py --- old/autopep8-2.3.1/autopep8.py 2024-06-23 07:15:31.000000000 +0200 +++ new/autopep8-2.3.2/autopep8.py 2025-01-14 15:45:57.000000000 +0100 @@ -89,7 +89,7 @@ import pycodestyle -__version__ = '2.3.1' +__version__ = '2.3.2' CR = '\r' @@ -1300,6 +1300,7 @@ # NOTE: match objects # * type(a) == type(b) -> (None, None, 'a', '==') # * str == type(b) -> ('==', 'b', None, None) + # * type(b) == str -> (None, None, 'b', '==') # * type("") != type(b) -> (None, None, '""', '!=') start = match.start() end = match.end() @@ -1320,6 +1321,10 @@ isinstance_stmt = " not isinstance" _type_comp = f"{_target_obj}, {target[:start]}" + indent_match = re.match(r'^\s+', target) + indent = "" + if indent_match: + indent = indent_match.group() _prefix_tmp = target[:start].split() if len(_prefix_tmp) >= 1: @@ -1332,15 +1337,28 @@ _suffix_tmp = target[end:] _suffix_type_match = TYPE_REGEX.search(_suffix_tmp) - if len(_suffix_tmp.split()) >= 1 and _suffix_type_match: - if _suffix_type_match: + if _suffix_type_match: + if len(_suffix_tmp.split()) >= 1: type_match_end = _suffix_type_match.end() _suffix = _suffix_tmp[type_match_end:] - if _suffix_type_match: cmp_b = _suffix_type_match.groups()[0] _type_comp = f"{_target_obj}, {cmp_b}" + else: + _else_suffix_match = re.match( + r"^\s*([^\s:]+)(.*)$", + _suffix_tmp, + ) + if _else_suffix_match: + _else_suffix = _else_suffix_match.group(1) + _else_suffix_other = _else_suffix_match.group(2) + _type_comp = f"{_target_obj}, {_else_suffix}" + _else_suffix_end = _suffix_tmp[_else_suffix_match.end():] + _suffix = f"{_else_suffix_other}{_else_suffix_end}" + # `else` route is not care - fix_line = f"{_prefix}{isinstance_stmt}({_type_comp}){_suffix}" + fix_line = ( + f"{indent}{_prefix}{isinstance_stmt}({_type_comp}){_suffix}" + ) self.source[line_index] = fix_line def fix_e722(self, result): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/pyproject.toml new/autopep8-2.3.2/pyproject.toml --- old/autopep8-2.3.1/pyproject.toml 2024-06-23 07:15:31.000000000 +0200 +++ new/autopep8-2.3.2/pyproject.toml 2025-01-14 15:45:57.000000000 +0100 @@ -20,15 +20,15 @@ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", ] -requires-python = ">=3.8" +requires-python = ">=3.9" dependencies = [ "pycodestyle >= 2.12.0", "tomli; python_version < '3.11'", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/autopep8-2.3.1/test/test_autopep8.py new/autopep8-2.3.2/test/test_autopep8.py --- old/autopep8-2.3.1/test/test_autopep8.py 2024-06-23 07:15:31.000000000 +0200 +++ new/autopep8-2.3.2/test/test_autopep8.py 2025-01-14 15:45:57.000000000 +0100 @@ -4419,6 +4419,18 @@ with autopep8_context(line, options=['--aggressive']) as result: self.assertEqual(fixed, result) + def test_e721_in_conditional_pat3(self): + line = "if type(res) == str:\n pass\n" + fixed = "if isinstance(res, str):\n pass\n" + with autopep8_context(line, options=['--aggressive']) as result: + self.assertEqual(fixed, result) + + def test_e721_in_conditional_with_indent(self): + line = "if True:\n if str == type(''):\n pass\n" + fixed = "if True:\n if isinstance('', str):\n pass\n" + with autopep8_context(line, options=['--aggressive']) as result: + self.assertEqual(fixed, result) + def test_e721_in_not_conditional(self): line = "if type(res) != type(''):\n pass\n" fixed = "if not isinstance(res, type('')):\n pass\n"