{ "info": { "author": "Benjamin Schwarze", "author_email": "benjamin.schwarze@mailboxd.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Plugins", "Framework :: Pytest", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing" ], "description": "goodplay\n========\n\n|version| |docs-stable| |supported-ansible-versions| |supported-python-versions| |license| |gitter|\n\ngoodplay is an Apache2-licensed test framework for testing Ansible 2.x roles\nand playbooks as well as running full integration tests for your software.\n\n|build-status| |docs-latest| |code-climate| |code-coverage| |dependencies-status|\n\n.. |build-status| image:: https://img.shields.io/travis/goodplay/goodplay/master.svg\n :alt: Build Status\n :scale: 100%\n :target: https://travis-ci.org/goodplay/goodplay\n\n.. |code-climate| image:: https://img.shields.io/codeclimate/github/goodplay/goodplay.svg\n :alt: Code Climate\n :scale: 100%\n :target: https://codeclimate.com/github/goodplay/goodplay\n\n.. |code-coverage| image:: https://img.shields.io/codecov/c/github/goodplay/goodplay.svg\n :alt: Code Coverage\n :scale: 100%\n :target: https://codecov.io/github/goodplay/goodplay\n\n.. |dependencies-status| image:: https://img.shields.io/requires/github/goodplay/goodplay.svg?label=dependencies\n :alt: Dependencies Status\n :scale: 100%\n :target: https://requires.io/github/goodplay/goodplay/requirements/\n\n.. |docs-latest| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg\n :alt: Documentation\n :scale: 100%\n :target: https://docs.goodplay.io/en/latest/\n\n.. |docs-stable| image:: https://img.shields.io/badge/docs-stable-brightgreen.svg\n :alt: Documentation\n :scale: 100%\n :target: https://docs.goodplay.io/en/stable/\n\n.. |gitter| image:: https://badges.gitter.im/goodplay/goodplay.svg\n :alt: Join the chat at https://gitter.im/goodplay/goodplay\n :scale: 100%\n :target: https://gitter.im/goodplay/goodplay?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. |license| image:: https://img.shields.io/pypi/l/goodplay.svg\n :alt: License\n :scale: 100%\n :target: https://github.com/goodplay/goodplay/blob/master/LICENSE\n\n.. |supported-ansible-versions| image:: https://img.shields.io/badge/ansible-2.5%20|%202.6%20|%202.7-blue.svg\n :alt: Supported Ansible Versions\n :scale: 100%\n :target: https://docs.ansible.com/\n\n.. |supported-python-versions| image:: https://img.shields.io/pypi/pyversions/goodplay.svg\n :alt: Supported Python Versions\n :scale: 100%\n :target: https://pypi.python.org/pypi/goodplay\n\n.. |version| image:: https://img.shields.io/pypi/v/goodplay.svg\n :alt: Version\n :scale: 100%\n :target: https://pypi.python.org/pypi/goodplay\n\n\nFeatures\n--------\n\n* define your test environments via `Docker Compose`_ and\n `Ansible inventories`_\n* write your tests as `Ansible 2.x playbook tasks`_\n* resolve and auto-install Ansible role dependencies prior to test run\n* run your tests within Docker_ container(s), an already existing test\n environment, or on localhost\n* built as a pytest_ plugin to have a solid test runner foundation,\n plus you can run your goodplay tests together with your other tests\n\n.. _`Ansible 2.x playbook tasks`: https://docs.ansible.com/playbooks.html\n.. _`Ansible inventories`: https://docs.ansible.com/ansible/intro_inventory.html\n.. _Docker: https://www.docker.com/\n.. _`Docker Compose`: https://docs.docker.com/compose/\n.. _pytest: https://pytest.org/\n\n\nVersioning\n----------\n\ngoodplay will use `Semantic Versioning`_ when reaching v1.0.0.\nUntil then, the minor version is used for backwards-incompatible changes.\n\n.. _`Semantic Versioning`: http://semver.org/\n\n\nInstallation\n------------\n\nInstalling goodplay is simple with pip_, just run this in your terminal:\n\n.. code-block:: bash\n\n $ pip install goodplay\n\n.. _pip: https://pip.readthedocs.org/\n\n\nContributing\n------------\n\n#. Check for open issues or open a fresh issue to start a discussion around a\n feature idea or bug.\n#. Fork `the repository`_ on GitHub to start making your changes to the\n ``master`` branch (or branch off of it).\n#. Write a test which shows that the bug was fixed or that the feature works\n as expected.\n#. Send a pull request. Make sure to add yourself to AUTHORS_.\n\nJust don't forget to check out our `CONTRIBUTING`_ guidelines \u2014 it includes\nfew technical details that will make the process a lot smoother.\n\n.. _`the repository`: https://github.com/goodplay/goodplay\n.. _AUTHORS: https://github.com/goodplay/goodplay/blob/master/AUTHORS.rst\n.. _CONTRIBUTING: https://github.com/goodplay/goodplay/blob/master/CONTRIBUTING.rst\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://goodplay.io/", "keywords": "goodplay,good,play,test,deployment,ansible,playbook,role,integration,system,tdd,configuration,management", "license": "Apache License 2.0", "maintainer": "Benjamin Schwarze", "maintainer_email": "benjamin.schwarze@mailboxd.de", "name": "goodplay", "package_url": "https://pypi.org/project/goodplay/", "platform": "", "project_url": "https://pypi.org/project/goodplay/", "project_urls": { "Homepage": "https://goodplay.io/" }, "release_url": "https://pypi.org/project/goodplay/0.12.0/", "requires_dist": [ "ansible (>=2.5)", "cached-property (>=1.3.1)", "docker-compose (>=1.22.0)", "py (>=1.4.34)", "pytest (>=3.5.0)", "sarge (>=0.1.5)" ], "requires_python": "", "summary": "goodplay enables you to test your deployments and distributed software infrastructure by reusing your existing knowledge of Ansible.", "version": "0.12.0" }, "last_serial": 4502574, "releases": { "0.1.0": [], "0.10.0": [ { "comment_text": "", "digests": { "md5": "1cebbfa8b6050aacf389fd3b3375ab6a", "sha256": "f2f86b5a18ef04757834d401050c958ee5f751565ffcd5278918e38c66377256" }, "downloads": -1, "filename": "goodplay-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cebbfa8b6050aacf389fd3b3375ab6a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20764, "upload_time": "2018-03-26T13:22:09", "url": "https://files.pythonhosted.org/packages/51/d3/04f35e64f713d0891d6346ebd8ee72aa70eed7fad337d8961c3f17a178d5/goodplay-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b21d2a9d741d71eacafb4bb2728ef290", "sha256": "a3a8d47fc98d213fda176aed6f68859118c386aa038551b4a9a45570c7453704" }, "downloads": -1, "filename": "goodplay-0.10.0.tar.gz", "has_sig": false, "md5_digest": "b21d2a9d741d71eacafb4bb2728ef290", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50145, "upload_time": "2018-03-26T13:22:10", "url": "https://files.pythonhosted.org/packages/d4/5d/5741f96fab5a3faef613f911aed6f1747c5eb1cd8aaac8ee712fec9e6dfb/goodplay-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "f2fffdc8489b835c65499faea406cdb9", "sha256": "54b76f7eee2ef5c6d6e176610eaf26cee765f343749b473f4178d6d8662cb117" }, "downloads": -1, "filename": "goodplay-0.11.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f2fffdc8489b835c65499faea406cdb9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18150, "upload_time": "2018-06-20T07:12:26", "url": "https://files.pythonhosted.org/packages/89/31/22edbaa0fc3e64e9f53abbafe50df3ce8f49556d350e58c2a8b064cbd6a7/goodplay-0.11.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24ca92df283b490e617fa43addce3c70", "sha256": "c6b356302b21dfec50ee27c4462a75128637124af64daa122c31fd84bee63966" }, "downloads": -1, "filename": "goodplay-0.11.0.tar.gz", "has_sig": false, "md5_digest": "24ca92df283b490e617fa43addce3c70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50700, "upload_time": "2018-06-20T07:12:29", "url": "https://files.pythonhosted.org/packages/0e/10/a333fef03b2ceeb57e2ad6a81c01a897232cbe2960bef49b82ba2e096f13/goodplay-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "43a6878525449abab8e51b890785a829", "sha256": "cae42b364e15c9a1943802a8c9d33292d90c447714d8967a539b344ee428a174" }, "downloads": -1, "filename": "goodplay-0.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43a6878525449abab8e51b890785a829", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18626, "upload_time": "2018-11-19T11:56:51", "url": "https://files.pythonhosted.org/packages/9d/2f/bde1a56063c47108d7962b8fdfef76f123412de99d004ad16bfb8cea4619/goodplay-0.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5abd37f8340420c9b851473ed2acabe2", "sha256": "b85ac5a3e47485d35b992116aa87d617bd71df0ff950fcdd9088ecdafd9e1897" }, "downloads": -1, "filename": "goodplay-0.12.0.tar.gz", "has_sig": false, "md5_digest": "5abd37f8340420c9b851473ed2acabe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50563, "upload_time": "2018-11-19T11:56:53", "url": "https://files.pythonhosted.org/packages/e0/92/e2946bdb398c25a5e341e9e20d202cda875d596aa41d915c523503a4efe0/goodplay-0.12.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "69d09930d207ae61818db9f8fc0cf591", "sha256": "eafc6267489455517e3472df1515ad3591901b62c06a955920e17e4b6d84bf1d" }, "downloads": -1, "filename": "goodplay-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69d09930d207ae61818db9f8fc0cf591", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16803, "upload_time": "2016-01-13T21:14:53", "url": "https://files.pythonhosted.org/packages/6d/e0/c184e31fe3ce6182f80b20f3bfbf43317b5ce37cc105d0923b0691233540/goodplay-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c08ca21a442041efa5e9c7ae0ce5136", "sha256": "44dbc428a4e28d2057245992bda07de96ee1f0c2c465305952cac5425507e481" }, "downloads": -1, "filename": "goodplay-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2c08ca21a442041efa5e9c7ae0ce5136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37521, "upload_time": "2016-01-13T21:14:45", "url": "https://files.pythonhosted.org/packages/f8/00/af779de37401f17518c553efe41db795c5fff713e2f0274f4a190de0f6c1/goodplay-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5fc315b4bd1577beaba12e84b50f9248", "sha256": "1204e613b56d32e6acdd3c3fe2d8da66c0b53e9247213c78325435d9c90d5b62" }, "downloads": -1, "filename": "goodplay-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5fc315b4bd1577beaba12e84b50f9248", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16941, "upload_time": "2016-01-22T20:35:55", "url": "https://files.pythonhosted.org/packages/4c/45/e3a6c277d5d7412e454e0b174314f794352abc437324a12f87b8261e062e/goodplay-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "826d52481b4dd4aa84c7e09b09edecaa", "sha256": "2df329363957256532b37117fc940cf911a85d2bceee59a2c8698922895d8c3c" }, "downloads": -1, "filename": "goodplay-0.4.1.tar.gz", "has_sig": false, "md5_digest": "826d52481b4dd4aa84c7e09b09edecaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37934, "upload_time": "2016-01-22T20:35:49", "url": "https://files.pythonhosted.org/packages/10/ee/fe10ee8000526a36393d6b036a478cc80ec508da6d1e5b3308153c3351b2/goodplay-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "48296645d57df487f82c2f812793fefc", "sha256": "20a1a37ffca2a6884c1e4e19e49616176addda1c58c2a2d55e898e8981a29e2c" }, "downloads": -1, "filename": "goodplay-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48296645d57df487f82c2f812793fefc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 18761, "upload_time": "2016-03-20T13:21:11", "url": "https://files.pythonhosted.org/packages/7d/8d/2b72e4840d2b612b525596cd498023d70e1dc2d185dcbb1d92ea2a90f6ca/goodplay-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df1a72a047c7f798a52bfd8833b1ad13", "sha256": "e97613c320462daf90aeeb6ae55573c09b9c6adeff7408bc1d5bbe313f95614f" }, "downloads": -1, "filename": "goodplay-0.5.0.tar.gz", "has_sig": false, "md5_digest": "df1a72a047c7f798a52bfd8833b1ad13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42964, "upload_time": "2016-03-20T13:21:06", "url": "https://files.pythonhosted.org/packages/c2/b8/3112911cdca2abb4836c3baf246f539500bc52e238561e616c7f03c27374/goodplay-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "23c87d7e77fd204fdf09ad1d4527a2de", "sha256": "7bf8b6b2b2fa4e7354664d710f143c9bc8e5283fcd753feb493d75a5856dc8e9" }, "downloads": -1, "filename": "goodplay-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23c87d7e77fd204fdf09ad1d4527a2de", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 18092, "upload_time": "2016-04-28T18:49:41", "url": "https://files.pythonhosted.org/packages/18/09/02df2bf9352e5ec5d90077ba18a2e72b0c74b02f4eface0ed99f3e9375a3/goodplay-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcf228d5d781fd2dcffbd8bbeecd26ac", "sha256": "462a81bf9ef4a460250cb2a2a2064733a321a2cf9e726b619cec001fb347fc21" }, "downloads": -1, "filename": "goodplay-0.6.0.tar.gz", "has_sig": false, "md5_digest": "dcf228d5d781fd2dcffbd8bbeecd26ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45236, "upload_time": "2016-04-28T18:49:36", "url": "https://files.pythonhosted.org/packages/68/90/e3be41d4bb2e09a366306e7c5e77bc44d4b201c2623fbc3b8e484d7fe4bb/goodplay-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "4b261f46a3d5f11fb6f937586efdbb80", "sha256": "1c4048d2338a625d2de2e848f6f76923152de219f313d2bfc04f818bd492bddb" }, "downloads": -1, "filename": "goodplay-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b261f46a3d5f11fb6f937586efdbb80", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 19243, "upload_time": "2016-06-18T12:24:52", "url": "https://files.pythonhosted.org/packages/22/61/ad95a537b4152bd4b6bc7dedb3aaf43db6c242b7cb0611ae7985710119a5/goodplay-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f101fb200757f8f5a5a38bb5ae7cc0ae", "sha256": "13e7ec3ff01ed9abb56cb11e3be36fae1a6fae530b90890d0c6386241de734ee" }, "downloads": -1, "filename": "goodplay-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f101fb200757f8f5a5a38bb5ae7cc0ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47390, "upload_time": "2016-06-18T12:24:49", "url": "https://files.pythonhosted.org/packages/b2/26/68aaad6f8a1a1455be287469c28b3b679b14726f6718fee6491c1f1b1648/goodplay-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "d1d2fb9e361549027c33c83539faa639", "sha256": "dc4757440a3036a2e7d4768004f8841e7f9261f09097fa4f2bf0c3dead498c65" }, "downloads": -1, "filename": "goodplay-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1d2fb9e361549027c33c83539faa639", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 20525, "upload_time": "2017-10-15T07:06:33", "url": "https://files.pythonhosted.org/packages/dc/74/0e44fcb7af0ee4e25390fed2d1dc9f2a0f22de461ff768416c96c7bec4ab/goodplay-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8563c0d3449fdffa7ff2b917e47eded", "sha256": "7ee1e82512db8eadc0750f010633e511ee8d160d3f4ef5f967b60771592db14d" }, "downloads": -1, "filename": "goodplay-0.8.0.tar.gz", "has_sig": false, "md5_digest": "c8563c0d3449fdffa7ff2b917e47eded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48123, "upload_time": "2017-10-15T07:06:30", "url": "https://files.pythonhosted.org/packages/97/07/1de9b756b2e658cf10d1ce217c474032bb18f4b62422ccc08c5c117ffe16/goodplay-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "1c2044d873f77611c18d2658ada8fa24", "sha256": "99f8712d767431e8b709ad85e90ff02d29c8d9b2eeb9a17141824c1f9519bc18" }, "downloads": -1, "filename": "goodplay-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1c2044d873f77611c18d2658ada8fa24", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 20571, "upload_time": "2017-12-19T11:47:31", "url": "https://files.pythonhosted.org/packages/e1/61/0ad93d888faa17aa110d2880b79bbfdc00d687e3f5abc64f165a990434f8/goodplay-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d117414746ffbab8a7826eb619b7b3", "sha256": "6178c576c4597fac8423f4f62b80f4881fef559afb2c089632a09fbec1bc6d50" }, "downloads": -1, "filename": "goodplay-0.8.1.tar.gz", "has_sig": false, "md5_digest": "23d117414746ffbab8a7826eb619b7b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48291, "upload_time": "2017-12-19T11:47:30", "url": "https://files.pythonhosted.org/packages/f8/dc/d4bfe6bd5f57c877fd65ce2be50d01272aaa48671f7ab4e585c1c6b3f33b/goodplay-0.8.1.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "e415352442889cb7511b19046f82525e", "sha256": "c5d247eab401ef574023a2af0edfdc754ed678eee952ca82bb3169436846e1f1" }, "downloads": -1, "filename": "goodplay-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e415352442889cb7511b19046f82525e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 20608, "upload_time": "2017-12-25T14:22:07", "url": "https://files.pythonhosted.org/packages/87/b3/faec1944cab71b00ab53d651655e29a390bda0e4968b8e552a1827f02063/goodplay-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed560167f2bfa3ff0e5adc79da086bf1", "sha256": "68d0c1526bd6f1bb125ce1b9c9feaa6e3f97d218a2774e5d28ad6364c9206ba7" }, "downloads": -1, "filename": "goodplay-0.9.0.tar.gz", "has_sig": false, "md5_digest": "ed560167f2bfa3ff0e5adc79da086bf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48348, "upload_time": "2017-12-25T14:22:05", "url": "https://files.pythonhosted.org/packages/60/53/d5c538ca09a8e777b983c565a3fd7c2c6357d705ecf6a103f19352d389ea/goodplay-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "7b984b761b523f2e56ef75a49461dcc0", "sha256": "15101fca915860aa96b6531494f214d1bd52bfb41ab00220fd002f5e501274e5" }, "downloads": -1, "filename": "goodplay-0.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b984b761b523f2e56ef75a49461dcc0", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 20725, "upload_time": "2018-01-15T09:10:35", "url": "https://files.pythonhosted.org/packages/ba/46/1d20462b4c61b18d746b63c56eaf94b845ed23151dfd2ca79625a6b5dec9/goodplay-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c457796684442aaf096936f5e93944ad", "sha256": "905246ab1cf97ab88bcc2cfbe2ce38cd557a246fcef80a1dbf75eedee69d3bef" }, "downloads": -1, "filename": "goodplay-0.9.1.tar.gz", "has_sig": false, "md5_digest": "c457796684442aaf096936f5e93944ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48875, "upload_time": "2018-01-15T09:10:33", "url": "https://files.pythonhosted.org/packages/c3/61/c50a92f6c5027ab8be8a3b58730287b695aadca110c6894b804adb48ee36/goodplay-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "43a6878525449abab8e51b890785a829", "sha256": "cae42b364e15c9a1943802a8c9d33292d90c447714d8967a539b344ee428a174" }, "downloads": -1, "filename": "goodplay-0.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43a6878525449abab8e51b890785a829", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18626, "upload_time": "2018-11-19T11:56:51", "url": "https://files.pythonhosted.org/packages/9d/2f/bde1a56063c47108d7962b8fdfef76f123412de99d004ad16bfb8cea4619/goodplay-0.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5abd37f8340420c9b851473ed2acabe2", "sha256": "b85ac5a3e47485d35b992116aa87d617bd71df0ff950fcdd9088ecdafd9e1897" }, "downloads": -1, "filename": "goodplay-0.12.0.tar.gz", "has_sig": false, "md5_digest": "5abd37f8340420c9b851473ed2acabe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50563, "upload_time": "2018-11-19T11:56:53", "url": "https://files.pythonhosted.org/packages/e0/92/e2946bdb398c25a5e341e9e20d202cda875d596aa41d915c523503a4efe0/goodplay-0.12.0.tar.gz" } ] }