{ "info": { "author": "Ricardo Branco", "author_email": "rbranco@suse.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: Unix", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: System :: Monitoring" ], "description": "# restartable\nList running processes using files deleted by recent upgrades\n\n[![Build Status](https://travis-ci.org/ricardobranco777/restartable.svg?branch=master)](https://travis-ci.org/ricardobranco777/restartable)\n\nWhen upgrading packages, the package manager won't restart services or programs that depend on some updated library, for obvious reasons. This has security implications in the case of outdated libraries still in use.\n\nOpenSUSE has a cool `zypper ps` command to check for programs and services using deleted files.\nIt's also available in other distros as `zypp-CheckAccessDeleted` from the `libzypp` package.\nThose commands parse `lsof` output and check `/proc//cgroup` to extract the service names.\n\nHere's a Python version that checks `/proc//maps`, extracting information from other files in `/proc/`.\n\nNo `lsof` dependency needed.\n\nExcerpt from `zypper` manual:\n\n> After each upgrade or removal of packages, there may be running processes on the system which continue to use meanwhile deleted files. zypper ps lists all processes using deleted files, together\n> with the corresponding files, and a service name hint, in case it\u2019s a known service. This gives a hint which services may need to be restarted after an update. Usually programs which continue to\n> use deleted shared libraries. The list contains the following information:\n>\n\n| | |\n|---|---|\n| PID | ID of the process\n| PPID | ID of the parent process\n| UID | ID of the user running the process\n| Login | Login name of the user running the process\n| Command | Command used to execute the process\n| Service | Service name, if command is associated with a system service\n| Files | The list of the deleted files\n\n## Installation\n\n```\nsudo pip3 install restartable\n```\n\n## Usage\n\n```\nsudo restartable [OPTIONS]\n\nList running processes using files deleted by recent upgrades\n\nOptions:\n -P, --proc PROC_DIRECTORY\n\tSpecify /proc directory\n -s, --short\n\tCreate a short table not showing the deleted files. Given twice,\n\tshow only processes which are associated with a system service.\n\tGiven three times, list the associated system service names only.\n -v, --verbose\n Show the complete command line\n```\n\n## NOTES\n\n - Verified to work on Python 3.5+\n - You must run it as root to see the information you want.\n - The output is different from `zypper ps` to be easily parseable\n\n## BUGS / LIMITATIONS\n\n - The service names can only be extracted if started by Systemd\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/ricardobranco777/restartable", "keywords": "restartable", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "restartable", "package_url": "https://pypi.org/project/restartable/", "platform": "", "project_url": "https://pypi.org/project/restartable/", "project_urls": { "Homepage": "https://github.com/ricardobranco777/restartable" }, "release_url": "https://pypi.org/project/restartable/0.9.1/", "requires_dist": null, "requires_python": ">=3.5", "summary": "List restartable programs or services using deleted libraries after upgrades", "version": "0.9.1", "yanked": false, "yanked_reason": null }, "last_serial": 9999800, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "7fca9ed4d3b6704023794c37b0179e63", "sha256": "18ceef8e209f7918fbc5320b51c4b9f01f72a07035ab6c58a677384095444662" }, "downloads": -1, "filename": "restartable-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "7fca9ed4d3b6704023794c37b0179e63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9558, "upload_time": "2019-08-07T19:36:44", "upload_time_iso_8601": "2019-08-07T19:36:44.459013Z", "url": "https://files.pythonhosted.org/packages/fe/62/8e3c165f0227c4028bea6540aed2ce467fead163c5a253e3f8ab5fe83cc8/restartable-0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e4c26651de44b480d384d7154aad123a", "sha256": "26059e68167900c9e538b7d38acc50b746d3175749cfc42a4c66fafce87d5f43" }, "downloads": -1, "filename": "restartable-0.6.tar.gz", "has_sig": false, "md5_digest": "e4c26651de44b480d384d7154aad123a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7574, "upload_time": "2019-08-07T19:36:46", "upload_time_iso_8601": "2019-08-07T19:36:46.859688Z", "url": "https://files.pythonhosted.org/packages/3a/c1/30d9bb409b8709a465b6600ff08ea01a9fc03bb0de1f905b35af60fde5eb/restartable-0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "270aff970810b621ab9da23ec8fe94a4", "sha256": "7d21af72e380bec583aca47baefe0cbb60ead9643eeb12b37479c75bec4ebc4e" }, "downloads": -1, "filename": "restartable-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "270aff970810b621ab9da23ec8fe94a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9634, "upload_time": "2019-08-12T15:48:39", "upload_time_iso_8601": "2019-08-12T15:48:39.498783Z", "url": "https://files.pythonhosted.org/packages/eb/d7/8b4c992d862b4be44c80a1ea46bf30f19f77978a9a3bc740f09b108d5ce5/restartable-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d0a74356c71e3950d767f9b697d6f12b", "sha256": "95f0e780d7fe8795d0a9418ae15c280d8a0762744e8b7dbf04d129df070f26a1" }, "downloads": -1, "filename": "restartable-0.6.1.tar.gz", "has_sig": false, "md5_digest": "d0a74356c71e3950d767f9b697d6f12b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7633, "upload_time": "2019-08-12T15:48:41", "upload_time_iso_8601": "2019-08-12T15:48:41.060365Z", "url": "https://files.pythonhosted.org/packages/bb/94/fd6848ec59cfe10d3b849f537c4cee27f6958f8f04f1c35cecccc6ed4e96/restartable-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "b88cae0f8f006dd435bf69c4ca3939b6", "sha256": "1f6a9131b2cf6dda43f8d0ce1910528d4432a352143c59170994c1dc0acc04a5" }, "downloads": -1, "filename": "restartable-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b88cae0f8f006dd435bf69c4ca3939b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9651, "upload_time": "2019-08-16T16:35:06", "upload_time_iso_8601": "2019-08-16T16:35:06.635543Z", "url": "https://files.pythonhosted.org/packages/65/9e/8663bf7df379c66fb57283ad3ac85d1fe36cfa5adb78e1eeb08f34c0ec13/restartable-0.6.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a1d73bc4533cca6a7dd7464f8a0db68a", "sha256": "ddf89931a892cdadce0e33a0ead6648ab73b4797014846c5b03313751ab48d83" }, "downloads": -1, "filename": "restartable-0.6.3.tar.gz", "has_sig": false, "md5_digest": "a1d73bc4533cca6a7dd7464f8a0db68a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7648, "upload_time": "2019-08-16T16:35:07", "upload_time_iso_8601": "2019-08-16T16:35:07.934983Z", "url": "https://files.pythonhosted.org/packages/2f/c9/46d78435f837065b5158e750dc232131e2cb1499abf87a1d03d6a6e8ab01/restartable-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "f1063792687a317fc5eba69388621f98", "sha256": "6ba7500ad98a1e968cd3a2faa8ad650cd3899e8837f1072e939d2745ebddd4cf" }, "downloads": -1, "filename": "restartable-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f1063792687a317fc5eba69388621f98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9653, "upload_time": "2019-08-22T13:29:46", "upload_time_iso_8601": "2019-08-22T13:29:46.602153Z", "url": "https://files.pythonhosted.org/packages/05/b3/4f456e44042300056da8210c08b342457b84ed762747d2f93de759268a3f/restartable-0.6.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "00127d9881e384f463b7ff2cf7311c66", "sha256": "c171590dbdd53423aa4298d06d48a507ff43bd3fcbb51ed3816ab74b16b1d4fe" }, "downloads": -1, "filename": "restartable-0.6.4.tar.gz", "has_sig": false, "md5_digest": "00127d9881e384f463b7ff2cf7311c66", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7596, "upload_time": "2019-08-22T13:29:48", "upload_time_iso_8601": "2019-08-22T13:29:48.115190Z", "url": "https://files.pythonhosted.org/packages/bb/95/bed0f772b2b255654e380e98c35a43a725008e18cdc781e39128e9c57f7a/restartable-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "d83af800b1d91afdd9d550a4fe1f842a", "sha256": "230ccaf77ebda44bf6a2179ae65fd0415e76f579d22baceae4e5e8d3e047dab9" }, "downloads": -1, "filename": "restartable-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d83af800b1d91afdd9d550a4fe1f842a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9669, "upload_time": "2019-08-22T13:36:48", "upload_time_iso_8601": "2019-08-22T13:36:48.858785Z", "url": "https://files.pythonhosted.org/packages/cc/0f/476d1f9145ffa76cdd6f5387464211de0413975f10b0f540a7119a9fd69b/restartable-0.6.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ab2a5e5372529ad6300e598df4e5ce9a", "sha256": "65414af096e3f386d1301836fcae1561b44f2990030e191e52456c928680b52e" }, "downloads": -1, "filename": "restartable-0.6.5.tar.gz", "has_sig": false, "md5_digest": "ab2a5e5372529ad6300e598df4e5ce9a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7599, "upload_time": "2019-08-22T13:36:50", "upload_time_iso_8601": "2019-08-22T13:36:50.639698Z", "url": "https://files.pythonhosted.org/packages/ab/2f/4fd86bb90f0792c4b4cb348df8d0a19dfe69bd64421f28f7b0f64f6fbbdb/restartable-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "7c2a08a5ada1e2cb39be864d9e825c6d", "sha256": "40f7aa3bd4497696d185bd3ecd000a0525441054a9f5a98e13ec4efefadd7437" }, "downloads": -1, "filename": "restartable-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "7c2a08a5ada1e2cb39be864d9e825c6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9940, "upload_time": "2019-08-23T10:27:34", "upload_time_iso_8601": "2019-08-23T10:27:34.463774Z", "url": "https://files.pythonhosted.org/packages/4f/e4/08ee359c3004661c4de41f0af7fc04f5018609ce1b6f9e726cfa2db381c0/restartable-0.6.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a11acc9b1f0fd808f76487c3f5cca254", "sha256": "d29c9985a69cf1d5e1b515e57b014b2285266f1d3517c5383091d6bed585cb86" }, "downloads": -1, "filename": "restartable-0.6.6.tar.gz", "has_sig": false, "md5_digest": "a11acc9b1f0fd808f76487c3f5cca254", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7864, "upload_time": "2019-08-23T10:27:36", "upload_time_iso_8601": "2019-08-23T10:27:36.137416Z", "url": "https://files.pythonhosted.org/packages/63/3f/9dd32d87e70709e2e28005948c63b76fe1c1dc827470fdfccf695956d414/restartable-0.6.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "195b055bbfc195c15bb76b5efcde2744", "sha256": "5396f82eb7136f882f001a5d71fb6a485bc5314ed17704c8fb2ab2e96091270c" }, "downloads": -1, "filename": "restartable-0.6.7-py3-none-any.whl", "has_sig": false, "md5_digest": "195b055bbfc195c15bb76b5efcde2744", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9940, "upload_time": "2019-08-23T10:30:39", "upload_time_iso_8601": "2019-08-23T10:30:39.965896Z", "url": "https://files.pythonhosted.org/packages/a9/0e/72a55a14f496478da62d8354d9342efcb2b5af67ee99869728d6d6102011/restartable-0.6.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9ee5def47eb82baa8bdb0699f3ba0382", "sha256": "85b3654105ae6beb35934e74b5bc3b4a4cee579f4912312c77be6769ff755a85" }, "downloads": -1, "filename": "restartable-0.6.7.tar.gz", "has_sig": false, "md5_digest": "9ee5def47eb82baa8bdb0699f3ba0382", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7866, "upload_time": "2019-08-23T10:30:41", "upload_time_iso_8601": "2019-08-23T10:30:41.172071Z", "url": "https://files.pythonhosted.org/packages/c7/a0/097a44c8eb52353479b4039bd533659c9d4cec08a5442fff877c3d95ebf2/restartable-0.6.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7": [ { "comment_text": "", "digests": { "md5": "517b2fabbdd2bbc98f22129cab7bd0c6", "sha256": "6c865985abad4982f422b214fdb96d016931433f9bfe0854a9c8333a69e31bf3" }, "downloads": -1, "filename": "restartable-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "517b2fabbdd2bbc98f22129cab7bd0c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 9971, "upload_time": "2019-08-23T11:30:57", "upload_time_iso_8601": "2019-08-23T11:30:57.061297Z", "url": "https://files.pythonhosted.org/packages/f3/a7/697c5cb090d1e83e23c5e43f73357b29be68ea6da4b4639185bc6e1ba58f/restartable-0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b6454afec6bbcaf57fed861239419ce7", "sha256": "c262d39edd12c96e730cfa570eecab1df694812d7d3c30203ecd1ea0c4560956" }, "downloads": -1, "filename": "restartable-0.7.tar.gz", "has_sig": false, "md5_digest": "b6454afec6bbcaf57fed861239419ce7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 7923, "upload_time": "2019-08-23T11:30:58", "upload_time_iso_8601": "2019-08-23T11:30:58.696981Z", "url": "https://files.pythonhosted.org/packages/66/fa/8ac904c4c587971c1aecbbdd5264a279b52005660ad80c9cbdb7c2de1cbd/restartable-0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "b5f9075bb24de16edf27e37d50c93a93", "sha256": "9ff4260d8a01dfb0c919b2959fb9c6cad38474236ca32bbc0f954d3aa02f7a45" }, "downloads": -1, "filename": "restartable-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b5f9075bb24de16edf27e37d50c93a93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10012, "upload_time": "2019-08-23T15:38:01", "upload_time_iso_8601": "2019-08-23T15:38:01.229473Z", "url": "https://files.pythonhosted.org/packages/ed/01/c9aaedfee12e5ac4c61fc2221351141562e52d52ebc3ca3b52be02fc2d01/restartable-0.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0118b7005526bd9d0eefe7c20d0815d7", "sha256": "567262d25d96a9f907cb68c87c5f8c77d9e4fc6d15eca69aec8f157a55b9d776" }, "downloads": -1, "filename": "restartable-0.7.1.tar.gz", "has_sig": false, "md5_digest": "0118b7005526bd9d0eefe7c20d0815d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8012, "upload_time": "2019-08-23T15:38:02", "upload_time_iso_8601": "2019-08-23T15:38:02.954273Z", "url": "https://files.pythonhosted.org/packages/f7/e8/1d733b88174e7c590ce359ff4fcc5e3d369edb0426ad507ec9b2fd64bbb0/restartable-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "04d02050c8ad86a61cdf6c4ce46364eb", "sha256": "a4b051ee75ab2538b3bf978527d6c22268a4bc503fd4c5e731df190100e861c3" }, "downloads": -1, "filename": "restartable-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "04d02050c8ad86a61cdf6c4ce46364eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10022, "upload_time": "2019-08-28T16:12:05", "upload_time_iso_8601": "2019-08-28T16:12:05.512227Z", "url": "https://files.pythonhosted.org/packages/b2/29/0a314508f9a2c145745c24c0e8a8fbed7afebeaeaf7ee0849bad930e72b2/restartable-0.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8cc96e4ca9848caca136ff426d8ae2bb", "sha256": "d64c0419c42f057105dbbed699fe652afbdf3f019e3a653dd43f117df9e85dbc" }, "downloads": -1, "filename": "restartable-0.7.2.tar.gz", "has_sig": false, "md5_digest": "8cc96e4ca9848caca136ff426d8ae2bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8017, "upload_time": "2019-08-28T16:12:07", "upload_time_iso_8601": "2019-08-28T16:12:07.185847Z", "url": "https://files.pythonhosted.org/packages/45/23/ded04797361ed334c12f3205274bb8d481d3072b77d14cb8c80e56681d61/restartable-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "52769e3380783fe3eadbf1f478702e03", "sha256": "c86356f497cf110f2b30a30d1c6c0ae0653d2534dab5ffe875c0e2048a058885" }, "downloads": -1, "filename": "restartable-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "52769e3380783fe3eadbf1f478702e03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10053, "upload_time": "2019-08-30T16:28:25", "upload_time_iso_8601": "2019-08-30T16:28:25.762964Z", "url": "https://files.pythonhosted.org/packages/5e/31/b97cc8dfed9ee8dd4e748eb54a96311444e9cce782a17bf959adb72db41b/restartable-0.7.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "61a81b7dbf036a871f6faa274d354b60", "sha256": "783aafc898d64fcfc05ddceea7c334bef9d5433947ef79fd583f551880082c43" }, "downloads": -1, "filename": "restartable-0.7.3.tar.gz", "has_sig": false, "md5_digest": "61a81b7dbf036a871f6faa274d354b60", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8032, "upload_time": "2019-08-30T16:28:27", "upload_time_iso_8601": "2019-08-30T16:28:27.211858Z", "url": "https://files.pythonhosted.org/packages/1e/60/fbda4ae5074d91e1f7a88bc49780372a363088c3cb43c119d327019f4c47/restartable-0.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "5a457990494235cc35be6b8c7e84fb47", "sha256": "e8c499f276d4b3f2599d9992f5fed6d2ecdb4281aed57725dd0f335aa62962c9" }, "downloads": -1, "filename": "restartable-0.7.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5a457990494235cc35be6b8c7e84fb47", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10232, "upload_time": "2019-10-03T20:17:49", "upload_time_iso_8601": "2019-10-03T20:17:49.674111Z", "url": "https://files.pythonhosted.org/packages/2c/31/d1627e3496c8d5456d84680aadf6ca5f65d82f154545473593977dcf5d4a/restartable-0.7.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "75cccdcdcefe03478c4eee5970abcb6e", "sha256": "1121d99bdb8ea89bc43462433864c5404c2e055381076bcaf88fedbb70b3f534" }, "downloads": -1, "filename": "restartable-0.7.4.tar.gz", "has_sig": false, "md5_digest": "75cccdcdcefe03478c4eee5970abcb6e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8168, "upload_time": "2019-10-03T20:17:51", "upload_time_iso_8601": "2019-10-03T20:17:51.462573Z", "url": "https://files.pythonhosted.org/packages/dc/4d/5aaff6a4c3c1cd8fac1d74bd32190451ee27ae95c79876e4518b1d8300ab/restartable-0.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "33f42cbad1ecae7ffbc05af004cb1ee1", "sha256": "ea07f904a8dc0a7d566132f4b4e70699d93b4cf3f13b18a32ab21cc335fe6872" }, "downloads": -1, "filename": "restartable-0.7.5-py3-none-any.whl", "has_sig": false, "md5_digest": "33f42cbad1ecae7ffbc05af004cb1ee1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10920, "upload_time": "2019-10-10T11:45:35", "upload_time_iso_8601": "2019-10-10T11:45:35.355859Z", "url": "https://files.pythonhosted.org/packages/4f/1e/37f22b2e5dde332bf0820fe7cb72a03a0b2bc4f10db31d82dfc15f299a17/restartable-0.7.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e22ac178318be8251c5459a3d12ff88d", "sha256": "03f05fbae957b4c74758fe6df4d2daae2305db07dcb64a8df5587593f1f45261" }, "downloads": -1, "filename": "restartable-0.7.5.tar.gz", "has_sig": false, "md5_digest": "e22ac178318be8251c5459a3d12ff88d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 9141, "upload_time": "2019-10-10T11:45:37", "upload_time_iso_8601": "2019-10-10T11:45:37.098778Z", "url": "https://files.pythonhosted.org/packages/81/da/6976af384157ac68a351c60a43167f505e61052d8f74b3dad1c840243b13/restartable-0.7.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "0fc7bc1e91bcde4b3dd929a3df878ee1", "sha256": "d0724e68411900812d46aa0b5cbad98f0a91465e72594a1f2ff98391042e0b19" }, "downloads": -1, "filename": "restartable-0.7.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0fc7bc1e91bcde4b3dd929a3df878ee1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 10898, "upload_time": "2019-10-16T10:00:21", "upload_time_iso_8601": "2019-10-16T10:00:21.429337Z", "url": "https://files.pythonhosted.org/packages/f4/24/1cf9b9e28beaa7bbb8fcbea791923636db9b09cfd48065fb0a5ca0793aed/restartable-0.7.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "50ded7df7af6bc12939fd18628e87f99", "sha256": "b6267f50f9103181b21ba27c8add9abfe93401863865eb4d317aad273b60f175" }, "downloads": -1, "filename": "restartable-0.7.6.tar.gz", "has_sig": false, "md5_digest": "50ded7df7af6bc12939fd18628e87f99", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 9118, "upload_time": "2019-10-16T10:00:22", "upload_time_iso_8601": "2019-10-16T10:00:22.940369Z", "url": "https://files.pythonhosted.org/packages/c1/44/bbf988b3146435d616f1c2040ed1325e68d40f74ef20017ee5feeaa19bd6/restartable-0.7.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "894079925cf5ef8060b23a866fcd5dca", "sha256": "d8bf718f9b72d72a4c0c9ac1cc6aa509d491be5c29dde2c0a80d9e9c7e2c4a77" }, "downloads": -1, "filename": "restartable-0.7.7-py3-none-any.whl", "has_sig": false, "md5_digest": "894079925cf5ef8060b23a866fcd5dca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 12531, "upload_time": "2019-10-25T12:00:07", "upload_time_iso_8601": "2019-10-25T12:00:07.011376Z", "url": "https://files.pythonhosted.org/packages/50/d3/02cb321ebbeb4d6dd70c2abd5d4dc0561a0a2a878a5a1d9fd0ee36f97a42/restartable-0.7.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "221bb45db7cdebeb6b622317b13d620e", "sha256": "8bd205c00a607fad612d0b0f33354d3e11e591d6cb66aa7b9d71c41547799d54" }, "downloads": -1, "filename": "restartable-0.7.7.tar.gz", "has_sig": false, "md5_digest": "221bb45db7cdebeb6b622317b13d620e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11466, "upload_time": "2019-10-25T12:00:08", "upload_time_iso_8601": "2019-10-25T12:00:08.555139Z", "url": "https://files.pythonhosted.org/packages/8f/16/85ce2494409f4df158bcc70b70cc23bc1b47ef6f1d4ce39513f5404702f7/restartable-0.7.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.8": [ { "comment_text": "", "digests": { "md5": "83da95f5881b21022f2890b896a81785", "sha256": "0d2e07579a7af17c19cccb0e0b35ac17135d97329cc7be6c64d1ddd6d7d1ece6" }, "downloads": -1, "filename": "restartable-0.7.8-py3-none-any.whl", "has_sig": false, "md5_digest": "83da95f5881b21022f2890b896a81785", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13394, "upload_time": "2019-11-03T11:13:12", "upload_time_iso_8601": "2019-11-03T11:13:12.725155Z", "url": "https://files.pythonhosted.org/packages/1f/55/1286811a9ce0cccfc17f11048f26cff70e0f7486d4ad2cda18d3ad01afab/restartable-0.7.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "21031113e2add01e27c055dae54bdb4e", "sha256": "551f763ba19219f4a8834a5f36e759ee029b22693f779f2440f483f9f98ac90a" }, "downloads": -1, "filename": "restartable-0.7.8.tar.gz", "has_sig": false, "md5_digest": "21031113e2add01e27c055dae54bdb4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11810, "upload_time": "2019-11-03T11:13:15", "upload_time_iso_8601": "2019-11-03T11:13:15.336238Z", "url": "https://files.pythonhosted.org/packages/65/1c/eb95b801c7a727b229015e183b5bcf4856f7991a6e75e033cea9033966ea/restartable-0.7.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.9": [ { "comment_text": "", "digests": { "md5": "ca143892007db71dc647601fe64db0dc", "sha256": "ae028540df65fd4e8c34a304638debc706489b165ced3bce9f2f6549814f3786" }, "downloads": -1, "filename": "restartable-0.7.9-py3-none-any.whl", "has_sig": false, "md5_digest": "ca143892007db71dc647601fe64db0dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13399, "upload_time": "2019-11-06T09:38:21", "upload_time_iso_8601": "2019-11-06T09:38:21.321276Z", "url": "https://files.pythonhosted.org/packages/37/5b/23ef39c67c82f1af77b0fa5e37886ed430c52a108567bf6eee069a44687b/restartable-0.7.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "49079d1224bed6acc34ba0fa786bae0c", "sha256": "cbbe5e3752ef449e321313a17bdfc1537887cde88a5367af4e00981013c507c8" }, "downloads": -1, "filename": "restartable-0.7.9.tar.gz", "has_sig": false, "md5_digest": "49079d1224bed6acc34ba0fa786bae0c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12270, "upload_time": "2019-11-06T09:38:22", "upload_time_iso_8601": "2019-11-06T09:38:22.940596Z", "url": "https://files.pythonhosted.org/packages/94/d3/950144151d0e9d0b2aeb07a7cf43adc36ae255c6e5d4728ba6561b5e1cc8/restartable-0.7.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8": [ { "comment_text": "", "digests": { "md5": "f4a3bef93d1d26c50f3cb58abc299d48", "sha256": "728448247726ec17fac2c8f4d66aa5db02659f8e2cad79a18f725d3851550bc3" }, "downloads": -1, "filename": "restartable-0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f4a3bef93d1d26c50f3cb58abc299d48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13405, "upload_time": "2019-11-06T20:37:39", "upload_time_iso_8601": "2019-11-06T20:37:39.444375Z", "url": "https://files.pythonhosted.org/packages/9a/5c/8cb5fe404f738b2f5b833f68a11d34edb1647adb5486c5102f0b424485c7/restartable-0.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b21537f49c5343b6bf75fb1b70c123d8", "sha256": "44a43aa8e177892f0d2baa2178b6d44178463b686847db030c9c501fca847672" }, "downloads": -1, "filename": "restartable-0.8.tar.gz", "has_sig": false, "md5_digest": "b21537f49c5343b6bf75fb1b70c123d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11865, "upload_time": "2019-11-06T20:37:41", "upload_time_iso_8601": "2019-11-06T20:37:41.146598Z", "url": "https://files.pythonhosted.org/packages/10/c6/ef8a9b6c5bc7913cd9019ef79be5c8afd7411e431af7857a1fa6fd77d79c/restartable-0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "7140b1f4c65dff456d7d2ab0c572c0ea", "sha256": "71df8ddd2a1f28a7dc7ecbbc610aedb5ba748cbb2c49c8b701b5cd14f159f379" }, "downloads": -1, "filename": "restartable-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7140b1f4c65dff456d7d2ab0c572c0ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13418, "upload_time": "2019-11-07T09:58:22", "upload_time_iso_8601": "2019-11-07T09:58:22.181054Z", "url": "https://files.pythonhosted.org/packages/27/a3/21262fe9be1f1655b9d27963ffc20dd87350de5d3a5c1cef6e8a8d927a29/restartable-0.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9fd4125ddcfc0875962b691724b68d5a", "sha256": "41fc3c695f9d21e6f341866d8fbd91b5a496c685dc8e9c9fc7562e9ab969fb96" }, "downloads": -1, "filename": "restartable-0.8.1.tar.gz", "has_sig": false, "md5_digest": "9fd4125ddcfc0875962b691724b68d5a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12287, "upload_time": "2019-11-07T09:58:23", "upload_time_iso_8601": "2019-11-07T09:58:23.792755Z", "url": "https://files.pythonhosted.org/packages/90/b0/b0df0ae6e91af1e83d5c8f67e269ea9dbcb4d5cbf2ec4668dea24ff34a09/restartable-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "0d05a10b5416e1fc3acc7785928a4724", "sha256": "4729a5d8a53669e0e31e9845b862a55cdd15e5e15e5d74595cc06e182f42e6da" }, "downloads": -1, "filename": "restartable-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0d05a10b5416e1fc3acc7785928a4724", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13412, "upload_time": "2019-11-07T12:12:19", "upload_time_iso_8601": "2019-11-07T12:12:19.940729Z", "url": "https://files.pythonhosted.org/packages/c1/c4/3a199b23a1632e91915b8cc815fafa968160e58c8dfdab698d06fc1b3035/restartable-0.8.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "70924bdfc3c898b55b27de499997a3da", "sha256": "c7a29ae8501073b305aabd019b52e0ae5e54bb296bf40d3ca0fbc0f94b79e0bd" }, "downloads": -1, "filename": "restartable-0.8.2.tar.gz", "has_sig": false, "md5_digest": "70924bdfc3c898b55b27de499997a3da", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12289, "upload_time": "2019-11-07T12:12:21", "upload_time_iso_8601": "2019-11-07T12:12:21.688111Z", "url": "https://files.pythonhosted.org/packages/2d/ea/21a615e2e688decf458748829ae0b59d2198feb17a0979d82c4e4f6cdce7/restartable-0.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "84b7ab8a8c511f34256b0391e1fd55d9", "sha256": "ee19ba99dea8faa37c8103ca0a4967ff5b2544dd84375679139234bf54a0ba3e" }, "downloads": -1, "filename": "restartable-0.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "84b7ab8a8c511f34256b0391e1fd55d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13442, "upload_time": "2019-11-17T00:07:22", "upload_time_iso_8601": "2019-11-17T00:07:22.134807Z", "url": "https://files.pythonhosted.org/packages/f1/10/68d349470a932cb82dccfde795b7433a7aee11c63721ce5fb46fdebae114/restartable-0.8.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "10bd5f6755a0f6b437b451878ee7b7eb", "sha256": "dabc51487b1d680e5909cdb4c34e31d03568e1afa13f85e1d8ad0c61407c4160" }, "downloads": -1, "filename": "restartable-0.8.3.tar.gz", "has_sig": false, "md5_digest": "10bd5f6755a0f6b437b451878ee7b7eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12322, "upload_time": "2019-11-17T00:07:23", "upload_time_iso_8601": "2019-11-17T00:07:23.739022Z", "url": "https://files.pythonhosted.org/packages/1e/ac/79f6c0e64d1ef75dd13eaa51e597c03de1ca675ea6e8e8b4288658770749/restartable-0.8.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "84288361b9646d939223ab3aff4809d2", "sha256": "033f3bd8b79f0742b0da533a475ee389f3a09ba3dca399e0b79ab828a0a99a42" }, "downloads": -1, "filename": "restartable-0.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "84288361b9646d939223ab3aff4809d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13770, "upload_time": "2020-05-14T21:52:51", "upload_time_iso_8601": "2020-05-14T21:52:51.623580Z", "url": "https://files.pythonhosted.org/packages/16/dc/7f08621d1806547b2fbc6827506c37e79baeb1b5ca5252b27f6ae0bdd0e1/restartable-0.8.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d1e4ba886cee018a5ac037daf0dd246c", "sha256": "503fffae30e3ece2c95a368c9de69df4caefba4717451ba405dfbd0390e8cd86" }, "downloads": -1, "filename": "restartable-0.8.4.tar.gz", "has_sig": false, "md5_digest": "d1e4ba886cee018a5ac037daf0dd246c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13089, "upload_time": "2020-05-14T21:52:53", "upload_time_iso_8601": "2020-05-14T21:52:53.072084Z", "url": "https://files.pythonhosted.org/packages/0f/0f/7e8869933af7cf860e7355bd69aff8868effe85c3637bfdae8c6b12729e0/restartable-0.8.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "50dadcf98e24191e9a291ceef67b0b42", "sha256": "3e7fb42ba49a5f3a231eb42d3149f05fbf90184a1c7cf7f54d1fe9d357c828e5" }, "downloads": -1, "filename": "restartable-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "50dadcf98e24191e9a291ceef67b0b42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13771, "upload_time": "2021-04-07T11:02:44", "upload_time_iso_8601": "2021-04-07T11:02:44.106026Z", "url": "https://files.pythonhosted.org/packages/0f/e7/f1dc772c321f7631053f2de3a0fa67273af29ea7a05ca047a67f23649a13/restartable-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "25e3e9746b0c6a78458b1fbb5bd82662", "sha256": "11abd4e474c3af061c1cc1c7908bb6a5d21409bbf352bf4127c17f077e604616" }, "downloads": -1, "filename": "restartable-0.9.0.tar.gz", "has_sig": false, "md5_digest": "25e3e9746b0c6a78458b1fbb5bd82662", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13338, "upload_time": "2021-04-07T11:02:45", "upload_time_iso_8601": "2021-04-07T11:02:45.848843Z", "url": "https://files.pythonhosted.org/packages/7f/f0/09562ac1134a555678a3e6d3c17924a654f12a6c446525276d4453537708/restartable-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "10fda71c74201b57cad3dbf55c29a939", "sha256": "fc1ab876b09773005f48ad5b9d51992aea7a899eb48c316a51f4aa9f75eeb9b0" }, "downloads": -1, "filename": "restartable-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "10fda71c74201b57cad3dbf55c29a939", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13788, "upload_time": "2021-04-07T17:42:40", "upload_time_iso_8601": "2021-04-07T17:42:40.607244Z", "url": "https://files.pythonhosted.org/packages/21/74/bbfb2c434fcb7f18920ccd2042ff7f1c22226bb67ff1cbe19d1cb16d57b5/restartable-0.9.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "660c1326115b558b869e340c77020273", "sha256": "8a11dc60744b0c5a7d910f232c4e4078d085b98a456c1fb4fd3d092ddc49c0ce" }, "downloads": -1, "filename": "restartable-0.9.1.tar.gz", "has_sig": false, "md5_digest": "660c1326115b558b869e340c77020273", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13365, "upload_time": "2021-04-07T17:42:42", "upload_time_iso_8601": "2021-04-07T17:42:42.262289Z", "url": "https://files.pythonhosted.org/packages/28/17/7e73a9143e22c560865bb686cd038f75d166e719436a883051fc2c0c080c/restartable-0.9.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10fda71c74201b57cad3dbf55c29a939", "sha256": "fc1ab876b09773005f48ad5b9d51992aea7a899eb48c316a51f4aa9f75eeb9b0" }, "downloads": -1, "filename": "restartable-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "10fda71c74201b57cad3dbf55c29a939", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 13788, "upload_time": "2021-04-07T17:42:40", "upload_time_iso_8601": "2021-04-07T17:42:40.607244Z", "url": "https://files.pythonhosted.org/packages/21/74/bbfb2c434fcb7f18920ccd2042ff7f1c22226bb67ff1cbe19d1cb16d57b5/restartable-0.9.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "660c1326115b558b869e340c77020273", "sha256": "8a11dc60744b0c5a7d910f232c4e4078d085b98a456c1fb4fd3d092ddc49c0ce" }, "downloads": -1, "filename": "restartable-0.9.1.tar.gz", "has_sig": false, "md5_digest": "660c1326115b558b869e340c77020273", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13365, "upload_time": "2021-04-07T17:42:42", "upload_time_iso_8601": "2021-04-07T17:42:42.262289Z", "url": "https://files.pythonhosted.org/packages/28/17/7e73a9143e22c560865bb686cd038f75d166e719436a883051fc2c0c080c/restartable-0.9.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }