{ "info": { "author": "Koji Ono", "author_email": "kbu94982@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "[![LICENCE](https://img.shields.io/badge/LICENCE-MIT-brightgreen.svg)](https://github.com/0h-n0/simple-lock)\n[![PYTHON version](https://img.shields.io/badge/python-3.5,3.6-blue.svg)](https://github.com/0h-n0/simple-lock)\n[![PyPI version](https://img.shields.io/pypi/v/simple-lock.svg)](https://badge.fury.io/py/simple-lock)\n[![Build Status](https://travis-ci.org/0h-n0/simple-lock.svg?branch=master)](https://travis-ci.org/0h-n0/simple-lock)\n[![codecov](https://codecov.io/gh/0h-n0/simple-lock/branch/master/graph/badge.svg)](https://codecov.io/gh/0h-n0/simple-lock)\n[![Maintainability](https://api.codeclimate.com/v1/badges/9a8b4b39d3673ccb6db6/maintainability)](https://codeclimate.com/github/0h-n0/simple-lock/maintainability)\n[![BCH compliance](https://bettercodehub.com/edge/badge/0h-n0/simple-lock?branch=master)](https://bettercodehub.com/)\n\n\n\n# simple-lock\n\nsimple-lock provides lock system as a decorator or with-statement in your code. It is easy to use them.\n\n## Concept\n\nYou can easily implement lock system in your application with modifing a few line. There are mainly two decorator in `simple_lock`. First, `simple_lock.lock` locks function and create a lockfile. After that, other functions refer to the lockfile can't be executed normally. Second, without creating a new lockfile, `simple_lock.watch` watchs a lockfile provieded as one of arguments without creating a new lockfile. \n\n## Instalation\n\n```shell\n$ pip install simple-lock\n```\n\n## How to use\n\n### Lock your function with `simple_lock.lock` decorator.\n\nWhen a funciton try to create a lockfile and the lockfile already exists. `simple_lock.lock` decorator returns `return_value` like the following codes. \n\n```test.py\n\nfrom simple_lock import lock\n\n@lock(filename='simple.lock', path='~/locks',\n return_value=10)\ndef sleep():\n import time\n time.sleep(10)\n \nsleep() # -> 10\n```\n\nYou can provide a function as 'return_value' argument and arguments of 'return_value'.\n\n```test.py\n\nfrom simple_lock import lock\n\ndef add(a, b):\n return a + b\n\n@lock(filename='simple.lock', path='~/locks',\n return_value=add\n a=1, b=1)\ndef sleep():\n import time\n time.sleep(10)\n \nsleep() # -> 2\n```\n\n`simple_lock.watch` also provides functions similar to `simple_lock.lock`. The difference between `simple_lock.lock` and `simple_lock.watch` is just whether lockfile is created or not.\n\n```test.py\n\nfrom simple_lock import watch\n\n@watch(filename='simple.lock', path='~/locks',\n return_value=10)\ndef sleep():\n import time\n time.sleep(10)\n \nsleep() # -> 10\n```\n\n```test.py\n\nfrom simple_lock import watch\n\ndef add(a, b):\n return a + b\n\n@watch(filename='simple.lock', path='~/locks',\n return_value=add,\n a=1, b=1)\ndef sleep():\n import time\n time.sleep(10)\n \nsleep() # -> 2\n```\n\n## References\n\n* https://github.com/benediktschmitt/py-filelock", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/0h-n0/simple-lock", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "simple-lock", "package_url": "https://pypi.org/project/simple-lock/", "platform": "", "project_url": "https://pypi.org/project/simple-lock/", "project_urls": { "Homepage": "https://github.com/0h-n0/simple-lock" }, "release_url": "https://pypi.org/project/simple-lock/1.0.6/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Simple Lockfile System.", "version": "1.0.6" }, "last_serial": 4526843, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9877459a8745bd7ac51523aee391be41", "sha256": "b16bd28dc8b333ee8ae80e233abfa91e7629e55ae5e7fd1da793c235b601f236" }, "downloads": -1, "filename": "simple_lock-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9877459a8745bd7ac51523aee391be41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.5", "size": 3913, "upload_time": "2018-06-13T07:29:51", "url": "https://files.pythonhosted.org/packages/ab/19/4915d6878299a6d7f1caf7391ac2e9a11bb687b19addc3260831eefd4ae4/simple_lock-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25cce20b90072f4b6295c79cccf2add8", "sha256": "1a834fe1283b104deb50c16adc90de5f9e3a85a687c98d8295c227dd1204194a" }, "downloads": -1, "filename": "simple_lock-1.0.0-py3.6.egg", "has_sig": false, "md5_digest": "25cce20b90072f4b6295c79cccf2add8", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.6.5", "size": 7685, "upload_time": "2018-06-13T07:29:52", "url": "https://files.pythonhosted.org/packages/fd/e3/83934a1bca4d744e026d23f1bd2821d9e0f4e4806d7d3b1144fcd28e243a/simple_lock-1.0.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "a52a65020b06a49cda3d75fcc12a0e69", "sha256": "69b91b5b45de9b1aed97b689b18db56d1ec4bc678c214ca0828fff512b7c4332" }, "downloads": -1, "filename": "simple_lock-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a52a65020b06a49cda3d75fcc12a0e69", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.5", "size": 3760, "upload_time": "2018-06-13T07:29:53", "url": "https://files.pythonhosted.org/packages/5b/7d/f5a74c2be1fd67fe469a4b1b52be45fbda24d8a943a0ffd941928c9755a0/simple_lock-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "01f878c72df4298e5062a4bacb9ebd5a", "sha256": "7b035585b7a7ed53813d6e2bcf9644dc03afd9c9b4025fb7af4473df77c2a703" }, "downloads": -1, "filename": "simple_lock-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "01f878c72df4298e5062a4bacb9ebd5a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5496, "upload_time": "2018-06-13T20:30:26", "url": "https://files.pythonhosted.org/packages/f4/1b/019847d9bdb7bd2c04dc1fd684d2be1b0451d1a37c9dc382e8ad81c18f8d/simple_lock-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a1306744ab80a4a8f93dbddeba90db1", "sha256": "054ce4cfd527b16b3bb3b0e2ee9d7bbf2e7cee08ab7b65f4854b11d08b490acb" }, "downloads": -1, "filename": "simple_lock-1.0.1.tar.gz", "has_sig": false, "md5_digest": "0a1306744ab80a4a8f93dbddeba90db1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3845, "upload_time": "2018-06-13T20:30:24", "url": "https://files.pythonhosted.org/packages/10/c8/77dd0888ae982e46af270700209086f42c52637471497e2134f4613f7f5d/simple_lock-1.0.1.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7e9da2ae1973c9b32f14e1d8890182f6", "sha256": "797b6dc27468ad544337d13d748f810bd48af12ffb2c391d69b80b2f06bf70f6" }, "downloads": -1, "filename": "simple_lock-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e9da2ae1973c9b32f14e1d8890182f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 4330, "upload_time": "2018-06-26T07:30:31", "url": "https://files.pythonhosted.org/packages/f1/77/040aed2872fc7c0e71e4929cf6ef82cba0bc44566a803c8115b5110103a4/simple_lock-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a0ec3b47019f6c9af88e3c41bcacf83", "sha256": "3b2d8b0be5723a01ef5d66e2ff35ef96c20624f7c64ff76a2bdc9d4c404d3485" }, "downloads": -1, "filename": "simple_lock-1.0.3-py3.6.egg", "has_sig": false, "md5_digest": "8a0ec3b47019f6c9af88e3c41bcacf83", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 8130, "upload_time": "2018-06-26T07:30:32", "url": "https://files.pythonhosted.org/packages/87/a0/9791945a6adc8b5dc421594387af9e271b55a93f08b2ee7dfa276fce2114/simple_lock-1.0.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "aee43511ffefaa1bcbaf98832c82726e", "sha256": "2d1cf7f4f981a4c21c6771e739283f0ec1a2a0c2f6ac54931797c7c2452968a0" }, "downloads": -1, "filename": "simple_lock-1.0.3.tar.gz", "has_sig": false, "md5_digest": "aee43511ffefaa1bcbaf98832c82726e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4235, "upload_time": "2018-06-26T07:30:33", "url": "https://files.pythonhosted.org/packages/37/a5/b8c8634875ba891d78992b826541b31f3adbdbfca5ee7a5ad5f28ad4cfc0/simple_lock-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "08f0f06f970b7416a375fb2a21b47784", "sha256": "ced7e2cd3cf678415d5c1199ebba7aabc47fa1bc76a170c0b6e5fdaaf8c61bf5" }, "downloads": -1, "filename": "simple_lock-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08f0f06f970b7416a375fb2a21b47784", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 4515, "upload_time": "2018-07-05T15:53:09", "url": "https://files.pythonhosted.org/packages/8b/14/39b6efe95005afea19c5052b24f078fc3669f34af234fabec8d05471c0a0/simple_lock-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c3a0bed9ba5bce8998bb50e7c13fa1d", "sha256": "41e87f466de3601ec72898b3c40729fa3b196af2e85bc92a5aba37d84fe286ac" }, "downloads": -1, "filename": "simple_lock-1.0.4-py3.6.egg", "has_sig": false, "md5_digest": "0c3a0bed9ba5bce8998bb50e7c13fa1d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 8646, "upload_time": "2018-07-05T15:53:10", "url": "https://files.pythonhosted.org/packages/71/36/b464e82860cf05c672ebca5a8ddfa502a64a225513e9d61790dd2168d649/simple_lock-1.0.4-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "fc57cdeef7bdc0edf528d4737e6d8f44", "sha256": "676109eec937ce45b9b9cd4342fe8947206755d05e1ede07e81ba93ddb87952b" }, "downloads": -1, "filename": "simple_lock-1.0.4.tar.gz", "has_sig": false, "md5_digest": "fc57cdeef7bdc0edf528d4737e6d8f44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4452, "upload_time": "2018-07-05T15:53:11", "url": "https://files.pythonhosted.org/packages/e3/be/1956eaf8f20f04f8d364ee03aadbbdb62794e12ca9ca29d835b96b8371cb/simple_lock-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "b6af338a095f2e6d3e6584699a3afe13", "sha256": "c05dbe3f3586e564a0ce198c96b77c1ff497515e5e00d1472f6b89cacbf4ce8d" }, "downloads": -1, "filename": "simple_lock-1.0.5.tar.gz", "has_sig": false, "md5_digest": "b6af338a095f2e6d3e6584699a3afe13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3833, "upload_time": "2018-11-25T19:12:50", "url": "https://files.pythonhosted.org/packages/c4/35/6eb7ed67353c562ce7ecf4289a912f3205858ff727f6be16f23d741473d2/simple_lock-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "1e75b2fee3bb017466f7f747f08a9d02", "sha256": "6716ab7caae23f5509730aa5b4b426d44f931ae10fa538851ae277632a21342c" }, "downloads": -1, "filename": "simple_lock-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e75b2fee3bb017466f7f747f08a9d02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 5327, "upload_time": "2018-11-25T19:27:35", "url": "https://files.pythonhosted.org/packages/01/f1/fff71baebaa22e9958d9f0532b0e55c10248e4481120da5d553bd401ec0d/simple_lock-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6ac6e4e36e956fe67688dd44e17666a", "sha256": "ca2bd6de5d2aa77162254fb921ab7627b0f678711639afd702bca74b885b0977" }, "downloads": -1, "filename": "simple_lock-1.0.6-py3.6.egg", "has_sig": false, "md5_digest": "b6ac6e4e36e956fe67688dd44e17666a", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 8752, "upload_time": "2018-11-25T19:27:37", "url": "https://files.pythonhosted.org/packages/ae/a2/e14192194f3693a285e3f0b648abcdb79356d8ad2f0cfdd8e8b859fecb4d/simple_lock-1.0.6-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "89e35b4e70ecb2d9e95785b84435f239", "sha256": "f6619df3417aa7b4ae81c37f308a740d0d30ae9a13cc68dbf50e32907e5ba491" }, "downloads": -1, "filename": "simple_lock-1.0.6.tar.gz", "has_sig": false, "md5_digest": "89e35b4e70ecb2d9e95785b84435f239", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4505, "upload_time": "2018-11-25T19:17:35", "url": "https://files.pythonhosted.org/packages/7c/65/df0aab01d85c6d60ee84ca5078ddf0c6778e5045cfbdfc6f3036ad823d7c/simple_lock-1.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1e75b2fee3bb017466f7f747f08a9d02", "sha256": "6716ab7caae23f5509730aa5b4b426d44f931ae10fa538851ae277632a21342c" }, "downloads": -1, "filename": "simple_lock-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e75b2fee3bb017466f7f747f08a9d02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 5327, "upload_time": "2018-11-25T19:27:35", "url": "https://files.pythonhosted.org/packages/01/f1/fff71baebaa22e9958d9f0532b0e55c10248e4481120da5d553bd401ec0d/simple_lock-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6ac6e4e36e956fe67688dd44e17666a", "sha256": "ca2bd6de5d2aa77162254fb921ab7627b0f678711639afd702bca74b885b0977" }, "downloads": -1, "filename": "simple_lock-1.0.6-py3.6.egg", "has_sig": false, "md5_digest": "b6ac6e4e36e956fe67688dd44e17666a", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 8752, "upload_time": "2018-11-25T19:27:37", "url": "https://files.pythonhosted.org/packages/ae/a2/e14192194f3693a285e3f0b648abcdb79356d8ad2f0cfdd8e8b859fecb4d/simple_lock-1.0.6-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "89e35b4e70ecb2d9e95785b84435f239", "sha256": "f6619df3417aa7b4ae81c37f308a740d0d30ae9a13cc68dbf50e32907e5ba491" }, "downloads": -1, "filename": "simple_lock-1.0.6.tar.gz", "has_sig": false, "md5_digest": "89e35b4e70ecb2d9e95785b84435f239", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4505, "upload_time": "2018-11-25T19:17:35", "url": "https://files.pythonhosted.org/packages/7c/65/df0aab01d85c6d60ee84ca5078ddf0c6778e5045cfbdfc6f3036ad823d7c/simple_lock-1.0.6.tar.gz" } ] }