{ "info": { "author": "Vincent Pelletier", "author_email": "plr.vincent@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent" ], "description": "Python module using memcache as a lock server.\n\nDisclaimer: This code is inspired by unimr.memcachedlock . I thought I could\nwrite a simpler version of MemcachedRLock class to keep dependencies minimal\n(python builtins plus python-memcache), and enforcing support of gets/cas API.\n\nWARNING: little testing has been done so far. Better review & stress\nthis code before using it anywhere for the moment.\n\nExample usage:\nimport memcachelock\nimport memcache\n# python-memcached doesn't do cas correctly without cache_cas\nmc = memcache.Client(['127.0.0.1:11211'], cache_cas=True)\n# Non-reentrant lock\nmclock = memcachelock.Lock(mc, 'foo_resource')\n# Per-connection reentrant lock\nmcrlock = memcachelock.RLock(mc, 'foo_resource')\n# Per-connection and per-thread reentrant lock\nrmcrlock = memcachelock.ThreadRLock(mc, 'foo_resource')\n\nAll lock instances have the same API as thread.LockType (as of python\n2.7).\n'foo_resource' is any string usable as a memcache key identifying some\nresource this lock protects. In Zope world, it might be a traversable object's\npath, or a database identifier plus some database-scoped unique identifier...\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/vpelletier/python-memcachelock", "keywords": "memcache lock", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "memcachelock", "package_url": "https://pypi.org/project/memcachelock/", "platform": "any", "project_url": "https://pypi.org/project/memcachelock/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/vpelletier/python-memcachelock" }, "release_url": "https://pypi.org/project/memcachelock/0.4/", "requires_dist": null, "requires_python": null, "summary": "Use memcache as a lock server", "version": "0.4" }, "last_serial": 980557, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d8e1957bc742380f9672eadd0c7862b4", "sha256": "bfe33482c3432b064dd1ec98e04e5420bfdfadd037a344e6efaf39c862fa13f9" }, "downloads": -1, "filename": "memcachelock-0.1.tar.gz", "has_sig": false, "md5_digest": "d8e1957bc742380f9672eadd0c7862b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3999, "upload_time": "2011-10-18T23:43:35", "url": "https://files.pythonhosted.org/packages/25/e3/ba3c249ea08e120592a52e35e38c8f17429aea73d18cf4eeef93616dc788/memcachelock-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0180e3ecc086eeeaa235f191f05509a4", "sha256": "98882fca460c9554979a2724aee350801079bb2ea8f7ad3d90de832f467d408e" }, "downloads": -1, "filename": "memcachelock-0.2.tar.gz", "has_sig": false, "md5_digest": "0180e3ecc086eeeaa235f191f05509a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4679, "upload_time": "2012-01-25T23:12:47", "url": "https://files.pythonhosted.org/packages/79/67/8283f1546fdd525c7c8608c321505a5f0bc2584b1c7acf55ed1e0182ffec/memcachelock-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "69523784c09c7483fc621584fef1053a", "sha256": "15e313351578a063fd5d07d1e10be96d3a6cd157a1401022b41dac48ac53fbc6" }, "downloads": -1, "filename": "memcachelock-0.3.tar.gz", "has_sig": false, "md5_digest": "69523784c09c7483fc621584fef1053a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4805, "upload_time": "2013-02-24T12:16:14", "url": "https://files.pythonhosted.org/packages/b2/11/29cdcbe086d043ff025a1ae47f20914b5d094cc432ff5da1d7edf7c25143/memcachelock-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5a478dae2396d761706566422881b120", "sha256": "6d04ec9dd98eb9aefbd867dc71f57ce2926219be9d25797b0420742e201f6a77" }, "downloads": -1, "filename": "memcachelock-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5a478dae2396d761706566422881b120", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4792, "upload_time": "2013-12-05T07:31:52", "url": "https://files.pythonhosted.org/packages/46/fe/bcfec46cfda6853e387a0dd4cc43510d400c45c403a444c9992b5a55e42c/memcachelock-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "56cfb5ebfd019e5ba03744fe46e34c5c", "sha256": "3996a418c9ab115779bb59e53c82cb3a822d5d1726002014404d030b93bfa419" }, "downloads": -1, "filename": "memcachelock-0.4.tar.gz", "has_sig": false, "md5_digest": "56cfb5ebfd019e5ba03744fe46e34c5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6241, "upload_time": "2014-01-24T17:20:03", "url": "https://files.pythonhosted.org/packages/1c/79/f5b92afd41ef9ef6f71e0ade6829c2f6dcf847276f6dc4566b123c672c89/memcachelock-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "56cfb5ebfd019e5ba03744fe46e34c5c", "sha256": "3996a418c9ab115779bb59e53c82cb3a822d5d1726002014404d030b93bfa419" }, "downloads": -1, "filename": "memcachelock-0.4.tar.gz", "has_sig": false, "md5_digest": "56cfb5ebfd019e5ba03744fe46e34c5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6241, "upload_time": "2014-01-24T17:20:03", "url": "https://files.pythonhosted.org/packages/1c/79/f5b92afd41ef9ef6f71e0ade6829c2f6dcf847276f6dc4566b123c672c89/memcachelock-0.4.tar.gz" } ] }