Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pure-protobuf for 
openSUSE:Factory checked in at 2024-10-16 23:47:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pure-protobuf (Old)
 and      /work/SRC/openSUSE:Factory/.python-pure-protobuf.new.19354 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pure-protobuf"

Wed Oct 16 23:47:48 2024 rev:6 rq:1208238 version:3.1.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-pure-protobuf/python-pure-protobuf.changes    
    2024-08-17 12:41:46.472834441 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pure-protobuf.new.19354/python-pure-protobuf.changes
     2024-10-16 23:49:11.143070302 +0200
@@ -1,0 +2,8 @@
+Tue Oct 15 21:47:22 UTC 2024 - Richard Rahl <[email protected]>
+
+- update to 3.1.3:
+  * drop support for python 3.8
+  * add support for python 3.13
+  * prepare for python 3.14
+
+-------------------------------------------------------------------

Old:
----
  pure_protobuf-3.1.2.tar.gz
  python-pure-protobuf-tests-3.1.2.tar.gz

New:
----
  pure_protobuf-3.1.3.tar.gz
  python-pure-protobuf-tests-3.1.3.tar.gz

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

Other differences:
------------------
++++++ python-pure-protobuf.spec ++++++
--- /var/tmp/diff_new_pack.I4xh0i/_old  2024-10-16 23:49:13.267158887 +0200
+++ /var/tmp/diff_new_pack.I4xh0i/_new  2024-10-16 23:49:13.287159721 +0200
@@ -18,11 +18,10 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pure-protobuf
-Version:        3.1.2
+Version:        3.1.3
 Release:        0
 Summary:        Protocol Buffers using Python type annotations
 License:        MIT
-Group:          Development/Libraries/Python
 URL:            https://github.com/eigenein/protobuf
 Source:         
https://files.pythonhosted.org/packages/source/p/pure-protobuf/pure_protobuf-%{version}.tar.gz
 Source1:        %{name}-tests-%{version}.tar.gz
@@ -43,7 +42,6 @@
 BuildRequires:  %{python_module pytest-benchmark}
 BuildRequires:  %{python_module pytest-cov}
 BuildArch:      noarch
-Requires:       python-get-annotations
 Requires:       python-typing-extensions
 %python_subpackages
 

++++++ pure_protobuf-3.1.2.tar.gz -> pure_protobuf-3.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/PKG-INFO 
new/pure_protobuf-3.1.3/PKG-INFO
--- old/pure_protobuf-3.1.2/PKG-INFO    1970-01-01 01:00:00.000000000 +0100
+++ new/pure_protobuf-3.1.3/PKG-INFO    1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +1,23 @@
 Metadata-Version: 2.1
 Name: pure-protobuf
-Version: 3.1.2
+Version: 3.1.3
 Summary: Protocol Buffers using Python type annotations
 Home-page: https://github.com/eigenein/protobuf
 License: MIT
 Keywords: protobuf,protocol-buffers
 Author: Pavel Perestoronin
 Author-email: [email protected]
-Requires-Python: >=3.8.0,<4.0.0
+Requires-Python: >=3.9.0,<4.0.0
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: OS Independent
 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: Programming Language :: Python :: 3 :: Only
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/_accumulators.py 
new/pure_protobuf-3.1.3/pure_protobuf/_accumulators.py
--- old/pure_protobuf-3.1.2/pure_protobuf/_accumulators.py      2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/_accumulators.py      2024-10-15 
22:46:56.160412000 +0200
@@ -1,4 +1,5 @@
-from typing import Generic, Iterable, List, Optional, Type
+from collections.abc import Iterable
+from typing import Generic, Optional
 
 from pure_protobuf.interfaces._repr import ReprWithInner
 from pure_protobuf.interfaces._vars import MessageT, RecordT
@@ -21,12 +22,12 @@
         return accumulator
 
 
-class AccumulateAppend(Accumulate[List[RecordT], RecordT]):
+class AccumulateAppend(Accumulate[list[RecordT], RecordT]):
     def __call__(
         self,
-        accumulator: Optional[List[RecordT]],
+        accumulator: Optional[list[RecordT]],
         other: Iterable[RecordT],
-    ) -> List[RecordT]:
+    ) -> list[RecordT]:
         """Append all items from the `other` into the accumulator."""
         if accumulator is None:
             accumulator = []
