Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/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://github.com/limpyd/redis-limpyd

orm python redis

Last synced: 3 months ago
JSON representation

Provide an easy way to store python objects in Redis, without losing the power and the control of the Redis API

Awesome Lists containing this project

README

        

|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:

- Don't care about keys, ``limpyd`` do it for you
- Retrieve objects from some of their attributes
- Retrieve objects collection
- CRUD abstraction
- Powerful indexing and filtering
- Keep the power of all the `Redis data types `_ in your own code

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 `_

Maintainers
===========

* `Stéphane «Twidi» Angel `_
* `Yohan Boniface `_

Extensions
==========

* A bundle of great extensions: `Limpyd-extensions `_
* A queue/task/job manager: `Limpyd-jobs `_

.. |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