Metadata-Version: 1.1
Name: ok-redis
Version: 0.1.2
Summary: Object-Key Mapper for Redis
Home-page: https://github.com/mixxorz/ok-redis
Author: Mitchel Cabuloy (mixxorz)
Author-email: mixxorz@gmail.com
License: MIT
Description: ok |latest-version|
        ==============================
        
        |build-status| |python-support| |downloads| |license|
        
        Object-Key Mapper for Redis
        
        If you’ve used redis on python, you’ve had to deal with redis keys.
        Sometimes, *lots* of redis keys. With so many keys, it’s easy to make
        mistakes, especially since keys are just strings. I built ``ok`` so that
        I didn’t have to work with strings for redis keys.
        
        Here’s how you use it:
        
        .. code:: python
        
            import ok
            import redis
        
        
            class User(ok.Key):
                fields = ['timeline', 'followers', 'following']
        
        
            # Get user mixxorz' timeline
            r = redis.StrictRedis()
            r.zrevrange(User('mixxorz').timeline, 0, 50)
            # ZREVRANGE User:mixxorz:timeline 0 50
        
        Managing your keys just became a lot less fragile.
        
        Installation
        ------------
        
        Install it from pypi
        
        ::
        
            $ pip install ok-redis
        
        Usage
        -----
        
        Access fields.
        
        .. code:: python
        
            class User(ok.Key):
                fields = ['timeline', 'followers', 'following']
        
        
            print(User('mixxorz').timeline)
            # User:mixxorz:timeline
        
        Chain keys.
        
        .. code:: python
        
            class City(ok.Key):
                fields = ['tweets_hll']
        
        
            class Country(ok.Key):
                subkeys = [City]
        
        
            print(Country('PH').City('Manila').tweets_hll)
            # Country:PH:City:Manila:tweets
        
        Subkeys can be an absolute or relative path to a key.
        
        .. code:: python
        
            # mod_one.py
            class Refer(Key):
                fields = ['elements']
        
        
            # mod_two.py
            class Parent(Key):
                subkeys = ['..mod_one.Refer']
        
        
            print(Parent('foo').Refer('bar').elements)
            # Parent:foo:Refer:bar:elements
        
        The string representation of a `Key` instance is the key, so you can use it like
        this:
        
        .. code:: python
        
            class User(ok.Key):
                pass
        
        
            r.get(User('mixxorz'))
        
        But you can also access the key explicitly.
        
        .. code:: python
        
            User('mixxorz').key
            # >>> User:mixxorz
        
        IDs are optional.
        
        .. code:: python
        
            class User(ok.Key):
                fields = ['rankings']
        
        
            print(User().rankings)
            # User:rankings
        
        IDs don't have to be strings
        
        .. code:: python
        
            class User(ok.Key)
                pass
        
            print(User(123))
            # User:123
        
        You can change the string used for the key.
        
        .. code:: python
        
            class Facebook(ok.Key):
                fields = ['all_posts']
                class_key = 'fb'
        
        
            print(Facebook().all_posts)
            # fb:all_posts
        
        License
        -------
        
        MIT
        
        .. |latest-version| image:: https://img.shields.io/pypi/v/ok-redis.svg
            :target: https://pypi.python.org/pypi/ok-redis/
            :alt: Latest version
        .. |build-status| image:: https://img.shields.io/travis/mixxorz/ok-redis/master.svg
            :target: https://travis-ci.org/mixxorz/ok-redis
            :alt: Build status
        .. |python-support| image:: https://img.shields.io/pypi/pyversions/ok-redis.svg
           :target: https://pypi.python.org/pypi/ok-redis
           :alt: Python versions
        .. |downloads| image:: https://img.shields.io/pypi/dm/ok-redis.svg
            :target: https://pypi.python.org/pypi/ok-redis/
            :alt: Monthly downloads
        .. |license| image:: https://img.shields.io/pypi/l/ok-redis.svg
            :target: https://github.com/behave/ok-redis/blob/master/LICENSE
            :alt: Software license
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Database
Classifier: Topic :: Utilities
