Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-exceptiongroup for
openSUSE:Factory checked in at 2023-03-17 17:02:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-exceptiongroup (Old)
and /work/SRC/openSUSE:Factory/.python-exceptiongroup.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-exceptiongroup"
Fri Mar 17 17:02:05 2023 rev:4 rq:1071876 version:1.1.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-exceptiongroup/python-exceptiongroup.changes
2023-01-06 17:05:06.836032514 +0100
+++
/work/SRC/openSUSE:Factory/.python-exceptiongroup.new.31432/python-exceptiongroup.changes
2023-03-17 17:02:26.137106118 +0100
@@ -1,0 +2,9 @@
+Tue Mar 14 22:18:18 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 1.1.1:
+ * Worked around `CPython issue #98778
+ ``urllib.error.HTTPError(..., fp=None)`` raises
+ ``KeyError`` on unknown attribute access, on affected
+ Python versions.
+
+-------------------------------------------------------------------
Old:
----
exceptiongroup-1.1.0-gh.tar.gz
New:
----
exceptiongroup-1.1.1-gh.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-exceptiongroup.spec ++++++
--- /var/tmp/diff_new_pack.OnNRa3/_old 2023-03-17 17:02:26.669108905 +0100
+++ /var/tmp/diff_new_pack.OnNRa3/_new 2023-03-17 17:02:26.673108926 +0100
@@ -1,7 +1,7 @@
#
# spec file
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -28,7 +28,7 @@
%endif
Name: python-exceptiongroup%{psuffix}
-Version: 1.1.0
+Version: 1.1.1
Release: 0
Summary: Backport of PEP 654 (exception groups)
License: MIT AND Python-2.0
++++++ exceptiongroup-1.1.0-gh.tar.gz -> exceptiongroup-1.1.1-gh.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/exceptiongroup-1.1.0/.pre-commit-config.yaml
new/exceptiongroup-1.1.1/.pre-commit-config.yaml
--- old/exceptiongroup-1.1.0/.pre-commit-config.yaml 2022-12-23
10:04:49.000000000 +0100
+++ new/exceptiongroup-1.1.1/.pre-commit-config.yaml 2023-03-12
22:27:24.000000000 +0100
@@ -16,7 +16,7 @@
- id: trailing-whitespace
- repo: https://github.com/pycqa/isort
- rev: v5.11.3
+ rev: 5.12.0
hooks:
- id: isort
@@ -27,7 +27,7 @@
args: ["--py37-plus", "--keep-runtime-typing"]
- repo: https://github.com/psf/black
- rev: 22.12.0
+ rev: 23.1.0
hooks:
- id: black
exclude: "tests/test_catch_py311.py"
@@ -40,7 +40,7 @@
exclude: "tests/test_catch_py311.py"
- repo: https://github.com/pre-commit/pygrep-hooks
- rev: v1.9.0
+ rev: v1.10.0
hooks:
- id: python-check-blanket-noqa
- id: python-check-blanket-type-ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/exceptiongroup-1.1.0/CHANGES.rst
new/exceptiongroup-1.1.1/CHANGES.rst
--- old/exceptiongroup-1.1.0/CHANGES.rst 2022-12-23 10:04:49.000000000
+0100
+++ new/exceptiongroup-1.1.1/CHANGES.rst 2023-03-12 22:27:24.000000000
+0100
@@ -3,6 +3,13 @@
This library adheres to `Semantic Versioning 2.0 <http://semver.org/>`_.
+**1.1.1**
+
+- Worked around
+ `CPython issue #98778 <https://github.com/python/cpython/issues/98778>`_,
+ ``urllib.error.HTTPError(..., fp=None)`` raises ``KeyError`` on unknown
attribute
+ access, on affected Python versions. (PR by Zac Hatfield-Dodds)
+
**1.1.0**
- Backported upstream fix for gh-99553 (custom subclasses of
``BaseExceptionGroup`` that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/exceptiongroup-1.1.0/src/exceptiongroup/_exceptions.py
new/exceptiongroup-1.1.1/src/exceptiongroup/_exceptions.py
--- old/exceptiongroup-1.1.0/src/exceptiongroup/_exceptions.py 2022-12-23
10:04:49.000000000 +0100
+++ new/exceptiongroup-1.1.1/src/exceptiongroup/_exceptions.py 2023-03-12
22:27:24.000000000 +0100
@@ -171,9 +171,10 @@
__condition: type[_BaseExceptionT]
| tuple[type[_BaseExceptionT], ...]
| Callable[[_BaseExceptionT_co], bool],
- ) -> tuple[BaseExceptionGroup[_BaseExceptionT] | None, Self | None] |
tuple[
- Self | None, Self | None
- ]:
+ ) -> (
+ tuple[BaseExceptionGroup[_BaseExceptionT] | None, Self | None]
+ | tuple[Self | None, Self | None]
+ ):
condition = get_condition_filter(__condition)
if condition(self):
return self, None
@@ -274,7 +275,8 @@
__condition: type[_ExceptionT]
| tuple[type[_ExceptionT], ...]
| Callable[[_ExceptionT_co], bool],
- ) -> tuple[ExceptionGroup[_ExceptionT] | None, Self | None] | tuple[
- Self | None, Self | None
- ]:
+ ) -> (
+ tuple[ExceptionGroup[_ExceptionT] | None, Self | None]
+ | tuple[Self | None, Self | None]
+ ):
return super().split(__condition)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/exceptiongroup-1.1.0/src/exceptiongroup/_formatting.py
new/exceptiongroup-1.1.1/src/exceptiongroup/_formatting.py
--- old/exceptiongroup-1.1.0/src/exceptiongroup/_formatting.py 2022-12-23
10:04:49.000000000 +0100
+++ new/exceptiongroup-1.1.1/src/exceptiongroup/_formatting.py 2023-03-12
22:27:24.000000000 +0100
@@ -103,7 +103,16 @@
# Capture now to permit freeing resources: only complication is in the
# unofficial API _format_final_exc_line
self._str = _safe_string(exc_value, "exception")
- self.__notes__ = getattr(exc_value, "__notes__", None)
+ try:
+ self.__notes__ = getattr(exc_value, "__notes__", None)
+ except KeyError:
+ # Workaround for https://github.com/python/cpython/issues/98778 on
Python
+ # <= 3.9, and some 3.10 and 3.11 patch versions.
+ HTTPError = getattr(sys.modules.get("urllib.error", None),
"HTTPError", ())
+ if sys.version_info[:2] <= (3, 11) and isinstance(exc_value,
HTTPError):
+ self.__notes__ = None
+ else:
+ raise
if exc_type and issubclass(exc_type, SyntaxError):
# Handle SyntaxError's specially
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/exceptiongroup-1.1.0/tests/test_exceptions.py
new/exceptiongroup-1.1.1/tests/test_exceptions.py
--- old/exceptiongroup-1.1.0/tests/test_exceptions.py 2022-12-23
10:04:49.000000000 +0100
+++ new/exceptiongroup-1.1.1/tests/test_exceptions.py 2023-03-12
22:27:24.000000000 +0100
@@ -451,7 +451,7 @@
eg = create_nested_eg()
line0 = create_nested_eg.__code__.co_firstlineno
- for (tb, expected) in [
+ for tb, expected in [
(eg.__traceback__, line0 + 19),
(eg.exceptions[0].__traceback__, line0 + 6),
(eg.exceptions[1].__traceback__, line0 + 14),
@@ -469,7 +469,7 @@
line0 = create_nested_eg.__code__.co_firstlineno
expected_tbs = [[line0 + 19, line0 + 6, line0 + 4], [line0 + 19, line0
+ 14]]
- for (i, (_, tbs)) in enumerate(leaf_generator(eg)):
+ for i, (_, tbs) in enumerate(leaf_generator(eg)):
self.assertSequenceEqual([tb.tb_lineno for tb in tbs],
expected_tbs[i])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/exceptiongroup-1.1.0/tests/test_formatting.py
new/exceptiongroup-1.1.1/tests/test_formatting.py
--- old/exceptiongroup-1.1.0/tests/test_formatting.py 2022-12-23
10:04:49.000000000 +0100
+++ new/exceptiongroup-1.1.1/tests/test_formatting.py 2023-03-12
22:27:24.000000000 +0100
@@ -1,5 +1,7 @@
import sys
+import traceback
from typing import NoReturn
+from urllib.error import HTTPError
import pytest
from _pytest.capture import CaptureFixture
@@ -528,3 +530,9 @@
print_exception(e) # does not crash
output = capsys.readouterr().err
assert "NamedAttributeError" in output
+
+
+def test_works_around_httperror_bug():
+ # See https://github.com/python/cpython/issues/98778 in Python <= 3.9
+ err = HTTPError("url", 405, "METHOD NOT ALLOWED", None, None)
+ traceback.TracebackException(type(err), err, None)