Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-async-lru for 
openSUSE:Factory checked in at 2023-07-18 21:54:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-async-lru (Old)
 and      /work/SRC/openSUSE:Factory/.python-async-lru.new.3193 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-async-lru"

Tue Jul 18 21:54:05 2023 rev:2 rq:1098927 version:2.0.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-async-lru/python-async-lru.changes        
2023-06-12 15:28:10.703665015 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-async-lru.new.3193/python-async-lru.changes  
    2023-07-18 21:54:13.158325734 +0200
@@ -1,0 +2,8 @@
+Sun Jul 16 10:56:19 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.0.3:
+  * Fixed a ``KeyError`` that could occur when using ``ttl`` with
+    ``maxsize``.
+  * Dropped ``typing-extensions`` dependency in Python 3.11+.
+
+-------------------------------------------------------------------

Old:
----
  async-lru-2.0.2.tar.gz

New:
----
  async-lru-2.0.3.tar.gz

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

Other differences:
------------------
++++++ python-async-lru.spec ++++++
--- /var/tmp/diff_new_pack.XbNzpv/_old  2023-07-18 21:54:13.774329133 +0200
+++ /var/tmp/diff_new_pack.XbNzpv/_new  2023-07-18 21:54:13.774329133 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-async-lru
-Version:        2.0.2
+Version:        2.0.3
 Release:        0
 Summary:        Simple LRU cache for asyncio
 License:        MIT

++++++ async-lru-2.0.2.tar.gz -> async-lru-2.0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/Makefile new/async-lru-2.0.3/Makefile
--- old/async-lru-2.0.2/Makefile        2023-02-20 17:42:29.000000000 +0100
+++ new/async-lru-2.0.3/Makefile        2023-07-07 20:59:59.000000000 +0200
@@ -1,26 +1,18 @@
-SOURCES = setup.py async_lru.py tests
+# Some simple testing tasks (sorry, UNIX only).
 
-test: lint test-only
-
-test-only:
-       pytest tests
-
-
-lint: black flake8 mypy
+.PHONY: init setup
+init setup:
+       pip install -r requirements-dev.txt
+       pre-commit install
 
+.PHONY: fmt
+fmt:
+       python -m pre_commit run --all-files --show-diff-on-failure
 
-mypy:
+.PHONY: lint
+lint: fmt
        mypy
 
-
-black:
-       isort -c .
-       black --check .
-
-flake8:
-       flake8 async_lru tests setup.py
-
-
-fmt:
-       isort .
-       black .
+.PHONY: test
+test:
+       pytest -s ./tests/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/PKG-INFO new/async-lru-2.0.3/PKG-INFO
--- old/async-lru-2.0.2/PKG-INFO        2023-02-20 17:42:49.911354300 +0100
+++ new/async-lru-2.0.3/PKG-INFO        2023-07-07 21:00:21.228657700 +0200
@@ -1,11 +1,13 @@
 Metadata-Version: 2.1
 Name: async-lru
-Version: 2.0.2
+Version: 2.0.3
 Summary: Simple LRU cache for asyncio
 Home-page: https://github.com/aio-libs/async-lru
 Maintainer: aiohttp team <t...@aiohttp.org>
 Maintainer-email: t...@aiohttp.org
 License: MIT License
+Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
+Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
 Project-URL: CI: GitHub Actions, https://github.com/aio-libs/async-lru/actions
 Project-URL: GitHub: repo, https://github.com/aio-libs/async-lru
 Keywords: asyncio,lru,lru_cache
@@ -38,6 +40,14 @@
 .. image:: 
https://codecov.io/gh/aio-libs/async_lru/branch/master/graph/badge.svg
     :target: https://codecov.io/gh/aio-libs/async_lru
 
+.. image:: 
https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs:matrix.org
+   :alt: Matrix Room — #aio-libs:matrix.org
+
+.. image:: 
https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs-space:matrix.org
+   :alt: Matrix Space — #aio-libs-space:matrix.org
+
 Installation
 ------------
 
@@ -48,7 +58,7 @@
 Usage
 -----
 
-This package is 100% port of Python built-in function `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ for 
`asyncio <https://docs.python.org/3/library/asyncio.html>`_
+This package is a port of Python's built-in `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ 
function for `asyncio <https://docs.python.org/3/library/asyncio.html>`_. To 
better handle async behaviour, it also ensures multiple concurrent calls will 
only result in 1 call to the wrapped function, with all ``await``\s receiving 
the result of that call when it completes.
 
 .. code-block:: python
 
@@ -101,7 +111,7 @@
 
     @alru_cache(ttl=5)
     async def func(arg1, arg2):
-        return arg * 2
+        return arg1 + arg2
 
     func.cache_invalidate(1, arg2=2)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/README.rst 
