{ "info": { "author": "Mark Harviston, Arve Knudsen", "author_email": "mark.harviston@gmail.com, arve.knudsen@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: X11 Applications :: Qt", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3 :: Only" ], "description": "=======\nQuamash\n=======\nImplementation of the `PEP 3156`_ Event-Loop with Qt\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n:author: Mark Harviston , Arve Knudsen \n\n.. image:: https://img.shields.io/pypi/v/quamash.svg\n :target: https://pypi.python.org/pypi/quamash/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/dm/quamash.svg\n :target: https://pypi.python.org/pypi/quamash/\n :alt: Downloads\n\n.. image:: https://img.shields.io/pypi/pyversions/quamash.svg\n :target: https://pypi.python.org/pypi/quamash/\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/l/quamash.svg\n :target: https://pypi.python.org/pypi/quamash/\n :alt: License\n\n.. image:: https://img.shields.io/pypi/status/Django.svg\n :target: https://pypi.python.org/pypi/quamash/\n :alt: Development Status\n\n.. image:: https://travis-ci.org/harvimt/quamash.svg?branch=master\n :target: https://travis-ci.org/harvimt/quamash\n :alt: Linux (Travis CI) Build Status\n\n.. image:: https://img.shields.io/appveyor/ci/harvimt/quamash.svg\n :target: https://ci.appveyor.com/project/harvimt/quamash/branch/master\n :alt: Windows (Appveyor) Build Status\n\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n :target: https://gitter.im/harvimt/quamash?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge\n :alt: Gitter\n\nRequirements\n============\nQuamash requires Python 3.4 or Python 3.3 with the backported ``asyncio`` library and either PyQt4, PyQt5 or PySide.\n\nInstallation\n============\n``pip install quamash``\n\nUpgrade from Version 0.4 to 0.5\n===============================\nThe loop context manager will no longer set the event loop only close it.\n\nInstead of:\n\n.. code:: python\n\n with loop:\n loop.run_forever()\n\ndo:\n\n.. code:: python\n\n asyncio.set_event_loop(loop)\n # ...\n with loop:\n loop.run_forever()\n\nIt is recommended that you call ``asyncio.set_event_loop`` as early as possible (immediately after instantiating the loop),\nto avoid running asynchronous code before ``asyncio.set_event_loop`` is called.\n\nIf you're using multiple different loops in the same application, you know what you're doing (or at least you hope you do),\nthen you can ignore this advice.\n\n\nUsage\n=====\n\n.. code:: python\n\n import sys\n import asyncio\n import time\n\n from PyQt5.QtWidgets import QApplication, QProgressBar\n from quamash import QEventLoop, QThreadExecutor\n\n app = QApplication(sys.argv)\n loop = QEventLoop(app)\n asyncio.set_event_loop(loop) # NEW must set the event loop\n\n progress = QProgressBar()\n progress.setRange(0, 99)\n progress.show()\n\n async def master():\n await first_50()\n with QThreadExecutor(1) as exec:\n await loop.run_in_executor(exec, last_50)\n # TODO announce completion?\n\n async def first_50():\n for i in range(50):\n progress.setValue(i)\n await asyncio.sleep(.1)\n\n def last_50():\n for i in range(50,100):\n loop.call_soon_threadsafe(progress.setValue, i)\n time.sleep(.1)\n\n with loop: ## context manager calls .close() when loop completes, and releases all resources\n loop.run_until_complete(master())\n\nChangelog\n=========\n\nVersion 0.6.1\n* Python 3.7 support (no automated test coverage)\n\nVersion 0.6.0\n-------------\n* Lots of bugfixes and performance improvements.\n\n\nVersion 0.5.5\n-------------\n* Fix `#62`_ a serious memory leak by switching from ``QTimer`` to ``QObject.timerEvent``.\n\nVersion 0.5.4\n-------------\n* Remove unnecessary QObjects\n* Officially add Python 3.5 support (CI configuration and setup.py change)\n* Fix `#55`_\n* Better compatibility with behavior of default event loop (`#59`_)\n* Remove _easycallback and replace with _makeSignaller\n\nVersion 0.5.3\n-------------\n* Fix to `#34`_\n\nVersion 0.5.2\n-------------\n* Fixes to tests, and CI configuration\n* Fixes `#35`_ and `#31`_ (both minor bugs)\n* Uploade wheels to PyPI\n\nVersion 0.5.1\n-------------\n* Fixes rst syntax error in this README\n\nVersion 0.5\n-----------\n* Deprecation of event loop as means to ``asyncio.set_event_loop``, now must be called explicitly.\n* Possible fix to notifiers being called out-of-order (see #25, #27, and e64119e)\n* Better loop cleanup\n* CI Tests pass on windows now\n* Testing improvements\n* Python 3.3 Support. (probably always supported, but it's offially supported/tested now)\n\nVersion 0.4.1\n-------------\n\n* Improvements to PEP-3156 Conformance\n* Minor Test Improvements\n\nVersion 0.4\n-----------\n* Major improvements to tests\n\n - integration with Travis CI\n - more tests\n - all tests pass\n - cross platform/configuration tests\n\n* Bug #13 discovered and fixed\n* Force which Qt Implementation to use with ``QUQMASH_QTIMPL`` environment variable.\n* Implement ``QEventLoop.remove_reader`` and ``QEventLoop.remove_writer``\n* PyQt4 Support\n* PyQt5 Support\n* Support ``multiprocessing`` executors (``ProcessPoolExecutor``))\n* Improvements to code quality\n\nVersion 0.3\n-----------\nFirst version worth using.\n\n\nTesting\n=======\nQuamash is tested with pytest_; in order to run the test suite, just install pytest\nand execute py.test on the commandline. The tests themselves are beneath the 'tests' directory.\n\nTesting can also be done with tox_. The current tox setup in tox.ini requires PyQT4/5 and PySide to\nbe installed globally. (pip can't install PyQt into a virtualenv which is what tox will try to do).\nFor this reason it may be good to run tox tests while specificying which environments to run. e.g.\n``tox -e py34-pyqt5`` to test python 3.4 with PyQt5. It is unlikely this tox configuration will\nwork well on Windows especially since PyQt5 and PyQt4 cannot coexist in the same python installation\non Windows. Also the PyQt4 w/ Qt5 oddity appears to be mostly a windows only thing too.\n\nStyle testing is also handled by tox. Run ``tox -e flake8``.\n\nCode Coverage\n-------------\nGetting a full coverage support is quite time consuming. In theory this could by done with `pytest-xdist`_,\nbut I haven't had time to make that work. Install ``pytest-cov`` with ``pip install pytest-cov`` then\nrun ``py.test --cov quamash`` then append a dot and an identifier the generated ``.coverage`` file. For example,\n``mv .coverage .coverage.nix.p33.pyside`` then repeat on all the platforms you want to run on. (at least linux\nand windows). Put all the ``.coverage.*`` files in one directory that also has quamash source code in it.\n``cd`` to that directory and run ``coverage combine`` finally run ``coverage html`` for html based reports\nor ``coverage report`` for a simple report. These last commands may fail with errors about not being able to\nfind source code. Use the ``.coveragerc`` file to specify equivelant paths. The default configuration has linux\nsource code in ``/quamash`` and windows source at ``C:\\quamash``.\n\nContinuous Integration & Supported Platforms\n--------------------------------------------\nThis project uses Travis CI to perform tests on linux (Ubuntu 12.04 LTS \"Precise Pangolin\") and\nAppveyor (Windows Server 2012 R2, similar to Windows 8) to perform continuous integration.\n\nOn linux, Python 3.3 and 3.4 with PySide, PyQt4, and PyQt5 are tested. On windows, Python 3.4 with\nPySide, PyQt4 and PyQt5 are tested, but Python 3.3 is only tested with PySide since binary installers\nfor PyQt are not provided for Python 3.3 (at least not the newest versions of PyQt), and compiling \nfrom source probably isn't worth it.\n\nPython 3.5 is now tested on linux with PyQt4 and PyQt5.\n\nTesting Matrix\n~~~~~~~~~~~~~~\n\n+----------------------+---------+---------+--------------+----------------+\n| | PyQt4 | PyQt5 | PySide (Qt4) | PySide 2 (Qt5) |\n+======================+=========+=========+==============+================+\n| Linux - Python 3.3 | yes | yes | yes | planned |\n+----------------------+---------+---------+--------------+----------------+\n| Linux - Python 3.4 | yes | yes | yes | planned |\n+----------------------+---------+---------+--------------+----------------+\n| Linux - Python 3.5 | yes | yes | n/a | planned |\n+----------------------+---------+---------+--------------+----------------+\n| Windows - Python 3.3 | no | no | yes | no |\n+----------------------+---------+---------+--------------+----------------+\n| Windows - Python 3.4 | yes | yes | yes | planned |\n+----------------------+---------+---------+--------------+----------------+\n| Windows - Python 3.5 | planned | planned | planned | planned |\n+----------------------+---------+---------+--------------+----------------+\n\nLicense\n=======\nYou may use, modify, and redistribute this software under the terms of the `BSD License`_.\nSee LICENSE.\n\nName\n====\nTulip related projects are being named after other flowers, Quamash is one of the few flowers that\nstarts with a \"Q\".\n\n.. _`PEP 3156`: http://python.org/dev/peps/pep-3156/\n.. _`pytest`: http://pytest.org\n.. _`BSD License`: http://opensource.org/licenses/BSD-2-Clause\n.. _tox: https://tox.readthedocs.org/\n.. _pytest-xdist: https://pypi.python.org/pypi/pytest-xdist\n.. _#31: https://github.com/harvimt/quamash/issues/31\n.. _#34: https://github.com/harvimt/quamash/issues/34\n.. _#35: https://github.com/harvimt/quamash/issues/35\n.. _#55: https://github.com/harvimt/quamash/issues/55\n.. _#59: https://github.com/harvimt/quamash/pull/59\n.. _#62: https://github.com/harvimt/quamash/pull/62\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/harvimt/quamash", "keywords": "Qt,asyncio", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "Quamash", "package_url": "https://pypi.org/project/Quamash/", "platform": "", "project_url": "https://pypi.org/project/Quamash/", "project_urls": { "Homepage": "https://github.com/harvimt/quamash" }, "release_url": "https://pypi.org/project/Quamash/0.6.1/", "requires_dist": [ "pytest; extra == 'test'" ], "requires_python": "", "summary": "Implementation of the PEP 3156 Event-Loop with Qt.", "version": "0.6.1" }, "last_serial": 4091570, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "f67ea4e4839c8c8123287031090a05af", "sha256": "e1b65619c6acc5187afd1805a1066c68448fffc19607996383945c66381e349a" }, "downloads": -1, "filename": "Quamash-0.3.zip", "has_sig": false, "md5_digest": "f67ea4e4839c8c8123287031090a05af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13458, "upload_time": "2014-07-18T02:40:29", "url": "https://files.pythonhosted.org/packages/88/ee/872a8ad0dc1b5145a68b40017800d72b5e99c897a939480a4b455089e702/Quamash-0.3.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "09a00f7030e2f20711848f01ef7d4e48", "sha256": "abdeca45ec583db241d824d4d4eb4f2e4db13fd121128e4868d6269af1c175e6" }, "downloads": -1, "filename": "Quamash-0.4.tar.gz", "has_sig": false, "md5_digest": "09a00f7030e2f20711848f01ef7d4e48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11194, "upload_time": "2015-01-09T23:10:10", "url": "https://files.pythonhosted.org/packages/d4/74/f15429edc1fea559d6204b9f4058447be29b72c535fb19a8a3d4a73bfe26/Quamash-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "fffd9bb371b06519d4218211d94d233f", "sha256": "07a8ca190e0456abe71d5c961a748c95de5f032aa7e9444d2a6ee578bb5d88ad" }, "downloads": -1, "filename": "Quamash-0.4.1.tar.gz", "has_sig": false, "md5_digest": "fffd9bb371b06519d4218211d94d233f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11260, "upload_time": "2015-01-09T23:26:12", "url": "https://files.pythonhosted.org/packages/40/45/e54d5bc1f6b7f8d241b7f15062fa8963d659b8384484c1dd300b8d9b70a4/Quamash-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "004a0e83e6e71239c8ace01d49034889", "sha256": "8baf4274c096dddd0db5426201c6f34f7586dd9a93040b732c90532905cf9464" }, "downloads": -1, "filename": "Quamash-0.5.tar.gz", "has_sig": false, "md5_digest": "004a0e83e6e71239c8ace01d49034889", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12586, "upload_time": "2015-01-19T00:42:22", "url": "https://files.pythonhosted.org/packages/d0/63/a1a6d7c0e9294d15e5c1dd19ae8259c4594f7199c648257df5b00699b15b/Quamash-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c5fa317f615eafd492560771bc2caeca", "sha256": "87e9fe79595eb26e845bc78c5fa67ab7cf1391335ee1a8a633154e2be6653ba0" }, "downloads": -1, "filename": "Quamash-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c5fa317f615eafd492560771bc2caeca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15545, "upload_time": "2015-01-19T00:50:09", "url": "https://files.pythonhosted.org/packages/81/35/d74545692fd61f9108bfe629745edf7efad5c943eaf38b39841595496025/Quamash-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "aae5d53948bbf559b6aa4b6217c19a3c", "sha256": "e35bdfec95ca04a6bbe93464e4ac45defe772bacb7c99dc3f3d20acc0851145a" }, "downloads": -1, "filename": "Quamash-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "aae5d53948bbf559b6aa4b6217c19a3c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18570, "upload_time": "2015-07-23T21:45:51", "url": "https://files.pythonhosted.org/packages/2c/04/c31f2f2bca72bc0311a27ec29bb874c4b68e84469f827b06e2af4a3ca910/Quamash-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a942191a64b12b7719ca80a1091a54c", "sha256": "b9921d9eabe4498663186c096ccc20e792e78a028f96b9a040cbdf33839e1684" }, "downloads": -1, "filename": "Quamash-0.5.2.tar.gz", "has_sig": false, "md5_digest": "2a942191a64b12b7719ca80a1091a54c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15838, "upload_time": "2015-07-23T21:45:55", "url": "https://files.pythonhosted.org/packages/c8/51/2b6e404f4612995e4409204ce90a8997b785e5ba252cb27ac14364a64c33/Quamash-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "8acfcf797c9847f5037e1e6dd7a44092", "sha256": "a4b96e6c1757978f1bac112984e0f0c87708b3fb2090149c6f1438e978338ac4" }, "downloads": -1, "filename": "Quamash-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8acfcf797c9847f5037e1e6dd7a44092", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18608, "upload_time": "2015-08-24T16:13:53", "url": "https://files.pythonhosted.org/packages/5c/f5/003987b48519686c70e5274b432ab795be7b02ebc9be329c194af55d2506/Quamash-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af1f34eb94ea0d9719f71a18c0550dea", "sha256": "f00e6c9c2d0a2264f234d1bdcb6a9437a9eef8a99972ec6c97acdbb61a731922" }, "downloads": -1, "filename": "Quamash-0.5.3.tar.gz", "has_sig": false, "md5_digest": "af1f34eb94ea0d9719f71a18c0550dea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15882, "upload_time": "2015-08-24T16:13:58", "url": "https://files.pythonhosted.org/packages/e2/06/08ac37a6d1091cbc1923c0024b672feb5b2a1028993eae568ccaf9ee7538/Quamash-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "ab64cde409a5350c9802b28ee40603fd", "sha256": "708dbd1d2175f260fe86096372897a703d4d3e98fcfb1141d689cba6280f890c" }, "downloads": -1, "filename": "Quamash-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ab64cde409a5350c9802b28ee40603fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19108, "upload_time": "2016-01-02T06:17:54", "url": "https://files.pythonhosted.org/packages/76/31/fd3efaa35dce53664ef6e810a389f3e0a512e41c6a0b767a4b749fc66ee3/Quamash-0.5.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f0effd8723daf8a112f12d2532282c6", "sha256": "adab67960c1135643c5cee74c4cb4d1385869a8ef4058f0e93b644b646f32a8d" }, "downloads": -1, "filename": "Quamash-0.5.4.zip", "has_sig": false, "md5_digest": "5f0effd8723daf8a112f12d2532282c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23410, "upload_time": "2016-01-02T06:18:18", "url": "https://files.pythonhosted.org/packages/20/14/302b98df6f1e3dd0cd9885cdf4cd068e4937faa1f324aa5dd6b461ee2c43/Quamash-0.5.4.zip" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "42ca0ce0ef5fefa01ed1e81c503af304", "sha256": "fc8bec1f7a284f1153e1f4f636209e1955640836d504ec52f6b3e8178e80531c" }, "downloads": -1, "filename": "Quamash-0.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "42ca0ce0ef5fefa01ed1e81c503af304", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19275, "upload_time": "2016-04-05T04:05:50", "url": "https://files.pythonhosted.org/packages/36/4d/af35cd964abbdc206bfa599c9ffe59bb6dfe84c15158c9324f482e094ca1/Quamash-0.5.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77bbfac10ad7be3c2fedc6ae14ee5769", "sha256": "e3dde61d83d7055811e7c0506f1ee23e80343d7c7a7ea7a59abd717093578d42" }, "downloads": -1, "filename": "Quamash-0.5.5.zip", "has_sig": false, "md5_digest": "77bbfac10ad7be3c2fedc6ae14ee5769", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23634, "upload_time": "2016-04-05T04:06:19", "url": "https://files.pythonhosted.org/packages/51/a3/dbead5b502aebc840c3672fc5e8ec7ecb2ea443d3e8638d14996600cd1cd/Quamash-0.5.5.zip" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "9b096db8e9918309be6f495499f023a4", "sha256": "b191be20470e05792fd12b97ca6d87c16330595f049906d45ff0283a7da4e27e" }, "downloads": -1, "filename": "Quamash-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9b096db8e9918309be6f495499f023a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19548, "upload_time": "2017-12-02T20:13:54", "url": "https://files.pythonhosted.org/packages/2b/a9/5a2d503f87f4cd25e1da324cc32526cdf191339937fdf75678dd7818bf62/Quamash-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e5b75c59b94daad8956da71fd9ed0f1", "sha256": "59fc4267194446b225eebd1d1b5f1b0ca5f57e461b9aecd63d6faf08ebab7c07" }, "downloads": -1, "filename": "Quamash-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0e5b75c59b94daad8956da71fd9ed0f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17734, "upload_time": "2017-12-02T20:13:55", "url": "https://files.pythonhosted.org/packages/e8/89/713137601514142480c9ce8633f7589fac8b776c27809211aa97d12349cf/Quamash-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "0adc873a20656b09ec5647907115c856", "sha256": "efe91865bba9c0afa898d037d152ef4e6eb7e714b29d632543cc14c86890cea3" }, "downloads": -1, "filename": "Quamash-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0adc873a20656b09ec5647907115c856", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15218, "upload_time": "2018-07-23T03:27:30", "url": "https://files.pythonhosted.org/packages/89/41/ba1396ebed0dcfd09854addea45323c93f498dc7c45d855943ab31791194/Quamash-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40e0cf7f6b84ea45e8899f98d9f22cc3", "sha256": "6a31a6c9be7c20591e65a082b87566c82ccdfee4a7a11714655bd41b98f61b5c" }, "downloads": -1, "filename": "Quamash-0.6.1.tar.gz", "has_sig": false, "md5_digest": "40e0cf7f6b84ea45e8899f98d9f22cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17853, "upload_time": "2018-07-23T03:27:31", "url": "https://files.pythonhosted.org/packages/01/1e/cf6f3c38cee61ed04fea58667f673adc67d6412eba0b3327dbb5732c1177/Quamash-0.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0adc873a20656b09ec5647907115c856", "sha256": "efe91865bba9c0afa898d037d152ef4e6eb7e714b29d632543cc14c86890cea3" }, "downloads": -1, "filename": "Quamash-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0adc873a20656b09ec5647907115c856", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15218, "upload_time": "2018-07-23T03:27:30", "url": "https://files.pythonhosted.org/packages/89/41/ba1396ebed0dcfd09854addea45323c93f498dc7c45d855943ab31791194/Quamash-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40e0cf7f6b84ea45e8899f98d9f22cc3", "sha256": "6a31a6c9be7c20591e65a082b87566c82ccdfee4a7a11714655bd41b98f61b5c" }, "downloads": -1, "filename": "Quamash-0.6.1.tar.gz", "has_sig": false, "md5_digest": "40e0cf7f6b84ea45e8899f98d9f22cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17853, "upload_time": "2018-07-23T03:27:31", "url": "https://files.pythonhosted.org/packages/01/1e/cf6f3c38cee61ed04fea58667f673adc67d6412eba0b3327dbb5732c1177/Quamash-0.6.1.tar.gz" } ] }