{ "info": { "author": "Arie Bovenberg", "author_email": "a.c.bovenberg@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9" ], "description": "\n.. raw:: html\n\n

\n\n \n\n
\n\n \n \"Build\n \n\n \n \"Test\n \n\n \"Dependabot\"\n\n \n \"Documentation\n \n\n
\n\n \n \"Development\n \n\n \n \"Latest\n \n\n \n \"License\"\n \n\n \n \"Supported\n \n\n \n \"Black\n \n\n

\n\n\nQuiz\n====\n\nCapable GraphQL client for Python.\n\nFeatures:\n\n* Sync/async compatible, pluggable HTTP clients.\n* Auto-generate typed and documented python APIs\n* ORM-like syntax to write GraphQL.\n\nNote that this project is in an early alpha stage.\nSome features are not yet implemented (see the roadmap below),\nand it may be a little rough around the edges.\nIf you encounter a problem or have a feature request,\ndon't hesitate to open an issue in the `issue tracker `_.\n\n\nQuickstart\n----------\n\nA quick 'n dirty request to GitHub's new V4 API:\n\n.. code-block:: python3\n\n >>> import quiz\n >>> query = '''\n ... {\n ... repository(owner: \"octocat\", name: \"Hello-World\") {\n ... createdAt\n ... description\n ... }\n ... }\n ... '''\n >>> quiz.execute(query, url='https://api.github.com/graphql',\n ... auth=('me', 'password'))\n {\"repository\": ...}\n\n\nFeatures\n--------\n\n1. **Adaptability**. Built on top of `snug `_,\n quiz supports different HTTP clients\n\n .. code-block:: python3\n\n import requests\n result = quiz.execute(query, ..., client=requests.Session())\n\n as well as async execution\n (optionally with `aiohttp `_):\n\n .. code-block:: python3\n\n result = await quiz.execute_async(query, ...)\n\n2. **Typing**.\n Convert a GraphQL schema into documented python classes:\n\n .. code-block:: python3\n\n >>> schema = quiz.Schema.from_url('https://api.github.com/graphql',\n ... auth=('me', 'password'))\n >>> help(schema.Repository)\n class Repository(Node, ProjectOwner, Subscribable, Starrable,\n UniformResourceLocatable, RepositoryInfo, quiz.types.Object)\n | A repository contains the content for a project.\n |\n | Method resolution order:\n | ...\n |\n | Data descriptors defined here:\n |\n | assignableUsers\n | : UserConnection\n | A list of users that can be assigned to issues in this repo\n |\n | codeOfConduct\n | : CodeOfConduct or None\n | Returns the code of conduct for this repository\n ...\n\n\n3. **GraphQL \"ORM\"**. Write queries as you would with an ORM:\n\n .. code-block:: python3\n\n >>> _ = quiz.SELECTOR\n >>> query = schema.query[\n ... _\n ... .repository(owner='octocat', name='Hello-World')[\n ... _\n ... .createdAt\n ... .description\n ... ]\n ... ]\n >>> str(query)\n query {\n repository(owner: \"octocat\", name: \"Hello-World\") {\n createdAt\n description\n }\n }\n\n4. **Offline query validation**. Use the schema to catch errors quickly:\n\n .. code-block:: python3\n\n >>> schema.query[\n ... _\n ... .repository(owner='octocat', name='Hello-World')[\n ... _\n ... .createdAt\n ... .foo\n ... .description\n ... ]\n ... ]\n SelectionError: SelectionError on \"Query\" at path \"repository\":\n\n SelectionError: SelectionError on \"Repository\" at path \"foo\":\n\n NoSuchField: field does not exist\n\n5. **Deserialization into python objects**. Responses are loaded into the schema's types.\n Use ``.`` to access fields:\n\n .. code-block:: python3\n\n >>> r = quiz.execute(query, ...)\n >>> r.repository.description\n \"My first repository on GitHub!\"\n >>> isinstance(r.repository, schema.Repository)\n True\n\n If you prefer the raw JSON response, you can always do:\n\n .. code-block:: python3\n\n >>> quiz.execute(str(query), ...)\n {\"repository\": ...}\n\n\nInstallation\n------------\n\n``quiz`` and its dependencies are pure python. Installation is easy as:\n\n.. code-block:: bash\n\n pip install quiz\n\n\nContributing\n------------\n\nAfter you've cloned the repo locally, set up the development environment\nwith:\n\n.. code-block:: bash\n\n make init\n\nFor quick test runs, run:\n\n.. code-block:: bash\n\n pytest\n\nTo run all tests and checks on various python versions, run:\n\n.. code-block:: bash\n\n make test\n\nGenerate the docs with:\n\n.. code-block:: bash\n\n make docs\n\n\nPull requests welcome!\n\n\nPreliminary roadmap\n-------------------\n\n================================================================== ===========\nFeature status\n================================================================== ===========\nInput objects v0.3.0\nbetter query validation errors v0.3.0\nmore examples in docs v0.3.0\nexecuting selection sets directly v0.3.0\nintrospection fields (i.e. ``__typename``) v0.3.0\ncustom scalars for existing types (e.g. ``datetime``) v0.3.0\nimprove Object/Interface API v0.3.0\nvalue object docs v0.3.0\nMutations & subscriptions v0.3.0\nInline fragments v0.3.0\nFragments and fragment spreads v0.4.0\npy2 unicode robustness v0.4.0\nMixing in raw GraphQL planned\nModule autogeneration planned\nType inference (e.g. enum values) planned\nVariables planned\nDirectives planned\nInteger 32-bit limit planned\nconverting names from camelcase to snake-case idea\nAutogenerate module .rst from schema idea\nAutogenerate module .py from schema idea\nEscaping python keywords idea\nHandling markdown in descriptions idea\nWarnings when using deprecated fields idea\nHandle optional types descriptions in schema idea\nReturning multiple validation errors at the same time idea\nExplicit ordering idea\n================================================================== ===========\n\n\nRelease history\n---------------\n\ndevelopment\n+++++++++++\n\n0.2.2 (2020-12-05)\n++++++++++++++++++\n\n- Official Python 3.9 support\n\n0.2.1 (2020-09-11)\n++++++++++++++++++\n\n- Drop Python 3.5 support\n\n0.2.0 (2019-10-28)\n++++++++++++++++++\n\n- Drop Python 2 support\n- Add Python 3.8 support\n\n0.1.6 (2019-04-07)\n++++++++++++++++++\n\n- Drop python 3.4 suport\n\n0.1.5 (2019-03-16)\n++++++++++++++++++\n\n- Include request/response metadata in responses (#95)\n\n0.1.4 (2019-03-05)\n++++++++++++++++++\n\n- Fixed issue with single-type unions (#100)\n\n0.1.3 (2019-02-16)\n++++++++++++++++++\n\n- Add request context to `HTTPError` (#82)\n\n0.1.2 (2019-01-11)\n++++++++++++++++++\n\n- Handle error responses without ``data`` correctly\n\n0.1.1 (2018-10-30)\n++++++++++++++++++\n\n- Fixed deserialization of ``Enum`` values\n\n0.1.0 (2018-10-30)\n++++++++++++++++++\n\n- Fixed handling of HTTP error status codes (#10)\n- Fix in validation exceptions (#11)\n- Implement custom scalars\n- Improvements to documentation\n\n0.0.4 (2018-10-17)\n++++++++++++++++++\n\n- Remove some unneeded fields from introspection query\n- Improvements to documentation\n- Small fixes to API, tests\n\n0.0.3 (2018-09-23)\n++++++++++++++++++\n\n- Established initial public API\n- Improved documentation, user guide\n- Field aliases\n- Deserialization\n\n0.0.2 (2018-08-21)\n++++++++++++++++++\n\n- Execution of basic GraphQL queries\n- Convert GraphQL schema to python types (undocumented)\n- Write GraphQL in python syntax (undocumented)\n\n0.0.1\n+++++\n\n- initial version\n\n\n", "description_content_type": "text/plain", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ariebovenberg/quiz", "keywords": "graphql,http,async", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "quiz", "package_url": "https://pypi.org/project/quiz/", "platform": "", "project_url": "https://pypi.org/project/quiz/", "project_urls": { "Homepage": "https://github.com/ariebovenberg/quiz" }, "release_url": "https://pypi.org/project/quiz/0.2.2/", "requires_dist": [ "gentools (~=1.1.0)", "snug (~=2.1.0)" ], "requires_python": ">=3.6", "summary": "Capable GraphQL client", "version": "0.2.2", "yanked": false, "yanked_reason": null }, "last_serial": 8828875, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f98b21a8477df9d8ad999ce4826cf08a", "sha256": "3bc19aed29e5db395f4ddb10ca2e085c06a8f7247abd8b0d181244c6bc5126a8" }, "downloads": -1, "filename": "quiz-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f98b21a8477df9d8ad999ce4826cf08a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 2638, "upload_time": "2018-04-03T06:26:21", "upload_time_iso_8601": "2018-04-03T06:26:21.450766Z", "url": "https://files.pythonhosted.org/packages/82/7f/6cb7996b68b2a675d7fe07f4b90090763a094a97cb7412dd9ef676e62d34/quiz-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fd1ecd1cfce1df626e7da9ab715d6575", "sha256": "b7edfeab41389a13af796c0b677d4e937c63de294ef00b1d481e4120dfb5c6ac" }, "downloads": -1, "filename": "quiz-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fd1ecd1cfce1df626e7da9ab715d6575", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 1476, "upload_time": "2018-04-03T06:26:26", "upload_time_iso_8601": "2018-04-03T06:26:26.075269Z", "url": "https://files.pythonhosted.org/packages/3b/f9/4d2105faa12ce53597b14b9de1c3f162a78b24ad4ec60bbeba5881bd9efb/quiz-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4923c515a5ae378266a22d59fb2805a6", "sha256": "8a07170b96d778a4e271845a35d4cc9bad619bddbbf663aa9e7d92cd532fdd1b" }, "downloads": -1, "filename": "quiz-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4923c515a5ae378266a22d59fb2805a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 18885, "upload_time": "2018-08-21T11:17:28", "upload_time_iso_8601": "2018-08-21T11:17:28.923951Z", "url": "https://files.pythonhosted.org/packages/3a/a9/26fb39e7a11e0103c3522142c74d11b7f08b27e1f9261ab655aa7a60e59c/quiz-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "38fefd7e766c76c1cc40adc983e66742", "sha256": "3bd13ec466191305bd855709429002a7f0d3b6e5b08de4bf2b89fed818271d42" }, "downloads": -1, "filename": "quiz-0.0.2.tar.gz", "has_sig": false, "md5_digest": "38fefd7e766c76c1cc40adc983e66742", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 22329, "upload_time": "2018-08-21T11:17:31", "upload_time_iso_8601": "2018-08-21T11:17:31.150236Z", "url": "https://files.pythonhosted.org/packages/52/4f/76a9c6b22befd950e99c39a1aadf026e6a0f0d3258a2ae83375b542071fc/quiz-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c36b169498459b2288c6473f3906917d", "sha256": "2e178f8f5d9464c34c1a0799441ebf9cd26ddb2c3d2eed171fb7c0fa5edd0371" }, "downloads": -1, "filename": "quiz-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c36b169498459b2288c6473f3906917d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 19085, "upload_time": "2018-09-23T10:13:13", "upload_time_iso_8601": "2018-09-23T10:13:13.879540Z", "url": "https://files.pythonhosted.org/packages/99/1c/201e6740f7ebbfb6b9824b9d2714f57755e2e866636e40bddde4b84e3227/quiz-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "16396cb6bb92ad249b286292995a7164", "sha256": "b59dc0ba4159dce8516d0dc9211eb364c4088325150de35b21c14ea20416ef72" }, "downloads": -1, "filename": "quiz-0.0.3.tar.gz", "has_sig": false, "md5_digest": "16396cb6bb92ad249b286292995a7164", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 23209, "upload_time": "2018-09-23T10:13:15", "upload_time_iso_8601": "2018-09-23T10:13:15.738141Z", "url": "https://files.pythonhosted.org/packages/b9/8b/d2667a59be42d205b5c234ef1436fd173988eb0edd70032b1ee285333667/quiz-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "bd8cde7949a2dcfc16429c2dde38700d", "sha256": "e8a8ddf069d619d0aee61e8faefd229162a6a24e7251f7cf360c93c565c4d3bd" }, "downloads": -1, "filename": "quiz-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bd8cde7949a2dcfc16429c2dde38700d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 19186, "upload_time": "2018-10-17T16:35:04", "upload_time_iso_8601": "2018-10-17T16:35:04.857151Z", "url": "https://files.pythonhosted.org/packages/77/66/9fb4b5336750ceea635dcb625a0a4f13caba4f0f6c8b9a41cf9b82696c85/quiz-0.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1eafe15baf45816cd26c6da506e3710f", "sha256": "95f9a08f7b8810f7f237dd4a145788f910fe11d767a18f629f7dbdccc1edbfe7" }, "downloads": -1, "filename": "quiz-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1eafe15baf45816cd26c6da506e3710f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 23379, "upload_time": "2018-10-17T16:35:06", "upload_time_iso_8601": "2018-10-17T16:35:06.850830Z", "url": "https://files.pythonhosted.org/packages/ed/c7/77102ff5a7e21efe6b1428edea481e91acaccd982cf81db28eea28307ff0/quiz-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "2a73991c584990414167cbc802ab0cae", "sha256": "e831dba41c1b2acc0a94a8ea08f27d023ffac190ca8783a49c4146cd9b0b7fc2" }, "downloads": -1, "filename": "quiz-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2a73991c584990414167cbc802ab0cae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 23650, "upload_time": "2018-10-30T08:34:07", "upload_time_iso_8601": "2018-10-30T08:34:07.552142Z", "url": "https://files.pythonhosted.org/packages/98/37/e1fbbded105fa3cec079b13bdd3578c9b8c47a3dfbf0ccf3eccbe451f043/quiz-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5e1202a9e30cad1a7d00bb79cc79ca03", "sha256": "c300a4837cdf2b93f9f0a48f31256715238124c9dff117357cf1943d914dac64" }, "downloads": -1, "filename": "quiz-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5e1202a9e30cad1a7d00bb79cc79ca03", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 23867, "upload_time": "2018-10-30T08:34:09", "upload_time_iso_8601": "2018-10-30T08:34:09.476873Z", "url": "https://files.pythonhosted.org/packages/14/3a/f1d7d02f0c80b5e869d2b17deddfa21254b69367c8f9ba124917c5062e5d/quiz-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f68dd90537770bee73d330faf0fba7cd", "sha256": "aaa9b6077c30caf02f9aea86127b109102de9fdb955cbce5438b9b96b0deb71b" }, "downloads": -1, "filename": "quiz-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f68dd90537770bee73d330faf0fba7cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 23923, "upload_time": "2018-10-30T18:40:56", "upload_time_iso_8601": "2018-10-30T18:40:56.056387Z", "url": "https://files.pythonhosted.org/packages/18/d0/bf9e78b5b84f27e79e9fc0eb63443e3966965837e7edc86901290de32fea/quiz-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "60abed80c9574003b76d05ad03cf142f", "sha256": "7eb10cc2db7695f9d63c9826318ada8aeb7292aa8aad6059d9eb67a74a59e60b" }, "downloads": -1, "filename": "quiz-0.1.1.tar.gz", "has_sig": false, "md5_digest": "60abed80c9574003b76d05ad03cf142f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 24430, "upload_time": "2018-10-30T18:40:57", "upload_time_iso_8601": "2018-10-30T18:40:57.666481Z", "url": "https://files.pythonhosted.org/packages/ee/76/aaa254d15d6552db0ccba1913b998d372835633e10adca46a90b21042d04/quiz-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d34e3d86278d6d0ddb3adfa7b899f3d8", "sha256": "cac11c7559fc4f75ff50d9db9a778a1f9c2690ee3863e1efe148c1718143449e" }, "downloads": -1, "filename": "quiz-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d34e3d86278d6d0ddb3adfa7b899f3d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 25223, "upload_time": "2019-01-11T19:15:14", "upload_time_iso_8601": "2019-01-11T19:15:14.103231Z", "url": "https://files.pythonhosted.org/packages/78/6c/3f776093eff15f46685f2670167799e830523c1a0768fb818a5f06e3b756/quiz-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b7897de893b7e100703d3751461b9fdf", "sha256": "e6cadc82e3205bb6d2ca7103144e324120db661a8e52c46bfe94ae508772cf8b" }, "downloads": -1, "filename": "quiz-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b7897de893b7e100703d3751461b9fdf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 27213, "upload_time": "2019-01-11T19:15:15", "upload_time_iso_8601": "2019-01-11T19:15:15.993038Z", "url": "https://files.pythonhosted.org/packages/7f/db/6ec248f06b5e9e5218eceea51f706be085f96d32a4ab6d6e7f8713633be0/quiz-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a6c3a3dd5bada98e573ecf0558bc4c35", "sha256": "f37e3196c3215a1563dc0539a381d02e500df1091ecb5e8f0892109bc2e8bc64" }, "downloads": -1, "filename": "quiz-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a6c3a3dd5bada98e573ecf0558bc4c35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 25433, "upload_time": "2019-02-16T09:59:45", "upload_time_iso_8601": "2019-02-16T09:59:45.299634Z", "url": "https://files.pythonhosted.org/packages/d8/89/3cbfbcd833c77fc92bf9f23ebf8911b547529216b2142fb3c5bbabe4aa9d/quiz-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "429764ffdd5cd3e596eb76f2585d75e9", "sha256": "1a2e2e38544621ebe2e863fca79b606d5d4347a1c7f1adb687c072df1528985e" }, "downloads": -1, "filename": "quiz-0.1.3.tar.gz", "has_sig": false, "md5_digest": "429764ffdd5cd3e596eb76f2585d75e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 27419, "upload_time": "2019-02-16T09:59:46", "upload_time_iso_8601": "2019-02-16T09:59:46.669569Z", "url": "https://files.pythonhosted.org/packages/a2/c2/73f17d5fac1f267fc5fa47a6339fc0f0efe07f716d4cb424c917ab47da22/quiz-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "1dd90c3916d7efb95223586a58612096", "sha256": "37370a69acad22b8cf5acbbd0b71c9a852533a1cef5e61cc681f9a365d90d073" }, "downloads": -1, "filename": "quiz-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1dd90c3916d7efb95223586a58612096", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 25489, "upload_time": "2019-03-05T18:51:03", "upload_time_iso_8601": "2019-03-05T18:51:03.886726Z", "url": "https://files.pythonhosted.org/packages/c3/8f/dbfe8a45b248ffb244049432c31af547fa4fb3c90c6ab1d6a17db235d46e/quiz-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "053d171903c5f93f0de0a00e807633ee", "sha256": "09db8f17dd46f48816f029bab0d1d26467e889d72194142cac863c08de7a8d26" }, "downloads": -1, "filename": "quiz-0.1.4.tar.gz", "has_sig": false, "md5_digest": "053d171903c5f93f0de0a00e807633ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 27508, "upload_time": "2019-03-05T18:51:05", "upload_time_iso_8601": "2019-03-05T18:51:05.513548Z", "url": "https://files.pythonhosted.org/packages/0d/14/f33a65fb8ebbbcb9018d97288907e586ef3f3900ec9c0c21985f99cd6c24/quiz-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b4d8097024a6e6a0f819802fb3d38fa3", "sha256": "ce72b2c548b1bd23b93ccd52ae492af74623994961a4f0d5186abf66fea458fe" }, "downloads": -1, "filename": "quiz-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b4d8097024a6e6a0f819802fb3d38fa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 25821, "upload_time": "2019-03-16T10:51:26", "upload_time_iso_8601": "2019-03-16T10:51:26.500182Z", "url": "https://files.pythonhosted.org/packages/0f/0d/34ff13a49407810472385b4cc6ecae562379eb18460a4034b4f9be8f7d7b/quiz-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1daf9880b0bca556d4dde40a1ef1b08b", "sha256": "ed6c17054ab0b9341e199ec63948ff00fed5de8d26c474e63e23487611b31087" }, "downloads": -1, "filename": "quiz-0.1.5.tar.gz", "has_sig": false, "md5_digest": "1daf9880b0bca556d4dde40a1ef1b08b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 27862, "upload_time": "2019-03-16T10:51:28", "upload_time_iso_8601": "2019-03-16T10:51:28.468120Z", "url": "https://files.pythonhosted.org/packages/93/52/7af4b3104d6d8862f9400aee2d2e4eb7fd3a7a1a670a4646382f90a483cf/quiz-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "f61094d6c4fb2b093e6132e1e2096d8f", "sha256": "9feb4a3bfa716adee08daf0d3604c63cff4750e422d16de234bd0bcc3c703366" }, "downloads": -1, "filename": "quiz-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f61094d6c4fb2b093e6132e1e2096d8f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 25843, "upload_time": "2019-04-07T19:00:37", "upload_time_iso_8601": "2019-04-07T19:00:37.121901Z", "url": "https://files.pythonhosted.org/packages/46/aa/e7c748cd69ad56f23109683023cb166568ea76fbf417f03f848f79c354ab/quiz-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "62b3b4c330d067bb01564f8553595d26", "sha256": "16aec114c388dbeef17c448d937393607927520742c0e08aaf1eb8068babab34" }, "downloads": -1, "filename": "quiz-0.1.6.tar.gz", "has_sig": false, "md5_digest": "62b3b4c330d067bb01564f8553595d26", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 27914, "upload_time": "2019-04-07T19:00:38", "upload_time_iso_8601": "2019-04-07T19:00:38.916294Z", "url": "https://files.pythonhosted.org/packages/97/58/8cfba87cf6fe18d39838486957e36d2dd5251bfa91010437b8f7aadc5b16/quiz-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8aae7435a4d8e48279e2d684b79c5a99", "sha256": "0ac56dcf606636022a05022dac047adc86ad05d1e0d0488fa4206323e912479a" }, "downloads": -1, "filename": "quiz-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8aae7435a4d8e48279e2d684b79c5a99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.2", "size": 25690, "upload_time": "2019-10-28T20:03:15", "upload_time_iso_8601": "2019-10-28T20:03:15.680378Z", "url": "https://files.pythonhosted.org/packages/9c/27/7509b433c5e24ca37369973eadcfb44d85f415e3f4bf4c40de860fe2c151/quiz-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0a9680a85cbf8afc1613619fa8f2439e", "sha256": "438a411597843539b57d37af31fb1194f8c3991507efeaaf95bbe80507b86e97" }, "downloads": -1, "filename": "quiz-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0a9680a85cbf8afc1613619fa8f2439e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.2", "size": 27801, "upload_time": "2019-10-28T20:03:17", "upload_time_iso_8601": "2019-10-28T20:03:17.102587Z", "url": "https://files.pythonhosted.org/packages/f5/e8/54876eba6b979817cbe5313d88aa5b14da96512f82d650997d104d4b3113/quiz-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "afde98b820401d2e855795ca7777f457", "sha256": "a0c849103a25cb66e8ef15cdc3adc46ea0304a5253918d5253164475390ebd9f" }, "downloads": -1, "filename": "quiz-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "afde98b820401d2e855795ca7777f457", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25682, "upload_time": "2020-09-11T13:03:57", "upload_time_iso_8601": "2020-09-11T13:03:57.175643Z", "url": "https://files.pythonhosted.org/packages/39/5c/f41a20a8798c75d7fea2453071463e73db0dd9630722eb301f94e452c26c/quiz-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a44b05a46c921e003b21d084c7161b79", "sha256": "c8a70710cb578bbed6ed45ed798975cd4f2fd754e82943e157164fe5771ec4f9" }, "downloads": -1, "filename": "quiz-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a44b05a46c921e003b21d084c7161b79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28514, "upload_time": "2020-09-11T13:03:58", "upload_time_iso_8601": "2020-09-11T13:03:58.874959Z", "url": "https://files.pythonhosted.org/packages/d0/33/ce326980bd981688f7259a69047f9f6d5ba326b37bd34a5981e30097ba44/quiz-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e2d019914e22e5703e9bfd8089b7d996", "sha256": "8c3300aee7019f5e6090e5a98e1961427dca4c238018ef687f3363d903f54890" }, "downloads": -1, "filename": "quiz-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e2d019914e22e5703e9bfd8089b7d996", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25707, "upload_time": "2020-12-05T16:58:37", "upload_time_iso_8601": "2020-12-05T16:58:37.027294Z", "url": "https://files.pythonhosted.org/packages/3c/b2/76b6cab45e6d427dbb218fec0cf97ee3e11e5c26c16a4d1bc5915124da68/quiz-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9cf10c143cfbb1348502297803ee7281", "sha256": "388bfaa93568eaa238a2b4f36c4bc5565391d6b2b7e19b7af49be2c59fdd6507" }, "downloads": -1, "filename": "quiz-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9cf10c143cfbb1348502297803ee7281", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28548, "upload_time": "2020-12-05T16:58:38", "upload_time_iso_8601": "2020-12-05T16:58:38.266958Z", "url": "https://files.pythonhosted.org/packages/3b/85/69e2a6f4e949a5f7358bb2d709d56dc16a9f7696295899ce0565649ad117/quiz-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e2d019914e22e5703e9bfd8089b7d996", "sha256": "8c3300aee7019f5e6090e5a98e1961427dca4c238018ef687f3363d903f54890" }, "downloads": -1, "filename": "quiz-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e2d019914e22e5703e9bfd8089b7d996", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25707, "upload_time": "2020-12-05T16:58:37", "upload_time_iso_8601": "2020-12-05T16:58:37.027294Z", "url": "https://files.pythonhosted.org/packages/3c/b2/76b6cab45e6d427dbb218fec0cf97ee3e11e5c26c16a4d1bc5915124da68/quiz-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9cf10c143cfbb1348502297803ee7281", "sha256": "388bfaa93568eaa238a2b4f36c4bc5565391d6b2b7e19b7af49be2c59fdd6507" }, "downloads": -1, "filename": "quiz-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9cf10c143cfbb1348502297803ee7281", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 28548, "upload_time": "2020-12-05T16:58:38", "upload_time_iso_8601": "2020-12-05T16:58:38.266958Z", "url": "https://files.pythonhosted.org/packages/3b/85/69e2a6f4e949a5f7358bb2d709d56dc16a9f7696295899ce0565649ad117/quiz-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }