This file is indexed.

/usr/lib/python2.7/dist-packages/pylibmc/__init__.py is in python-pylibmc 1.5.0-4+b1.

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"]