{ "info": { "author": "Ionel Cristian M\u0103rie\u0219", "author_email": "contact@ionelmc.ro", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "========\nOverview\n========\n\n\n\nA tool to wait for services and execute command. Useful for Docker containers that depend on slow to start services\n(like almost everything).\n\n* Free software: BSD 2-Clause License\n\nInstallation\n============\n\n::\n\n pip install holdup\n\nDocumentation\n=============\n\nUsage: ``holdup [-h] [-t SECONDS] [-T SECONDS] [-i SECONDS] [-n] [--insecure] service [service ...] [-- command [arg [arg ...]]]``\n\nWait for services to be ready and optionally exec command.\n\nPositional arguments:\n ``service``\n A service to wait for. Supported protocols:\n \"tcp://host:port/\", \"path:///path/to/something\",\n \"unix:///path/to/domain.sock\", \"eval://expr\",\n \"http://urn\", \"http://urn\", \"https+insecure//urn\" (status 200 expected). Join\n protocols with a comma to make holdup exit at the\n first passing one, eg: tcp://host:1,host:2 or\n tcp://host:1,tcp://host:2 are equivalent and mean \"any\n that pass\".\n\n ``command``\n An optional command to exec.\n\nOptional arguments:\n -h, --help show this help message and exit\n -t SECONDS, --timeout SECONDS\n Time to wait for services to be ready. Default: 60.0\n -T SECONDS, --check-timeout SECONDS\n Time to wait for a single check. Default: 1.0\n -i SECONDS, --interval SECONDS\n How often to check. Default: 0.2\n -n, --no-abort Ignore failed services. This makes `holdup` return 0\n exit code regardless of services actually responding.\n --insecure Skip SSL Certificate verification for HTTPS services.\n\nSuggested use\n-------------\n\nAssuming you always want the container to wait add this in your ``Dockerfile``::\n\n COPY entrypoint.sh /\n ENTRYPOINT [\"/entrypoint.sh\"]\n CMD [\"/bin/bash\"]\n\nThen in ``entrypoint.sh`` you could have::\n\n #!/bin/sh\n set -eux\n urlstrip() { string=${@##*://}; echo ${string%%[\\?/]*}; }\n exec holdup \\\n \"tcp://$DJANGO_DATABASE_HOST:$DJANGO_DATABASE_PORT\" \\\n \"tcp://$(urlstrip $CELERY_RESULT_BACKEND)\" \\\n -- \"$@\"\n\nThe only disadvantage is that you might occasionally need to use ``docker run --entrypoint=''`` to avoid running holdup. No biggie.\n\nInsecure HTTPS Service Checks\n-------------------------------\n\nYou may choose to skip SSL validation when waiting for an HTTPS service (for e.g., when using an IP Address). This can be done using either of the following methods::\n\n # Specifying a https+insecure protocol\n holdup https+insecure://10.1.2.3/\n\n # Specifying the --insecure` option\n holdup --insecure https://10.1.2.3/\n\nSkipping SSL Certificate verification requires a minimum of Python-2.7.9 or Python-3.4.3.\n\nDevelopment\n===========\n\nTo run the all tests run::\n\n tox\n\nNote, to combine the coverage data from all the tox environments run:\n\n.. list-table::\n :widths: 10 90\n :stub-columns: 1\n\n - - Windows\n - ::\n\n set PYTEST_ADDOPTS=--cov-append\n tox\n\n - - Other\n - ::\n\n PYTEST_ADDOPTS=--cov-append tox\n\n\nChangelog\n=========\n\n1.8.0 (2019-05-28)\n------------------\n\n* Added a PostgreSQL check. It handles the ``the database system is starting up`` problem.\n Contributed by Dan Ailenei in `#6 `_.\n* Changed output so it's more clear and more brief:\n\n * arguments (checks) are quoted when printed,\n * \"any\" checks give exact info about what made it pass,\n * repetitive information is removed.\n* Simplified the internals for the \"AnyCheck\".\n\n1.7.0 (2018-11-24)\n------------------\n\n* Added support for skipping SSL certificate verification for HTTPS services\n (the ``--insecure`` option and ``https+insecure`` protocol).\n Contributed by Mithun Ayachit in `#2 `_.\n\n1.6.0 (2018-03-22)\n------------------\n\n* Added verbose mode (`-v` or ``--verbose``).\n* Changed default timeout to 60s (from 5s).\n\n1.5.0 (2017-06-07)\n------------------\n\n* Added an ``eval://expression`` protocol for weird user-defined checks.\n\n1.4.0 (2017-03-27)\n------------------\n\n* Added support for HTTP(S) check.\n\n1.3.0 (2017-02-21)\n------------------\n\n* Add support for \"any\" service check (service syntax with comma).\n\n1.2.1 (2016-06-17)\n------------------\n\n* Handle situation where internal operations would take more than planned.\n\n1.2.0 (2016-05-25)\n------------------\n\n* Added a file check.\n\n1.1.0 (2016-05-06)\n------------------\n\n* Removed debug print.\n* Added ``--interval`` option for how often to check. No more spinloops.\n\n1.0.0 (2016-04-22)\n------------------\n\n* Improved tests.\n* Always log to stderr.\n\n0.1.0 (2016-04-21)\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/ionelmc/python-holdup", "keywords": "wait,port,service,docker,unix,domain,socket,tcpwaiter,holdup,hold-up", "license": "BSD 2-Clause License", "maintainer": "", "maintainer_email": "", "name": "holdup", "package_url": "https://pypi.org/project/holdup/", "platform": "", "project_url": "https://pypi.org/project/holdup/", "project_urls": { "Changelog": "https://python-holdup.readthedocs.io/en/latest/changelog.html", "Documentation": "https://python-holdup.readthedocs.io/", "Homepage": "https://github.com/ionelmc/python-holdup", "Issue Tracker": "https://github.com/ionelmc/python-holdup/issues" }, "release_url": "https://pypi.org/project/holdup/1.8.0/", "requires_dist": [ "psycopg2 ; (platform_python_implementation==\"CPython\") and extra == 'pg'", "psycopg2cffi ; (platform_python_implementation==\"PyPy\") and extra == 'pg'" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "summary": "A tool to wait for services and execute command. Useful for Docker containers that depend on slow to start services (like almost everything).", "version": "1.8.0" }, "last_serial": 5327197, "releases": { "0": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "47d7532b80a4e9a2e6ae5d34cdcccb8d", "sha256": "b405bd70b0ec3389df822bd99db6f9f1285fb23335642815fb1e3653ed8fdda1" }, "downloads": -1, "filename": "holdup-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47d7532b80a4e9a2e6ae5d34cdcccb8d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6138, "upload_time": "2016-04-21T18:34:13", "url": "https://files.pythonhosted.org/packages/ff/d7/f0f9f74d34761aca2d2150e4e34a17e1f1c592407cbe74d06d8570180c68/holdup-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7167df1839e40db1db6b008a31b2836", "sha256": "793582ed4a6a3997d97c98d527346662b5f91c6acb55a76fd5722151cf1782c6" }, "downloads": -1, "filename": "holdup-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f7167df1839e40db1db6b008a31b2836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14238, "upload_time": "2016-04-21T18:34:54", "url": "https://files.pythonhosted.org/packages/67/00/8e3c28ae326cff89e3498a6427386af415a790a8da4b4dd882ad1bf69fe0/holdup-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "656a1fe72b909d05b5e09e3c7f89ace6", "sha256": "82703ba1ced21cf70ad13c9bbd36e0e857c55ad4a2abbc8d78992b9c40ac3b6c" }, "downloads": -1, "filename": "holdup-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "656a1fe72b909d05b5e09e3c7f89ace6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6139, "upload_time": "2016-04-21T18:47:41", "url": "https://files.pythonhosted.org/packages/4e/c6/10fabffe75f598170c0ca6c8b468fe5f97df896dba0618c4e12ca56f9b78/holdup-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "881bdddeb9a91662caa5cfa54140e615", "sha256": "da417ea85bad96c5f2aa4c80c66c62fcd6b24569d970c97068f6bd60cef3e231" }, "downloads": -1, "filename": "holdup-0.1.1.tar.gz", "has_sig": false, "md5_digest": "881bdddeb9a91662caa5cfa54140e615", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14235, "upload_time": "2016-04-21T18:49:51", "url": "https://files.pythonhosted.org/packages/97/11/9d39c2d5a7db137a4e7feacff19f985e91ec56743851cdf2a38fbd39d1a0/holdup-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "55e2d169a61440715b11c58162de520a", "sha256": "1243053dc14401e05b0d452a26574157ae0bccc9a592fb670b5e1c13c235aa0a" }, "downloads": -1, "filename": "holdup-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55e2d169a61440715b11c58162de520a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6143, "upload_time": "2016-04-21T19:07:20", "url": "https://files.pythonhosted.org/packages/ec/51/cfac66020d7566dc54efb5aecc5faf0609751af5a2d87bb0734bbab5f83c/holdup-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6981bc98ecb516701ea4ce3fce39dfa2", "sha256": "b9d785ca48cdf1cf8a12d0f372cad72d547cb9d9e4ebdcadb681501ed0dad3fb" }, "downloads": -1, "filename": "holdup-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6981bc98ecb516701ea4ce3fce39dfa2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14501, "upload_time": "2016-04-21T19:08:32", "url": "https://files.pythonhosted.org/packages/e6/b9/8debcef926865d1060d7aba62d1fbe609a97551f4ad8f7e8804d1c5cf0d2/holdup-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6c205307b2402cde681afc4fc46482c0", "sha256": "5f1c1dc8dde20feaa47cae26c6a0ace85c002b72a33a505582dcf77f514b6d85" }, "downloads": -1, "filename": "holdup-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c205307b2402cde681afc4fc46482c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6273, "upload_time": "2016-04-21T19:41:54", "url": "https://files.pythonhosted.org/packages/27/1f/561e5cdf46d7888d618662ec22aa130a64aa051c31a053c2cf5a5b6cd8b0/holdup-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47aa3296c98867dbe860f2ba7c196273", "sha256": "4587d7c3eb388d4f4d339ea78d3c919dfb5d06f726b0f66dd4b1105b338d87fc" }, "downloads": -1, "filename": "holdup-0.1.3.tar.gz", "has_sig": false, "md5_digest": "47aa3296c98867dbe860f2ba7c196273", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14768, "upload_time": "2016-04-21T19:44:18", "url": "https://files.pythonhosted.org/packages/f6/29/54652c5f45c9dc726eb8e5c8511ee81a92698d634a93474b5fde6988868e/holdup-0.1.3.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "0be3fde57df545d60462ee87eef8f57f", "sha256": "4884e8e9ba148cab96aa5e950501485d5be6b4220b7c8579a8a3ba14755f8d30" }, "downloads": -1, "filename": "holdup-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0be3fde57df545d60462ee87eef8f57f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6324, "upload_time": "2016-04-21T21:52:28", "url": "https://files.pythonhosted.org/packages/fc/02/46616a6c459e3b5200a2ab3e6827edb43260eb9de11bc19ad48c9898ea59/holdup-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64e0fd6b4d0555d1beda31f719bf5408", "sha256": "b18822c309efa781427d7d3c89884a6ba2722f74440b5b407441914c524a7772" }, "downloads": -1, "filename": "holdup-1.0.0.tar.gz", "has_sig": false, "md5_digest": "64e0fd6b4d0555d1beda31f719bf5408", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14920, "upload_time": "2016-04-21T22:34:19", "url": "https://files.pythonhosted.org/packages/82/d0/2ba42a5a066797ae0e36e8b28aabda9d1c86c0f5eba9a3eeef7209a9691e/holdup-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "74802adc259609ff0eb0d901c0a923d5", "sha256": "ad723342d390f6a8cbb0792b707c56358b851ed9285b7808b900271b6e000700" }, "downloads": -1, "filename": "holdup-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "74802adc259609ff0eb0d901c0a923d5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6607, "upload_time": "2016-05-06T15:42:51", "url": "https://files.pythonhosted.org/packages/30/b8/9f8ada3a5bccb34e46bc92e73ce938fca8f6946baf8f1d2196b11c4360f6/holdup-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75aa41bb19230942c629a4cdaf7d0523", "sha256": "7ae50a34e3afe7a287fd97b4eefa1db22fbadd79313fdf8128147cd936c80500" }, "downloads": -1, "filename": "holdup-1.1.0.tar.gz", "has_sig": false, "md5_digest": "75aa41bb19230942c629a4cdaf7d0523", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15153, "upload_time": "2016-05-06T15:42:56", "url": "https://files.pythonhosted.org/packages/94/06/232c44ccfec8e88618a80cac9a9a895c8274ff56a30e602220b7e4c93ce7/holdup-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "03416c26868a85d4eb65a27d9f2ba530", "sha256": "15b5ffb62b740c7badf01fb56a5f9d29df335b55246f458746f25c29b6fbe92d" }, "downloads": -1, "filename": "holdup-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03416c26868a85d4eb65a27d9f2ba530", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6731, "upload_time": "2016-05-25T21:21:16", "url": "https://files.pythonhosted.org/packages/64/cd/01db2c2507168fb15f5ff34dd33d25d30cb8ebc39091e4c0926444955a87/holdup-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22696171f6e07519a525e79643c7f376", "sha256": "293b09ed59515cf86d5684331f224cff71d171d13840aade35c243e2290a44ab" }, "downloads": -1, "filename": "holdup-1.2.0.tar.gz", "has_sig": false, "md5_digest": "22696171f6e07519a525e79643c7f376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15398, "upload_time": "2016-05-25T21:21:30", "url": "https://files.pythonhosted.org/packages/81/65/372ce8aef339409e1bed97fae259fd5fd4c18f9e9a0b10c8a8bbd3d21d6a/holdup-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ed97b582d9f7a61cff0ea6b484a49cf4", "sha256": "841fad094353076814c233a31169f85e9651e19c04bc6c7be8497b654cb96f0f" }, "downloads": -1, "filename": "holdup-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed97b582d9f7a61cff0ea6b484a49cf4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6845, "upload_time": "2016-06-17T15:23:38", "url": "https://files.pythonhosted.org/packages/7f/03/d95c257d26cdd6d5dcd6ff83d250be3d41e5824d3e0c154c985bcd85d2cd/holdup-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14565121efe1a24574a45502013d57f9", "sha256": "c8fe61a28aa9dd653e2f38b990bc59d3b806db96e8445186bd499c84d6173803" }, "downloads": -1, "filename": "holdup-1.2.1.tar.gz", "has_sig": false, "md5_digest": "14565121efe1a24574a45502013d57f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15470, "upload_time": "2016-06-17T15:23:42", "url": "https://files.pythonhosted.org/packages/2d/f0/661eadd24830393763cc30f6ed92071942b44a11a35ebc68e8b6f32441bd/holdup-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "89cd61a0d6b51da8e302ab0768c3a582", "sha256": "5ea8ca7d8d34fb8b22c57e99010154efc017c6c1a5c878766d3f917399dd0ba2" }, "downloads": -1, "filename": "holdup-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89cd61a0d6b51da8e302ab0768c3a582", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7363, "upload_time": "2017-02-21T14:40:57", "url": "https://files.pythonhosted.org/packages/fe/44/561e8f9dd002cced3a7acede42a7013f5b556963956863822f431f9bd3d1/holdup-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24e8083b75f722310325d735a1c2b3ee", "sha256": "8b615ad0f99916cb399f0544a1812c2c601a19595386f2fdf3e0cf40c4b0ac4c" }, "downloads": -1, "filename": "holdup-1.3.0.tar.gz", "has_sig": false, "md5_digest": "24e8083b75f722310325d735a1c2b3ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16135, "upload_time": "2017-02-21T14:40:59", "url": "https://files.pythonhosted.org/packages/2b/af/05c8098c64245eee88dd1f0bed01fceba24a03c0c00cd80473ef39d798cf/holdup-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "3818e8e5469ce44486ddad4f9157da8e", "sha256": "b880922995a88b24e1a0f6e6fcd7f359e59241233bdcc90af93d7e1cef22e32d" }, "downloads": -1, "filename": "holdup-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3818e8e5469ce44486ddad4f9157da8e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7916, "upload_time": "2017-03-27T12:35:55", "url": "https://files.pythonhosted.org/packages/7e/fe/ee2773be65d3487f9b501d99d2de34150a9365f2a52426f7961a68dc5249/holdup-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfeef92615672686982fbf010d203863", "sha256": "e999e0f76353ecf35d521d965ab14dc00f9d353ad7b70077f8450d72762dc911" }, "downloads": -1, "filename": "holdup-1.4.0.tar.gz", "has_sig": false, "md5_digest": "cfeef92615672686982fbf010d203863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15412, "upload_time": "2017-03-27T12:35:57", "url": "https://files.pythonhosted.org/packages/dd/d0/7a5493af5028d36efb9adfcca0a59eb76bb54e0f5a5a485ba84902dc38f7/holdup-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "f4e66debd2cb7560e28a1fec3e7c47fa", "sha256": "516f4e707bd7e714b61ef084c897b5fdf6b3b0d4c286065fba85cf499ed5364d" }, "downloads": -1, "filename": "holdup-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4e66debd2cb7560e28a1fec3e7c47fa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8399, "upload_time": "2017-06-09T23:26:48", "url": "https://files.pythonhosted.org/packages/5d/83/9a1d8d866793c9a8f5f3a978a0a6d732df7613b480c1e25ff7b1885197b0/holdup-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02b9daf1c5ca848637c2c75f1d082be6", "sha256": "c98307d150a54e13a068ad05d4c1d0b76546517f70c1bb8049f51e7ea1e0c9c0" }, "downloads": -1, "filename": "holdup-1.5.0.tar.gz", "has_sig": false, "md5_digest": "02b9daf1c5ca848637c2c75f1d082be6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16189, "upload_time": "2017-06-09T23:26:49", "url": "https://files.pythonhosted.org/packages/04/a3/e55e9ae12a9405a26ef342b9d03af1939cae7635ccb1e0757dc806d01505/holdup-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "eb57c5da4c66c7704596beddb006fa78", "sha256": "c8bfe7b73eaa446f6cf74e9b73df28a09e31b318c69af988bfc4a342a24654d3" }, "downloads": -1, "filename": "holdup-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb57c5da4c66c7704596beddb006fa78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9419, "upload_time": "2018-03-22T12:41:47", "url": "https://files.pythonhosted.org/packages/06/1d/99be5e63338a191684c444f37e4e851f2269fb46f68c9abe486abfe74b1d/holdup-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbf5c3c31a1963cd47d7b5c7dff3dba3", "sha256": "7c847451e5f83b52ac4dc3c3566985bb8415b53f69ee9a0e05783ae4dc3ef3f3" }, "downloads": -1, "filename": "holdup-1.6.0.tar.gz", "has_sig": false, "md5_digest": "fbf5c3c31a1963cd47d7b5c7dff3dba3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16971, "upload_time": "2018-03-22T12:41:48", "url": "https://files.pythonhosted.org/packages/0a/54/e70e53b97154a8ec4a6691145566dbcb6ab03f5d642fd7c612f840c18e96/holdup-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "4b12cf91371f607f7ea1c3a06b36fe89", "sha256": "e95c18f9793189f93c7dfd59ad751bb8f1f20669d6fe4c357114e624d2d3d6d1" }, "downloads": -1, "filename": "holdup-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b12cf91371f607f7ea1c3a06b36fe89", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8613, "upload_time": "2018-11-23T23:14:22", "url": "https://files.pythonhosted.org/packages/73/3b/e07990ad2ed5f4299d1ed8f49b849783feb36564e0c689b7caa1c6630568/holdup-1.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f965f82afad1d8b065caf0ab40362805", "sha256": "f8762f7ec48c81a14403818d6755bc11dd7bbba5a3790d3925f0c9c76f092a61" }, "downloads": -1, "filename": "holdup-1.7.0.tar.gz", "has_sig": false, "md5_digest": "f965f82afad1d8b065caf0ab40362805", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16989, "upload_time": "2018-11-23T23:14:24", "url": "https://files.pythonhosted.org/packages/4c/aa/6885139d5008d6d2d7069dea857052aac81982ac89576a7ae9a7aba4c06c/holdup-1.7.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "46bcd8c29e3ba5c798c3f4a603ed946e", "sha256": "8ce9113bb1687af59fdd8205ceb6ad0acc20c80933fba1c6916ee83bbb27de58" }, "downloads": -1, "filename": "holdup-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46bcd8c29e3ba5c798c3f4a603ed946e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 9582, "upload_time": "2019-05-28T15:11:38", "url": "https://files.pythonhosted.org/packages/14/9b/3b469c9648df93ae0e9dd77568447d06ef0009e8033551bca27643924f3a/holdup-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82d538a5f63f9a73297e88dfc1927d21", "sha256": "405347f13ab1fcc4f56557a3f97af63fe5a52c16e8b8359bc79946262b22c262" }, "downloads": -1, "filename": "holdup-1.8.0.tar.gz", "has_sig": false, "md5_digest": "82d538a5f63f9a73297e88dfc1927d21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 20135, "upload_time": "2019-05-28T15:11:40", "url": "https://files.pythonhosted.org/packages/83/73/33ddf53c3ab1f03866a1dd221df2337df72c7e9f2c1ab295f94433aea4d5/holdup-1.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "46bcd8c29e3ba5c798c3f4a603ed946e", "sha256": "8ce9113bb1687af59fdd8205ceb6ad0acc20c80933fba1c6916ee83bbb27de58" }, "downloads": -1, "filename": "holdup-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46bcd8c29e3ba5c798c3f4a603ed946e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 9582, "upload_time": "2019-05-28T15:11:38", "url": "https://files.pythonhosted.org/packages/14/9b/3b469c9648df93ae0e9dd77568447d06ef0009e8033551bca27643924f3a/holdup-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82d538a5f63f9a73297e88dfc1927d21", "sha256": "405347f13ab1fcc4f56557a3f97af63fe5a52c16e8b8359bc79946262b22c262" }, "downloads": -1, "filename": "holdup-1.8.0.tar.gz", "has_sig": false, "md5_digest": "82d538a5f63f9a73297e88dfc1927d21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 20135, "upload_time": "2019-05-28T15:11:40", "url": "https://files.pythonhosted.org/packages/83/73/33ddf53c3ab1f03866a1dd221df2337df72c7e9f2c1ab295f94433aea4d5/holdup-1.8.0.tar.gz" } ] }