Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pep8-naming for openSUSE:Factory checked in at 2024-06-05 17:42:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pep8-naming (Old) and /work/SRC/openSUSE:Factory/.python-pep8-naming.new.24587 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pep8-naming" Wed Jun 5 17:42:22 2024 rev:13 rq:1178618 version:0.14.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pep8-naming/python-pep8-naming.changes 2023-01-02 15:02:32.049474292 +0100 +++ /work/SRC/openSUSE:Factory/.python-pep8-naming.new.24587/python-pep8-naming.changes 2024-06-05 17:43:06.535654088 +0200 @@ -1,0 +2,11 @@ +Tue Jun 4 20:46:22 UTC 2024 - Dirk Müller <[email protected]> + +- update to 0.14.1: + * Require Python 3.8 or later. + * Drop support for Python 3.7. + * Add support for Python 3.12. + * Ignore methods decorated by @typing.override. + * Perform case-sensitive ignore-names globbing on all + platforms. + +------------------------------------------------------------------- Old: ---- pep8-naming-0.13.3.tar.gz New: ---- pep8-naming-0.14.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pep8-naming.spec ++++++ --- /var/tmp/diff_new_pack.8cQsCv/_old 2024-06-05 17:43:07.251680164 +0200 +++ /var/tmp/diff_new_pack.8cQsCv/_new 2024-06-05 17:43:07.251680164 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pep8-naming # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,23 +18,21 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pep8-naming -Version: 0.13.3 +Version: 0.14.1 Release: 0 Summary: Flake8 plugin for checking PEP-8 naming conventions License: MIT URL: https://github.com/PyCQA/pep8-naming Source: https://files.pythonhosted.org/packages/source/p/pep8-naming/pep8-naming-%{version}.tar.gz -BuildRequires: %{python_module base >= 3.7} -BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-flake8 >= 5.0.0 -Requires: python-flake8-polyfill >= 1.0.2 -Requires: python-setuptools BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module flake8 >= 5.0.0} -BuildRequires: %{python_module flake8-polyfill >= 1.0.2} # /SECTION %python_subpackages @@ -49,10 +47,10 @@ %autosetup -p1 -n pep8-naming-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %check @@ -65,5 +63,5 @@ %license LICENSE %{python_sitelib}/pep8ext_naming.py* %pycache_only %{python_sitelib}/__pycache__/pep8ext_naming.*.py* -%{python_sitelib}/pep8_naming-%{version}*-info +%{python_sitelib}/pep8_naming-%{version}.dist-info ++++++ pep8-naming-0.13.3.tar.gz -> pep8-naming-0.14.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/CHANGELOG.rst new/pep8-naming-0.14.1/CHANGELOG.rst --- old/pep8-naming-0.13.3/CHANGELOG.rst 2022-12-19 21:43:16.000000000 +0100 +++ new/pep8-naming-0.14.1/CHANGELOG.rst 2024-05-17 16:07:14.000000000 +0200 @@ -1,6 +1,19 @@ Changes ======= +0.14.1 - 2024-05-17 +------------------- + +* Require Python 3.8 or later. + +0.14.0 - 2024-05-16 +------------------- + +* Drop support for Python 3.7. +* Add support for Python 3.12. +* Ignore methods decorated by ``@typing.override``. +* Perform case-sensitive ``ignore-names`` globbing on all platforms. + 0.13.3 - 2022-12-19 ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/PKG-INFO new/pep8-naming-0.14.1/PKG-INFO --- old/pep8-naming-0.13.3/PKG-INFO 2022-12-19 21:43:50.878376200 +0100 +++ new/pep8-naming-0.14.1/PKG-INFO 2024-05-17 16:08:18.518595000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pep8-naming -Version: 0.13.3 +Version: 0.14.1 Summary: Check PEP-8 naming conventions, plugin for flake8 Home-page: https://github.com/PyCQA/pep8-naming Author: Florent Xicluna @@ -18,16 +18,17 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 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 :: Only Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Software Development :: Quality Assurance -Requires-Python: >=3.7 +Requires-Python: >=3.8 License-File: LICENSE +Requires-Dist: flake8>=5.0.0 PEP 8 Naming Conventions ======================== @@ -134,3 +135,19 @@ Used to prevent false N805 errors. Default: ``staticmethod``. + +FAQ +--- + +How do I configure ``classmethod_decorators`` to recognize `SQLAlchemy`_ class methods? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + classmethod_decorators = + classmethod + declared_attr + expression + comparator + +.. _SQLAlchemy: https://www.sqlalchemy.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/README.rst new/pep8-naming-0.14.1/README.rst --- old/pep8-naming-0.13.3/README.rst 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/README.rst 2023-04-11 18:36:59.000000000 +0200 @@ -103,3 +103,19 @@ Used to prevent false N805 errors. Default: ``staticmethod``. + +FAQ +--- + +How do I configure ``classmethod_decorators`` to recognize `SQLAlchemy`_ class methods? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + classmethod_decorators = + classmethod + declared_attr + expression + comparator + +.. _SQLAlchemy: https://www.sqlalchemy.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/setup.py new/pep8-naming-0.14.1/setup.py --- old/pep8-naming-0.13.3/setup.py 2022-12-19 21:43:16.000000000 +0100 +++ new/pep8-naming-0.14.1/setup.py 2024-05-17 16:06:23.000000000 +0200 @@ -44,7 +44,7 @@ py_modules=['pep8ext_naming'], install_requires=['flake8>=5.0.0'], zip_safe=False, - python_requires='>=3.7', + python_requires='>=3.8', entry_points={ 'flake8.extension': [ 'N8 = pep8ext_naming:NamingChecker', @@ -59,11 +59,11 @@ 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', '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 :: Only', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Software Development :: Quality Assurance', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/src/pep8_naming.egg-info/PKG-INFO new/pep8-naming-0.14.1/src/pep8_naming.egg-info/PKG-INFO --- old/pep8-naming-0.13.3/src/pep8_naming.egg-info/PKG-INFO 2022-12-19 21:43:50.000000000 +0100 +++ new/pep8-naming-0.14.1/src/pep8_naming.egg-info/PKG-INFO 2024-05-17 16:08:18.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pep8-naming -Version: 0.13.3 +Version: 0.14.1 Summary: Check PEP-8 naming conventions, plugin for flake8 Home-page: https://github.com/PyCQA/pep8-naming Author: Florent Xicluna @@ -18,16 +18,17 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 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 :: Only Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: Software Development :: Quality Assurance -Requires-Python: >=3.7 +Requires-Python: >=3.8 License-File: LICENSE +Requires-Dist: flake8>=5.0.0 PEP 8 Naming Conventions ======================== @@ -134,3 +135,19 @@ Used to prevent false N805 errors. Default: ``staticmethod``. + +FAQ +--- + +How do I configure ``classmethod_decorators`` to recognize `SQLAlchemy`_ class methods? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + classmethod_decorators = + classmethod + declared_attr + expression + comparator + +.. _SQLAlchemy: https://www.sqlalchemy.org/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/src/pep8_naming.egg-info/SOURCES.txt new/pep8-naming-0.14.1/src/pep8_naming.egg-info/SOURCES.txt --- old/pep8-naming-0.13.3/src/pep8_naming.egg-info/SOURCES.txt 2022-12-19 21:43:50.000000000 +0100 +++ new/pep8-naming-0.14.1/src/pep8_naming.egg-info/SOURCES.txt 2024-05-17 16:08:18.000000000 +0200 @@ -18,14 +18,11 @@ testsuite/N803.py testsuite/N804.py testsuite/N805.py -testsuite/N805_py38.py testsuite/N806.py -testsuite/N806_py38.py testsuite/N807.py testsuite/N80x.py testsuite/N815.py testsuite/N816.py -testsuite/N816_py38.py testsuite/N818.py testsuite/N81x.py testsuite/N8xx.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/src/pep8ext_naming.py new/pep8-naming-0.14.1/src/pep8ext_naming.py --- old/pep8-naming-0.13.3/src/pep8ext_naming.py 2022-12-19 21:43:16.000000000 +0100 +++ new/pep8-naming-0.14.1/src/pep8ext_naming.py 2024-05-17 16:07:20.000000000 +0200 @@ -1,17 +1,15 @@ """Checker of PEP-8 Naming Conventions.""" import ast -import sys from ast import iter_child_nodes from collections import deque -from fnmatch import fnmatch +from collections.abc import Iterable +from fnmatch import fnmatchcase from functools import partial from itertools import chain from flake8 import style_guide -__version__ = '0.13.3' - -PYTHON_VERSION = sys.version_info[:3] +__version__ = '0.14.1' CLASS_METHODS = frozenset(( '__new__', @@ -32,15 +30,6 @@ } FUNC_NODES = (ast.FunctionDef, ast.AsyncFunctionDef) -if PYTHON_VERSION < (3, 8): - def get_arg_name_tuples(node): - groups = (node.args.args, node.args.kwonlyargs) - return [(arg, arg.arg) for args in groups for arg in args] -else: - def get_arg_name_tuples(node): - groups = (node.args.posonlyargs, node.args.args, node.args.kwonlyargs) - return [(arg, arg.arg) for args in groups for arg in args] - class _ASTCheckMeta(type): def __init__(cls, class_name, bases, namespace): @@ -54,12 +43,8 @@ def _err(self, node, code, **kwargs): lineno, col_offset = node.lineno, node.col_offset if isinstance(node, ast.ClassDef): - if PYTHON_VERSION < (3, 8): - lineno += len(node.decorator_list) col_offset += 6 elif isinstance(node, FUNC_NODES): - if PYTHON_VERSION < (3, 8): - lineno += len(node.decorator_list) col_offset += 4 code_str = getattr(self, code) if kwargs: @@ -68,7 +53,7 @@ def _ignored(name, ignore): - return any(fnmatch(name, i) for i in ignore) + return any(fnmatchcase(name, i) for i in ignore) BaseASTCheck = _ASTCheckMeta('BaseASTCheck', (object,), @@ -118,8 +103,7 @@ ignore_names = frozenset(_default_ignore_names) def __init__(self, tree, filename): - self.parents = deque() - self._node = tree + self.tree = tree @classmethod def add_options(cls, parser): @@ -168,23 +152,22 @@ ) def run(self): - return self.visit_tree(self._node) if self._node else () + return self.visit_tree(self.tree, deque()) if self.tree else () - def visit_tree(self, node): - yield from self.visit_node(node) - self.parents.append(node) + def visit_tree(self, node, parents: deque): + yield from self.visit_node(node, parents) + parents.append(node) for child in iter_child_nodes(node): - yield from self.visit_tree(child) - self.parents.pop() + yield from self.visit_tree(child, parents) + parents.pop() - def visit_node(self, node): + def visit_node(self, node, parents: Iterable): if isinstance(node, ast.ClassDef): self.tag_class_functions(node) elif isinstance(node, FUNC_NODES): self.find_global_defs(node) method = 'visit_' + node.__class__.__name__.lower() - parents = self.parents ignore_names = self.ignore_names for visitor in self.visitors: visitor_method = getattr(visitor, method, None) @@ -274,14 +257,14 @@ N818 = "exception name '{name}' should be named with an Error suffix" @classmethod - def get_classdef(cls, name, parents): + def get_classdef(cls, name, parents: Iterable): for parent in parents: for node in parent.body: if isinstance(node, ast.ClassDef) and node.name == name: return node @classmethod - def superclass_names(cls, name, parents, _names=None): + def superclass_names(cls, name, parents: Iterable, _names=None): names = _names or set() classdef = cls.get_classdef(name, parents) if not classdef: @@ -292,7 +275,7 @@ names.update(cls.superclass_names(base.id, parents, names)) return names - def visit_classdef(self, node, parents, ignore=None): + def visit_classdef(self, node, parents: Iterable, ignore=None): name = node.name if _ignored(name, ignore): return @@ -317,13 +300,26 @@ N802 = "function name '{name}' should be lowercase" N807 = "function name '{name}' should not start and end with '__'" - def visit_functiondef(self, node, parents, ignore=None): + @staticmethod + def has_override_decorator(node): + for d in node.decorator_list: + if isinstance(d, ast.Name) and d.id == 'override': + return True + if (isinstance(d, ast.Attribute) and isinstance(d.value, ast.Name) + and d.value.id == 'typing' and d.attr == 'override'): + return True + return False + + def visit_functiondef(self, node, parents: Iterable, ignore=None): function_type = getattr(node, 'function_type', _FunctionType.FUNCTION) name = node.name if _ignored(name, ignore): return if name in ('__dir__', '__getattr__'): return + if (function_type != _FunctionType.FUNCTION + and self.has_override_decorator(node)): + return if name.lower() != name: yield self.err(node, 'N802', name=name) if (function_type == _FunctionType.FUNCTION @@ -345,34 +341,37 @@ N804 = "first argument of a classmethod should be named 'cls'" N805 = "first argument of a method should be named 'self'" - def visit_functiondef(self, node, parents, ignore=None): + def visit_functiondef(self, node, parents: Iterable, ignore=None): + args = node.args.posonlyargs + node.args.args + node.args.kwonlyargs - def arg_name(arg): - return (arg, arg.arg) if arg else (node, arg) - - for arg, name in arg_name(node.args.vararg), arg_name(node.args.kwarg): - if name is None or _ignored(name, ignore): - continue - if name.lower() != name: - yield self.err(arg, 'N803', name=name) - return - - arg_name_tuples = get_arg_name_tuples(node) - if not arg_name_tuples: - return - arg0, name0 = arg_name_tuples[0] - function_type = getattr(node, 'function_type', _FunctionType.FUNCTION) + # Start by applying checks that are specific to the first argument. + # + # Note: The `ignore` check shouldn't be necessary here because we'd + # expect users to explicitly ignore N804/N805 when using names + # other than `self` and `cls` rather than ignoring names like + # `klass` to get around these checks. However, a previous + # implementation allowed for that, so we retain that behavior + # for backwards compatibility. + if args and (name := args[0].arg) and not _ignored(name, ignore): + function_type = getattr(node, 'function_type', None) + if function_type == _FunctionType.METHOD and name != 'self': + yield self.err(args[0], 'N805') + elif function_type == _FunctionType.CLASSMETHOD and name != 'cls': + yield self.err(args[0], 'N804') + + # Also add the special *arg and **kwarg arguments for the rest of the + # checks when they're present. We didn't include them above because + # the "first argument" naming checks shouldn't be applied to them + # when they're the function's only argument(s). + if node.args.vararg: + args.append(node.args.vararg) + if node.args.kwarg: + args.append(node.args.kwarg) - if function_type == _FunctionType.METHOD: - if name0 != 'self' and not _ignored(name0, ignore): - yield self.err(arg0, 'N805') - elif function_type == _FunctionType.CLASSMETHOD: - if name0 != 'cls' and not _ignored(name0, ignore): - yield self.err(arg0, 'N804') - for arg, name in arg_name_tuples: + for arg in args: + name = arg.arg if name.lower() != name and not _ignored(name, ignore): yield self.err(arg, 'N803', name=name) - return visit_asyncfunctiondef = visit_functiondef @@ -387,7 +386,7 @@ N814 = "camelcase '{name}' imported as constant '{asname}'" N817 = "camelcase '{name}' imported as acronym '{asname}'" - def visit_importfrom(self, node, parents, ignore=None): + def visit_importfrom(self, node, parents: Iterable, ignore=None): for name in node.names: asname = name.asname if not asname: @@ -419,7 +418,7 @@ N815 = "variable '{name}' in class scope should not be mixedCase" N816 = "variable '{name}' in global scope should not be mixedCase" - def _find_errors(self, assignment_target, parents, ignore): + def _find_errors(self, assignment_target, parents: Iterable, ignore): for parent_func in reversed(parents): if isinstance(parent_func, ast.ClassDef): checker = self.class_variable_check @@ -447,36 +446,36 @@ return True return False - def visit_assign(self, node, parents, ignore=None): + def visit_assign(self, node, parents: Iterable, ignore=None): if self.is_namedtupe(node.value): return for target in node.targets: yield from self._find_errors(target, parents, ignore) - def visit_namedexpr(self, node, parents, ignore): + def visit_namedexpr(self, node, parents: Iterable, ignore): if self.is_namedtupe(node.value): return yield from self._find_errors(node.target, parents, ignore) visit_annassign = visit_namedexpr - def visit_with(self, node, parents, ignore): + def visit_with(self, node, parents: Iterable, ignore): for item in node.items: yield from self._find_errors( item.optional_vars, parents, ignore) visit_asyncwith = visit_with - def visit_for(self, node, parents, ignore): + def visit_for(self, node, parents: Iterable, ignore): yield from self._find_errors(node.target, parents, ignore) visit_asyncfor = visit_for - def visit_excepthandler(self, node, parents, ignore): + def visit_excepthandler(self, node, parents: Iterable, ignore): if node.name: yield from self._find_errors(node, parents, ignore) - def visit_generatorexp(self, node, parents, ignore): + def visit_generatorexp(self, node, parents: Iterable, ignore): for gen in node.generators: yield from self._find_errors(gen.target, parents, ignore) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N801.py new/pep8-naming-0.14.1/testsuite/N801.py --- old/pep8-naming-0.13.3/testsuite/N801.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N801.py 2023-10-21 04:24:52.000000000 +0200 @@ -7,6 +7,9 @@ #: Okay(--ignore-names=*ok) class notok: pass +#: N801:1:7(--ignore-names=*OK) +class notok: + pass #: N801 class Good: class notok: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N802.py new/pep8-naming-0.14.1/testsuite/N802.py --- old/pep8-naming-0.13.3/testsuite/N802.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N802.py 2023-10-21 04:24:52.000000000 +0200 @@ -25,6 +25,9 @@ #: Okay(--ignore-names=*OK) def NotOK(): pass +#: N802:1:5(--ignore-names=*ok) +def NotOK(): + pass #: Okay def _(): pass @@ -53,6 +56,14 @@ def notOk(self): pass #: Okay +class ClassName: + @override + def notOk(self): + pass + @typing.override + def alsoNotOk(self): + pass +#: Okay def setUp(): pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N803.py new/pep8-naming-0.14.1/testsuite/N803.py --- old/pep8-naming-0.13.3/testsuite/N803.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N803.py 2023-10-21 04:24:52.000000000 +0200 @@ -40,6 +40,9 @@ #: Okay(--ignore-names=*BAD) def b13(BAD, *VERYBAD, **EXTRABAD): pass +#: N803:1:9(--ignore-names=*bad) +def b13(BAD): + pass #: N803:1:9 def b14(BAD): pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N804.py new/pep8-naming-0.14.1/testsuite/N804.py --- old/pep8-naming-0.13.3/testsuite/N804.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N804.py 2023-10-21 04:24:52.000000000 +0200 @@ -21,6 +21,11 @@ @classmethod def prepare_meta(klass, root): pass +#: N804(--ignore-names=KLASS) +class SpecialConventionCase: + @classmethod + def prepare_meta(klass, root): + pass #: Okay(--ignore-names=_*) class SpecialConventionCase: @classmethod diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N805.py new/pep8-naming-0.14.1/testsuite/N805.py --- old/pep8-naming-0.13.3/testsuite/N805.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N805.py 2023-10-22 03:19:02.000000000 +0200 @@ -26,6 +26,10 @@ class GraphQLNode: def resolve_foo(source, info): pass +#: N805(--ignore-names=SOURCE) +class GraphQLNode: + def resolve_foo(source, info): + pass #: Okay class Foo: def __new__(cls): @@ -175,3 +179,11 @@ async def test(so, exciting): pass test = staticmethod(test) +#: Okay +class C: + def __init__(self, a, /, b=None): + pass +#: N805:2:18 +class C: + def __init__(this, a, /, b=None): + pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N805_py38.py new/pep8-naming-0.14.1/testsuite/N805_py38.py --- old/pep8-naming-0.13.3/testsuite/N805_py38.py 2020-04-12 00:57:21.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N805_py38.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -# python_version >= '3.8' -#: Okay -class C: - def __init__(self, a, /, b=None): - pass -#: N805:2:18 -class C: - def __init__(this, a, /, b=None): - pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N806.py new/pep8-naming-0.14.1/testsuite/N806.py --- old/pep8-naming-0.13.3/testsuite/N806.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N806.py 2023-10-22 03:19:02.000000000 +0200 @@ -31,6 +31,9 @@ #: Okay(--ignore-names=B*) def test(): Bad = 1 +#: N806(--ignore-names=b*) +def test(): + Bad = 1 #: Okay def good(): global Bad @@ -219,3 +222,21 @@ async def f(): async with expr as ASYNC_VAR: pass +#: Okay +def f1(values): + total = 0 + partial_sums = [total := total + v for v in values] + return partial_sums, total +#: Okay +GLOBAL_VAR = 0 +def f2(values): + global GLOBAL_VAR + partial_sums = [GLOBAL_VAR := GLOBAL_VAR + v for v in values] + return partial_sums, GLOBAL_VAR +#: N806:2:16 +def f(): + return 1, (BaD_WalRuS := 1), BaD_WalRuS + 1 +#: Okay +def f(): + (NamedTuple := namedtuple('NamedTuple', 'f1 f2')) + return NamedTuple diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N806_py38.py new/pep8-naming-0.14.1/testsuite/N806_py38.py --- old/pep8-naming-0.13.3/testsuite/N806_py38.py 2020-04-12 00:57:21.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N806_py38.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,19 +0,0 @@ -# python_version >= '3.8' -#: Okay -def f1(values): - total = 0 - partial_sums = [total := total + v for v in values] - return partial_sums, total -#: Okay -GLOBAL_VAR = 0 -def f2(values): - global GLOBAL_VAR - partial_sums = [GLOBAL_VAR := GLOBAL_VAR + v for v in values] - return partial_sums, GLOBAL_VAR -#: N806:2:16 -def f(): - return 1, (BaD_WalRuS := 1), BaD_WalRuS + 1 -#: Okay -def f(): - (NamedTuple := namedtuple('NamedTuple', 'f1 f2')) - return NamedTuple diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N807.py new/pep8-naming-0.14.1/testsuite/N807.py --- old/pep8-naming-0.13.3/testsuite/N807.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N807.py 2023-10-21 04:24:52.000000000 +0200 @@ -46,11 +46,14 @@ def method(self): def __bad__(): pass -#: Okay(--ignore-names=__bad) -def __bad(): +#: Okay(--ignore-names=__bad__) +def __bad__(): pass #: Okay(--ignore-names=__*) -def __bad(): +def __bad__(): + pass +#: N807(--ignore-names=__B*) +def __bad__(): pass #: Okay def __dir__(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N815.py new/pep8-naming-0.14.1/testsuite/N815.py --- old/pep8-naming-0.13.3/testsuite/N815.py 2020-04-12 00:57:21.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N815.py 2023-10-21 04:24:52.000000000 +0200 @@ -25,3 +25,6 @@ #: Okay(--ignore-names=*Case) class C: mixed_Case = 0 +#: N815(--ignore-names=*case) +class C: + mixed_Case = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N816.py new/pep8-naming-0.14.1/testsuite/N816.py --- old/pep8-naming-0.13.3/testsuite/N816.py 2022-08-18 02:19:39.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N816.py 2023-10-22 03:19:02.000000000 +0200 @@ -22,6 +22,8 @@ mixedCase = 0 #: Okay(--ignore-names=*Case) mixedCase = 0 +#: N816(--ignore-names=*case) +mixedCase = 0 #: Okay Î = 1 #: N816 @@ -51,3 +53,7 @@ #: N816 async for γÎ1 in iterator: pass +#: Okay +lambda f: (TheName := namedtuple('TheName', 'a b c')), TheName +#: N816:1:15: +lambda line: (BaD_WaLRuS := re.match(pattern, line)) and BaD_WaLRuS.group(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pep8-naming-0.13.3/testsuite/N816_py38.py new/pep8-naming-0.14.1/testsuite/N816_py38.py --- old/pep8-naming-0.13.3/testsuite/N816_py38.py 2020-04-12 00:57:21.000000000 +0200 +++ new/pep8-naming-0.14.1/testsuite/N816_py38.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -# python_version >= '3.8' -#: Okay -lambda f: (TheName := namedtuple('TheName', 'a b c')), TheName -#: N816:1:15: -lambda line: (BaD_WaLRuS := re.match(pattern, line)) and BaD_WaLRuS.group(1)
