{ "info": { "author": "Mitchel Cabuloy (mixxorz)", "author_email": "mixxorz@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Database", "Topic :: Utilities" ], "description": "ok |latest-version|\n==============================\n\n|build-status| |python-support| |downloads| |license|\n\nObject-Key Mapper for Redis\n\nIf you\u2019ve used redis on python, you\u2019ve had to deal with redis keys.\nSometimes, *lots* of redis keys. With so many keys, it\u2019s easy to make\nmistakes, especially since keys are just strings. I built ``ok`` so that\nI didn\u2019t have to work with strings for redis keys.\n\nHere\u2019s how you use it:\n\n.. code:: python\n\n import ok\n import redis\n\n\n class User(ok.Key):\n fields = ['timeline', 'followers', 'following']\n\n\n # Get user mixxorz' timeline\n r = redis.StrictRedis()\n r.zrevrange(User('mixxorz').timeline, 0, 50)\n # ZREVRANGE User:mixxorz:timeline 0 50\n\nManaging your keys just became a lot less fragile.\n\nInstallation\n------------\n\nInstall it from pypi\n\n::\n\n $ pip install ok-redis\n\nUsage\n-----\n\nAccess fields.\n\n.. code:: python\n\n class User(ok.Key):\n fields = ['timeline', 'followers', 'following']\n\n\n print(User('mixxorz').timeline)\n # User:mixxorz:timeline\n\nChain keys.\n\n.. code:: python\n\n class City(ok.Key):\n fields = ['tweets_hll']\n\n\n class Country(ok.Key):\n subkeys = [City]\n\n\n print(Country('PH').City('Manila').tweets_hll)\n # Country:PH:City:Manila:tweets\n\nSubkeys can be an absolute or relative path to a key.\n\n.. code:: python\n\n # mod_one.py\n class Refer(Key):\n fields = ['elements']\n\n\n # mod_two.py\n class Parent(Key):\n subkeys = ['..mod_one.Refer']\n\n\n print(Parent('foo').Refer('bar').elements)\n # Parent:foo:Refer:bar:elements\n\nThe string representation of a `Key` instance is the key, so you can use it like\nthis:\n\n.. code:: python\n\n class User(ok.Key):\n pass\n\n\n r.get(User('mixxorz'))\n\nBut you can also access the key explicitly.\n\n.. code:: python\n\n User('mixxorz').key\n # >>> User:mixxorz\n\nIDs are optional.\n\n.. code:: python\n\n class User(ok.Key):\n fields = ['rankings']\n\n\n print(User().rankings)\n # User:rankings\n\nIDs don't have to be strings\n\n.. code:: python\n\n class User(ok.Key)\n pass\n\n print(User(123))\n # User:123\n\nYou can change the string used for the key.\n\n.. code:: python\n\n class Facebook(ok.Key):\n fields = ['all_posts']\n class_key = 'fb'\n\n\n print(Facebook().all_posts)\n # fb:all_posts\n\nLicense\n-------\n\nMIT\n\n.. |latest-version| image:: https://img.shields.io/pypi/v/ok-redis.svg\n :target: https://pypi.python.org/pypi/ok-redis/\n :alt: Latest version\n.. |build-status| image:: https://img.shields.io/travis/mixxorz/ok-redis/master.svg\n :target: https://travis-ci.org/mixxorz/ok-redis\n :alt: Build status\n.. |python-support| image:: https://img.shields.io/pypi/pyversions/ok-redis.svg\n :target: https://pypi.python.org/pypi/ok-redis\n :alt: Python versions\n.. |downloads| image:: https://img.shields.io/pypi/dm/ok-redis.svg\n :target: https://pypi.python.org/pypi/ok-redis/\n :alt: Monthly downloads\n.. |license| image:: https://img.shields.io/pypi/l/ok-redis.svg\n :target: https://github.com/behave/ok-redis/blob/master/LICENSE\n :alt: Software license", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mixxorz/ok-redis", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "ok-redis", "package_url": "https://pypi.org/project/ok-redis/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ok-redis/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/mixxorz/ok-redis" }, "release_url": "https://pypi.org/project/ok-redis/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Object-Key Mapper for Redis", "version": "0.1.2" }, "last_serial": 2248721, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6018132ea89a989d00d2f9af284dc777", "sha256": "8d1824380610702ee4e1803d79e76c75e393810e434d133a9881c3d079f42c85" }, "downloads": -1, "filename": "ok-redis-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6018132ea89a989d00d2f9af284dc777", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3427, "upload_time": "2016-06-26T13:20:33", "url": "https://files.pythonhosted.org/packages/b5/f5/d0127acc78f0c132da170c1c0cff6c7feae94bbc35cba1712abb3649f828/ok-redis-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "acb8df6f1b34ed00aadafb72ce3a86ac", "sha256": "85ca6f29cfa083c79677b1ddee9c2c1bddd1fc1e12441cc2322a0dfaff58f188" }, "downloads": -1, "filename": "ok-redis-0.1.1.tar.gz", "has_sig": false, "md5_digest": "acb8df6f1b34ed00aadafb72ce3a86ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4058, "upload_time": "2016-07-07T16:12:37", "url": "https://files.pythonhosted.org/packages/10/51/6d6ae9efbb326ca74c4a25c837ff1c981961b516d0047955b6ef969746a8/ok-redis-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a02e7bac4e31fb47821bef5f028bc2af", "sha256": "b457a9c13a22b2917c1b2f03b42894459d1a8aa3a9f3e0a79f8c114ab4e987c2" }, "downloads": -1, "filename": "ok-redis-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a02e7bac4e31fb47821bef5f028bc2af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4127, "upload_time": "2016-07-28T10:37:32", "url": "https://files.pythonhosted.org/packages/70/c0/ab4d48494d52897dabefc3a2985240ce9ed7844d1daa7bec4847a0d5c33a/ok-redis-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a02e7bac4e31fb47821bef5f028bc2af", "sha256": "b457a9c13a22b2917c1b2f03b42894459d1a8aa3a9f3e0a79f8c114ab4e987c2" }, "downloads": -1, "filename": "ok-redis-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a02e7bac4e31fb47821bef5f028bc2af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4127, "upload_time": "2016-07-28T10:37:32", "url": "https://files.pythonhosted.org/packages/70/c0/ab4d48494d52897dabefc3a2985240ce9ed7844d1daa7bec4847a0d5c33a/ok-redis-0.1.2.tar.gz" } ] }