{ "info": { "author": "Hunt Zhan", "author_email": "huntzhan.dev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "=========\ncleanroom\n=========\n\n\nInstall::\n\n pip install cleanroom\n\n\nCreate instance in a new process and proxy all operations:\n\n.. code:: python\n\n import os\n import time\n from cleanroom import create_instance, CleanroomArgs\n\n\n class Cal:\n\n def __init__(self, base):\n self.base = base\n\n def inc(self):\n self.base += 1\n return self.base\n\n def pid(self, sleep=None):\n if sleep:\n time.sleep(sleep)\n\n return os.getpid()\n\n\n cal = create_instance(Cal, CleanroomArgs(0))\n\n print('Parent PID: ', os.getpid())\n print('Cal PID: ', cal.pid())\n\n print('inc: ', cal.inc())\n print('inc: ', cal.inc())\n\n\nOutput::\n\n Parent PID: 22239\n Cal PID: 22272\n inc: 1\n inc: 2\n\n\nCreate multiple instances under the `random_access` scheduler:\n\n.. code:: python\n\n from cleanroom import create_scheduler, create_instances_under_scheduler\n\n\n scheduler = create_scheduler(instances=5, scheduler_type='random_access')\n create_instances_under_scheduler(scheduler, Cal, CleanroomArgs(0))\n\n print('Parent PID: ', os.getpid())\n\n for _ in range(20):\n pid = scheduler.pid(sleep=1)\n print(time.ctime(), 'Cal PID:', pid)\n\n\nOutput::\n\n Parent PID: 4376\n Thu May 23 14:00:59 2019 Cal PID: 4399\n Thu May 23 14:01:00 2019 Cal PID: 4403\n Thu May 23 14:01:01 2019 Cal PID: 4397\n Thu May 23 14:01:02 2019 Cal PID: 4397\n Thu May 23 14:01:03 2019 Cal PID: 4403\n Thu May 23 14:01:04 2019 Cal PID: 4399\n Thu May 23 14:01:05 2019 Cal PID: 4395\n Thu May 23 14:01:06 2019 Cal PID: 4401\n Thu May 23 14:01:07 2019 Cal PID: 4399\n Thu May 23 14:01:08 2019 Cal PID: 4395\n Thu May 23 14:01:09 2019 Cal PID: 4401\n Thu May 23 14:01:10 2019 Cal PID: 4401\n Thu May 23 14:01:11 2019 Cal PID: 4403\n Thu May 23 14:01:12 2019 Cal PID: 4395\n Thu May 23 14:01:13 2019 Cal PID: 4397\n Thu May 23 14:01:14 2019 Cal PID: 4403\n Thu May 23 14:01:15 2019 Cal PID: 4401\n Thu May 23 14:01:16 2019 Cal PID: 4395\n Thu May 23 14:01:17 2019 Cal PID: 4395\n Thu May 23 14:01:18 2019 Cal PID: 4397\n\n\nCreate multiple instances under the `batch_random_access` scheduler:\n\n.. code:: python\n\n scheduler = create_scheduler(instances=5, scheduler_type='batch_random_access')\n create_instances_under_scheduler(scheduler, Cal, CleanroomArgs(0))\n\n print('Parent PID: ', os.getpid())\n\n for pid in scheduler.pid(CleanroomArgs(sleep=1) for _ in range(20)):\n print(time.ctime(), 'Cal PID:', pid)\n\n\nOutput::\n\n Parent PID: 4376\n Thu May 23 14:04:47 2019 Cal PID: 4429\n Thu May 23 14:04:47 2019 Cal PID: 4433\n Thu May 23 14:04:47 2019 Cal PID: 4435\n Thu May 23 14:04:48 2019 Cal PID: 4433\n Thu May 23 14:04:48 2019 Cal PID: 4437\n Thu May 23 14:04:49 2019 Cal PID: 4429\n Thu May 23 14:04:49 2019 Cal PID: 4433\n Thu May 23 14:04:49 2019 Cal PID: 4437\n Thu May 23 14:04:49 2019 Cal PID: 4431\n Thu May 23 14:04:49 2019 Cal PID: 4435\n Thu May 23 14:04:50 2019 Cal PID: 4429\n Thu May 23 14:04:51 2019 Cal PID: 4431\n Thu May 23 14:04:51 2019 Cal PID: 4435\n Thu May 23 14:04:51 2019 Cal PID: 4431\n Thu May 23 14:04:51 2019 Cal PID: 4437\n Thu May 23 14:04:53 2019 Cal PID: 4429\n Thu May 23 14:04:53 2019 Cal PID: 4431\n Thu May 23 14:04:53 2019 Cal PID: 4429\n Thu May 23 14:04:53 2019 Cal PID: 4437\n Thu May 23 14:04:53 2019 Cal PID: 4437\n\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.1.0 (2019-05-10)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/huntzhan/cleanroom", "keywords": "cleanroom", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "cleanroom", "package_url": "https://pypi.org/project/cleanroom/", "platform": "", "project_url": "https://pypi.org/project/cleanroom/", "project_urls": { "Homepage": "https://github.com/huntzhan/cleanroom" }, "release_url": "https://pypi.org/project/cleanroom/0.4.2/", "requires_dist": [ "tblib (==1.4.0)" ], "requires_python": "", "summary": "None", "version": "0.4.2" }, "last_serial": 5390569, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "31842bd8b246bc5e25803c3a8296dbad", "sha256": "5b840b61dc2ec8cc4e44b5615ed6cc54ab1c9d2667e61fb41c9506434fc8117f" }, "downloads": -1, "filename": "cleanroom-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "31842bd8b246bc5e25803c3a8296dbad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4288, "upload_time": "2019-05-10T08:57:52", "url": "https://files.pythonhosted.org/packages/e0/18/c25ca9409696f70451acd119a5ccd9e7b7cec93092d0e4439abeabbbe41c/cleanroom-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8104c32c0384728d4f3a8919bdfb1601", "sha256": "31dea8b2ddedcd4af5d76ddf5f6eb8a9b6fbf9f4d664a7bc704f7e90aec255a2" }, "downloads": -1, "filename": "cleanroom-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8104c32c0384728d4f3a8919bdfb1601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9433, "upload_time": "2019-05-10T08:57:54", "url": "https://files.pythonhosted.org/packages/2e/e4/ba9e5015d8075710f794abce170ddc1ad177b9c07ca5172ab4ca7e4a5aa1/cleanroom-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b964ec0dfd6a5d78ba64e7030ca4072a", "sha256": "1d0e6ac583dc7006b11310865a21aa328e14091f9c3140423e91dfec02b019fa" }, "downloads": -1, "filename": "cleanroom-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b964ec0dfd6a5d78ba64e7030ca4072a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4308, "upload_time": "2019-05-10T18:35:07", "url": "https://files.pythonhosted.org/packages/1b/07/c41176ce69bdc2be88271c2e157e97e60ce2688f137e5cf6c91bbffa3669/cleanroom-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a29eb57cb3e13a411f1e1494f8c44a8", "sha256": "9845a9910e07ca53b7ab16ecfc31720c2031f82c8d6509bafc6bc006a45e3c01" }, "downloads": -1, "filename": "cleanroom-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3a29eb57cb3e13a411f1e1494f8c44a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9737, "upload_time": "2019-05-10T18:35:08", "url": "https://files.pythonhosted.org/packages/e4/3f/0d89ca753bd7ac8ef2c293fe9e0bfc79f911ff7a6694b300daa368c10e21/cleanroom-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8654e5545594f9bd4ca3c3597f58f878", "sha256": "85483b29c0d5731eae4f070e8a8909496619cbf0aea06924a730546499afe432" }, "downloads": -1, "filename": "cleanroom-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8654e5545594f9bd4ca3c3597f58f878", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4406, "upload_time": "2019-05-11T05:36:14", "url": "https://files.pythonhosted.org/packages/4b/ff/8a76f2fb18d3371a4738b28f36a5fa1065b7a1f8e80856396e4aaa2461b8/cleanroom-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b094e9e26a6e3c4adbbd5f6d3ff5fff1", "sha256": "97b27d92f072606917ff06ed80ac559c9441f39d07cb280ccb7dbbb5a26bfb6a" }, "downloads": -1, "filename": "cleanroom-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b094e9e26a6e3c4adbbd5f6d3ff5fff1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9871, "upload_time": "2019-05-11T05:36:15", "url": "https://files.pythonhosted.org/packages/7b/9a/7e64570c114f9790838ef5e594bbc92aa081a1359044ff5f9b7b4a11664c/cleanroom-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "d8fbf723c230835053760594f565e7f4", "sha256": "cc2f468d397cc130b237a25d7e6aee7cd5380c830f92bc78466d73e2c084012e" }, "downloads": -1, "filename": "cleanroom-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8fbf723c230835053760594f565e7f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4518, "upload_time": "2019-05-11T06:49:36", "url": "https://files.pythonhosted.org/packages/40/82/fa14fe5917ad725717544fee8de9f33fcfeda9d5417175fe445ce37a72c9/cleanroom-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d2a4779e247c9a12d7483adc672c031", "sha256": "9274f29bcfeba43bbe822bc5431d1e724e14300a81ff3c8e548c8ab9f0d4016e" }, "downloads": -1, "filename": "cleanroom-0.2.3.tar.gz", "has_sig": false, "md5_digest": "7d2a4779e247c9a12d7483adc672c031", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9997, "upload_time": "2019-05-11T06:49:37", "url": "https://files.pythonhosted.org/packages/77/8e/3c6a4732db8d84a9e62a377d0b5aeb32cb9c4bed5a98da380554ba3e1cc1/cleanroom-0.2.3.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "6bd2c51b6f8a83078a6316b43de7731d", "sha256": "526d878be863fd75e6e8eac9e6082cf55a8fd504b6ac05513b6e4fd776bc9b88" }, "downloads": -1, "filename": "cleanroom-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6bd2c51b6f8a83078a6316b43de7731d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4342, "upload_time": "2019-05-13T07:45:12", "url": "https://files.pythonhosted.org/packages/31/4e/eea39352a33aca9ed05334b135c3a1d59db434aac9c20dde9abd7d8ccab3/cleanroom-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89a552fc18680e14e8bd5bc9d187d6ec", "sha256": "1426408c17174491a5b1b51ecc710e5377bde2611b76e2e3013aae5fab8a9ec6" }, "downloads": -1, "filename": "cleanroom-0.2.5.tar.gz", "has_sig": false, "md5_digest": "89a552fc18680e14e8bd5bc9d187d6ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10094, "upload_time": "2019-05-13T07:45:14", "url": "https://files.pythonhosted.org/packages/09/57/59d5bdfbbf24d17563aa80a1621d3579e855a71cbeab83beddd6874177e8/cleanroom-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "b257b36a07cbc4d4f0555ee2364036f2", "sha256": "b7cec73ebc9f504ce976669f921f3f75881d3ded83170df612dfee40c32d8901" }, "downloads": -1, "filename": "cleanroom-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b257b36a07cbc4d4f0555ee2364036f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4577, "upload_time": "2019-05-13T08:27:45", "url": "https://files.pythonhosted.org/packages/8d/02/6586c73e57ad33002fd79a71f32f4f413ba15a2bc6e851a62b7b8f97d728/cleanroom-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "894b6a41307d520a0acee56fe43c0d5d", "sha256": "1f1d8f8cfd4c4dd8e8b484bda1b9a949294b2986d4f8d17321c2f80318c4eafa" }, "downloads": -1, "filename": "cleanroom-0.2.6.tar.gz", "has_sig": false, "md5_digest": "894b6a41307d520a0acee56fe43c0d5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10316, "upload_time": "2019-05-13T08:27:47", "url": "https://files.pythonhosted.org/packages/df/dd/1b21c35948c7a050a130d79102b39bfd7a1ac950489dfc9f9eee7f869ffd/cleanroom-0.2.6.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "303a029b0c9f15f6d3c619c731cf6f79", "sha256": "52dd54a738c6d9388787f531a0bbb030a463d4035f878daf8222783bae44ac4b" }, "downloads": -1, "filename": "cleanroom-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "303a029b0c9f15f6d3c619c731cf6f79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5986, "upload_time": "2019-05-23T06:10:49", "url": "https://files.pythonhosted.org/packages/21/b0/e20ef210067ca5d83cf23ef39be7c51808be20ea491fe669009a58c7848a/cleanroom-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86edc638c7a0ee9b9aa474ab23c1a9cf", "sha256": "12698c8259f626f49777261d58dbe24914372c00724553e36d33f730c794cc28" }, "downloads": -1, "filename": "cleanroom-0.3.0.tar.gz", "has_sig": false, "md5_digest": "86edc638c7a0ee9b9aa474ab23c1a9cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12163, "upload_time": "2019-05-23T06:10:50", "url": "https://files.pythonhosted.org/packages/9e/c0/c630d21e729d2539e45f0e9ca33449229b5672378f0342b03c02c2b27aca/cleanroom-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "8a00ee6c4d8bef527e329ed46d3c01fd", "sha256": "64572dd7588b48cb9bffd49b05a4b1573ab995193e9f467ac76115f26795c2c3" }, "downloads": -1, "filename": "cleanroom-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a00ee6c4d8bef527e329ed46d3c01fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6003, "upload_time": "2019-05-24T08:12:43", "url": "https://files.pythonhosted.org/packages/9f/cb/e40e2439ba8b053a204e0bb52250a4904559e4bb0a31415e74d8371865af/cleanroom-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7bbb84a627377bece5e8ff790dba08e", "sha256": "06d84ac1537c02db1d307f92b779c82596fcbf1b87c2a1edf40d6a0571bc1b46" }, "downloads": -1, "filename": "cleanroom-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d7bbb84a627377bece5e8ff790dba08e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12183, "upload_time": "2019-05-24T08:12:45", "url": "https://files.pythonhosted.org/packages/98/7b/af8ec5a91a8f64699eaa95c3a4c81c76eea0e2473b5781b63cf215543737/cleanroom-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d94dd71882171d54203250e9f0bac3be", "sha256": "3ac7c7aff0a9d69cdcb70bb46f01928f6054d3e9fea5cb8124b2ffd3d9d4eaf1" }, "downloads": -1, "filename": "cleanroom-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d94dd71882171d54203250e9f0bac3be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6316, "upload_time": "2019-05-27T08:18:02", "url": "https://files.pythonhosted.org/packages/c7/8d/e77615ffc9ee7b26fa279e6bdcc37f84725b5c18bbe3f300a5b0bcd0213e/cleanroom-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dddadd0b4dbf33ff7da27e35714644c3", "sha256": "9d435ce984961cae8c36756970fb93ba4a4cc149bd4ed32f860fbacb03d94b07" }, "downloads": -1, "filename": "cleanroom-0.4.0.tar.gz", "has_sig": false, "md5_digest": "dddadd0b4dbf33ff7da27e35714644c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12845, "upload_time": "2019-05-27T08:18:04", "url": "https://files.pythonhosted.org/packages/63/a6/fd94901ace1cbec2d51ea95eb94e97b0a7bbba19e576fbb46ec3a0471e16/cleanroom-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "8f34271d014a95b1e403d8fd64e4fecb", "sha256": "42801f8de6a51c657aa2fcb5a55c706a3603dc0a8bfb57d5e31ea745bd8ddfe2" }, "downloads": -1, "filename": "cleanroom-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f34271d014a95b1e403d8fd64e4fecb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6444, "upload_time": "2019-05-28T11:09:38", "url": "https://files.pythonhosted.org/packages/a2/73/b32bc03c11ef187e729d20fb9aff7f37fc2811824ea781dd7f6a10a73149/cleanroom-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "868d601b0d3c1a2068d47ca05ec234bb", "sha256": "6da19646879f4084e37a550a7688d672ccab0b7abbb55c6f512321a61dbc612f" }, "downloads": -1, "filename": "cleanroom-0.4.1.tar.gz", "has_sig": false, "md5_digest": "868d601b0d3c1a2068d47ca05ec234bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13096, "upload_time": "2019-05-28T11:09:40", "url": "https://files.pythonhosted.org/packages/d4/60/f64f8ddc3e54dd62af9a673dbd9534081b4c79ba9cbd19367970a6353375/cleanroom-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "6b1f754e5c16b8844e22b69377ab771f", "sha256": "238a63f7a25e99262f3157c9aeaab366278f90f7b38d65dfb822fd9bc5612259" }, "downloads": -1, "filename": "cleanroom-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b1f754e5c16b8844e22b69377ab771f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6931, "upload_time": "2019-06-12T10:37:39", "url": "https://files.pythonhosted.org/packages/6f/19/0930ebac1d440911b67d520fe016d4407868d7d8430c9326bf413ec229ed/cleanroom-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c123b35c4d209159702f24e13b3c6d16", "sha256": "38bd1bf3e4c4fd82ecb514f694e671e3a1494c33ca81c2ae3668df5cfafdaa88" }, "downloads": -1, "filename": "cleanroom-0.4.2.tar.gz", "has_sig": false, "md5_digest": "c123b35c4d209159702f24e13b3c6d16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13567, "upload_time": "2019-06-12T10:37:40", "url": "https://files.pythonhosted.org/packages/d5/24/e524f25f75870426a9a9f197d2bdb81445fce1ec450bd9e636e312f9d726/cleanroom-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b1f754e5c16b8844e22b69377ab771f", "sha256": "238a63f7a25e99262f3157c9aeaab366278f90f7b38d65dfb822fd9bc5612259" }, "downloads": -1, "filename": "cleanroom-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b1f754e5c16b8844e22b69377ab771f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6931, "upload_time": "2019-06-12T10:37:39", "url": "https://files.pythonhosted.org/packages/6f/19/0930ebac1d440911b67d520fe016d4407868d7d8430c9326bf413ec229ed/cleanroom-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c123b35c4d209159702f24e13b3c6d16", "sha256": "38bd1bf3e4c4fd82ecb514f694e671e3a1494c33ca81c2ae3668df5cfafdaa88" }, "downloads": -1, "filename": "cleanroom-0.4.2.tar.gz", "has_sig": false, "md5_digest": "c123b35c4d209159702f24e13b3c6d16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13567, "upload_time": "2019-06-12T10:37:40", "url": "https://files.pythonhosted.org/packages/d5/24/e524f25f75870426a9a9f197d2bdb81445fce1ec450bd9e636e312f9d726/cleanroom-0.4.2.tar.gz" } ] }