This repository has been archived on 2018-06-04. You can view files and clone it, but cannot push or open issues/pull-requests.
pylibmc/setup.py

84 lines
2.4 KiB
Python

"""`pylibmc` is a Python wrapper around the accompanying C Python extension
`_pylibmc`, which is a wrapper around `libmemcached` from TangentOrg.
You have to install `libmemcached` separately, and have your compiler and
linker find the include files and libraries.
With `libmemcached` installed and this package set up, the following basic
usage example should work::
>>> import pylibmc
>>> mc = pylibmc.Client(["127.0.0.1:11211"])
>>> mc.set("foo", "Hello world!")
True
>>> mc.get("foo")
'Hello world!'
The API is pretty much `python-memcached`. Some parts of `libmemcached` aren't
exposed yet. I think.
Behaviors
=========
`libmemcached` has ways of telling it how to behave. You'll have to refer to
its documentation on what the different behaviors do.
To change behaviors, quite simply::
>>> mc.behaviors["hash"] = "fnv1a_32"
Comparison to other libraries
=============================
Why use `pylibmc`? Because it's fast.
http://lericson.blogg.se/code/2008/november/pylibmc-051.html
Change Log
==========
New in version 0.6
------------------
Added compatibility with `libmemcached` 0.26, WRT error return codes.
Added `flush_all` and `disconnect_all` methods.
Now using the latest pickling protocol.
New in version 0.5
------------------
Fixed lots of memory leaks, and added support for `libmemcached` 0.23.
Also made the code tighter in terms of compiler pendatics.
New in version 0.4
------------------
Renamed the C module to `_pylibmc`, and added lots of `libmemcached` constants
to it, as well as implemented behaviors.
"""
import os
from distutils.core import setup, Extension
incdirs = []
libdirs = []
if "LIBMEMCACHED_DIR" in os.environ:
libdir = os.path.normpath(os.environ["LIBMEMCACHED_DIR"])
incdirs.append(os.path.join(libdir, "include"))
libdirs.append(os.path.join(libdir, "lib"))
pylibmc_ext = Extension("_pylibmc", ["_pylibmcmodule.c"],
libraries=["memcached"],
include_dirs=incdirs, library_dirs=libdirs)
setup(name="pylibmc", version="0.6.1",
url="http://lericson.blogg.se/code/category/pylibmc.html",
author="Ludvig Ericson", author_email="ludvig.ericson@gmail.com",
license="3-clause BSD <http://www.opensource.org/licenses/bsd-license.php>",
description="libmemcached wrapper", long_description=__doc__,
ext_modules=[pylibmc_ext], py_modules=["pylibmc"])