{ "info": { "author": "Michal Charemza", "author_email": "michal@charemza.name", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# fifolock [![CircleCI](https://circleci.com/gh/michalc/fifolock.svg?style=svg)](https://circleci.com/gh/michalc/fifolock) [![Maintainability](https://api.codeclimate.com/v1/badges/9f7c8caf9b66ad2175e4/maintainability)](https://codeclimate.com/github/michalc/fifolock/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/9f7c8caf9b66ad2175e4/test_coverage)](https://codeclimate.com/github/michalc/fifolock/test_coverage)\n\nA flexible low-level tool to make synchronisation primitives in asyncio Python. As the name suggests, locks are granted strictly in the order requested: first-in-first-out; and are not reentrant.\n\n\n## Installation\n\n```bash\npip install fifolock\n```\n\n\n## Recipes\n\n### Mutex (exclusive) lock\n\n```python\nimport asyncio\nfrom fifolock import FifoLock\n\n\nclass Mutex(asyncio.Future):\n @staticmethod\n def is_compatible(holds):\n return not holds[Mutex]\n\n\nlock = FifoLock()\n\nasync def access():\n async with lock(Mutex):\n # access resource\n```\n\n### Read/write (shared/exclusive) lock\n\n```python\nimport asyncio\nfrom fifolock import FifoLock\n\n\nclass Read(asyncio.Future):\n @staticmethod\n def is_compatible(holds):\n return not holds[Write]\n\nclass Write(asyncio.Future):\n @staticmethod\n def is_compatible(holds):\n return not holds[Read] and not holds[Write]\n\n\nlock = FifoLock()\n\nasync def read():\n async with lock(Read):\n # shared access\n\nasync def write():\n async with lock(Write):\n # exclusive access\n```\n\n### Semaphore\n\n```python\nimport asyncio\nfrom fifolock import FifoLock\n\n\nclass SemaphoreBase(asyncio.Future):\n @classmethod\n def is_compatible(cls, holds):\n return holds[cls] < cls.size\n\n\nlock = FifoLock()\nSemaphore = type('Semaphore', (SemaphoreBase, ), {'size': 3})\n\nasync def access():\n async with lock(Semaphore):\n # at most 3 concurrent accesses\n```\n\n\n## Running tests\n\n```bash\npython setup.py test\n```\n\n\n## Design choices\n\nEach mode of the lock is a subclass of `asyncio.Future`. This could be seen as a leak some of the internals of `FifoLock`, but it allows for clear client and internal code.\n\n- Classes are hashable, so each can be a key in the `holds` dictionary passed to the `is_compatible` method. This allows the compatibility conditions to be read clearly in the client code, and the `holds` dictionary to be mutated clearly internally.\n\n- An instance of it, created inside `FifoLock`, is _both_ the object awaited upon, and stored in a deque with a way of accessing its `is_compatible` method.\n\n- The fact it's a class and not an instance of a class also makes clear it is to store no state, merely configuration.\n\nA downside is that for configurable modes, such as for a semaphore, the client must dynamically create a class: this is not a frequently-used pattern.\n\nThe fact that the lock is _not_ reentrant is deliberate: the class of algorithms this is designed for does not require this. This would add unnecessary complexity, and presumably be slower.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/michalc/fifolock", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fifolock", "package_url": "https://pypi.org/project/fifolock/", "platform": "", "project_url": "https://pypi.org/project/fifolock/", "project_urls": { "Homepage": "https://github.com/michalc/fifolock" }, "release_url": "https://pypi.org/project/fifolock/0.0.20/", "requires_dist": null, "requires_python": ">=3.5", "summary": "A flexible low-level tool to make synchronisation primitives in asyncio Python", "version": "0.0.20" }, "last_serial": 5218942, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "de0fc3cc5d4bce3f451ef9188cbbcf21", "sha256": "03f83d25cf88a73436cff0580de99a632b1e5048493dedc311a866e72fd34a8a" }, "downloads": -1, "filename": "fifolock-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "de0fc3cc5d4bce3f451ef9188cbbcf21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 2573, "upload_time": "2018-11-23T21:20:55", "url": "https://files.pythonhosted.org/packages/1f/8b/e3e05120e05e7fa78c2c8a704823ea7306541460b7f6e2d59a0c0ef6a926/fifolock-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "932a47a68c58ae4027bde26879d52f38", "sha256": "1e68956f86401b3eb6e174a83c26923d2941dd08e693a669346a9c634917c549" }, "downloads": -1, "filename": "fifolock-0.0.1.tar.gz", "has_sig": false, "md5_digest": "932a47a68c58ae4027bde26879d52f38", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 1428, "upload_time": "2018-11-23T21:20:57", "url": "https://files.pythonhosted.org/packages/cd/a8/5d9e812fc811a1e1ecdc516cf6075f14bc314ca56f95208a950ce37c655c/fifolock-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "2804691bdce4931dac60c4e6225ecbc6", "sha256": "b29d13ceabe1091dfdef45fd51ad63ecc41d9c9bc1cd084ba205a48febf83509" }, "downloads": -1, "filename": "fifolock-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "2804691bdce4931dac60c4e6225ecbc6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3625, "upload_time": "2018-11-25T08:54:02", "url": "https://files.pythonhosted.org/packages/0e/41/73e8ee774808d9ac4d0b1ecca0725e39f9f686545263929b6c0d371d5973/fifolock-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7dea624cba7a4f3f7177f5b896f71ad2", "sha256": "52a6a2674bed078f2a04ebe95a6a3c5da0a042244067b18eef2946d8d6cde97f" }, "downloads": -1, "filename": "fifolock-0.0.10.tar.gz", "has_sig": false, "md5_digest": "7dea624cba7a4f3f7177f5b896f71ad2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2744, "upload_time": "2018-11-25T08:54:04", "url": "https://files.pythonhosted.org/packages/f8/dd/5d9da1f5bea83fe4933c0dcfe6e1b8a18022a92a9f1770f27b771a76d529/fifolock-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "0c4ca8aab4f859b464b07f3f6437c659", "sha256": "76d421787bf1a211d990dc545f5701f220f492bd7a38373a2e9b5a9f8b0a3299" }, "downloads": -1, "filename": "fifolock-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "0c4ca8aab4f859b464b07f3f6437c659", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3623, "upload_time": "2018-11-26T20:07:43", "url": "https://files.pythonhosted.org/packages/36/13/f6e303ab045b208ee4a7a8c37f10c58160ff8535e5559cfdfcc1c76aa059/fifolock-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df241aaa3aa87a48623de11241da8ac4", "sha256": "3139927074057976cd366b548f7c072f062a03b72d2db2bc26d43c84ab1ca6f2" }, "downloads": -1, "filename": "fifolock-0.0.11.tar.gz", "has_sig": false, "md5_digest": "df241aaa3aa87a48623de11241da8ac4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2746, "upload_time": "2018-11-26T20:07:44", "url": "https://files.pythonhosted.org/packages/31/be/672f328cbd6cbfa9cd66fd86354fbc9c3b5f9a75af12b4b4a7ff2d09c016/fifolock-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "1e1ad7922e32ffe7d491b961402e4fdc", "sha256": "fd216443852abca8f1884149808c747eebe650fb7cfd2425c4b4fdbf20367a4d" }, "downloads": -1, "filename": "fifolock-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "1e1ad7922e32ffe7d491b961402e4fdc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3624, "upload_time": "2018-11-26T20:31:28", "url": "https://files.pythonhosted.org/packages/6c/c2/30bee3cbe9274e91df337b9d6a1d8f397f5f6ac2ff85092014fc6bcf4da5/fifolock-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0e6fc474957afb310525cd75293b17e", "sha256": "3cc307d67154b6279738e2da0eccbb3cab549e6749b0ba0c865252078eddfa30" }, "downloads": -1, "filename": "fifolock-0.0.12.tar.gz", "has_sig": false, "md5_digest": "b0e6fc474957afb310525cd75293b17e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2746, "upload_time": "2018-11-26T20:31:30", "url": "https://files.pythonhosted.org/packages/47/63/1c484f2dbef9624199804c28a53c27228e9326bb167b20fbe9b480430652/fifolock-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "47d0a482a25ac455464519a614b0bac8", "sha256": "f57b99612a0a80fc093a3d23c1079d954ecca6a2cf728b883f8ed8825449928b" }, "downloads": -1, "filename": "fifolock-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "47d0a482a25ac455464519a614b0bac8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3662, "upload_time": "2018-11-26T22:18:47", "url": "https://files.pythonhosted.org/packages/be/ef/b30850e6f844de2f1118d62bf39968bf745258e1b4fa4a0580c499c3ef9c/fifolock-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8df80ca219261d699c5323848b38c11a", "sha256": "5e89096be9831e9002c46166a3b67c15a2d90c4de5ed260682da80160a810539" }, "downloads": -1, "filename": "fifolock-0.0.13.tar.gz", "has_sig": false, "md5_digest": "8df80ca219261d699c5323848b38c11a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2781, "upload_time": "2018-11-26T22:18:48", "url": "https://files.pythonhosted.org/packages/3e/d7/1bcf58ff4d693576e2930acb641a98076672e3b3aca7d62f83abcf56777c/fifolock-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "d587554346acbb4eef82a84871d290b0", "sha256": "dc45d7f1eaaafad639759af1615bd103cce247ec54edc421578c63b6826d344c" }, "downloads": -1, "filename": "fifolock-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "d587554346acbb4eef82a84871d290b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3635, "upload_time": "2018-11-26T23:42:12", "url": "https://files.pythonhosted.org/packages/39/eb/6182f13e22c21bab14e7fa9a1460990ea3744cfc7e3725c84aa436e45791/fifolock-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "814504091919755c90b3d33554a8547d", "sha256": "ccee9182a8aacec65159ea57289815db8e6a0258242989f9f1b37092d4e1b02e" }, "downloads": -1, "filename": "fifolock-0.0.14.tar.gz", "has_sig": false, "md5_digest": "814504091919755c90b3d33554a8547d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2749, "upload_time": "2018-11-26T23:42:14", "url": "https://files.pythonhosted.org/packages/b8/ac/81a0bd6af1e5c64c3b6fb3669e362ab5021cb729c913216e78cf64aef94e/fifolock-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "ae7527772b5910226c6b22c9473f22dc", "sha256": "d869a8116ff4a46742cb96f5c9502fae30a5da8c783804fe837bddf04fa950a2" }, "downloads": -1, "filename": "fifolock-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "ae7527772b5910226c6b22c9473f22dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3646, "upload_time": "2018-11-27T07:59:24", "url": "https://files.pythonhosted.org/packages/36/bc/09f28c7aa666c759e551dd60217b0940db5700701a8a15a20f9ad87a3c1e/fifolock-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60dd4aeb78d7e91517e3912ca38286a0", "sha256": "aae16e73d6f8dcda21109d426f3ff48b96eade607aea9aa5cdccbf9ee55f2255" }, "downloads": -1, "filename": "fifolock-0.0.15.tar.gz", "has_sig": false, "md5_digest": "60dd4aeb78d7e91517e3912ca38286a0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2769, "upload_time": "2018-11-27T07:59:25", "url": "https://files.pythonhosted.org/packages/24/6e/f530aa4e5a53b9682d0792638e4535b05d294bf650ef539d4b93dc9e184e/fifolock-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "e0bbc1c360e7162ac19c3a95d18a9925", "sha256": "d22efd2239b86284994f1b3eed75a36193dcdcb0f71fa4f74a0d79112613c0a6" }, "downloads": -1, "filename": "fifolock-0.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "e0bbc1c360e7162ac19c3a95d18a9925", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3645, "upload_time": "2018-11-27T08:10:02", "url": "https://files.pythonhosted.org/packages/f6/a1/016d7d18bdfff921c82c904443b1d47cb541f4157a067ff7e83e7ec4403e/fifolock-0.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f693c5abf669803dfd02658312edac8", "sha256": "a234c76914affe4567c5206b4acefe19f840caee9a5d42d16000b498e0356b8b" }, "downloads": -1, "filename": "fifolock-0.0.16.tar.gz", "has_sig": false, "md5_digest": "7f693c5abf669803dfd02658312edac8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2766, "upload_time": "2018-11-27T08:10:04", "url": "https://files.pythonhosted.org/packages/3e/8e/58162ed69ac2283309f51886fed5d8456565bd0bb14d1b71823ee4f7edb3/fifolock-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "2e2d4a3ba0a962617dadeb02307bc965", "sha256": "2d976b830467f6ab2ed36749b2140a2715b3ba19fbc5c16fd31744b023c08983" }, "downloads": -1, "filename": "fifolock-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "2e2d4a3ba0a962617dadeb02307bc965", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3645, "upload_time": "2018-11-27T08:21:10", "url": "https://files.pythonhosted.org/packages/43/65/a9a74c428c283f2a5f98f038837a2b7b0e1b8fc1e94e6f4a72f9f6c8fa0b/fifolock-0.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82675154c0937503729276ed1663c99f", "sha256": "430077737348eed6f0a4af02d5b5cba876443a620c99a052c5384e523cca86f4" }, "downloads": -1, "filename": "fifolock-0.0.17.tar.gz", "has_sig": false, "md5_digest": "82675154c0937503729276ed1663c99f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2764, "upload_time": "2018-11-27T08:21:12", "url": "https://files.pythonhosted.org/packages/c2/65/685186334e6b25dad8d727f7ae6149141a1c30a55c3eb4913349ac1e4339/fifolock-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "a0aa7e44bf55c9010dd1ee67dea88cf6", "sha256": "ca693d07114e8740ddc2ea30fad08c96222918192bc410c0705643c07167c31e" }, "downloads": -1, "filename": "fifolock-0.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "a0aa7e44bf55c9010dd1ee67dea88cf6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3645, "upload_time": "2018-11-27T08:30:36", "url": "https://files.pythonhosted.org/packages/e7/a7/7c147e9562b2d3b79021e21ef1db7a4762bc03790023e9f66aaed57782a7/fifolock-0.0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8444a2fb44e99c06d19020f2a61b3c33", "sha256": "8b4250f8e6c48d95767e8b61a88351602fd98354984dadc0e0a3ef3bad70b947" }, "downloads": -1, "filename": "fifolock-0.0.18.tar.gz", "has_sig": false, "md5_digest": "8444a2fb44e99c06d19020f2a61b3c33", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2771, "upload_time": "2018-11-27T08:30:38", "url": "https://files.pythonhosted.org/packages/cb/6e/9b9fd12d556217ee64ef7bdea4848c00a2b3d9c44a958e95c00213fd542e/fifolock-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "b1df33ecc931e1e017a8a9848d103967", "sha256": "34704e1d8ab233337ae5795fd9b9476acd19bb60c598209bd3ca789cbe2232e4" }, "downloads": -1, "filename": "fifolock-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "b1df33ecc931e1e017a8a9848d103967", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3753, "upload_time": "2019-05-02T19:22:30", "url": "https://files.pythonhosted.org/packages/76/12/596e7ad6c95d0d755cb90cf9e2f321ecff70d4188deb32004c8fc1266dd1/fifolock-0.0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebb649068ac5e8b21a807e3417e68de0", "sha256": "1317113e99d61c4309a030e13ac237ab4a7ca417675705c6a211a0480e82724f" }, "downloads": -1, "filename": "fifolock-0.0.19.tar.gz", "has_sig": false, "md5_digest": "ebb649068ac5e8b21a807e3417e68de0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2870, "upload_time": "2019-05-02T19:22:31", "url": "https://files.pythonhosted.org/packages/fa/c6/f69ffd7581a99a6c1fc60f6cb14e3e0fee5ee38a1fb8fdbb331ca9e1e93d/fifolock-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "6412a6d9af6b3e843090d46c41374028", "sha256": "d21bfe3a15c641d37e268ddccb8e7cf592ece7125478b4856e2ea0d3e165366b" }, "downloads": -1, "filename": "fifolock-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6412a6d9af6b3e843090d46c41374028", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 2977, "upload_time": "2018-11-23T22:07:14", "url": "https://files.pythonhosted.org/packages/32/f8/32da6f8c0b0cc577344ede7c1929e4952b1e28a3f0f4dca62ecefc3d025e/fifolock-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4c85f837a725a29741e43eb6a686dc1", "sha256": "9b50b6f76fc83d8a92d13d5590ef655f0b69fd1a7c614b5241b421c3734e76e1" }, "downloads": -1, "filename": "fifolock-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f4c85f837a725a29741e43eb6a686dc1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 1976, "upload_time": "2018-11-23T22:07:16", "url": "https://files.pythonhosted.org/packages/c1/d6/6c70f601cca6448537593640db6af3f628eae40bedf412704cba5b6aef52/fifolock-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "ead5a28cdb3d6c608a3689cc4f493331", "sha256": "48ce70e50ceecd799e0346b6a92bb1d0301fd6b9ebeb3a2b3383e0ca7c3e73f5" }, "downloads": -1, "filename": "fifolock-0.0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "ead5a28cdb3d6c608a3689cc4f493331", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3753, "upload_time": "2019-05-02T19:34:39", "url": "https://files.pythonhosted.org/packages/57/4b/9496f5c90796fb56217cf9f6fde868eb19d6788fb5c2ea5d5fa97db36579/fifolock-0.0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "788f802285eeee5e1a48e8b94880909f", "sha256": "c38ac427605d87936a6131524aa2a1ef2964f12892e76c1749b136b9e53a88f9" }, "downloads": -1, "filename": "fifolock-0.0.20.tar.gz", "has_sig": false, "md5_digest": "788f802285eeee5e1a48e8b94880909f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2874, "upload_time": "2019-05-02T19:34:41", "url": "https://files.pythonhosted.org/packages/a5/d1/e7272af6b1b956460ce2ecde67522cf8715832d1c3f63f97d3bba318329f/fifolock-0.0.20.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a74c42d7df1753f3a43da516e7048dcd", "sha256": "1be390417148b0c21417a1235e8f88038cc8e7f03ddfdb351523e44de50b4041" }, "downloads": -1, "filename": "fifolock-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a74c42d7df1753f3a43da516e7048dcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3377, "upload_time": "2018-11-23T22:53:41", "url": "https://files.pythonhosted.org/packages/6d/f1/349537778def8bfef86e73ef720223113e0431de792335b80a2ebe18ab57/fifolock-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af592846d014f56fdee7e5c462c59ee0", "sha256": "f2a655d0ec77093f42da87d23b191540dc0a193d38035fb0aa6677a24d9e336d" }, "downloads": -1, "filename": "fifolock-0.0.3.tar.gz", "has_sig": false, "md5_digest": "af592846d014f56fdee7e5c462c59ee0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2458, "upload_time": "2018-11-23T22:53:42", "url": "https://files.pythonhosted.org/packages/c1/63/ed9ee552d36542784068b9dbb5b6843050bc72653f12b3c5e1f5d7588fbf/fifolock-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "2cf620ce38fa37206a13cd36bb9a8967", "sha256": "fad5601d9aac106a06e342672ab1f070ebf00cc693ce602c42110a96f2f7cc26" }, "downloads": -1, "filename": "fifolock-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2cf620ce38fa37206a13cd36bb9a8967", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3379, "upload_time": "2018-11-23T22:55:34", "url": "https://files.pythonhosted.org/packages/be/a0/577ff3bad97ec81f52d5473ba29ed96df457c1589b92d73756b77131accc/fifolock-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3961db839556c45562e88e231ca9b75", "sha256": "e62b17bea314b88e0de19fe9d9df08f5c650335832486573294bbf4b4e697f06" }, "downloads": -1, "filename": "fifolock-0.0.4.tar.gz", "has_sig": false, "md5_digest": "a3961db839556c45562e88e231ca9b75", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2460, "upload_time": "2018-11-23T22:55:36", "url": "https://files.pythonhosted.org/packages/2c/bd/b732d6ac48cae22609217548f727adec81606358a029c5da2eaf50a575a8/fifolock-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "9a275da2534239d3461d74ed025b84ed", "sha256": "7020ab8c9481a767d4b020fcaa4ecd8d21236db14b2ebfa9af3e971a2e044e2c" }, "downloads": -1, "filename": "fifolock-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9a275da2534239d3461d74ed025b84ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3532, "upload_time": "2018-11-24T11:22:22", "url": "https://files.pythonhosted.org/packages/50/c5/98cc605442e6ffd0309ebbe07e797b8f6c8506a8396b94a050f8b6ae68b0/fifolock-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd6f97e684759be7fa000be28dc56479", "sha256": "83d2d8a7dacc875b51a21cbf5456f06ffa4a296ad6c48d6c265b0430616d8cd0" }, "downloads": -1, "filename": "fifolock-0.0.5.tar.gz", "has_sig": false, "md5_digest": "fd6f97e684759be7fa000be28dc56479", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2643, "upload_time": "2018-11-24T11:22:23", "url": "https://files.pythonhosted.org/packages/d0/7b/78ae7b34852136459eeac1041047ffbcdb2298730e5495a3deeeae334ab2/fifolock-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a93e5ddbeab3b935984617753b78d32b", "sha256": "50e6ef1d565d11102006913db58ff56baf14de1273670dfbe60829b2bc4ba810" }, "downloads": -1, "filename": "fifolock-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a93e5ddbeab3b935984617753b78d32b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3518, "upload_time": "2018-11-24T12:31:34", "url": "https://files.pythonhosted.org/packages/3e/dd/6bc3226ac25a87db1e3c0c4e1bd6a865ce8ea47fd2249d17f8970e5f81c0/fifolock-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07f16ae4b62a628630e8166f87524e16", "sha256": "91742b40ac34b18cec3fc174dfe3d94844f863e11fe3bf891ef07c590b111f14" }, "downloads": -1, "filename": "fifolock-0.0.6.tar.gz", "has_sig": false, "md5_digest": "07f16ae4b62a628630e8166f87524e16", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2630, "upload_time": "2018-11-24T12:31:35", "url": "https://files.pythonhosted.org/packages/db/a2/8727ce035881459fa7a9888e8e9a956b48ac2a2bbfb586eff894c2d7fbe6/fifolock-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "ef9667e776ffe38eb36d7bac106bd038", "sha256": "ffe062a9e109f522865cffdef49c9e5d54e8e17c680b54bf4e76950902fecc5a" }, "downloads": -1, "filename": "fifolock-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ef9667e776ffe38eb36d7bac106bd038", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3517, "upload_time": "2018-11-24T16:22:01", "url": "https://files.pythonhosted.org/packages/14/92/1cc41b8b52450e8120abfad437d759899e0008b640f47d9738a63d3b1a85/fifolock-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87fbc2360df78f42d9310f2b61576c1c", "sha256": "488b21f96c5dd0d0287fd56502d646f2a59d42a91aa7f0a4c039d4ee84ad618e" }, "downloads": -1, "filename": "fifolock-0.0.7.tar.gz", "has_sig": false, "md5_digest": "87fbc2360df78f42d9310f2b61576c1c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2633, "upload_time": "2018-11-24T16:22:02", "url": "https://files.pythonhosted.org/packages/f2/db/227e255b66e8f6c9b129508784a591be30707b2a05869d6530d4310c7878/fifolock-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "010c16611b1dae08998e00914759de5a", "sha256": "df9cee8bb38b98e24b5f8694c755e1e04b6874de951edadb4f16b415128649b3" }, "downloads": -1, "filename": "fifolock-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "010c16611b1dae08998e00914759de5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3623, "upload_time": "2018-11-25T08:42:43", "url": "https://files.pythonhosted.org/packages/5c/73/637c1afdf3c3ccfcc354bf7d87f30d18c320772ebe0548e0dd5d5b4895ca/fifolock-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5da725255890feccd36d5841ed22fec4", "sha256": "ea7997f9e1cbd0190151702cb3c44171e023bdd8a9cbeb45c3cda78eca04b7fe" }, "downloads": -1, "filename": "fifolock-0.0.8.tar.gz", "has_sig": false, "md5_digest": "5da725255890feccd36d5841ed22fec4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2752, "upload_time": "2018-11-25T08:42:45", "url": "https://files.pythonhosted.org/packages/64/fd/0587e407f74a1768b64b886b187d6c5ef10cc42de619c5d565aed435965b/fifolock-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "67d643d4804085e97547167ef4d36702", "sha256": "bdd56096f8bc9efb968fc5185777907d3b22d9eb1d14917868e89f5322606cde" }, "downloads": -1, "filename": "fifolock-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "67d643d4804085e97547167ef4d36702", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 3614, "upload_time": "2018-11-25T08:45:01", "url": "https://files.pythonhosted.org/packages/dc/82/0d491ab755017563a9ab435ba965db390efb21dc83f5b2693a087397950a/fifolock-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "738e8eaa2636458948cc035256c0ad21", "sha256": "648722edb0005438955bff7d288bb11ea80e6b6bf8a2da40720f0884eb69fd4c" }, "downloads": -1, "filename": "fifolock-0.0.9.tar.gz", "has_sig": false, "md5_digest": "738e8eaa2636458948cc035256c0ad21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 2741, "upload_time": "2018-11-25T08:45:02", "url": "https://files.pythonhosted.org/packages/30/b9/0cfc4c0e9a19970c2d5de4fa3e244a0e5b5ac3d1e71a43320cd78d9443b6/fifolock-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ead5a28cdb3d6c608a3689cc4f493331", "sha256": "48ce70e50ceecd799e0346b6a92bb1d0301fd6b9ebeb3a2b3383e0ca7c3e73f5" }, "downloads": -1, "filename": "fifolock-0.0.20-py3-none-any.whl", "has_sig": false, "md5_digest": "ead5a28cdb3d6c608a3689cc4f493331", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3753, "upload_time": "2019-05-02T19:34:39", "url": "https://files.pythonhosted.org/packages/57/4b/9496f5c90796fb56217cf9f6fde868eb19d6788fb5c2ea5d5fa97db36579/fifolock-0.0.20-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "788f802285eeee5e1a48e8b94880909f", "sha256": "c38ac427605d87936a6131524aa2a1ef2964f12892e76c1749b136b9e53a88f9" }, "downloads": -1, "filename": "fifolock-0.0.20.tar.gz", "has_sig": false, "md5_digest": "788f802285eeee5e1a48e8b94880909f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2874, "upload_time": "2019-05-02T19:34:41", "url": "https://files.pythonhosted.org/packages/a5/d1/e7272af6b1b956460ce2ecde67522cf8715832d1c3f63f97d3bba318329f/fifolock-0.0.20.tar.gz" } ] }