/usr/lib/python3/dist-packages/pylibmc/__init__.py is in python3-pylibmc 1.5.0-4build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | """Snappy libmemcached wrapper
pylibmc is a Python wrapper around TangentOrg's libmemcached library.
The interface is intentionally made as close to python-memcached as possible,
so that applications can drop-in replace it.
Example usage
=============
Create a connection and configure it::
>>> import pylibmc
>>> m = pylibmc.Client(["10.0.0.1"], binary=True)
>>> m.behaviors = {"tcp_nodelay": True, "ketama": True}
Nevermind this doctest shim::
>>> from pylibmc.test import make_test_client
>>> mc = make_test_client(behaviors=m.behaviors)
Basic operation::
>>> mc.set("some_key", "Some value")
True
>>> value = mc.get("some_key")
>>> value
'Some value'
>>> mc.set("another_key", 3)
True
>>> mc.delete("another_key")
True
>>> mc.set("key", b"1") # bytes or int is fine for incrementing, str is not
True
Atomic increments and decrements::
>>> print(mc.incr("key"))
2
>>> print(mc.decr("key"))
1
Batch operation::
>>> mc.get_multi(["key", "another_key"]) == {'key': b'1'}
True
>>> mc.set_multi({"cats": ["on acid", "furry"], "dogs": True})
[]
>>> mc.get_multi(["cats", "dogs"]) == {'cats': ['on acid', 'furry'], 'dogs': True}
True
>>> mc.delete_multi(["cats", "dogs", "nonextant"])
False
>>> mc.add_multi({"cats": ["on acid", "furry"], "dogs": True})
[]
>>> mc.get_multi(["cats", "dogs"]) == {'cats': ['on acid', 'furry'], 'dogs': True}
True
>>> keys_set = mc.add_multi({"cats": "not set", "dogs": "definitely not set", "bacon": "yummy"})
>>> set(keys_set) == set(['cats', 'dogs'])
True
>>> mc.get_multi(["cats", "dogs", "bacon"]) == {'cats': ['on acid', 'furry'], 'bacon': 'yummy', 'dogs': True}
True
>>> mc.delete_multi(["cats", "dogs", "bacon"])
True
Further Reading
===============
See http://sendapatch.se/projects/pylibmc/
"""
import _pylibmc
from .consts import hashers, distributions
from .client import Client
from .pools import ClientPool, ThreadMappedPool
libmemcached_version = _pylibmc.libmemcached_version
support_compression = _pylibmc.support_compression
support_sasl = _pylibmc.support_sasl
Error = _pylibmc.Error
__version__ = _pylibmc.__version__
def build_info():
return ("pylibmc %s for libmemcached %s (compression=%s, sasl=%s)"
% (__version__,
libmemcached_version,
support_compression,
support_sasl))
__all__ = ["hashers", "distributions", "Client",
"ClientPool", "ThreadMappedPool"]
|