limpyd / redis-limpyd

Provide an easy way to store python objects in Redis, without losing the power and the control of the Redis API
https://redis-limpyd.readthedocs.org/
Do What The F*ck You Want To Public License
72 stars 11 forks source link
orm python redis

|PyPI Version| |Build Status| |Doc Status|

====== Limpyd

Limpyd provides an easy way to store objects in Redis_, without losing the power and the control of the Redis API, in a limpid way, with just as abstraction as needed.

Featuring:

Example of configuration:

.. code:: python

from limpyd import model

main_database = model.RedisDatabase(
    host="localhost",
    port=6379,
    db=0
)

class Bike(model.RedisModel):

    database = main_database

    name = model.InstanceHashField(indexable=True, unique=True)
    color = model.InstanceHashField()
    wheels = model.StringField(default=2)

So you can use it like this:

.. code:: python

>>> mountainbike = Bike(name="mountainbike")
>>> mountainbike.wheels.get()
'2'
>>> mountainbike.wheels.incr()
>>> mountainbike.wheels.get()
'3'
>>> mountainbike.name.set("tricycle")
>>> tricycle = Bike.collection(name="tricycle")[0]
>>> tricycle.wheels.get()
'3'
>>> tricycle.hmset(color="blue")
True
>>> tricycle.hmget('color')
['blue']
>>> tricycle.hmget('color', 'name')
['blue', 'tricycle']
>>> tricycle.color.hget()
'blue'
>>> tricycle.color.hset('yellow')
True
>>> tricycle.hmget('color')
['yellow']

Install

Python versions 2.7 and 3.5 to 3.8 are supported (CPython and PyPy).

Redis-py_ versions >= 3 are supported, with redis-server versions >= 3.

.. code:: bash

pip install redis-limpyd

For Redis-py_ versions < 3, please use limpyd version 1.3.1 (or later in 1.x versions)

Documentation

See https://redis-limpyd.readthedocs.io/ for a full documentation

Changelog

See CHANGELOG.rst <CHANGELOG.rst>_

Maintainers

Extensions

.. |PyPI Version| image:: https://img.shields.io/pypi/v/redis-limpyd.png :target: https://pypi.python.org/pypi/redis-limpyd .. |Build Status| image:: https://travis-ci.org/limpyd/redis-limpyd.png?branch=master :target: https://travis-ci.org/limpyd/redis-limpyd .. |Doc Status| image:: https://readthedocs.org/projects/redis-limpyd/badge/ :target: http://redis-limpyd.readthedocs.io/en/latest/ .. _Redis: http://redis.io .. _Redis-py: https://github.com/andymccurdy/redis-py