@@ -35,12 +36,12 @@
 
 
 class AccumulateMessages(Accumulate[MessageT, MessageT], ReprWithInner):
-    inner: Type[MessageT]
+    inner: type[MessageT]
 
     __slots__ = ("inner",)
 
     # noinspection PyProtocol
-    def __init__(self, inner: Type[MessageT]) -> None:
+    def __init__(self, inner: type[MessageT]) -> None:
         self.inner = inner
 
     def __call__(self, lhs: Optional[MessageT], rhs: Iterable[MessageT]) -> 
MessageT:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/_mergers.py 
new/pure_protobuf-3.1.3/pure_protobuf/_mergers.py
--- old/pure_protobuf-3.1.2/pure_protobuf/_mergers.py   2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/_mergers.py   2024-10-15 
22:46:56.160412000 +0200
@@ -1,4 +1,4 @@
-from typing import Generic, List, Optional
+from typing import Generic, Optional
 
 from pure_protobuf._accumulators import AccumulateMessages
 from pure_protobuf.interfaces._repr import ReprWithInner
@@ -18,12 +18,12 @@
         return rhs
 
 
-class MergeConcatenate(Merge[List[RecordT]], Generic[RecordT]):
+class MergeConcatenate(Merge[list[RecordT]], Generic[RecordT]):
     def __call__(
         self,
-        lhs: Optional[List[RecordT]],
-        rhs: Optional[List[RecordT]],
-    ) -> Optional[List[RecordT]]:
+        lhs: Optional[list[RecordT]],
+        rhs: Optional[list[RecordT]],
+    ) -> Optional[list[RecordT]]:
         if lhs is None:
             return rhs
         if rhs is None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/descriptors/_field.py 
new/pure_protobuf-3.1.3/pure_protobuf/descriptors/_field.py
--- old/pure_protobuf-3.1.2/pure_protobuf/descriptors/_field.py 2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/descriptors/_field.py 2024-10-15 
22:46:56.160412000 +0200
@@ -1,9 +1,8 @@
 from __future__ import annotations
 
 from dataclasses import dataclass
-from typing import TYPE_CHECKING, Any, Generic, Optional, Type, cast
+from typing import TYPE_CHECKING, Annotated, Any, Generic, Optional, cast
 
-from typing_extensions import Annotated
 from typing_extensions import get_args as get_type_args
 from typing_extensions import get_origin as get_type_origin
 
@@ -64,7 +63,7 @@
     @classmethod
     def from_attribute(
         cls,
-        message_type: Type[BaseMessage],
+        message_type: type[BaseMessage],
         attribute_hint: Any,
     ) -> Optional[_FieldDescriptor[Any, Any]]:
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/descriptors/record.py 
new/pure_protobuf-3.1.3/pure_protobuf/descriptors/record.py
--- old/pure_protobuf-3.1.2/pure_protobuf/descriptors/record.py 2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/descriptors/record.py 2024-10-15 
22:46:56.160412000 +0200
@@ -2,7 +2,8 @@
 
 from dataclasses import dataclass
 from enum import IntEnum
-from typing import TYPE_CHECKING, Any, ByteString, ClassVar, Dict, Generic, 
Type
+from types import GenericAlias
+from typing import TYPE_CHECKING, Any, ClassVar, Generic
 from urllib.parse import ParseResult
 
 from typing_extensions import Self
@@ -69,13 +70,13 @@
     merge: Merge[RecordT] = MergeLastOneWins()
     """Merge two values of the same field from different messages. Only called 
in a message merger."""
 
