Hello community,

here is the log from the commit of package python-python-memcached for 
openSUSE:Factory checked in at 2013-06-25 09:35:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-memcached (Old)
 and      /work/SRC/openSUSE:Factory/.python-python-memcached.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-python-memcached"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-python-memcached/python-python-memcached.changes
  2013-06-14 15:47:22.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-python-memcached.new/python-python-memcached.changes
     2013-06-25 14:45:02.000000000 +0200
@@ -1,0 +2,14 @@
+Sun Jun 23 21:21:17 UTC 2013 - [email protected]
+
+- update to 1.53:
+  *  Fixing set_multi() so that if the server closes the connection
+     it will no longer raise AttributeError.  Issue found and resolution
+     reviewed by Ben Hoyt.
+  *  readline() now will mark the connection dead if the read fails.
+     It was just closing it before.  This is related to the set_multi()
+     change but worth noting separately.  Thanks to Ben Hoyt.
+  *  Changing check_keys to use re.match() instead of str.translate(),
+     because re.match() works with Python < 2.6.
+     Found by Giovanni Di Milia.
+
+-------------------------------------------------------------------

Old:
----
  python-memcached-1.51.tar.gz

New:
----
  python-memcached-1.53.tar.gz

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

Other differences:
------------------
++++++ python-python-memcached.spec ++++++
--- /var/tmp/diff_new_pack.1gopv9/_old  2013-06-25 14:45:03.000000000 +0200
+++ /var/tmp/diff_new_pack.1gopv9/_new  2013-06-25 14:45:03.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-python-memcached
-Version:        1.51
+Version:        1.53
 Release:        0
 Url:            http://www.tummy.com/Community/software/python-memcached/
 Summary:        Pure python memcached client

++++++ python-memcached-1.51.tar.gz -> python-memcached-1.53.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-memcached-1.51/ChangeLog 
new/python-memcached-1.53/ChangeLog
--- old/python-memcached-1.51/ChangeLog 2013-05-06 23:30:10.000000000 +0200
+++ new/python-memcached-1.53/ChangeLog 2013-06-07 19:14:00.000000000 +0200
@@ -1,3 +1,26 @@
+Sun, 07 Jun 2013 11:12:18 -0600  Sean Reifschneider  <[email protected]>
+
+   *  1.53 release.
+
+   *  Fixing set_multi() so that if the server closes the connection
+      it will no longer raise AttributeError.  Issue found and resolution
+      reviewed by Ben Hoyt.
+
+   *  readline() now will mark the connection dead if the read fails.
+      It was just closing it before.  This is related to the set_multi()
+      change but worth noting separately.  Thanks to Ben Hoyt.
+
+   *  Discussion of the above:
+      
https://github.com/linsomniac/python-memcached/commit/b7054a964aed0e6d86e853e60aab09cd0183b9f6#commitcomment-3337557
+
+Sun, 02 Jun 2013 01:08:26 -0600  Sean Reifschneider  <[email protected]>
+
+   *  1.52 release.
+
+   *  Changing check_keys to use re.match() instead of str.translate(),
+      because re.match() works with Python < 2.6.
+      Found by Giovanni Di Milia.
+
 Mon, 06 May 2013 15:29:07 -0600  Sean Reifschneider  <[email protected]>
 
    *  1.51 release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-memcached-1.51/PKG-INFO 
new/python-memcached-1.53/PKG-INFO
--- old/python-memcached-1.51/PKG-INFO  2013-05-06 23:30:11.000000000 +0200
+++ new/python-memcached-1.53/PKG-INFO  2013-06-07 19:14:03.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-memcached
-Version: 1.51
+Version: 1.53
 Summary: Pure python memcached client
 Home-page: http://www.tummy.com/Community/software/python-memcached/
 Author: Sean Reifschneider
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-memcached-1.51/memcache.py 
new/python-memcached-1.53/memcache.py
--- old/python-memcached-1.51/memcache.py       2013-05-06 23:30:11.000000000 
+0200
+++ new/python-memcached-1.53/memcache.py       2013-06-07 19:14:03.000000000 
+0200
@@ -77,12 +77,12 @@
 except ImportError:
     from StringIO import StringIO
 
-invalid_key_characters = ''.join(map(chr, range(33) + [127]))
+valid_key_chars_re = re.compile('[\x21-\x7e\x80-\xff]+$')
 
 
 #  Original author: Evan Martin of Danga Interactive
 __author__    = "Sean Reifschneider <[email protected]>"
-__version__ = "1.51"
+__version__ = "1.53"
 __copyright__ = "Copyright (C) 2003 Danga Interactive"
 #  http://en.wikipedia.org/wiki/Python_Software_Foundation_License
 __license__   = "Python Software Foundation License"
@@ -663,41 +663,53 @@
         1
 
 
-        This method is recommended over regular L{set} as it lowers the number 
of
-        total packets flying around your network, reducing total latency, since
-        your app doesn't have to wait for each round-trip of L{set} before 
sending
-        the next one.
+        This method is recommended over regular L{set} as it lowers the
+        number of total packets flying around your network, reducing
+        total latency, since your app doesn't have to wait for each
+        round-trip of L{set} before sending the next one.
 
         @param mapping: A dict of key/value pairs to set.
