Metadata-Version: 2.1
Name: redis-limpyd
Version: 2.0.dev11
Summary: 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.
Home-page: https://github.com/limpyd/redis-limpyd
Author: Yohan Boniface
Author-email: yb@enix.org
Maintainer: Stephane "Twidi" Angel
Maintainer-email: s.angel@twidi.com
License: WTFPL
Keywords: redis,orm
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
Requires-Dist: redis (>=3)
Requires-Dist: future
Provides-Extra: doc
Requires-Dist: Sphinx ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'

|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 <http://redis.io/topics/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``

Documentation
=============

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

Changelog
=========

See `CHANGELOG.rst <CHANGELOG.rst>`_

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

* `Stéphane «Twidi» Angel <https://github.com/twidi/>`_
* `Yohan Boniface <https://github.com/yohanboniface/>`_


Extensions
==========

* A bundle of great extensions: `Limpyd-extensions <https://github.com/limpyd/redis-limpyd-extensions>`_
* A queue/task/job manager: `Limpyd-jobs <https://github.com/limpyd/redis-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


