Hello community,
here is the log from the commit of package python-pymemcache for
openSUSE:Factory checked in at 2020-03-26 23:34:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymemcache (Old)
and /work/SRC/openSUSE:Factory/.python-pymemcache.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pymemcache"
Thu Mar 26 23:34:34 2020 rev:6 rq:788526 version:3.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymemcache/python-pymemcache.changes
2020-03-21 00:03:03.853154029 +0100
+++
/work/SRC/openSUSE:Factory/.python-pymemcache.new.3160/python-pymemcache.changes
2020-03-26 23:35:12.850817071 +0100
@@ -1,0 +2,8 @@
+Mon Mar 23 14:54:06 UTC 2020 - [email protected]
+
+- version update to 3.0.1
+ * Make MockMemcacheClient more consistent with the real client.
+ * Pass ``encoding`` from HashClient to its pooled clients when
``use_pooling``
+ is enabled.
+
+-------------------------------------------------------------------
Old:
----
pymemcache-3.0.0.tar.gz
New:
----
pymemcache-3.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pymemcache.spec ++++++
--- /var/tmp/diff_new_pack.BtCqG1/_old 2020-03-26 23:35:13.334817246 +0100
+++ /var/tmp/diff_new_pack.BtCqG1/_new 2020-03-26 23:35:13.334817246 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pymemcache
-Version: 3.0.0
+Version: 3.0.1
Release: 0
Summary: A pure Python memcached client
License: Apache-2.0
++++++ pymemcache-3.0.0.tar.gz -> pymemcache-3.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/ChangeLog.rst
new/pymemcache-3.0.1/ChangeLog.rst
--- old/pymemcache-3.0.0/ChangeLog.rst 2020-01-02 22:34:43.000000000 +0100
+++ new/pymemcache-3.0.1/ChangeLog.rst 2020-03-20 18:05:35.000000000 +0100
@@ -1,6 +1,12 @@
Changelog
=========
+New in version 3.0.1
+--------------------
+* Make MockMemcacheClient more consistent with the real client.
+* Pass ``encoding`` from HashClient to its pooled clients when ``use_pooling``
+ is enabled.
+
New in version 3.0.0
--------------------
* The serialization API has been reworked. Instead of consuming a serializer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/PKG-INFO
new/pymemcache-3.0.1/PKG-INFO
--- old/pymemcache-3.0.0/PKG-INFO 2020-01-02 22:43:14.000000000 +0100
+++ new/pymemcache-3.0.1/PKG-INFO 2020-03-20 18:06:20.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymemcache
-Version: 3.0.0
+Version: 3.0.1
Summary: "A comprehensive, fast, pure Python memcached client"
Home-page: https://github.com/pinterest/pymemcache
Author: Charles Gordon
@@ -132,6 +132,7 @@
* `Joe Gordon <https://github.com/jogo>`_
* `Jon Parise <https://github.com/jparise>`_
* `Stephen Rosen <https://github.com/sirosen>`_
+ * `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
We're Hiring!
=============
@@ -141,6 +142,12 @@
Changelog
=========
+ New in version 3.0.1
+ --------------------
+ * Make MockMemcacheClient more consistent with the real client.
+ * Pass ``encoding`` from HashClient to its pooled clients when
``use_pooling``
+ is enabled.
+
New in version 3.0.0
--------------------
* The serialization API has been reworked. Instead of consuming a
serializer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/README.rst
new/pymemcache-3.0.1/README.rst
--- old/pymemcache-3.0.0/README.rst 2019-11-25 17:37:00.000000000 +0100
+++ new/pymemcache-3.0.1/README.rst 2020-01-15 23:00:22.000000000 +0100
@@ -124,6 +124,7 @@
* `Joe Gordon <https://github.com/jogo>`_
* `Jon Parise <https://github.com/jparise>`_
* `Stephen Rosen <https://github.com/sirosen>`_
+* `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
We're Hiring!
=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/__init__.py
new/pymemcache-3.0.1/pymemcache/__init__.py
--- old/pymemcache-3.0.0/pymemcache/__init__.py 2020-01-02 22:33:26.000000000
+0100
+++ new/pymemcache-3.0.1/pymemcache/__init__.py 2020-03-20 18:05:35.000000000
+0100
@@ -1,4 +1,4 @@
-__version__ = '3.0.0'
+__version__ = '3.0.1'
from pymemcache.client.base import Client # noqa
from pymemcache.client.base import PooledClient # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/client/base.py
new/pymemcache-3.0.1/pymemcache/client/base.py
--- old/pymemcache-3.0.0/pymemcache/client/base.py 2019-09-11
02:03:41.000000000 +0200
+++ new/pymemcache-3.0.1/pymemcache/client/base.py 2020-03-20
16:29:34.000000000 +0100
@@ -82,7 +82,7 @@
# Common helper functions.
-def _check_key(key, allow_unicode_keys, key_prefix=b''):
+def check_key_helper(key, allow_unicode_keys, key_prefix=b''):
"""Checks key and add key_prefix."""
if allow_unicode_keys:
if isinstance(key, six.text_type):
@@ -272,8 +272,8 @@
def check_key(self, key):
"""Checks key and add key_prefix."""
- return _check_key(key, allow_unicode_keys=self.allow_unicode_keys,
- key_prefix=self.key_prefix)
+ return check_key_helper(key,
allow_unicode_keys=self.allow_unicode_keys,
+ key_prefix=self.key_prefix)
def _connect(self):
self.close()
@@ -1040,8 +1040,8 @@
def check_key(self, key):
"""Checks key and add key_prefix."""
- return _check_key(key, allow_unicode_keys=self.allow_unicode_keys,
- key_prefix=self.key_prefix)
+ return check_key_helper(key,
allow_unicode_keys=self.allow_unicode_keys,
+ key_prefix=self.key_prefix)
def _create_client(self):
client = Client(self.server,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/client/hash.py
new/pymemcache-3.0.1/pymemcache/client/hash.py
--- old/pymemcache-3.0.0/pymemcache/client/hash.py 2020-01-02
22:28:28.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/client/hash.py 2020-03-20
16:29:34.000000000 +0100
@@ -3,7 +3,7 @@
import logging
import six
-from pymemcache.client.base import Client, PooledClient, _check_key
+from pymemcache.client.base import Client, PooledClient, check_key_helper
from pymemcache.client.rendezvous import RendezvousHash
from pymemcache.exceptions import MemcacheError
@@ -87,6 +87,7 @@
'deserializer': deserializer,
'allow_unicode_keys': allow_unicode_keys,
'default_noreply': default_noreply,
+ 'encoding': encoding
}
if use_pooling is True:
@@ -121,7 +122,7 @@
self.hasher.remove_node(key)
def _get_client(self, key):
- _check_key(key, self.allow_unicode_keys, self.key_prefix)
+ check_key_helper(key, self.allow_unicode_keys, self.key_prefix)
if len(self._dead_clients) > 0:
current_time = time.time()
ldc = self._last_dead_check_time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/test_client.py
new/pymemcache-3.0.1/pymemcache/test/test_client.py
--- old/pymemcache-3.0.0/pymemcache/test/test_client.py 2019-09-03
20:54:27.000000000 +0200
+++ new/pymemcache-3.0.1/pymemcache/test/test_client.py 2020-03-20
16:29:34.000000000 +0100
@@ -296,6 +296,14 @@
result = client.get(b'key')
assert result is None
+ def test_space_key(self):
+ client = self.make_client([b''])
+ with pytest.raises(MemcacheIllegalInputError):
+ client.get(b'space key')
+
+ with pytest.raises(MemcacheIllegalInputError):
+ client.set(b'space key', b'value')
+
def test_get_not_found_default(self):
client = self.make_client([b'END\r\n'])
result = client.get(b'key', default='foobar')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/test_client_hash.py
new/pymemcache-3.0.1/pymemcache/test/test_client_hash.py
--- old/pymemcache-3.0.0/pymemcache/test/test_client_hash.py 2020-01-02
22:28:28.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/test/test_client_hash.py 2020-03-20
16:29:34.000000000 +0100
@@ -268,4 +268,31 @@
result = client.set_many(values, noreply=True)
assert result == []
+ def test_server_encoding_pooled(self):
+ """
+ test passed encoding from hash client to pooled clients
+ """
+ encoding = 'utf8'
+ from pymemcache.client.hash import HashClient
+ hash_client = HashClient(
+ [('example.com', 11211)], use_pooling=True,
+ encoding=encoding
+ )
+
+ for client in hash_client.clients.values():
+ assert client.encoding == encoding
+
+ def test_server_encoding_client(self):
+ """
+ test passed encoding from hash client to clients
+ """
+ encoding = 'utf8'
+ from pymemcache.client.hash import HashClient
+ hash_client = HashClient(
+ [('example.com', 11211)], encoding=encoding
+ )
+
+ for client in hash_client.clients.values():
+ assert client.encoding == encoding
+
# TODO: Test failover logic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/utils.py
new/pymemcache-3.0.1/pymemcache/test/utils.py
--- old/pymemcache-3.0.0/pymemcache/test/utils.py 2019-12-22
03:35:18.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/test/utils.py 2020-03-20
16:29:34.000000000 +0100
@@ -11,6 +11,7 @@
from pymemcache.exceptions import MemcacheIllegalInputError
from pymemcache.serde import LegacyWrappingSerde
+from pymemcache.client.base import check_key_helper
class MockMemcacheClient(object):
@@ -22,6 +23,8 @@
def __init__(self,
server=None,
serde=None,
+ serializer=None,
+ deserializer=None,
connect_timeout=None,
timeout=None,
no_delay=False,
@@ -32,7 +35,7 @@
self._contents = {}
- self.serde = serde or LegacyWrappingSerde(None, None)
+ self.serde = serde or LegacyWrappingSerde(serializer, deserializer)
self.allow_unicode_keys = allow_unicode_keys
# Unused, but present for interface compatibility
@@ -43,16 +46,16 @@
self.ignore_exc = ignore_exc
self.encoding = encoding
+ def check_key(self, key):
+ """Checks key and add key_prefix."""
+ return check_key_helper(key,
allow_unicode_keys=self.allow_unicode_keys)
+
+ def clear(self):
+ """Method used to clear/reset mock cache"""
+ self._contents.clear()
+
def get(self, key, default=None):
- if not self.allow_unicode_keys:
- if isinstance(key, six.string_types):
- try:
- if isinstance(key, bytes):
- key = key.decode().encode('ascii')
- else:
- key = key.encode('ascii')
- except (UnicodeEncodeError, UnicodeDecodeError):
- raise MemcacheIllegalInputError
+ key = self.check_key(key)
if key not in self._contents:
return default
@@ -75,15 +78,7 @@
get_multi = get_many
def set(self, key, value, expire=0, noreply=True, flags=0):
- if not self.allow_unicode_keys:
- if isinstance(key, six.string_types):
- try:
- if isinstance(key, bytes):
- key = key.decode().encode()
- else:
- key = key.encode(self.encoding)
- except (UnicodeEncodeError, UnicodeDecodeError):
- raise MemcacheIllegalInputError
+ key = self.check_key(key)
if (isinstance(value, six.string_types) and
not isinstance(value, six.binary_type)):
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache.egg-info/PKG-INFO
new/pymemcache-3.0.1/pymemcache.egg-info/PKG-INFO
--- old/pymemcache-3.0.0/pymemcache.egg-info/PKG-INFO 2020-01-02
22:43:14.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache.egg-info/PKG-INFO 2020-03-20
18:06:20.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pymemcache
-Version: 3.0.0
+Version: 3.0.1
Summary: "A comprehensive, fast, pure Python memcached client"
Home-page: https://github.com/pinterest/pymemcache
Author: Charles Gordon
@@ -132,6 +132,7 @@
* `Joe Gordon <https://github.com/jogo>`_
* `Jon Parise <https://github.com/jparise>`_
* `Stephen Rosen <https://github.com/sirosen>`_
+ * `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
We're Hiring!
=============
@@ -141,6 +142,12 @@
Changelog
=========
+ New in version 3.0.1
+ --------------------
+ * Make MockMemcacheClient more consistent with the real client.
+ * Pass ``encoding`` from HashClient to its pooled clients when
``use_pooling``
+ is enabled.
+
New in version 3.0.0
--------------------
* The serialization API has been reworked. Instead of consuming a
serializer