new/async-lru-2.0.3/README.rst
--- old/async-lru-2.0.2/README.rst      2023-02-20 17:42:29.000000000 +0100
+++ new/async-lru-2.0.3/README.rst      2023-07-07 20:59:59.000000000 +0200
@@ -12,6 +12,14 @@
 .. image:: 
https://codecov.io/gh/aio-libs/async_lru/branch/master/graph/badge.svg
     :target: https://codecov.io/gh/aio-libs/async_lru
 
+.. image:: 
https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs:matrix.org
+   :alt: Matrix Room — #aio-libs:matrix.org
+
+.. image:: 
https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs-space:matrix.org
+   :alt: Matrix Space — #aio-libs-space:matrix.org
+
 Installation
 ------------
 
@@ -22,7 +30,7 @@
 Usage
 -----
 
-This package is 100% port of Python built-in function `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ for 
`asyncio <https://docs.python.org/3/library/asyncio.html>`_
+This package is a port of Python's built-in `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ 
function for `asyncio <https://docs.python.org/3/library/asyncio.html>`_. To 
better handle async behaviour, it also ensures multiple concurrent calls will 
only result in 1 call to the wrapped function, with all ``await``\s receiving 
the result of that call when it completes.
 
 .. code-block:: python
 
@@ -75,7 +83,7 @@
 
     @alru_cache(ttl=5)
     async def func(arg1, arg2):
-        return arg * 2
+        return arg1 + arg2
 
     func.cache_invalidate(1, arg2=2)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/async_lru/__init__.py 
new/async-lru-2.0.3/async_lru/__init__.py
--- old/async-lru-2.0.2/async_lru/__init__.py   2023-02-20 17:42:29.000000000 
+0100
+++ new/async-lru-2.0.3/async_lru/__init__.py   2023-07-07 20:59:59.000000000 
+0200
@@ -1,5 +1,6 @@
 import asyncio
 import dataclasses
+import sys
 from asyncio.coroutines import _is_coroutine  # type: ignore[attr-defined]
 from functools import _CacheInfo, _make_key, partial, partialmethod
 from typing import (
@@ -20,10 +21,14 @@
     overload,
 )
 
-from typing_extensions import Self
 
+if sys.version_info >= (3, 11):
+    from typing import Self
+else:
+    from typing_extensions import Self
 
-__version__ = "2.0.2"
+
+__version__ = "2.0.3"
 
 __all__ = ("alru_cache",)
 
@@ -135,7 +140,7 @@
         return _CacheInfo(
             self.__hits,
             self.__misses,
-            self.__maxsize,  # type: ignore[arg-type]
+            self.__maxsize,
             len(self.__cache),
         )
 
@@ -159,9 +164,9 @@
     ) -> None:
         self.__tasks.remove(task)
 
-        if self.__ttl is not None:
+        cache_item = self.__cache.get(key)
+        if self.__ttl is not None and cache_item is not None:
             loop = asyncio.get_running_loop()
-            cache_item = self.__cache[key]
             cache_item.later_call = loop.call_later(
                 self.__ttl, self.__cache.pop, key, None
             )
@@ -179,7 +184,7 @@
 
     async def __call__(self, /, *fn_args: Any, **fn_kwargs: Any) -> _R:
         if self.__closed:
-            raise RuntimeError("alru_cache is closed for {}".format(self))
+            raise RuntimeError(f"alru_cache is closed for {self}")
 
         loop = asyncio.get_running_loop()
 
@@ -297,7 +302,7 @@
             origin = origin.func
 
         if not asyncio.iscoroutinefunction(origin):
