{ "info": { "author": "Jeong YunWon", "author_email": "jeong+cacheobj@youknowone.org", "bugtrack_url": null, "classifiers": [], "description": "Cache object\n~~~~~~~~~~~~\n\nCache object is general purpose object-property interface.\n\nNOTE: This library is under rebooting. Do not update from under 0.6.x if you mind continuous rewriting.\n\nExample\n-------\nThere is some pre-defined common types.\n\nin-memory, memcache and redis backends are included. And its common general interfaces too.\n\n >>> from cacheobj.redis import LocalRedisObject\n >>> class UserCache(LocalRedisObject):\n ... _properties = ['username', 'name']\n ...\n >>> user = UserCache(id=10)\n >>> print user.username\n None\n >>> user.username = 'username'\n >>> user.name = 'Real Name'\n >>> print user.username\n username\n >>> user10 = UserCache(id=10)\n >>> print user10.username\n username\n\nCache is stored with class name and given id.\n\n >>> print user.get('username', use_cache=True)\n username\n\nIf you don't want to hit backend again, there is use_cache option for local memory cache.\n\nFor non-local cache backend, try a easy generator.\n\n >>> from cacheobj.redis import get_redis_object\n >>> import redis\n >>> MyRedisObject = get_redis_object(redis.ConnectionPool()) # any connection pool\n >>> class MyUserCache(MyRedisObject):\n ... pass\n ...\n\nCustom Backend\n--------------\n\nUpper examples are shortcut for basic configuration.\n\n >>> from cacheobj import SimpleCacheObject\n >>> from cacheobj.backend.memcache import MemcacheBackend\n >>> def get_backend():\n ... return MemcacheBackend(['127.0.0.1:11211'])\n ...\n >>> class UserCache(SimpleCacheObject):\n ... _backend_generator = staticmethod(get_backend)\n ... _properties = ['username', 'name']\n ...\n\nThis object works as upper UserCache object.\nYou can put custom backend with this.\n\nSee source code to write a backend. It is just a few lines.\n\nComposite Example\n-----------------\n\nYou can composite multiple backends for an object.\n\n >>> from cacheobj import CacheObject\n >>> from cacheobj.backend.memory import MemoryBackend\n >>> from cacheobj.backend.memcache import MemcacheBackend\n >>> from cacheobj.backend.redis import RedisBackend\n >>>\n >>> memory = MemoryBackend()\n >>> memcache = MemcacheBackend()\n >>> redis = RedisBackend()\n >>>\n >>> class CompositeCache(CacheObject):\n ... _backends = {\n ... memory: ['mem1', 'mem2'],\n ... memcache: ['mc1', 'mc2'],\n ... redis: ['redis1', 'redis2'],\n ... }\n ...\n >>> c = CompositeCache()\n >>> c.mem1 # with backend memory\n >>> c.mc1 # with backend memcache\n >>> c.redis1 # with backend redis", "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/youknowone/cacheobj", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "cacheobj", "package_url": "https://pypi.org/project/cacheobj/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cacheobj/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/youknowone/cacheobj" }, "release_url": "https://pypi.org/project/cacheobj/0.9/", "requires_dist": null, "requires_python": null, "summary": "A cache interface with python object-property interface.", "version": "0.9" }, "last_serial": 833192, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3347f2c79713f42ff2639e46fbb3159e", "sha256": "297766d368d951e109ca03d85a2e6b6489dbe1f0a73d2dfadf1e2a54ac14ff50" }, "downloads": -1, "filename": "cacheobj-0.1.tar.gz", "has_sig": false, "md5_digest": "3347f2c79713f42ff2639e46fbb3159e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4199, "upload_time": "2013-01-15T19:51:23", "url": "https://files.pythonhosted.org/packages/34/2d/8412d71693034fca4ad19a75d4ab4a8c30e59c586d5081b61709a37f720b/cacheobj-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "d90961f53ff26d1a45d89d6c17ec50fb", "sha256": "56bcf38727682b6e35eaf551827b84c230fe4e237de687b3f6f17755681b9af4" }, "downloads": -1, "filename": "cacheobj-0.2.tar.gz", "has_sig": false, "md5_digest": "d90961f53ff26d1a45d89d6c17ec50fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3774, "upload_time": "2013-01-17T19:34:11", "url": "https://files.pythonhosted.org/packages/c4/92/0666bb1a9b80b2ce63505b60f272db6b3ebb5141a35a78a6e0662bfa314a/cacheobj-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "3eadbb52c37de4a726ff050568d84ff2", "sha256": "de99264925c18d515d8269fe9609f63c58695cea989fbb0e31b9afaac3a96348" }, "downloads": -1, "filename": "cacheobj-0.3.tar.gz", "has_sig": false, "md5_digest": "3eadbb52c37de4a726ff050568d84ff2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3815, "upload_time": "2013-01-22T18:43:13", "url": "https://files.pythonhosted.org/packages/af/f9/160d5f69b82f0572b8184a4d88484b4aeee1c16b042b84490277bce5dadd/cacheobj-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b99f73f487c66af79c8934bf00729d79", "sha256": "a67b92b8b4567016baad95a1a6ddfc888826b8bd0d59ad8bce10f891875cc144" }, "downloads": -1, "filename": "cacheobj-0.4.tar.gz", "has_sig": false, "md5_digest": "b99f73f487c66af79c8934bf00729d79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4068, "upload_time": "2013-01-23T05:51:17", "url": "https://files.pythonhosted.org/packages/a4/d2/9ef0a99449787dc2e607f9972d26f00110c6859d772a065a59b158c44fe1/cacheobj-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "2c820fd6ca34d6fccdba19a8bdc8dcce", "sha256": "6a8cef91833bdf7d9594c27a215634a2fae827b2efc6d6cc1dd320a8f3a481b1" }, "downloads": -1, "filename": "cacheobj-0.5.tar.gz", "has_sig": false, "md5_digest": "2c820fd6ca34d6fccdba19a8bdc8dcce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4235, "upload_time": "2013-03-08T04:10:11", "url": "https://files.pythonhosted.org/packages/3a/c6/7394d74482a13c9855c4d4ef4854588b63c5f3e15d24faa07746341041b9/cacheobj-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f6300c11622a98ad8f46ee36d2b37493", "sha256": "d32f94ee41924ba7355d2aacb8d790fea108698b21e453f722536a84060aa503" }, "downloads": -1, "filename": "cacheobj-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f6300c11622a98ad8f46ee36d2b37493", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4234, "upload_time": "2013-03-08T07:21:00", "url": "https://files.pythonhosted.org/packages/79/b0/0703230f376a7026a31a13dd74ecca9adfe9423fdc672ea26d9ab714615e/cacheobj-0.5.1.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "3ec146ae9c05d6f0f294d52229e30ca9", "sha256": "9c4975b6b7ec1c13d888943cea3a661daae1086529582fea79a49c241f7cd401" }, "downloads": -1, "filename": "cacheobj-0.6.tar.gz", "has_sig": false, "md5_digest": "3ec146ae9c05d6f0f294d52229e30ca9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4216, "upload_time": "2013-03-13T19:09:42", "url": "https://files.pythonhosted.org/packages/56/18/443a2269e15ef0efb467c5aee726a69a8f11145b747b7d7b0f8bdab31d77/cacheobj-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "2c76b425ecaef7b5aaac6cdfa40ace1b", "sha256": "61a8cac6180a8a4532daa367183eee51a6e7be5d8f5890a08764616ea8886280" }, "downloads": -1, "filename": "cacheobj-0.6.1.tar.gz", "has_sig": false, "md5_digest": "2c76b425ecaef7b5aaac6cdfa40ace1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4278, "upload_time": "2013-03-14T11:04:54", "url": "https://files.pythonhosted.org/packages/56/a2/0f2edb8159d6e6bee97c3894ee27abfb88eb2c9e2977a48a5ebc3336d236/cacheobj-0.6.1.tar.gz" } ], "0.6.2": [], "0.6.3": [ { "comment_text": "", "digests": { "md5": "159764aef4ea0e6a495289982c4b5a79", "sha256": "9b4b42c5a8b49110e6c07e69c8d472a6c9b04dfeb475c847b4be3679e66bb7ec" }, "downloads": -1, "filename": "cacheobj-0.6.3.tar.gz", "has_sig": false, "md5_digest": "159764aef4ea0e6a495289982c4b5a79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4301, "upload_time": "2013-03-19T04:24:24", "url": "https://files.pythonhosted.org/packages/09/33/98345c9ead8bdac730d33b93c9ce6054804943a0e898546c903a5459dd79/cacheobj-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "540c9a27f8c12270ded3715d271fab3a", "sha256": "f08b5a6cdfef9508594ac360e8a4a840fca6a3d67cc50782ff47fb971dc94b42" }, "downloads": -1, "filename": "cacheobj-0.6.4.tar.gz", "has_sig": false, "md5_digest": "540c9a27f8c12270ded3715d271fab3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4325, "upload_time": "2013-03-26T09:15:11", "url": "https://files.pythonhosted.org/packages/b1/d2/38ef4188843b3e8ca6387050dbc84f60ea43a993703c4b4f7fff4ebaa2df/cacheobj-0.6.4.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "449a3eeefcb19938fc8f8fe5ad9804fd", "sha256": "24c4595e27b0618d69d8591fa0025d4ced7f4223613ded30b041d8a8a5c196b2" }, "downloads": -1, "filename": "cacheobj-0.8.tar.gz", "has_sig": false, "md5_digest": "449a3eeefcb19938fc8f8fe5ad9804fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5487, "upload_time": "2013-05-08T13:41:19", "url": "https://files.pythonhosted.org/packages/bd/f8/2bf2306585f18908571d0fe06c052d666d0f026db969bb6af3eb56c14160/cacheobj-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "6af702aa8902d716dca59231d3e1a093", "sha256": "0f13f982e0ea23913caafcf913431a4073bd5eaeb8ba2c52704d5efa3b805097" }, "downloads": -1, "filename": "cacheobj-0.8.1.tar.gz", "has_sig": false, "md5_digest": "6af702aa8902d716dca59231d3e1a093", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5910, "upload_time": "2013-05-08T15:18:15", "url": "https://files.pythonhosted.org/packages/09/d9/d0125841cbd57af8625c9b5d761f0c3ca667e2653cec92eff3016e56f505/cacheobj-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "4849fbe63bd6335f141aedc9c625317f", "sha256": "70d4978104f9d465c85f37f3787d993fa080abfdd63c8cc1d8490f55ce5910f1" }, "downloads": -1, "filename": "cacheobj-0.8.2.tar.gz", "has_sig": false, "md5_digest": "4849fbe63bd6335f141aedc9c625317f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5920, "upload_time": "2013-05-22T04:26:17", "url": "https://files.pythonhosted.org/packages/32/17/d4ef0cad78f6184c761d1e1cccbc0488a3222ac0b3b090e65f262a734629/cacheobj-0.8.2.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "0cb98ddc2ac5b7b01bda9ae7395e9daa", "sha256": "1487e005a2e8c776a3bbec8f0b40dcd1ee2a10d0492d6e933ebec4f0e7154cdb" }, "downloads": -1, "filename": "cacheobj-0.9.tar.gz", "has_sig": false, "md5_digest": "0cb98ddc2ac5b7b01bda9ae7395e9daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6392, "upload_time": "2013-08-06T06:54:43", "url": "https://files.pythonhosted.org/packages/c4/94/7792ca1ef92483fed46871c42264721e2d614551df9e08273a06ffbee6d8/cacheobj-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0cb98ddc2ac5b7b01bda9ae7395e9daa", "sha256": "1487e005a2e8c776a3bbec8f0b40dcd1ee2a10d0492d6e933ebec4f0e7154cdb" }, "downloads": -1, "filename": "cacheobj-0.9.tar.gz", "has_sig": false, "md5_digest": "0cb98ddc2ac5b7b01bda9ae7395e9daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6392, "upload_time": "2013-08-06T06:54:43", "url": "https://files.pythonhosted.org/packages/c4/94/7792ca1ef92483fed46871c42264721e2d614551df9e08273a06ffbee6d8/cacheobj-0.9.tar.gz" } ] }