{ "info": { "author": "Michael Rigoni", "author_email": "michael.rigoni@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "serialized-redis\n================\n\nRedis python interface that serializes all values using json, pickle, msgpack or a custom serializer.\n\n.. image:: https://secure.travis-ci.org/michael-mri/serialized-redis.svg?branch=master\n :target: http://travis-ci.org/michael-mri/serialized-redis\n\n.. image:: https://codecov.io/gh/michael-mri/serialized-redis/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/michael-mri/serialized-redis\n\nGetting Started\n---------------\n\nInstallation\n~~~~~~~~~~~~\n\n::\n\n pip install serialized-redis-interface\n\nUsage\n~~~~~\n\n.. code-block:: pycon\n\n >>> import serialized_redis\n\n >>> r = serialized_redis.JSONSerializedRedis(host='localhost', port=6379, db=0)\n >>> r.set('foo', { 'test': 'dict' })\n True\n >>> r.get('foo')\n {'test': 'dict'}\n\n >>> r = serialized_redis.PickleSerializedRedis(host='localhost', port=6379, db=0)\n >>> r.set('foo', { 'test': 'dict' })\n True\n >>> r.get('foo')\n {'test': 'dict'}\n\n >>> r = serialized_redis.MsgpackSerializedRedis(host='localhost', port=6379, db=0)\n >>> r.set('foo', { 'test': 'dict' })\n True\n >>> r.get('foo')\n {'test': 'dict'}\n\n``serialized-redis`` extends `redis-py `_ and uses the same interface.\n\nMost commands, Piplines and PubSub are supported and take care of serializing and deserializing values.\n\n``msgpack`` must be installed in order to use ``MsgpackSerializedRedis``.\n\nAll strings are python str.\n\nLimitations\n-----------\n\nAs values are serialized, Redis operations that manipulate or extract data from values are not supported.\n\n* SORT commands may not return correct order depending on the serializer used.\n* ZSCAN and SSCAN MATCH option will only work for exact match.\n* STRLENGTH and HSTRLENGTH will return the length of the serialized value.\n* all lexicographical commands like ZLEXCOUNT, ZREMRANGEBYLEX and ZREVRANGEBYLEX are not supported\n* INCR is only supported with JSON serializer\n* fields of Redis hashes are not serialized\n\nExtra Methods\n-------------\n\n\n* ``smembers_as_list``, ``sdiff_as_list``, ``sinter_as_list``, ``sunion_as_list`` can be used when members of the redis\n set may not be hashable once deserialized.\n\n .. code-block:: pycon\n\n >>> r = serialized_redis.JSONSerializedRedis() \n >>> r.sadd('myset', {'dict': 1})\n 1\n >>> r.smembers('myset')\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"/home/michael/workspace/Origin_Nexus/serialized_redis/serialized_redis/__init__.py\", line 176, in smembers\n return set(super().smembers(*args, **kwargs))\n TypeError: unhashable type: 'dict'\n >>> r.smembers_as_list('myset')\n [{'dict': 1}]\n\n* ``smart_get`` and ``smart_set`` can be used to retrieve and store python structure with their redis counterpart:\n\n * python ``list`` as redis LIST\n * python ``set`` as redis SET\n * python ``dict`` as redis HASH, fields will not be (de)serialized.\n\nCustom Serializer\n-----------------\n\nYou can use your own seriliazing and deserializing functions:\n\n\n.. code-block:: pycon\n\n >>> r = serialized_redis.SerializedRedis(serialization_fn=my_serializer, deserialization_fn=my_deserializer)\n\nIf your deserializer function expects python 3 strings instead of bytes, you can add ``decode_responses=True`` parameter.\n\nDecoding bytes to str when required is the responsability of the deserialization function.\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/michael-mri/serialized-redis", "keywords": "Redis,key-value store,json,pickle,msgpack", "license": "MIT", "maintainer": "Michael Rigoni", "maintainer_email": "michael.rigoni@gmail.com", "name": "serialized-redis-interface", "package_url": "https://pypi.org/project/serialized-redis-interface/", "platform": "", "project_url": "https://pypi.org/project/serialized-redis-interface/", "project_urls": { "Homepage": "https://github.com/michael-mri/serialized-redis" }, "release_url": "https://pypi.org/project/serialized-redis-interface/0.3.1/", "requires_dist": [ "redis (>3)", "msgpack ; extra == 'msgpack'" ], "requires_python": ">=3", "summary": "Redis python interface that serializes all values using json, pickle, msgpack or a custom serializer.", "version": "0.3.1" }, "last_serial": 4850980, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "dbd75db77f9537c8fda4cfd3150d7956", "sha256": "73b0dba050709b72c7ef469b274f55d8c699bd537d1e5615deee8d0ff26629f0" }, "downloads": -1, "filename": "serialized_redis_interface-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dbd75db77f9537c8fda4cfd3150d7956", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 8084, "upload_time": "2018-01-24T18:33:49", "url": "https://files.pythonhosted.org/packages/8f/96/ed6695d1b74a63d458420c3600438375780d9fe2c952470770b47187f31d/serialized_redis_interface-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad9dd3f3235d4683c08ce71486d2b10f", "sha256": "f6cd240657cbf84144d3439ad7451a00f1e32b5adefb23de9c4746aac53afea1" }, "downloads": -1, "filename": "serialized-redis-interface-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ad9dd3f3235d4683c08ce71486d2b10f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 18344, "upload_time": "2018-01-24T18:33:52", "url": "https://files.pythonhosted.org/packages/ce/66/ddc75b2f35b73cc983c08f209f15a180d8229841eae43c47410fd07e8ca7/serialized-redis-interface-0.1.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f88ade55ce5cdb1ea6b852483da6ca5e", "sha256": "35ddbcbaf6d87ae891dcc2af62e131dd8f754f6f06802113e7116f65a53eb5c8" }, "downloads": -1, "filename": "serialized_redis_interface-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f88ade55ce5cdb1ea6b852483da6ca5e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 9606, "upload_time": "2018-01-25T15:46:12", "url": "https://files.pythonhosted.org/packages/0b/fb/0025e9c7e45c7603a767d533024c41aaaf66b01384ca15559bc1aa9294b4/serialized_redis_interface-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5fa72d806cad510b6826cf9b70aff9bb", "sha256": "5fac80660ef0c8f99a6a6d54b8efc842bb0cf11b7d8629b50d5a154ce1eb4719" }, "downloads": -1, "filename": "serialized-redis-interface-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5fa72d806cad510b6826cf9b70aff9bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 19306, "upload_time": "2018-01-25T15:46:14", "url": "https://files.pythonhosted.org/packages/aa/51/f5bbe9de59bc57aa1a9f2291f1f1a243708bfcfa19552a08002ce6870a6f/serialized-redis-interface-0.2.1.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "0f32a5725bd3a377dfd306422c6d208b", "sha256": "b87a0ebfa4f830091ca2b23805917fe90f412068998d0635c8fca6c0cbf6077b" }, "downloads": -1, "filename": "serialized_redis_interface-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0f32a5725bd3a377dfd306422c6d208b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 7809, "upload_time": "2019-02-21T16:50:26", "url": "https://files.pythonhosted.org/packages/dd/da/e2eb88e200f855d485c18b108fddeacd7033396617b8bfe4df40a019bcad/serialized_redis_interface-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5633ea954874c0109a837bc7463f9627", "sha256": "3767257f36981775fb9ff828dfb628b0b55a76a26bed569fd18ede88bc2e1a0c" }, "downloads": -1, "filename": "serialized-redis-interface-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5633ea954874c0109a837bc7463f9627", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 19763, "upload_time": "2019-02-21T16:50:28", "url": "https://files.pythonhosted.org/packages/03/91/e8433f5bda98e3a8c2c6829cb8c1e285d30ab8a1345189c85df600e7f708/serialized-redis-interface-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f32a5725bd3a377dfd306422c6d208b", "sha256": "b87a0ebfa4f830091ca2b23805917fe90f412068998d0635c8fca6c0cbf6077b" }, "downloads": -1, "filename": "serialized_redis_interface-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0f32a5725bd3a377dfd306422c6d208b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 7809, "upload_time": "2019-02-21T16:50:26", "url": "https://files.pythonhosted.org/packages/dd/da/e2eb88e200f855d485c18b108fddeacd7033396617b8bfe4df40a019bcad/serialized_redis_interface-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5633ea954874c0109a837bc7463f9627", "sha256": "3767257f36981775fb9ff828dfb628b0b55a76a26bed569fd18ede88bc2e1a0c" }, "downloads": -1, "filename": "serialized-redis-interface-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5633ea954874c0109a837bc7463f9627", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 19763, "upload_time": "2019-02-21T16:50:28", "url": "https://files.pythonhosted.org/packages/03/91/e8433f5bda98e3a8c2c6829cb8c1e285d30ab8a1345189c85df600e7f708/serialized-redis-interface-0.3.1.tar.gz" } ] }