-    __PREDEFINED__: ClassVar[Dict[Any, RecordDescriptor]]
+    __PREDEFINED__: ClassVar[dict[Any, RecordDescriptor]]
     """Pre-defined descriptors for primitive types."""
 
     @classmethod
     def _from_inner_type_hint(
         cls,
-        message_type: Type[BaseMessage],
+        message_type: type[BaseMessage],
         inner_hint: Any,
     ) -> RecordDescriptor[Any]:
         """
@@ -115,7 +116,10 @@
                     write=WriteEnum[inner_hint](),
                     read=ReadMaybePacked[inner_hint](ReadEnum(inner_hint), 
WireType.VARINT),
                 )
-            if issubclass(inner_hint, BaseMessage):
+            if (
+                not isinstance(inner_hint, GenericAlias)  # TODO: remove with 
Python 3.9 end-of-life.
+                and issubclass(inner_hint, BaseMessage)
+            ):
                 return inner_hint._init_embedded_descriptor()
 
         raise UnsupportedAnnotationError(f"type annotation `{inner_hint!r}` is 
not supported")
@@ -171,7 +175,6 @@
     bool: BOOL_DESCRIPTOR,
     bytes: BYTES_DESCRIPTOR,
     bytearray: BYTES_DESCRIPTOR,
-    ByteString: BYTES_DESCRIPTOR,
     fixed32: UNSIGNED_INT32_DESCRIPTOR,
     fixed64: UNSIGNED_INT64_DESCRIPTOR,
     float: FLOAT_DESCRIPTOR,
@@ -201,3 +204,10 @@
         read=ReadMaybePacked[int](ReadCallback(ReadZigZagVarint()), 
WireType.VARINT),
     ),
 }
+
+try:
+    from collections.abc import ByteString
+except ImportError:
+    pass
+else:
+    RecordDescriptor.__PREDEFINED__[ByteString] = BYTES_DESCRIPTOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/helpers/_dataclasses.py 
new/pure_protobuf-3.1.3/pure_protobuf/helpers/_dataclasses.py
--- old/pure_protobuf-3.1.2/pure_protobuf/helpers/_dataclasses.py       
2024-08-16 16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/helpers/_dataclasses.py       
2024-10-15 22:46:56.160412000 +0200
@@ -1,4 +1,4 @@
-"""Backwards compatibility for Python 3.8 and 3.9."""
+"""Backwards compatibility with Python 3.9."""
 
 from sys import version_info
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/helpers/_typing.py 
new/pure_protobuf-3.1.3/pure_protobuf/helpers/_typing.py
--- old/pure_protobuf-3.1.2/pure_protobuf/helpers/_typing.py    2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/helpers/_typing.py    2024-10-15 
22:46:56.160412000 +0200
@@ -1,5 +1,5 @@
 from collections.abc import Iterable
-from typing import Any, List, Tuple, Union
+from typing import Any, Union
 
 from typing_extensions import TypeGuard, get_args, get_origin
 
@@ -22,7 +22,7 @@
 DEFAULT = Sentinel()
 
 
-def extract_repeated(hint: Any) -> Tuple[Any, TypeGuard[List]]:
+def extract_repeated(hint: Any) -> tuple[Any, TypeGuard[list]]:
     """Extract a possible repeated flag."""
     origin = get_origin(hint)
     if isinstance(origin, type) and (origin is Iterable or issubclass(origin, 
list)):
@@ -30,7 +30,7 @@
     return hint, False
 
 
-def extract_optional(hint: Any) -> Tuple[Any, bool]:
+def extract_optional(hint: Any) -> tuple[Any, bool]:
     """Extract a possible optional flag."""
     if get_origin(hint) is Union:
         cleaned_args = tuple(arg for arg in get_args(hint) if arg is not 
NoneType)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/helpers/datetime.py 
new/pure_protobuf-3.1.3/pure_protobuf/helpers/datetime.py
--- old/pure_protobuf-3.1.2/pure_protobuf/helpers/datetime.py   2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/helpers/datetime.py   2024-10-15 
22:46:56.160412000 +0200
@@ -1,8 +1,7 @@
 from math import modf
-from typing import Tuple
 
 
-def split_seconds(seconds: float) -> Tuple[int, int]:
+def split_seconds(seconds: float) -> tuple[int, int]:
     """Split seconds into whole seconds and nanoseconds."""
     fraction, whole = modf(seconds)
     return int(whole), int(fraction * 1_000_000_000.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/helpers/itertools.py 
new/pure_protobuf-3.1.3/pure_protobuf/helpers/itertools.py
--- old/pure_protobuf-3.1.2/pure_protobuf/helpers/itertools.py  2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/helpers/itertools.py  2024-10-15 
22:46:56.160412000 +0200
@@ -1,4 +1,5 @@
-from typing import Callable, Generic, Iterator, TypeVar
+from collections.abc import Iterator
+from typing import Callable, Generic, TypeVar
 
 from typing_extensions import ParamSpec
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pure_protobuf-3.1.2/pure_protobuf/interfaces/accumulate.py 
new/pure_protobuf-3.1.3/pure_protobuf/interfaces/accumulate.py
--- old/pure_protobuf-3.1.2/pure_protobuf/interfaces/accumulate.py      
2024-08-16 16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/interfaces/accumulate.py      
2024-10-15 22:46:56.160412000 +0200
@@ -1,5 +1,6 @@
 from abc import abstractmethod
-from typing import Iterable, Optional, Protocol
+from collections.abc import Iterable
+from typing import Optional, Protocol
 
 from pure_protobuf.interfaces._repr import Repr
 from pure_protobuf.interfaces._vars import FieldT, RecordT_contra
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/interfaces/read.py 
new/pure_protobuf-3.1.3/pure_protobuf/interfaces/read.py
--- old/pure_protobuf-3.1.2/pure_protobuf/interfaces/read.py    2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/interfaces/read.py    2024-10-15 
22:46:56.160412000 +0200
@@ -1,5 +1,6 @@
 from abc import abstractmethod
-from typing import IO, Iterator, Protocol
+from collections.abc import Iterator
+from typing import IO, Protocol
 
 from pure_protobuf.interfaces._repr import Repr
 from pure_protobuf.interfaces._vars import RecordT_co
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/io/struct_.py 
new/pure_protobuf-3.1.3/pure_protobuf/io/struct_.py
--- old/pure_protobuf-3.1.2/pure_protobuf/io/struct_.py 2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/io/struct_.py 2024-10-15 
22:46:56.161412000 +0200
@@ -1,5 +1,6 @@
+from collections.abc import Iterator
 from struct import Struct
-from typing import IO, Generic, Iterator
+from typing import IO, Generic
 
 from pure_protobuf.helpers.io import read_checked
 from pure_protobuf.interfaces._repr import ReprWithInner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/io/url.py 
new/pure_protobuf-3.1.3/pure_protobuf/io/url.py
--- old/pure_protobuf-3.1.2/pure_protobuf/io/url.py     2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/io/url.py     2024-10-15 
22:46:56.161412000 +0200
@@ -1,6 +1,7 @@
 """Reading and writing parsed URLs."""
 
-from typing import IO, Iterator
+from collections.abc import Iterator
+from typing import IO
 from urllib.parse import ParseResult, urlparse, urlunparse
 
 from pure_protobuf.interfaces.read import Read
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/io/varint.py 
new/pure_protobuf-3.1.3/pure_protobuf/io/varint.py
--- old/pure_protobuf-3.1.2/pure_protobuf/io/varint.py  2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/io/varint.py  2024-10-15 
22:46:56.161412000 +0200
@@ -6,10 +6,11 @@
 
 """
 
