{ "info": { "author": "\u00c9ric Larivi\u00e8re", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Reader Writer Lock\n==================\n\n**A python implementation of the three Reader-Writer problems.**\n\nNot only does it implement the reader-writer problems, it is also compliant with the python lock interface which includes support for timeouts.\n\nFor reading about the theory behind the reader-writer problems refer to `Wikipedia `_.\n\nInstallation\n------------\n\nInstall the `python `_ package `readerwriterlock `_\n\n python3 -m pip install readerwriterlock\n\n\nUsage\n-----\n\nInitialize a new lock base on your access priority need which is going to be use by the threads:\n\n**Reader priority** (*aka First readers-writers problem*)\n\n::\n\n from readerwriterlock import rwlock\n a = rwlock.RWLockRead()\n\n**Writer priority** (*aka Second readers-writers problem*)\n\n::\n\n from readerwriterlock import rwlock\n a = rwlock.RWLockWrite()\n\n**Fair priority** (*aka Third readers-writers problem*)\n\n::\n\n from readerwriterlock import rwlock\n a = rwlock.RWLockFair()\n\nPythonic usage example\n----------------------\n\n::\n\n with a.gen_rlock():\n \t#Read stuff\n with a.gen_wlock():\n \t#Write stuff\n\nAdvanced Usage example\n----------------------\n\n::\n\n b = a.gen_wlock()\n if b.acquire(blocking=True, timeout=5):\n \t#Do stuff\n \tb.release()\n\nLive example\n------------\n\nRefer to the file `rwlock_test.py `_ which can be directly called, it has above 90% line coverage of `rwlock.py `_.\n\nThe tests can be initiated by doing\n\n::\n\n ./rwlock_test.py\n\nBuild\n-----\n\nThis project use the `BUILDME `_ interface, you may therefore build the project by simply doing:\n\n::\n\n ./BUILDME\n\nContribute\n----------\n\nYou are the welcome to contribute.\n\nContact\n-------\n\n:Project: `https://github.com/elarivie/pyReaderWriterLock `_\n:Bug tracker: `https://github.com/elarivie/pyReaderWriterLock/issues `_\n:Author: \u00c9ric Larivi\u00e8re `ericlariviere@hotmail.com `_\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/elarivie/pyReaderWriterLock", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/elarivie/pyReaderWriterLock", "keywords": "rwlock,read-write lock,lock,priority,reader,writer,fair,read,write,thread,synchronize", "license": "MIT", "maintainer": "\u00c9ric Larivi\u00e8re", "maintainer_email": "", "name": "readerwriterlock", "package_url": "https://pypi.org/project/readerwriterlock/", "platform": "", "project_url": "https://pypi.org/project/readerwriterlock/", "project_urls": { "Download": "https://github.com/elarivie/pyReaderWriterLock", "Homepage": "https://github.com/elarivie/pyReaderWriterLock", "Source": "https://github.com/elarivie/pyReaderWriterLock", "Tracker": "https://github.com/elarivie/pyReaderWriterLock/issues" }, "release_url": "https://pypi.org/project/readerwriterlock/1.0.4/", "requires_dist": null, "requires_python": ">=3", "summary": "A python implementation of the three Reader-Writer problems.", "version": "1.0.4" }, "last_serial": 5466794, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ce10054f7725e79a6a7732d213beb54a", "sha256": "9ecab0e9ae5dddef36c038151f75cc763bb0172e38db369ae758aca2ffcfd6c8" }, "downloads": -1, "filename": "readerwriterlock-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ce10054f7725e79a6a7732d213beb54a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6531, "upload_time": "2018-03-31T01:06:45", "url": "https://files.pythonhosted.org/packages/cf/79/d2f88c5487c2987933bf60f28c5c05cb78511d3b87e7c2e18c720a5fb66b/readerwriterlock-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d3a7cc2de0e743d43de6610794fa24", "sha256": "4eac0b128f5acec99b675d4f4332b52f952b4888f4fabaf1d70cb8189935af06" }, "downloads": -1, "filename": "readerwriterlock-1.0.0.tar.gz", "has_sig": false, "md5_digest": "23d3a7cc2de0e743d43de6610794fa24", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4426, "upload_time": "2018-03-31T01:06:46", "url": "https://files.pythonhosted.org/packages/58/cf/7eebc41b5e1b420928e0fdbdbec77c8a0901f6c94bc32480c18f03a75d7c/readerwriterlock-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "09f70fcb1770782ad49b0fcf14db2cec", "sha256": "e821f8c8c53d7fcdf6d4492c649ada9d6cc4743b38749a964c46dbef7f019e1b" }, "downloads": -1, "filename": "readerwriterlock-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "09f70fcb1770782ad49b0fcf14db2cec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6653, "upload_time": "2018-04-01T03:16:46", "url": "https://files.pythonhosted.org/packages/ca/d1/43b00f35495a0103bf37d94de92191a904f47030b00b53da0f9376407487/readerwriterlock-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0cce89f9f9c2a341d32d21b78984437", "sha256": "b48c4bb773f89f8b1c9c42536ec283394cf2dc325d42c78159a296835948f724" }, "downloads": -1, "filename": "readerwriterlock-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b0cce89f9f9c2a341d32d21b78984437", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4883, "upload_time": "2018-04-01T03:16:47", "url": "https://files.pythonhosted.org/packages/31/f5/a69f2eda2b25d14068b928b463703abc81e091d8033e35e1008276e89a5d/readerwriterlock-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "1d0f1db57a14a2e1ace85ca802b3cb81", "sha256": "dee48a70be929f44f11dcd05006ddc1108700d14ab6490474062b85467cf6c72" }, "downloads": -1, "filename": "readerwriterlock-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1d0f1db57a14a2e1ace85ca802b3cb81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3665, "upload_time": "2018-09-28T07:28:01", "url": "https://files.pythonhosted.org/packages/85/7b/849aa0be390a8125916f2e45478c49cac07ea4bdf21ef9c3d00c9e77b419/readerwriterlock-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "798be96f846f8a1dd4d5583316d68ae7", "sha256": "e58b486ba426853abb14c669d43a52f575c9c1793db648d27d38b71806f50d24" }, "downloads": -1, "filename": "readerwriterlock-1.0.2.tar.gz", "has_sig": false, "md5_digest": "798be96f846f8a1dd4d5583316d68ae7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4899, "upload_time": "2018-09-28T07:28:02", "url": "https://files.pythonhosted.org/packages/9f/b3/a14fd9413b0d906cf1c51c4b2b4ee13d17cdbe38ce4d15c87e1f18a9cc79/readerwriterlock-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8fa2bdaedcbc1e638c1fe2458316fe49", "sha256": "f42b185d4ff07d4acb6cff64c7292bb064ee9e7fa3eddd4d247bef61eeb382ad" }, "downloads": -1, "filename": "readerwriterlock-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8fa2bdaedcbc1e638c1fe2458316fe49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5565, "upload_time": "2019-02-13T05:48:16", "url": "https://files.pythonhosted.org/packages/d1/6f/61d403e5fe43f146cc3622e06d94f2777c1fe76fad5e86cdafcc2ccfd67a/readerwriterlock-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0baabe0797931667bd59a5c72afacb0f", "sha256": "e1819a5762b21f3477a8d13f09d5db9ba96d79a60cd0b90da4345a2afd482a1e" }, "downloads": -1, "filename": "readerwriterlock-1.0.3.tar.gz", "has_sig": false, "md5_digest": "0baabe0797931667bd59a5c72afacb0f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 4972, "upload_time": "2019-02-13T05:48:17", "url": "https://files.pythonhosted.org/packages/1b/e6/9facb4dae12bd847fc1a10c3ae5d6036801be944371ab2ba3f01938149b1/readerwriterlock-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "ba04e2f74d03a7bccc2aa025f917fa1d", "sha256": "c4a97d372daa5bcd7749460603cc097f4126b1ff17f71ef99c89cdba1d06d366" }, "downloads": -1, "filename": "readerwriterlock-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ba04e2f74d03a7bccc2aa025f917fa1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6273, "upload_time": "2019-06-30T02:28:48", "url": "https://files.pythonhosted.org/packages/98/9a/1d885282ee8d3b54991490ff2db441c65c97e7cc404d08c2495029085cf4/readerwriterlock-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f095b8688ea665cee553b825b186a4a", "sha256": "cea9a433924cbf50f56bd3487c46ee09251f69ebf44217d5c331c16577b15a9d" }, "downloads": -1, "filename": "readerwriterlock-1.0.4.tar.gz", "has_sig": false, "md5_digest": "5f095b8688ea665cee553b825b186a4a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 5074, "upload_time": "2019-06-30T02:28:50", "url": "https://files.pythonhosted.org/packages/17/8e/66256c540b21bdc18ce46abe1b2294ea6b167a9cde8cd58ef62a0cd0cf3f/readerwriterlock-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ba04e2f74d03a7bccc2aa025f917fa1d", "sha256": "c4a97d372daa5bcd7749460603cc097f4126b1ff17f71ef99c89cdba1d06d366" }, "downloads": -1, "filename": "readerwriterlock-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ba04e2f74d03a7bccc2aa025f917fa1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 6273, "upload_time": "2019-06-30T02:28:48", "url": "https://files.pythonhosted.org/packages/98/9a/1d885282ee8d3b54991490ff2db441c65c97e7cc404d08c2495029085cf4/readerwriterlock-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f095b8688ea665cee553b825b186a4a", "sha256": "cea9a433924cbf50f56bd3487c46ee09251f69ebf44217d5c331c16577b15a9d" }, "downloads": -1, "filename": "readerwriterlock-1.0.4.tar.gz", "has_sig": false, "md5_digest": "5f095b8688ea665cee553b825b186a4a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 5074, "upload_time": "2019-06-30T02:28:50", "url": "https://files.pythonhosted.org/packages/17/8e/66256c540b21bdc18ce46abe1b2294ea6b167a9cde8cd58ef62a0cd0cf3f/readerwriterlock-1.0.4.tar.gz" } ] }