Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-cliff for openSUSE:Factory 
checked in at 2025-11-26 17:18:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cliff (Old)
 and      /work/SRC/openSUSE:Factory/.python-cliff.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-cliff"

Wed Nov 26 17:18:43 2025 rev:48 rq:1320155 version:4.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cliff/python-cliff.changes        
2025-10-22 12:19:40.880056410 +0200
+++ /work/SRC/openSUSE:Factory/.python-cliff.new.14147/python-cliff.changes     
2025-11-26 17:18:59.483187181 +0100
@@ -1,0 +2,9 @@
+Wed Nov 26 08:49:45 UTC 2025 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to 4.12.0
+  * typing: Clarify behavior of _run_after_hooks method
+  * Remove pkg_resources remnants
+  * ruff: Enable E5 rules
+  * typing: Update for latest docutils type hints
+
+-------------------------------------------------------------------

Old:
----
  cliff-4.11.0.tar.gz

New:
----
  cliff-4.12.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-cliff.spec ++++++
--- /var/tmp/diff_new_pack.xPiJTL/_old  2025-11-26 17:19:00.359224137 +0100
+++ /var/tmp/diff_new_pack.xPiJTL/_new  2025-11-26 17:19:00.371224643 +0100
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-cliff
-Version:        4.11.0
+Version:        4.12.0
 Release:        0
 Summary:        Command Line Interface Formulation Framework
 License:        Apache-2.0

++++++ cliff-4.11.0.tar.gz -> cliff-4.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/.pre-commit-config.yaml 
new/cliff-4.12.0/.pre-commit-config.yaml
--- old/cliff-4.11.0/.pre-commit-config.yaml    2025-08-21 11:38:02.000000000 
+0200
+++ new/cliff-4.12.0/.pre-commit-config.yaml    2025-11-20 15:59:28.000000000 
+0100
@@ -1,13 +1,13 @@
 ---
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v5.0.0
+    rev: v6.0.0
     hooks:
       - id: trailing-whitespace
       - id: mixed-line-ending
         args: ['--fix', 'lf']
         exclude: '.*\.(svg)$'
-      - id: check-byte-order-marker
+      - id: fix-byte-order-marker
       - id: check-executables-have-shebangs
       - id: check-merge-conflict
       - id: debug-statements
@@ -15,13 +15,13 @@
         files: .*\.(yaml|yml)$
         exclude: '^zuul.d/.*$'
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.12.1
+    rev: v0.14.5
     hooks:
       - id: ruff-check
         args: ['--fix', '--unsafe-fixes']
       - id: ruff-format
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.16.1
+    rev: v1.18.2
     hooks:
       - id: mypy
         additional_dependencies:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/ChangeLog new/cliff-4.12.0/ChangeLog
--- old/cliff-4.11.0/ChangeLog  2025-08-21 11:38:44.000000000 +0200
+++ new/cliff-4.12.0/ChangeLog  2025-11-20 16:00:03.000000000 +0100
@@ -1,6 +1,14 @@
 CHANGES
 =======
 
+4.12.0
+------
+
+* typing: Clarify behavior of \_run\_after\_hooks method
+* Remove pkg\_resources remnants
+* ruff: Enable E5 rules
+* typing: Update for latest docutils type hints
+
 4.11.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/PKG-INFO new/cliff-4.12.0/PKG-INFO
--- old/cliff-4.11.0/PKG-INFO   2025-08-21 11:38:44.328871500 +0200
+++ new/cliff-4.12.0/PKG-INFO   2025-11-20 16:00:03.748392600 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: cliff
-Version: 4.11.0
+Version: 4.12.0
 Summary: Command Line Interface Formulation Framework
 Author-email: OpenStack <[email protected]>
 License: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/command.py 
