Hello community,
here is the log from the commit of package python-pymemcache for
openSUSE:Factory checked in at 2020-10-13 15:45:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymemcache (Old)
and /work/SRC/openSUSE:Factory/.python-pymemcache.new.3486 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymemcache"
Tue Oct 13 15:45:29 2020 rev:10 rq:841415 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymemcache/python-pymemcache.changes
2020-06-15 20:29:04.926077409 +0200
+++
/work/SRC/openSUSE:Factory/.python-pymemcache.new.3486/python-pymemcache.changes
2020-10-13 15:46:06.881461854 +0200
@@ -1,0 +2,10 @@
+Tue Oct 13 07:29:30 UTC 2020 - Dirk Mueller <[email protected]>
+
+- update to 3.3.0:
+ * ``HashClient`` can now be imported from the top-level ``pymemcache``
package
+ (e.g. ``pymemcache.HashClient``).
+ * ``HashClient.get_many()`` now longer stores ``False`` for missing keys from
+ unavailable clients. Instead, the result won't contain the key at all.
+ * Added missing ``HashClient.close()`` and ``HashClient.quit()``.
+
+-------------------------------------------------------------------
Old:
----
pymemcache-3.2.0.tar.gz
New:
----
pymemcache-3.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymemcache.spec ++++++
--- /var/tmp/diff_new_pack.NIMspu/_old 2020-10-13 15:46:07.401462078 +0200
+++ /var/tmp/diff_new_pack.NIMspu/_new 2020-10-13 15:46:07.417462085 +0200
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without python2
Name: python-pymemcache
-Version: 3.2.0
+Version: 3.3.0
Release: 0
Summary: A pure Python memcached client
License: Apache-2.0
++++++ pymemcache-3.2.0.tar.gz -> pymemcache-3.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/ChangeLog.rst
new/pymemcache-3.3.0/ChangeLog.rst
--- old/pymemcache-3.2.0/ChangeLog.rst 2020-05-20 00:51:04.000000000 +0200
+++ new/pymemcache-3.3.0/ChangeLog.rst 2020-08-18 01:20:42.000000000 +0200
@@ -1,6 +1,14 @@
Changelog
=========
+New in version 3.3.0
+--------------------
+* ``HashClient`` can now be imported from the top-level ``pymemcache`` package
+ (e.g. ``pymemcache.HashClient``).
+* ``HashClient.get_many()`` now longer stores ``False`` for missing keys from
+ unavailable clients. Instead, the result won't contain the key at all.
+* Added missing ``HashClient.close()`` and ``HashClient.quit()``.
+
New in version 3.2.0
--------------------
* ``PooledClient`` and ``HashClient`` now support custom ``Client`` classes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/PKG-INFO
new/pymemcache-3.3.0/PKG-INFO
--- old/pymemcache-3.2.0/PKG-INFO 2020-05-20 00:52:16.000000000 +0200
+++ new/pymemcache-3.3.0/PKG-INFO 2020-08-19 22:07:45.773500400 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymemcache
-Version: 3.2.0
+Version: 3.3.0
Summary: "A comprehensive, fast, pure Python memcached client"
Home-page: https://github.com/pinterest/pymemcache
Author: Jon Parise
@@ -143,6 +143,14 @@
Changelog
=========
+ New in version 3.3.0
+ --------------------
+ * ``HashClient`` can now be imported from the top-level ``pymemcache``
package
+ (e.g. ``pymemcache.HashClient``).
+ * ``HashClient.get_many()`` now longer stores ``False`` for missing
keys from
+ unavailable clients. Instead, the result won't contain the key at
all.
+ * Added missing ``HashClient.close()`` and ``HashClient.quit()``.
+
New in version 3.2.0
--------------------
* ``PooledClient`` and ``HashClient`` now support custom ``Client``
classes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/__init__.py
new/pymemcache-3.3.0/pymemcache/__init__.py
--- old/pymemcache-3.2.0/pymemcache/__init__.py 2020-05-20 00:51:04.000000000
+0200
+++ new/pymemcache-3.3.0/pymemcache/__init__.py 2020-08-18 01:20:42.000000000
+0200
@@ -1,7 +1,8 @@
-__version__ = '3.2.0'
+__version__ = '3.3.0'
from pymemcache.client.base import Client # noqa
from pymemcache.client.base import PooledClient # noqa
+from pymemcache.client.hash import HashClient # noqa
from pymemcache.exceptions import MemcacheError # noqa
from pymemcache.exceptions import MemcacheClientError # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/client/__init__.py
new/pymemcache-3.3.0/pymemcache/client/__init__.py
--- old/pymemcache-3.2.0/pymemcache/client/__init__.py 2020-04-28
17:07:16.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache/client/__init__.py 2020-08-18
01:10:28.000000000 +0200
@@ -2,6 +2,7 @@
from pymemcache.client.base import Client # noqa
from pymemcache.client.base import PooledClient # noqa
+from pymemcache.client.hash import HashClient # noqa
from pymemcache.exceptions import MemcacheError # noqa
from pymemcache.exceptions import MemcacheClientError # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/client/base.py
new/pymemcache-3.3.0/pymemcache/client/base.py
--- old/pymemcache-3.2.0/pymemcache/client/base.py 2020-04-29
01:54:59.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache/client/base.py 2020-08-18
01:10:28.000000000 +0200
@@ -316,6 +316,8 @@
finally:
self.sock = None
+ disconnect_all = close
+
def set(self, key, value, expire=0, noreply=None, flags=None):
"""
The memcached "set" command.
@@ -636,7 +638,7 @@
Args:
key: str, see class docs for details.
- value: int, the amount by which to increment the value.
+ value: int, the amount by which to decrement the value.
noreply: optional bool, False to wait for the reply (the default).
Returns:
@@ -1075,6 +1077,8 @@
def close(self):
self.client_pool.clear()
+ disconnect_all = close
+
def set(self, key, value, expire=0, noreply=None, flags=None):
with self.client_pool.get_and_release(destroy_on_fail=True) as client:
return client.set(key, value, expire=expire, noreply=noreply,
@@ -1082,9 +1086,8 @@
def set_many(self, values, expire=0, noreply=None, flags=None):
with self.client_pool.get_and_release(destroy_on_fail=True) as client:
- failed = client.set_many(values, expire=expire, noreply=noreply,
- flags=flags)
- return failed
+ return client.set_many(values, expire=expire, noreply=noreply,
+ flags=flags)
set_multi = set_many
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/client/hash.py
new/pymemcache-3.3.0/pymemcache/client/hash.py
--- old/pymemcache-3.2.0/pymemcache/client/hash.py 2020-04-29
01:54:59.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache/client/hash.py 2020-08-18
01:10:28.000000000 +0200
@@ -1,3 +1,4 @@
+import collections
import socket
import time
import logging
@@ -326,6 +327,12 @@
return succeeded, failed, None
+ def close(self):
+ for client in self.clients.values():
+ self._safely_run_func(client, client.close, False)
+
+ disconnect_all = close
+
def set(self, key, *args, **kwargs):
return self._run_cmd('set', key, False, *args, **kwargs)
@@ -339,7 +346,7 @@
return self._run_cmd('decr', key, False, *args, **kwargs)
def set_many(self, values, *args, **kwargs):
- client_batches = {}
+ client_batches = collections.defaultdict(dict)
failed = []
for key, value in six.iteritems(values):
@@ -349,9 +356,6 @@
failed.append(key)
continue
- if client.server not in client_batches:
- client_batches[client.server] = {}
-
client_batches[client.server][key] = value
for server, values in client_batches.items():
@@ -366,19 +370,15 @@
set_multi = set_many
def get_many(self, keys, gets=False, *args, **kwargs):
- client_batches = {}
+ client_batches = collections.defaultdict(list)
end = {}
for key in keys:
client = self._get_client(key)
if client is None:
- end[key] = False
continue
- if client.server not in client_batches:
- client_batches[client.server] = []
-
client_batches[client.server].append(key)
for server, keys in client_batches.items():
@@ -438,5 +438,9 @@
return self._run_cmd('touch', key, False, *args, **kwargs)
def flush_all(self):
- for _, client in self.clients.items():
+ for client in self.clients.values():
self._safely_run_func(client, client.flush_all, False)
+
+ def quit(self):
+ for client in self.clients.values():
+ self._safely_run_func(client, client.quit, False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/test/test_client_hash.py
new/pymemcache-3.3.0/pymemcache/test/test_client_hash.py
--- old/pymemcache-3.2.0/pymemcache/test/test_client_hash.py 2020-04-29
01:54:59.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache/test/test_client_hash.py 2020-08-18
01:10:28.000000000 +0200
@@ -159,6 +159,20 @@
result = client.touch(b'key', 1, noreply=False)
assert result is True
+ def test_close(self):
+ client = self.make_client([])
+ assert all(c.sock is not None for c in client.clients.values())
+ result = client.close()
+ assert result is None
+ assert all(c.sock is None for c in client.clients.values())
+
+ def test_quit(self):
+ client = self.make_client([])
+ assert all(c.sock is not None for c in client.clients.values())
+ result = client.quit()
+ assert result is None
+ assert all(c.sock is None for c in client.clients.values())
+
def test_no_servers_left(self):
from pymemcache.client.hash import HashClient
client = HashClient(
@@ -227,7 +241,7 @@
)
result = client.get_many(['foo', 'bar'])
- assert result == {'foo': False, 'bar': False}
+ assert result == {}
def test_ignore_exec_set_many(self):
values = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache/test/test_integration.py
new/pymemcache-3.3.0/pymemcache/test/test_integration.py
--- old/pymemcache-3.2.0/pymemcache/test/test_integration.py 2020-04-28
17:07:16.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache/test/test_integration.py 2020-08-17
18:03:24.000000000 +0200
@@ -183,7 +183,7 @@
assert result[0] == b'value'
[email protected]()
[email protected]()
def test_delete(client_class, host, port, socket_module):
client = client_class((host, port), socket_module=socket_module)
client.flush_all()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.2.0/pymemcache.egg-info/PKG-INFO
new/pymemcache-3.3.0/pymemcache.egg-info/PKG-INFO
--- old/pymemcache-3.2.0/pymemcache.egg-info/PKG-INFO 2020-05-20
00:52:16.000000000 +0200
+++ new/pymemcache-3.3.0/pymemcache.egg-info/PKG-INFO 2020-08-19
22:07:45.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymemcache
-Version: 3.2.0
+Version: 3.3.0
Summary: "A comprehensive, fast, pure Python memcached client"
Home-page: https://github.com/pinterest/pymemcache
Author: Jon Parise
@@ -143,6 +143,14 @@
Changelog
=========
+ New in version 3.3.0
+ --------------------
+ * ``HashClient`` can now be imported from the top-level ``pymemcache``
package
+ (e.g. ``pymemcache.HashClient``).
+ * ``HashClient.get_many()`` now longer stores ``False`` for missing
keys from
+ unavailable clients. Instead, the result won't contain the key at
all.
+ * Added missing ``HashClient.close()`` and ``HashClient.quit()``.
+
New in version 3.2.0
--------------------
* ``PooledClient`` and ``HashClient`` now support custom ``Client``
classes