Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-dogpile.cache for openSUSE:Factory checked in at 2023-05-30 22:02:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-dogpile.cache (Old) and /work/SRC/openSUSE:Factory/.python-dogpile.cache.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-dogpile.cache" Tue May 30 22:02:18 2023 rev:37 rq:1089613 version:1.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-dogpile.cache/python-dogpile.cache.changes 2023-05-10 16:19:02.551158568 +0200 +++ /work/SRC/openSUSE:Factory/.python-dogpile.cache.new.1533/python-dogpile.cache.changes 2023-05-30 22:02:32.911047816 +0200 @@ -1,0 +2,7 @@ +Mon May 29 16:38:30 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 1.2.1: + * Added py.typed file to root so that typing tools such as Mypy + recognize dogpile as typed. Pull request courtesy Daverball. + +------------------------------------------------------------------- Old: ---- dogpile.cache-1.2.0.tar.gz New: ---- dogpile.cache-1.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-dogpile.cache.spec ++++++ --- /var/tmp/diff_new_pack.NGCPZF/_old 2023-05-30 22:02:33.283050008 +0200 +++ /var/tmp/diff_new_pack.NGCPZF/_new 2023-05-30 22:02:33.287050032 +0200 @@ -19,10 +19,10 @@ %{?!python_module:%define python_module() python3-%{**}} %global pythons python3 Name: python-dogpile.cache -Version: 1.2.0 +Version: 1.2.1 Release: 0 %define modname dogpile.cache -%define modver 1_2_0 +%define modver 1_2_1 Summary: A caching front-end based on the Dogpile lock License: BSD-3-Clause URL: https://github.com/sqlalchemy/dogpile.cache ++++++ dogpile.cache-1.2.0.tar.gz -> dogpile.cache-1.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dogpile.cache-rel_1_2_0/docs/build/changelog.rst new/dogpile.cache-rel_1_2_1/docs/build/changelog.rst --- old/dogpile.cache-rel_1_2_0/docs/build/changelog.rst 2023-04-26 17:47:49.000000000 +0200 +++ new/dogpile.cache-rel_1_2_1/docs/build/changelog.rst 2023-05-20 17:56:52.000000000 +0200 @@ -3,6 +3,17 @@ ========= .. changelog:: + :version: 1.2.1 + :released: Sat May 20 2023 + + .. change:: + :tags: bug, typing + :tickets: 238 + + Added py.typed file to root so that typing tools such as Mypy recognize + dogpile as typed. Pull request courtesy Daverball. + +.. changelog:: :version: 1.2.0 :released: Wed Apr 26 2023 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dogpile.cache-rel_1_2_0/docs/build/conf.py new/dogpile.cache-rel_1_2_1/docs/build/conf.py --- old/dogpile.cache-rel_1_2_0/docs/build/conf.py 2023-04-26 17:47:49.000000000 +0200 +++ new/dogpile.cache-rel_1_2_1/docs/build/conf.py 2023-05-20 17:56:52.000000000 +0200 @@ -74,7 +74,7 @@ # The short X.Y version. version = dogpile.__version__ # The full version, including alpha/beta/rc tags. -release = "1.2.0" +release = "1.2.1" # The language for content autogenerated by Sphinx. Refer to documentation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dogpile.cache-rel_1_2_0/dogpile/__init__.py new/dogpile.cache-rel_1_2_1/dogpile/__init__.py --- old/dogpile.cache-rel_1_2_0/dogpile/__init__.py 2023-04-26 17:47:49.000000000 +0200 +++ new/dogpile.cache-rel_1_2_1/dogpile/__init__.py 2023-05-20 17:56:52.000000000 +0200 @@ -1,4 +1,4 @@ -__version__ = "1.2.0" +__version__ = "1.2.1" from .lock import Lock # noqa from .lock import NeedRegenerationException # noqa diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dogpile.cache-rel_1_2_0/setup.cfg new/dogpile.cache-rel_1_2_1/setup.cfg --- old/dogpile.cache-rel_1_2_0/setup.cfg 2023-04-26 17:47:49.000000000 +0200 +++ new/dogpile.cache-rel_1_2_1/setup.cfg 2023-05-20 17:56:52.000000000 +0200 @@ -27,6 +27,7 @@ zip_safe = False packages = find: python_requires = >=3.6 +include_package_data = True package_dir = =. @@ -38,6 +39,9 @@ [options.exclude_package_data] '' = tests* +[options.package_data] +* = py.typed + [options.entry_points] mako.cache = dogpile.cache = dogpile.cache.plugins.mako_cache:MakoPlugin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dogpile.cache-rel_1_2_0/tests/cache/_fixtures.py new/dogpile.cache-rel_1_2_1/tests/cache/_fixtures.py --- old/dogpile.cache-rel_1_2_0/tests/cache/_fixtures.py 2023-04-26 17:47:49.000000000 +0200 +++ new/dogpile.cache-rel_1_2_1/tests/cache/_fixtures.py 2023-05-20 17:56:52.000000000 +0200 @@ -21,6 +21,10 @@ from . import eq_ +def gen_some_key(): + return f"some_key_{random.randint(1, 100000)}" + + class _GenericBackendFixture(object): @classmethod def setup_class(cls): @@ -33,12 +37,13 @@ cls._check_backend_available(backend) def tearDown(self): + some_key = gen_some_key() if self._region_inst: for key in self._keys: self._region_inst.delete(key) self._keys.clear() elif self._backend_inst: - self._backend_inst.delete("some_key") + self._backend_inst.delete(some_key) @classmethod def _check_backend_available(cls, backend): @@ -94,22 +99,26 @@ class _GenericBackendTest(_GenericBackendFixture, TestCase): def test_backend_get_nothing(self): backend = self._backend() - eq_(backend.get_serialized("some_key"), NO_VALUE) + some_key = gen_some_key() + eq_(backend.get_serialized(some_key), NO_VALUE) def test_backend_delete_nothing(self): backend = self._backend() - backend.delete("some_key") + some_key = gen_some_key() + backend.delete(some_key) def test_backend_set_get_value(self): backend = self._backend() - backend.set_serialized("some_key", b"some value") - eq_(backend.get_serialized("some_key"), b"some value") + some_key = gen_some_key() + backend.set_serialized(some_key, b"some value") + eq_(backend.get_serialized(some_key), b"some value") def test_backend_delete(self): backend = self._backend() - backend.set_serialized("some_key", b"some value") - backend.delete("some_key") - eq_(backend.get_serialized("some_key"), NO_VALUE) + some_key = gen_some_key() + backend.set_serialized(some_key, b"some value") + backend.delete(some_key) + eq_(backend.get_serialized(some_key), NO_VALUE) def test_region_is_key_locked(self): reg = self._region() @@ -128,8 +137,9 @@ def test_region_set_get_value(self): reg = self._region() - reg.set("some key", "some value") - eq_(reg.get("some key"), "some value") + some_key = gen_some_key() + reg.set(some_key, "some value") + eq_(reg.get(some_key), "some value") def test_region_set_multiple_values(self): reg = self._region() @@ -202,8 +212,9 @@ def test_region_set_get_nothing(self): reg = self._region() - reg.delete_multi(["some key"]) - eq_(reg.get("some key"), NO_VALUE) + some_key = gen_some_key() + reg.delete_multi([some_key]) + eq_(reg.get(some_key), NO_VALUE) def test_region_creator(self): reg = self._region() @@ -211,7 +222,8 @@ def creator(): return "some value" - eq_(reg.get_or_create("some key", creator), "some value") + some_key = gen_some_key() + eq_(reg.get_or_create(some_key, creator), "some value") @pytest.mark.time_intensive def test_threaded_dogpile(self): @@ -221,6 +233,7 @@ reg = self._region(config_args={"expiration_time": 0.25}) lock = Lock() canary = [] + some_key = gen_some_key() def creator(): ack = lock.acquire(False) @@ -232,7 +245,7 @@ def f(): for x in range(5): - reg.get_or_create("some key", creator) + reg.get_or_create(some_key, creator) time.sleep(0.5) threads = [Thread(target=f) for i in range(10)] @@ -253,8 +266,9 @@ With "distributed" locks, this is not 100% the case. """ + some_key = gen_some_key() reg = self._region(config_args={"expiration_time": 0.25}) - backend_mutex = reg.backend.get_mutex("some_key") + backend_mutex = reg.backend.get_mutex(some_key) is_custom_mutex = backend_mutex is not None locks = dict((str(i), Lock()) for i in range(11)) @@ -310,10 +324,11 @@ def test_region_delete(self): reg = self._region() - reg.set("some key", "some value") - reg.delete("some key") - reg.delete("some key") - eq_(reg.get("some key"), NO_VALUE) + some_key = gen_some_key() + reg.set(some_key, "some value") + reg.delete(some_key) + reg.delete(some_key) + eq_(reg.get(some_key), NO_VALUE) @pytest.mark.time_intensive def test_region_expire(self): @@ -324,6 +339,7 @@ # with very slow processing missing a timeout, as is often the # case with this particular test + some_key = gen_some_key() expire_time = 1.00 reg = self._region(config_args={"expiration_time": expire_time}) @@ -332,18 +348,18 @@ def creator(): return "some value %d" % next(counter) - eq_(reg.get_or_create("some key", creator), "some value 1") + eq_(reg.get_or_create(some_key, creator), "some value 1") time.sleep(expire_time + (0.2 * expire_time)) # expiration is definitely hit - post_expiration = reg.get("some key", ignore_expiration=True) + post_expiration = reg.get(some_key, ignore_expiration=True) if post_expiration is not NO_VALUE: eq_(post_expiration, "some value 1") - eq_(reg.get_or_create("some key", creator), "some value 2") + eq_(reg.get_or_create(some_key, creator), "some value 2") # this line needs to run less the expire_time sec before the previous # two or it hits the expiration - eq_(reg.get("some key"), "some value 2") + eq_(reg.get(some_key), "some value 2") def test_decorated_fn_functionality(self): # test for any quirks in the fn decoration that interact @@ -371,13 +387,14 @@ eq_(my_function(4, 3), 11) def test_exploding_value_fn(self): + some_key = gen_some_key() reg = self._region() def boom(): raise Exception("boom") assert_raises_message( - Exception, "boom", reg.get_or_create, "some_key", boom + Exception, "boom", reg.get_or_create, some_key, boom )