new/cliff-4.12.0/cliff/command.py
--- old/cliff-4.11.0/cliff/command.py   2025-08-21 11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/command.py   2025-11-20 15:59:28.000000000 +0100
@@ -209,8 +209,8 @@
         return parsed_args
 
     def _run_after_hooks(
-        self, parsed_args: argparse.Namespace, return_code: _T
-    ) -> _T:
+        self, parsed_args: argparse.Namespace, return_code: int
+    ) -> int:
         """Calls after() method of the hooks.
 
         This method is intended to be called from the run() method after
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/commandmanager.py 
new/cliff-4.12.0/cliff/commandmanager.py
--- old/cliff-4.11.0/cliff/commandmanager.py    2025-08-21 11:38:02.000000000 
+0200
+++ new/cliff-4.12.0/cliff/commandmanager.py    2025-11-20 15:59:28.000000000 
+0100
@@ -13,7 +13,6 @@
 """Discover and lookup command plugins."""
 
 import collections.abc
-import inspect
 import logging
 
 import stevedore
@@ -38,7 +37,10 @@
 
 
 class EntryPointWrapper:
-    """Wrap up a command class already imported to make it look like a 
plugin."""
+    """An entrypoint-like object.
+
+    Wrap up a command class already imported to make it look like a plugin.
+    """
 
     def __init__(
         self, name: str, command_class: type[command.Command]
@@ -46,7 +48,7 @@
         self.name = name
         self.command_class = command_class
 
-    def load(self, require: bool = False) -> type[command.Command]:
+    def load(self) -> type[command.Command]:
         return self.command_class
 
 
@@ -134,16 +136,7 @@
                     found = candidates[0]
             if found:
                 cmd_ep = self.commands[found]
-                if hasattr(cmd_ep, 'resolve'):
-                    cmd_factory = cmd_ep.resolve()
-                else:
-                    # NOTE(dhellmann): Some fake classes don't take
-                    # require as an argument. Yay?
-                    arg_spec = inspect.getfullargspec(cmd_ep.load)
-                    if 'require' in arg_spec[0]:
-                        cmd_factory = cmd_ep.load(require=False)
-                    else:
-                        cmd_factory = cmd_ep.load()
+                cmd_factory = cmd_ep.load()
                 return (cmd_factory, return_name, search_args)
         else:
             raise ValueError(f'Unknown command {argv!r}')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/display.py 
new/cliff-4.12.0/cliff/display.py
--- old/cliff-4.11.0/cliff/display.py   2025-08-21 11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/display.py   2025-11-20 15:59:28.000000000 +0100
@@ -42,7 +42,7 @@
     @property
     @abc.abstractmethod
     def formatter_namespace(self) -> str:
-        """String specifying the namespace to use for loading formatter 
plugins."""
+        """Namespace to use for loading formatter plugins."""
 
     @property
     @abc.abstractmethod
@@ -152,6 +152,32 @@
         self.produce_output(parsed_args, column_names, data)
         return 0
 
+    def _run_after_hooks(  # type: ignore[override]
+        self,
+        parsed_args: argparse.Namespace,
+        data: tuple[
+            collections.abc.Sequence[str], collections.abc.Iterable[ty.Any]
+        ],
+    ) -> tuple[
+        collections.abc.Sequence[str], collections.abc.Iterable[ty.Any]
+    ]:
+        """Calls after() method of the hooks.
+
+        This method is intended to be called from the run() method after
+        take_action() is called.
+
+        This method should only be overridden by developers creating new
+        command base classes and only if it is necessary to have different
+        hook processing behavior.
+        """
+        for hook in self._hooks:
+            ret = hook.obj.after(parsed_args, data)
+            # If the return is None do not change return_code, otherwise
+            # set up to pass it to the next hook
+            if ret is not None:
+                data = ret
+        return data
+
     @staticmethod
     def _compress_iterable(
         iterable: collections.abc.Iterable[_T],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/formatters/base.py 
new/cliff-4.12.0/cliff/formatters/base.py
--- old/cliff-4.11.0/cliff/formatters/base.py   2025-08-21 11:38:02.000000000 
+0200
+++ new/cliff-4.12.0/cliff/formatters/base.py   2025-11-20 15:59:28.000000000 
+0100
@@ -28,7 +28,7 @@
 
 
 class ListFormatter(Formatter, metaclass=abc.ABCMeta):
-    """Base class for formatters that know how to deal with multiple 
objects."""
+    """Base class for formatters that know how to deal with many objects."""
 
     @abc.abstractmethod
     def emit_list(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/formatters/commaseparated.py 
new/cliff-4.12.0/cliff/formatters/commaseparated.py
--- old/cliff-4.11.0/cliff/formatters/commaseparated.py 2025-08-21 
11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/formatters/commaseparated.py 2025-11-20 
15:59:28.000000000 +0100
@@ -23,7 +23,7 @@
 
 
 class CSVLister(base.ListFormatter):
-    QUOTE_MODES = {
+    QUOTE_MODES: dict[str, ty.Literal[0, 1, 2, 3]] = {
         'all': csv.QUOTE_ALL,
         'minimal': csv.QUOTE_MINIMAL,
         'nonnumeric': csv.QUOTE_NONNUMERIC,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/show.py 
new/cliff-4.12.0/cliff/show.py
--- old/cliff-4.11.0/cliff/show.py      2025-08-21 11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/show.py      2025-11-20 15:59:28.000000000 +0100
@@ -34,9 +34,13 @@
     @abc.abstractmethod
     def take_action(
         self, parsed_args: argparse.Namespace
-    ) -> tuple[tuple[str, ...], tuple[ty.Any, ...]]:
-        """Return a two-part tuple with a tuple of column names
-        and a tuple of values.
+    ) -> tuple[
+        collections.abc.Sequence[str], collections.abc.Iterable[ty.Any]
+    ]:
+        """Run command.
+
+        Return a tuple containing the column names and an iterable containing
+        the data to be listed.
         """
 
     def produce_output(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/sphinxext.py 
new/cliff-4.12.0/cliff/sphinxext.py
--- old/cliff-4.11.0/cliff/sphinxext.py 2025-08-21 11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/sphinxext.py 2025-11-20 15:59:28.000000000 +0100
@@ -314,8 +314,8 @@
             return manager.find_command(command_name.split())[0]
         except ValueError:
             raise self.error(
-                f'"{command_name}" is not a valid command in the 
"{manager.namespace}" '
-                'namespace'
+                f'"{command_name}" is not a valid command in the '
+                f'"{manager.namespace}" namespace'
             )
 
     def _load_commands(self) -> dict[str, type[command.Command]]:
@@ -359,7 +359,7 @@
         parser.prog = application_name
 
         source_name = f'<{app.__class__.__name__}>'
-        result: statemachine.ViewList[str] = statemachine.ViewList()
+        result = statemachine.StringList()
         for line in _format_parser(parser):
             result.append(line, source_name)
 
@@ -410,7 +410,7 @@
         )
 
         source_name = f'<{command.__class__.__name__}>'
