<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/pymemcache.git/pymemcache/test/test_client_hash.py, branch github-actions</title>
<subtitle>github.com: pinterest/pymemcache.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/'/>
<entry>
<title>fix pep8</title>
<updated>2018-07-30T08:59:57+00:00</updated>
<author>
<name>opapy</name>
<email>opapy.worker@gmail.com</email>
</author>
<published>2018-07-30T08:59:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=de69dd216dd65d20bfbc7610d5cbe0922341531a'/>
<id>de69dd216dd65d20bfbc7610d5cbe0922341531a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix test</title>
<updated>2018-07-30T08:46:42+00:00</updated>
<author>
<name>opapy</name>
<email>opapy.worker@gmail.com</email>
</author>
<published>2018-07-30T08:46:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=bd2a2413b40090f054b08987541de07242a72e36'/>
<id>bd2a2413b40090f054b08987541de07242a72e36</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix test</title>
<updated>2018-07-09T10:31:48+00:00</updated>
<author>
<name>opapy</name>
<email>opapy.worker@gmail.com</email>
</author>
<published>2018-07-09T10:31:48+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=b18ce057ed0f0c54c6a6e4159f1f125e102fc680'/>
<id>b18ce057ed0f0c54c6a6e4159f1f125e102fc680</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't Raise Generic Exception (#164)</title>
<updated>2017-09-11T22:50:33+00:00</updated>
<author>
<name>Norman J. Harman Jr</name>
<email>njharman@gmail.com</email>
</author>
<published>2017-09-11T22:50:33+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=0745c9ffbb511563a8dad28fdf4d92c149d1de8c'/>
<id>0745c9ffbb511563a8dad28fdf4d92c149d1de8c</id>
<content type='text'>
Libraries should raise library specific exceptions. Such as
MemcacheError. This enables users to easily catch exceptions generated
by library separate from other exceptions. Raising "Exception" forces
catching Exception and potentially masks all sorts of issues.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Libraries should raise library specific exceptions. Such as
MemcacheError. This enables users to easily catch exceptions generated
by library separate from other exceptions. Raising "Exception" forces
catching Exception and potentially masks all sorts of issues.</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce some missing .set() assertions</title>
<updated>2017-05-05T16:35:25+00:00</updated>
<author>
<name>Jon Parise</name>
<email>jon@pinterest.com</email>
</author>
<published>2017-05-05T16:35:25+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=0417870325d54aad82942850c5cf4393ff3837d6'/>
<id>0417870325d54aad82942850c5cf4393ff3837d6</id>
<content type='text'>
Also wrap a line that exceeds 80 characters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also wrap a line that exceeds 80 characters.
</pre>
</div>
</content>
</entry>
<entry>
<title>Return default value instead of False when all clients are down</title>
<updated>2017-03-14T13:40:31+00:00</updated>
<author>
<name>Peter Renström</name>
<email>renstrom.peter@gmail.com</email>
</author>
<published>2017-03-14T13:40:31+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=4782f033ba199e7bbc8b020061c3f75879d75c73'/>
<id>4782f033ba199e7bbc8b020061c3f75879d75c73</id>
<content type='text'>
The documentation for `ignore_exc` says it will treat memcache/network
errors as cache misses (i.e. `None` for reads and `False` for writes).

However the short-circuit path for when no client can be used (because
they're all marked as down/bad) always returns `False`. This change
change the behaviour to return each command's default value instead.

I actually stumbled upon this because I wanted to inspect some behaviour
in a system without cache so I stopped all memcached nodes. Our code
looked something like this:

    data = memcached_client.get(key)
    if data is None:
        return fetch_from_database(key)
    else:
        return json.loads(data)

What happened was that every once in a while I would see a stacktrace
because the `json.loads(data)` call would fail with a `TypeError`
because it tries to deserialize a bool (`False`).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The documentation for `ignore_exc` says it will treat memcache/network
errors as cache misses (i.e. `None` for reads and `False` for writes).

However the short-circuit path for when no client can be used (because
they're all marked as down/bad) always returns `False`. This change
change the behaviour to return each command's default value instead.

I actually stumbled upon this because I wanted to inspect some behaviour
in a system without cache so I stopped all memcached nodes. Our code
looked something like this:

    data = memcached_client.get(key)
    if data is None:
        return fetch_from_database(key)
    else:
        return json.loads(data)

What happened was that every once in a while I would see a stacktrace
because the `json.loads(data)` call would fail with a `TypeError`
because it tries to deserialize a bool (`False`).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add gets_many to HashClient.</title>
<updated>2017-02-17T20:30:58+00:00</updated>
<author>
<name>Jason Biegel</name>
<email>jason.biegel@shopspring.com</email>
</author>
<published>2017-02-03T15:20:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=0b2ffffbd3efb626236bf215ec73179aee1f0843'/>
<id>0b2ffffbd3efb626236bf215ec73179aee1f0843</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix syntax errors</title>
<updated>2016-11-05T18:11:02+00:00</updated>
<author>
<name>Nicholas Charriere</name>
<email>nicholas@pinterest.com</email>
</author>
<published>2016-11-05T18:11:02+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=197f41943764cdfb257164c9665bb159d58a9ba8'/>
<id>197f41943764cdfb257164c9665bb159d58a9ba8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add optional support for unicode keys</title>
<updated>2016-11-03T16:52:53+00:00</updated>
<author>
<name>Joe Gordon</name>
<email>jogo@pinterest.com</email>
</author>
<published>2016-10-31T21:04:00+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=3613587536673154b45dbb8fe482e736f13a3a36'/>
<id>3613587536673154b45dbb8fe482e736f13a3a36</id>
<content type='text'>
memcached's ASCII protocol supports unicode keys, so lets support them
as well. Since using unicode keys for memcache is uncommon and to
preserve the previous behavior disable support by default.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
memcached's ASCII protocol supports unicode keys, so lets support them
as well. Since using unicode keys for memcache is uncommon and to
preserve the previous behavior disable support by default.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix flake8 and cleanup build</title>
<updated>2016-07-27T19:47:10+00:00</updated>
<author>
<name>Nicholas Charriere</name>
<email>nicholas@pinterest.com</email>
</author>
<published>2016-07-27T19:47:10+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/pymemcache.git/commit/?id=cd8e51c3b4ef9c11be571456f862ff11ce469042'/>
<id>cd8e51c3b4ef9c11be571456f862ff11ce469042</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