+from collections.abc import Iterator
 from enum import IntEnum
 from itertools import count
 from sys import byteorder
-from typing import IO, Iterator, Type, TypeVar
+from typing import IO, TypeVar
 
 from pure_protobuf.exceptions import IncorrectValueError
 from pure_protobuf.helpers.io import read_byte_checked
@@ -127,7 +128,7 @@
     __slots__ = ("enum_type",)
 
     # noinspection PyProtocol
-    def __init__(self, enum_type: Type[EnumT]) -> None:
+    def __init__(self, enum_type: type[EnumT]) -> None:
         self.enum_type = enum_type
 
     def __call__(self, io: IO[bytes]) -> Iterator[EnumT]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/io/wrappers.py 
new/pure_protobuf-3.1.3/pure_protobuf/io/wrappers.py
--- old/pure_protobuf-3.1.2/pure_protobuf/io/wrappers.py        2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/io/wrappers.py        2024-10-15 
22:46:56.161412000 +0200
@@ -1,5 +1,6 @@
+from collections.abc import Iterable, Iterator
 from io import BytesIO
-from typing import IO, Generic, Iterable, Iterator, Optional, cast
+from typing import IO, Generic, Optional, cast
 
 from pure_protobuf.exceptions import UnexpectedWireTypeError
 from pure_protobuf.interfaces._repr import ReprWithInner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/message.py 
