{ "info": { "author": "Paul Hallett", "author_email": "paulandrewhallett@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "\ud83c\udf10\ud83d\udc0d gql_py\n-------\n\n*GraphQL Client for Pythonistas*\n\ngql_py is a Pythonic interface around graphQL APIs.\n\nYou've got a graphQL API, and you want to talk to it, right? For those of us who love HTTP standards, GraphQL's use of HTTP is questionable at best. The goal of this library is to remove the fuss of HTTP so you can deal with graphQL directly. Just how graphQL's developers intended.\n\n\n.. image:: https://img.shields.io/pypi/v/gql_py.svg\n :target: https://pypi.org/project/gql-py/\n\n.. image:: https://img.shields.io/pypi/pyversions/gql_py.svg\n :target: https://pypi.org/project/gql-py/\n\n.. image:: https://img.shields.io/pypi/l/gql_py.svg\n :target: https://pypi.org/project/gql-py/\n\n.. image:: https://img.shields.io/pypi/status/gql_py.svg\n :target: https://pypi.org/project/gql-py/\n\n.. image:: https://circleci.com/gh/phalt/gql_py/tree/master.svg?style=svg\n :target: https://circleci.com/gh/phalt/gql_py/tree/master\n\nInstalling the project is easy:\n\n.. code-block:: bash\n\n pip install gql_py\n\nFull blown example:\n\n.. code-block:: python\n\n from gql_py import Gql\n\n gql = Gql(api='https://example.com/graphql')\n\n query = '''\n query ($bookId: ID!) {\n book(id: $bookId) {\n id\n title\n author\n }\n }\n '''\n\n variables = {\n 'book_id': '654'\n }\n\n response = qgl.send(query=query, variables=variables)\n\n response.ok\n >>> True\n\n response.errors\n >>> None\n\n response.data\n >>> {'book': {'id': '654', 'title': 'Ursula K. Le Guin', 'title': 'A Wizard of Earthsea'}}\n\n\nYou can validate your graphql query string by passing the __validate__ flag in the __send__ method:\n\n.. code-block:: python\n\n gpl.send(query=query, validate=True)\n >>> Traceback (most recent call last):\n >>> graphql.error.syntax_error.GraphQLSyntaxError: Syntax Error: Expected Name, found }\n\n\n\ud83d\udcd6 Features\n--------\n\n- No need to handle the HTTP layer. (You can still set HTTP headers, though!)\n- Responses come back as named tuples - even errors!\n- Validate your query strings easily.\n- Python 3.6+\n\n\u2728 Future goals\n---------------\n\n- Hydrate API responses into custom Python objects.\n\n\ud83c\udfd7 Status\n----------\n\ngql.py is currently under development.\n\n\ud83c\udfa5 Credits\n-----------\n\nThis package was created with Cookiecutter_.\n\nWe use `Python Requests`_ for talking HTTP.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`Python Requests`: https://github.com/audreyr/cookiecutter-pypackage\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/phalt/gql_py", "keywords": "graphQL", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "gql-py", "package_url": "https://pypi.org/project/gql-py/", "platform": "", "project_url": "https://pypi.org/project/gql-py/", "project_urls": { "Homepage": "https://github.com/phalt/gql_py" }, "release_url": "https://pypi.org/project/gql-py/0.6.0/", "requires_dist": [ "requests (==2.19.1)", "graphql-core-next (==1.0.0rc2)" ], "requires_python": "", "summary": "GraphQL Client for Pythonistas", "version": "0.6.0" }, "last_serial": 4140952, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "645c03420b68c7d6f04bb019b5aa4b36", "sha256": "40682065303f721d9161695004900ac1100bd8c1a1691cf039780e1371b57884" }, "downloads": -1, "filename": "gql_py-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "645c03420b68c7d6f04bb019b5aa4b36", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4759, "upload_time": "2018-07-26T13:36:18", "url": "https://files.pythonhosted.org/packages/ea/4a/28e138f0081341a7bbf6c14c5c1d2140d1ec7135432ec995f33d992835aa/gql_py-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "856f056c433eeb5a649e8d511d389458", "sha256": "3172c4a49381005c7c720c7ee3a6c62fb82b6028e9ec8f34c2faccfd35d8be2d" }, "downloads": -1, "filename": "gql_py-0.1.0.tar.gz", "has_sig": false, "md5_digest": "856f056c433eeb5a649e8d511d389458", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5921, "upload_time": "2018-07-26T13:36:20", "url": "https://files.pythonhosted.org/packages/78/72/148f9e5f88d371f7681f0d4fb8eb10f5d3b7f690a97719f4ba5c927aa39d/gql_py-0.1.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f117556044de2cacaee5b33700239604", "sha256": "f9200ff04afb88ae74cbdabaa1418af69f2aaf524ecd136ae848e2a0cb40315d" }, "downloads": -1, "filename": "gql_py-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f117556044de2cacaee5b33700239604", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5811, "upload_time": "2018-07-27T14:51:44", "url": "https://files.pythonhosted.org/packages/00/7e/1d319cde1afd7b9b5c7ede044ffe9d43a82f8b67566c800ea10c22e748f0/gql_py-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ae88c4b72b8a90c509f77efb8b482a7", "sha256": "e105377a603416452049c8206d6a8eedc30fdaeaac67b3df98be322ec6efa147" }, "downloads": -1, "filename": "gql_py-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7ae88c4b72b8a90c509f77efb8b482a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6846, "upload_time": "2018-07-27T14:51:46", "url": "https://files.pythonhosted.org/packages/1e/ce/dff8e6def657457eb1c145026099ac722243b5656c155985edc230f623d5/gql_py-0.3.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1e0b5dc26753a736ff7835e1b013e8e1", "sha256": "ad82add383bfeefc7380b07dcd1fa064b00a61714386dcbab1417896ed5c7f0d" }, "downloads": -1, "filename": "gql_py-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e0b5dc26753a736ff7835e1b013e8e1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5467, "upload_time": "2018-07-31T14:34:02", "url": "https://files.pythonhosted.org/packages/85/ee/fd7c85877ed941ef32a71540a23c16d8b032403bb3ebd91434c7e06c354e/gql_py-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd7a3fb0d19a17aef9b631a2e763356b", "sha256": "e7c4b6c6e5e27a937a717dec149109f4395cb87bdfafc41e0fe10ef55cfdf3da" }, "downloads": -1, "filename": "gql_py-0.5.0.tar.gz", "has_sig": false, "md5_digest": "fd7a3fb0d19a17aef9b631a2e763356b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7269, "upload_time": "2018-07-31T14:34:03", "url": "https://files.pythonhosted.org/packages/d9/bf/2dbd5e4431228be35b8be5ea13af31680ed4392380af192afb27b9a749e4/gql_py-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "ee2c0d692718519a41bf1daf7626357f", "sha256": "dc0a8e2602c86f4b84adff93cbd384aa4728a7133334659090f388abad14e39d" }, "downloads": -1, "filename": "gql_py-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee2c0d692718519a41bf1daf7626357f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5856, "upload_time": "2018-08-06T15:54:46", "url": "https://files.pythonhosted.org/packages/3f/c9/3af1071dc81f94e20b4cae0130a3b3eb8b59db736974bf6c0fbf4f09c9a2/gql_py-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55ec24bfec796c5d396e2c2eafcf349e", "sha256": "b9eccbfd0ab23c1a976bbdefe80db21097b792e182ef34bcf51f3c135b9ab07d" }, "downloads": -1, "filename": "gql_py-0.6.0.tar.gz", "has_sig": false, "md5_digest": "55ec24bfec796c5d396e2c2eafcf349e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4199, "upload_time": "2018-08-06T15:54:47", "url": "https://files.pythonhosted.org/packages/e5/80/12c91651e2880aefc2c9007d1475348fd1b86f24be794f6315ec10644205/gql_py-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ee2c0d692718519a41bf1daf7626357f", "sha256": "dc0a8e2602c86f4b84adff93cbd384aa4728a7133334659090f388abad14e39d" }, "downloads": -1, "filename": "gql_py-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee2c0d692718519a41bf1daf7626357f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5856, "upload_time": "2018-08-06T15:54:46", "url": "https://files.pythonhosted.org/packages/3f/c9/3af1071dc81f94e20b4cae0130a3b3eb8b59db736974bf6c0fbf4f09c9a2/gql_py-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55ec24bfec796c5d396e2c2eafcf349e", "sha256": "b9eccbfd0ab23c1a976bbdefe80db21097b792e182ef34bcf51f3c135b9ab07d" }, "downloads": -1, "filename": "gql_py-0.6.0.tar.gz", "has_sig": false, "md5_digest": "55ec24bfec796c5d396e2c2eafcf349e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4199, "upload_time": "2018-08-06T15:54:47", "url": "https://files.pythonhosted.org/packages/e5/80/12c91651e2880aefc2c9007d1475348fd1b86f24be794f6315ec10644205/gql_py-0.6.0.tar.gz" } ] }