-        result: statemachine.ViewList[str] = statemachine.ViewList()
+        result = statemachine.StringList()
 
         for line in _format_parser(parser):
             result.append(line, source_name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff/tests/test_formatters_table.py 
new/cliff-4.12.0/cliff/tests/test_formatters_table.py
--- old/cliff-4.11.0/cliff/tests/test_formatters_table.py       2025-08-21 
11:38:02.000000000 +0200
+++ new/cliff-4.12.0/cliff/tests/test_formatters_table.py       2025-11-20 
15:59:28.000000000 +0100
@@ -117,8 +117,8 @@
     | d     | 
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd |
     |       | ddddddddd                                                        
    |
     
+-------+----------------------------------------------------------------------+
-    '''
-    )  # noqa
+    '''  # noqa: E501
+    )
 
     # Single-line output, for when no line length restriction apply
     expected_sl_val = textwrap.dedent(
@@ -131,8 +131,8 @@
     | c     | C                                                                
             |
     | d     | 
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd |
     
+-------+-------------------------------------------------------------------------------+
-    '''
-    )  # noqa
+    '''  # noqa: E501
+    )
 
     @mock.patch('cliff.utils.terminal_width')
     def test_table_formatter_no_cli_param(self, tw):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff.egg-info/PKG-INFO 
new/cliff-4.12.0/cliff.egg-info/PKG-INFO
--- old/cliff-4.11.0/cliff.egg-info/PKG-INFO    2025-08-21 11:38:44.000000000 
+0200
+++ new/cliff-4.12.0/cliff.egg-info/PKG-INFO    2025-11-20 16:00:03.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: cliff
-Version: 4.11.0
+Version: 4.12.0
 Summary: Command Line Interface Formulation Framework
 Author-email: OpenStack <[email protected]>
 License: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/cliff.egg-info/pbr.json 
new/cliff-4.12.0/cliff.egg-info/pbr.json
--- old/cliff-4.11.0/cliff.egg-info/pbr.json    2025-08-21 11:38:44.000000000 
+0200
+++ new/cliff-4.12.0/cliff.egg-info/pbr.json    2025-11-20 16:00:03.000000000 
+0100
@@ -1 +1 @@
-{"git_version": "0008efa", "is_release": true}
\ No newline at end of file
+{"git_version": "12c21fa", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cliff-4.11.0/pyproject.toml 
new/cliff-4.12.0/pyproject.toml
--- old/cliff-4.11.0/pyproject.toml     2025-08-21 11:38:02.000000000 +0200
+++ new/cliff-4.12.0/pyproject.toml     2025-11-20 15:59:28.000000000 +0100
@@ -91,14 +91,13 @@
 
 [tool.ruff]
 line-length = 79
-target-version = "py310"
 
 [tool.ruff.format]
 quote-style = "preserve"
 docstring-code-format = true
 
 [tool.ruff.lint]
-select = ["E4", "E7", "E9", "F", "S", "UP"]
+select = ["E4", "E5", "E7", "E9", "F", "S", "UP"]
 
 [tool.ruff.lint.per-file-ignores]
 "cliff/tests/*" = ["S"]

Reply via email to