{ "info": { "author": "Vladimir Shkoda", "author_email": "vladimir.shkoda.51@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Plugins", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Database", "Topic :: Software Development" ], "description": "redis-bindings\n==============\n\n.. image:: https://travis-ci.org/vladimirshkoda/redis-bindings.svg?branch=master\n :target: https://travis-ci.org/vladimirshkoda/redis-bindings\n\n.. image:: https://img.shields.io/badge/style-wemake-000000.svg\n :target: https://github.com/wemake-services/wemake-python-styleguide\n\nRedis bindings is an attempt to bring Redis types into Python as native ones. It\nis based on `redis-py `_ and has the\nfollowing types implemented so far:\n\n* `RedisList `_\n\nMoreover, it provides some Redis descriptor interfaces:\n\n* IRedisField\n* IRedisListField\n\nIt is exactly interfaces, because it requires user to override ``get_key_name``\nmethod to define key name for Redis. Here is an example of how it can be\nimplemented (can be found in `example.py `_).\n\n.. code-block:: python\n\n from redis import Redis\n from redistypes.descriptors import IRedisField, IRedisListField\n\n\n r_connection = Redis()\n\n\n class RedisField(IRedisField):\n def __init__(self, pickling=True):\n super(RedisField, self).__init__(\n redis_connection=r_connection,\n pickling=pickling\n )\n\n def get_key_name(self, instance):\n return ':'.join([\n instance.__class__.__name__, str(instance.pk), self.name\n ])\n\n\n class RedisListField(IRedisListField, RedisField):\n pass\n\n\n class Student:\n name = RedisField()\n subjects = RedisListField()\n\n def __init__(self, pk):\n self.pk = pk\n\nThe ``Student`` class defined above can do the following things:\n\n.. code-block:: pycon\n\n >>> from example import Student\n >>> s = Student(pk=1)\n >>> s.name = 'John Galt'\n >>> s.subjects = ['math', 'physics']\n >>> s.name\n John Galt\n >>> s.subjects\n RedisList: ['math', 'physics']\n >>> s.subjects.append('p.e.')\n >>> s.subjects\n RedisList: ['math', 'physics', 'p.e.']\n >>> # Values stored inside the Redis types are immutable!\n >>> s.subjects.append({'name': 'art', 'avg_score': 4.5})\n >>> s.subjects[3]\n {'avg_score': 4.5, 'name': 'art'}\n >>> s.subjects[3]['avg_score'] = 3\n >>> s.subjects[3]\n {'avg_score': 4.5, 'name': 'art'}\n\nWarning!\n--------\n\nAll values stored inside the Redis types are immutable! As the example above\nshows, an attempt to change the value stored in the dictionary inside the\nRedisList leads to nothing.\n\nRoadmap\n-------\n\n* Querying over the pipe\n* RedisDict\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vladimirshkoda/redis-bindings", "keywords": "redis,key-value,store,bindings,types,descriptor,orm", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "redistypes", "package_url": "https://pypi.org/project/redistypes/", "platform": "any", "project_url": "https://pypi.org/project/redistypes/", "project_urls": { "Homepage": "https://github.com/vladimirshkoda/redis-bindings" }, "release_url": "https://pypi.org/project/redistypes/0.2.0/", "requires_dist": [ "redis (>=3.0)" ], "requires_python": ">=3.5", "summary": "Redis native types for Python", "version": "0.2.0" }, "last_serial": 4935190, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b73baca74bcde31c493516a224a0e7c6", "sha256": "c94e17df72ce644bb7d3f616059bda92030d57db1047b7f1e0d898ffbadb9c4d" }, "downloads": -1, "filename": "redistypes-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b73baca74bcde31c493516a224a0e7c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5041, "upload_time": "2018-11-08T17:39:46", "url": "https://files.pythonhosted.org/packages/fc/62/6dd4850a525f682fe7315d120304064d70a45ee630ab37a611232fd04bf6/redistypes-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f5ae38dccceaddd3a5e9f78c76564f35", "sha256": "38ecc3796e12192c31b2fa7d4ebe3f66788412306137b03bd0beaed107f8d2a3" }, "downloads": -1, "filename": "redistypes-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f5ae38dccceaddd3a5e9f78c76564f35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6214, "upload_time": "2019-03-13T15:41:36", "url": "https://files.pythonhosted.org/packages/55/63/88531c600bcc875400758983bf30bf1e77c96ddf6fc895abf82b3dc8ebbb/redistypes-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b94b9e87cd0dd5811b451e608f90b57a", "sha256": "2c87966b5c0b27ffbc75e0d3acf97ee949929643ffae06d54d2fe69b4e18ea0d" }, "downloads": -1, "filename": "redistypes-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b94b9e87cd0dd5811b451e608f90b57a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5675, "upload_time": "2019-03-13T15:41:37", "url": "https://files.pythonhosted.org/packages/e5/32/e2137ab35ffea24fb74fc90b0b9d1d6b4d95e092c6ce1d0983057856971f/redistypes-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f5ae38dccceaddd3a5e9f78c76564f35", "sha256": "38ecc3796e12192c31b2fa7d4ebe3f66788412306137b03bd0beaed107f8d2a3" }, "downloads": -1, "filename": "redistypes-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f5ae38dccceaddd3a5e9f78c76564f35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6214, "upload_time": "2019-03-13T15:41:36", "url": "https://files.pythonhosted.org/packages/55/63/88531c600bcc875400758983bf30bf1e77c96ddf6fc895abf82b3dc8ebbb/redistypes-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b94b9e87cd0dd5811b451e608f90b57a", "sha256": "2c87966b5c0b27ffbc75e0d3acf97ee949929643ffae06d54d2fe69b4e18ea0d" }, "downloads": -1, "filename": "redistypes-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b94b9e87cd0dd5811b451e608f90b57a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5675, "upload_time": "2019-03-13T15:41:37", "url": "https://files.pythonhosted.org/packages/e5/32/e2137ab35ffea24fb74fc90b0b9d1d6b4d95e092c6ce1d0983057856971f/redistypes-0.2.0.tar.gz" } ] }