new/pure_protobuf-3.1.3/pure_protobuf/message.py
--- old/pure_protobuf-3.1.2/pure_protobuf/message.py    2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/message.py    2024-10-15 
22:46:56.161412000 +0200
@@ -1,8 +1,9 @@
 from __future__ import annotations
 
 from abc import ABC
+from collections.abc import Mapping
 from io import BytesIO
-from typing import IO, Any, ClassVar, Dict, Tuple
+from typing import IO, Any, ClassVar
 
 from typing_extensions import Self
 
@@ -36,10 +37,10 @@
 
     __slots__ = ()
 
-    __PROTOBUF_FIELDS_BY_NUMBER__: ClassVar[Dict[int, Tuple[str, 
_FieldDescriptor]]]
-    __PROTOBUF_FIELDS_BY_NAME__: ClassVar[Dict[str, _FieldDescriptor]]
+    __PROTOBUF_FIELDS_BY_NUMBER__: ClassVar[dict[int, tuple[str, 
_FieldDescriptor]]]
+    __PROTOBUF_FIELDS_BY_NAME__: ClassVar[dict[str, _FieldDescriptor]]
 
-    __PROTOBUF_SKIP__: ClassVar[Dict[WireType, Skip]] = {
+    __PROTOBUF_SKIP__: ClassVar[Mapping[WireType, Skip]] = {
         WireType.VARINT: skip_varint,
         WireType.I64: skip_fixed_64,
         WireType.LEN: skip_bytes,
@@ -53,7 +54,7 @@
         cls.__PROTOBUF_FIELDS_BY_NUMBER__ = {}
         cls.__PROTOBUF_FIELDS_BY_NAME__ = {}
 
-        type_hints: Dict[str, Any] = get_annotations(cls, eval_str=True)
+        type_hints: dict[str, Any] = get_annotations(cls, eval_str=True)
         for name, hint in type_hints.items():
             descriptor = _FieldDescriptor.from_attribute(cls, hint)
             if descriptor is not None:
@@ -67,7 +68,7 @@
     def read_from(cls, io: IO[bytes]) -> Self:
         """Read a message from the file."""
 
-        values: Dict[str, Any] = {}
+        values: dict[str, Any] = {}
         while True:
             try:
                 tag = Tag.read_from(io)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/one_of.py 
new/pure_protobuf-3.1.3/pure_protobuf/one_of.py
--- old/pure_protobuf-3.1.2/pure_protobuf/one_of.py     2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/one_of.py     2024-10-15 
22:46:56.161412000 +0200
@@ -1,6 +1,7 @@
 from __future__ import annotations
 
-from typing import Any, Callable, Generic, List, MutableMapping, Optional, 
Tuple, Type, TypeVar
+from collections.abc import MutableMapping
+from typing import Any, Callable, Generic, Optional, TypeVar
 
 from pure_protobuf.message import BaseMessage
 
@@ -22,7 +23,7 @@
         A [`Field`][pure_protobuf.annotations.Field] then should be assigned 
to the group
         via the [`one_of`][pure_protobuf.annotations.Field.one_of] parameter.
         """
-        self._fields: List[Tuple[int, str]] = []
+        self._fields: list[tuple[int, str]] = []
 
     def _add_field(self, number: int, name: str) -> None:
         self._fields.append((number, name))
@@ -41,7 +42,7 @@
             if other_number != keep_number:
                 super(BaseMessage, message).__setattr__(other_name, None)
 
-    def __get__(self, instance: Any, type_: Type[Any]) -> Optional[OneOfT]:  # 
noqa: D105
+    def __get__(self, instance: Any, type_: type[Any]) -> Optional[OneOfT]:  # 
noqa: D105
         if not isinstance(instance, BaseMessage):
             # Allows passing the descriptor by reference, and we need to move 
the descriptor from
             # the corresponding annotation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pure_protobuf/well_known.py 
new/pure_protobuf-3.1.3/pure_protobuf/well_known.py
--- old/pure_protobuf-3.1.2/pure_protobuf/well_known.py 2024-08-16 
16:45:32.681418200 +0200
+++ new/pure_protobuf-3.1.3/pure_protobuf/well_known.py 2024-10-15 
22:46:56.161412000 +0200
@@ -2,14 +2,13 @@
 
 from __future__ import annotations
 
+from collections.abc import Mapping
 from dataclasses import dataclass
 from datetime import datetime, timedelta, timezone
 from io import BytesIO
-from typing import Any, Mapping, Optional, Type, cast
+from typing import Annotated, Any, Optional, cast
 from urllib.parse import ParseResult
 
-from typing_extensions import Annotated
-
 from pure_protobuf.annotations import Field
 from pure_protobuf.helpers._dataclasses import KW_ONLY, SLOTS
 from pure_protobuf.helpers.datetime import split_seconds, unsplit_seconds
@@ -112,5 +111,5 @@
             locals=locals_,
             globals=globals_,
         )
-        class_ = cast(Type[BaseMessage], getattr(module, self.type_url.path))
+        class_ = cast(type[BaseMessage], getattr(module, self.type_url.path))
         return class_.read_from(BytesIO(self.value))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pure_protobuf-3.1.2/pyproject.toml 
new/pure_protobuf-3.1.3/pyproject.toml
--- old/pure_protobuf-3.1.2/pyproject.toml      2024-08-16 16:45:40.205445000 
+0200
+++ new/pure_protobuf-3.1.3/pyproject.toml      2024-10-15 22:47:06.058315300 
+0200
@@ -13,7 +13,7 @@
 name = "pure-protobuf"
 readme = "README.md"
 repository = "https://github.com/eigenein/protobuf";
-version = "3.1.2"
+version = "3.1.3"
 classifiers = [
     "Development Status :: 5 - Production/Stable",
     "Intended Audience :: Developers",
@@ -21,11 +21,11 @@
     "Topic :: Software Development :: Libraries",
     "Topic :: Software Development :: Libraries :: Python Modules",
     "Programming Language :: Python :: 3 :: Only",
-    "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",
     "License :: OSI Approved :: MIT License",
     "Typing :: Typed",
 ]
@@ -36,26 +36,26 @@
 
 [tool.poetry.dependencies]
 get-annotations = { version = "^0.1.2", python = "<3.10" }
-python = "^3.8.0"
+python = "^3.9.0"
 typing-extensions = "^4.4.0"
 
 [tool.poetry.group.dev]
 optional = true
 
 [tool.poetry.group.dev.dependencies]
-black = "24.8.0"
+black = "24.10.0"
 cairosvg = "2.7.1"
-mkdocs-autorefs = "1.0.1"
-mkdocs-git-revision-date-localized-plugin = "1.2.6"
-mkdocs-material = "9.5.31"
-mkdocstrings = { version = "0.25.2", extras = ["python"] }
-mypy = "1.11.1"
+mkdocs-autorefs = "1.2.0"
+mkdocs-git-revision-date-localized-plugin = "1.2.9"
+mkdocs-material = "9.5.41"
+mkdocstrings = { version = "0.26.2", extras = ["python"] }
+mypy = "1.12.0"
 pillow = "10.4.0"
-pydantic = "2.8.2"
-pytest = "8.3.2"
+pydantic = "2.9.2"
+pytest = "8.3.3"
 pytest-benchmark = "4.0.0"
 pytest-cov = "5.0.0"
-ruff = "0.6.0"
+ruff = "0.6.9"
 
 [tool.poetry.urls]
 "Changelog" = "https://github.com/eigenein/protobuf/blob/master/CHANGELOG.md";
@@ -95,11 +95,11 @@
 
 [tool.black]
 line-length = 120
-target-version = ["py38", "py39", "py310", "py311", "py312"]
+target-version = ["py39", "py310", "py311", "py312", "py313", "py314"]
 
 [tool.ruff]
 line-length = 120
-target-version = "py38"
+target-version = "py39"
 
 [tool.ruff.lint]
 select = [
@@ -148,9 +148,7 @@
     "PT013",
     "RET505",
     "TRY003",
-    "UP006",  # 3.9
     "UP007",  # 3.10
-    "UP033",  # 3.9
 ]
 
 [tool.ruff.lint.per-file-ignores]

++++++ python-pure-protobuf-tests-3.1.2.tar.gz -> 
python-pure-protobuf-tests-3.1.3.tar.gz ++++++

Reply via email to