-            raise RuntimeError("Coroutine function is required, got 
{!r}".format(fn))
+            raise RuntimeError(f"Coroutine function is required, got {fn!r}")
 
         # functools.partialmethod support
         if hasattr(fn, "_make_unbound_method"):
@@ -340,4 +345,4 @@
         if callable(fn) or hasattr(fn, "_make_unbound_method"):
             return _make_wrapper(128, False, None)(fn)
 
-        raise NotImplementedError("{!r} decorating is not 
supported".format(fn))
+        raise NotImplementedError(f"{fn!r} decorating is not supported")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/async_lru/py.typed 
new/async-lru-2.0.3/async_lru/py.typed
--- old/async-lru-2.0.2/async_lru/py.typed      2023-02-20 17:42:29.000000000 
+0100
+++ new/async-lru-2.0.3/async_lru/py.typed      2023-07-07 20:59:59.000000000 
+0200
@@ -1 +0,0 @@
-# placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/async_lru.egg-info/PKG-INFO 
new/async-lru-2.0.3/async_lru.egg-info/PKG-INFO
--- old/async-lru-2.0.2/async_lru.egg-info/PKG-INFO     2023-02-20 
17:42:49.000000000 +0100
+++ new/async-lru-2.0.3/async_lru.egg-info/PKG-INFO     2023-07-07 
21:00:21.000000000 +0200
@@ -1,11 +1,13 @@
 Metadata-Version: 2.1
 Name: async-lru
-Version: 2.0.2
+Version: 2.0.3
 Summary: Simple LRU cache for asyncio
 Home-page: https://github.com/aio-libs/async-lru
 Maintainer: aiohttp team <t...@aiohttp.org>
 Maintainer-email: t...@aiohttp.org
 License: MIT License
+Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
+Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
 Project-URL: CI: GitHub Actions, https://github.com/aio-libs/async-lru/actions
 Project-URL: GitHub: repo, https://github.com/aio-libs/async-lru
 Keywords: asyncio,lru,lru_cache
@@ -38,6 +40,14 @@
 .. image:: 
https://codecov.io/gh/aio-libs/async_lru/branch/master/graph/badge.svg
     :target: https://codecov.io/gh/aio-libs/async_lru
 
+.. image:: 
https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs:matrix.org
+   :alt: Matrix Room — #aio-libs:matrix.org
+
+.. image:: 
https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
+   :target: https://matrix.to/#/%23aio-libs-space:matrix.org
+   :alt: Matrix Space — #aio-libs-space:matrix.org
+
 Installation
 ------------
 
@@ -48,7 +58,7 @@
 Usage
 -----
 
-This package is 100% port of Python built-in function `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ for 
`asyncio <https://docs.python.org/3/library/asyncio.html>`_
+This package is a port of Python's built-in `functools.lru_cache 
<https://docs.python.org/3/library/functools.html#functools.lru_cache>`_ 
function for `asyncio <https://docs.python.org/3/library/asyncio.html>`_. To 
better handle async behaviour, it also ensures multiple concurrent calls will 
only result in 1 call to the wrapped function, with all ``await``\s receiving 
the result of that call when it completes.
 
 .. code-block:: python
 
@@ -101,7 +111,7 @@
 
     @alru_cache(ttl=5)
     async def func(arg1, arg2):
-        return arg * 2
+        return arg1 + arg2
 
     func.cache_invalidate(1, arg2=2)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/async_lru.egg-info/requires.txt 
new/async-lru-2.0.3/async_lru.egg-info/requires.txt
--- old/async-lru-2.0.2/async_lru.egg-info/requires.txt 2023-02-20 
17:42:49.000000000 +0100
+++ new/async-lru-2.0.3/async_lru.egg-info/requires.txt 2023-07-07 
21:00:21.000000000 +0200
@@ -1 +1,3 @@
+
+[:python_version < "3.11"]
 typing_extensions>=4.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/setup.cfg 
new/async-lru-2.0.3/setup.cfg
--- old/async-lru-2.0.2/setup.cfg       2023-02-20 17:42:49.911354300 +0100
+++ new/async-lru-2.0.3/setup.cfg       2023-07-07 21:00:21.232658100 +0200
@@ -3,6 +3,8 @@
 version = attr: async_lru.__version__
 url = https://github.com/aio-libs/async-lru
 project_urls = 
+       Chat: Matrix = https://matrix.to/#/#aio-libs:matrix.org
+       Chat: Matrix Space = https://matrix.to/#/#aio-libs-space:matrix.org
        CI: GitHub Actions = https://github.com/aio-libs/async-lru/actions
        GitHub: repo = https://github.com/aio-libs/async-lru
 description = Simple LRU cache for asyncio
@@ -38,7 +40,7 @@
 python_requires = >=3.8
 packages = find:
 install_requires = 
-       typing_extensions>=4.0.0
+       typing_extensions>=4.0.0; python_version<"3.11"
 
 [options.package_data]
 * = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/async-lru-2.0.2/tests/test_ttl.py 
new/async-lru-2.0.3/tests/test_ttl.py
--- old/async-lru-2.0.2/tests/test_ttl.py       2023-02-20 17:42:29.000000000 
+0100
+++ new/async-lru-2.0.3/tests/test_ttl.py       2023-07-07 20:59:59.000000000 
+0200
@@ -58,3 +58,12 @@
     # cache is not cleared after ttl expires because invalidate also should 
clear
     # the invalidation by timeout
     check_lru(coro, hits=0, misses=2, cache=1, tasks=0, maxsize=None)
+
+
+async def test_ttl_concurrent() -> None:
+    @alru_cache(maxsize=1, ttl=1)
+    async def coro(val: int) -> int:
+        return val
+
+    results = await asyncio.gather(*(coro(i) for i in range(2)))
+    assert results == list(range(2))

Reply via email to