Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/limpyd/redis-limpyd
- Owner: limpyd
- License: wtfpl
- Created: 2012-02-27T21:29:56.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2020-05-05T09:24:05.000Z (over 4 years ago)
- Last Synced: 2024-08-18T21:53:03.848Z (4 months ago)
- Topics: orm, python, redis
- Language: Python
- Homepage: https://redis-limpyd.readthedocs.org/
- Size: 1.3 MB
- Stars: 72
- Watchers: 6
- Forks: 11
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
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 codeExample 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