-        @param time: Tells memcached the time which this value should expire, 
either
-        as a delta number of seconds, or an absolute unix time-since-the-epoch
-        value. See the memcached protocol docs section "Storage Commands"
-        for more info on <exptime>. We default to 0 == cache forever.
-        @param key_prefix:  Optional string to prepend to each key when 
sending to memcache. Allows you to efficiently stuff these keys into a 
pseudo-namespace in memcache:
-            >>> notset_keys = mc.set_multi({'key1' : 'val1', 'key2' : 'val2'}, 
key_prefix='subspace_')
+        @param time: Tells memcached the time which this value should
+            expire, either as a delta number of seconds, or an absolute
+            unix time-since-the-epoch value. See the memcached protocol
+            docs section "Storage Commands" for more info on <exptime>. We
+            default to 0 == cache forever.
+        @param key_prefix:  Optional string to prepend to each key when
+            sending to memcache. Allows you to efficiently stuff these
+            keys into a pseudo-namespace in memcache:
+
+            >>> notset_keys = mc.set_multi(
+            ...     {'key1' : 'val1', 'key2' : 'val2'}, key_prefix='subspace_')
             >>> len(notset_keys) == 0
             True
             >>> mc.get_multi(['subspace_key1', 'subspace_key2']) == 
{'subspace_key1' : 'val1', 'subspace_key2' : 'val2'}
             True
 
-            Causes key 'subspace_key1' and 'subspace_key2' to be set. Useful 
in conjunction with a higher-level layer which applies namespaces to data in 
memcache.
-            In this case, the return result would be the list of notset 
original keys, prefix not applied.
+            Causes key 'subspace_key1' and 'subspace_key2' to be
+            set. Useful in conjunction with a higher-level layer which
+            applies namespaces to data in memcache.  In this case, the
+            return result would be the list of notset original keys,
+            prefix not applied.
 
-        @param min_compress_len: The threshold length to kick in 
auto-compression
-        of the value using the zlib.compress() routine. If the value being 
cached is
-        a string, then the length of the string is measured, else if the value 
is an
-        object, then the length of the pickle result is measured. If the 
resulting
-        attempt at compression yeilds a larger string than the input, then it 
is
-        discarded. For backwards compatability, this parameter defaults to 0,
-        indicating don't ever try to compress.
-        @return: List of keys which failed to be stored [ memcache out of 
memory, etc. ].
+        @param min_compress_len: The threshold length to kick in
+            auto-compression of the value using the zlib.compress()
+            routine. If the value being cached is a string, then
+            the length of the string is measured, else if the value
+            is an object, then the length of the pickle result is
+            measured. If the resulting attempt at compression yeilds
+            a larger string than the input, then it is discarded. For
+            backwards compatability, this parameter defaults to 0,
+            indicating don't ever try to compress.
+        @return: List of keys which failed to be stored [ memcache out of
+           memory, etc. ].
         @rtype: list
 
         '''
 
         self._statlog('set_multi')
 
-        server_keys, prefixed_to_orig_key = 
self._map_and_prefix_keys(mapping.iterkeys(), key_prefix)
+        server_keys, prefixed_to_orig_key = self._map_and_prefix_keys(
+                mapping.iterkeys(), key_prefix)
 
         # send out all requests on each server before reading anything
         dead_servers = []
@@ -732,8 +744,7 @@
         for server, keys in server_keys.iteritems():
             try:
                 for key in keys:
-                    line = server.readline()
-                    if line == 'STORED':
+                    if server.readline() == 'STORED':
                         continue
                     else:
                         notstored.append(prefixed_to_orig_key[key]) #un-mangle.
@@ -1046,11 +1057,10 @@
                 len(key) + key_extra_len > self.server_max_key_length:
                 raise Client.MemcachedKeyLengthError("Key length is > %s"
                          % self.server_max_key_length)
-            if len(key) != len(key.translate(None, invalid_key_characters)):
+            if not valid_key_chars_re.match(key):
                 raise Client.MemcachedKeyCharacterError(
                         "Control characters not allowed")
 
-
 class _Host(object):
 
     def __init__(self, host, debug=0, dead_retry=_DEAD_RETRY,
@@ -1160,7 +1170,11 @@
         an empty string.
         """
         buf = self.buffer
-        recv = self.socket.recv
+        if self.socket:
+            recv = self.socket.recv
+        else:
+            recv = lambda bufsize: ''
+
         while True:
             index = buf.find('\r\n')
             if index >= 0:
@@ -1168,7 +1182,7 @@
             data = recv(4096)
             if not data:
                 # connection close, let's kill it and raise
-                self.close_socket()
+                self.mark_dead('connection closed in readline()')
                 if raise_exception:
                     raise _ConnectionDeadError()
                 else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-memcached-1.51/python_memcached.egg-info/PKG-INFO 
new/python-memcached-1.53/python_memcached.egg-info/PKG-INFO
--- old/python-memcached-1.51/python_memcached.egg-info/PKG-INFO        
2013-05-06 23:30:11.000000000 +0200
+++ new/python-memcached-1.53/python_memcached.egg-info/PKG-INFO        
2013-06-07 19:14:03.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-memcached
-Version: 1.51
+Version: 1.53
 Summary: Pure python memcached client
 Home-page: http://www.tummy.com/Community/software/python-memcached/
 Author: Sean Reifschneider

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to