{ "info": { "author": "youyo", "author_email": "1003ni2@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Software Development" ], "description": "# gql-query-builder\n\nThis is a GraphQL query builder. \nUse with method chain.\n\n## Install\n\n```\npip install gql-query-builder\n```\n\n## Usage\n\n- query\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery = GqlQuery().fields(['name']).query('hero').operation().generate()\nprint(query)\n\"\"\"\nquery {\n hero {\n name\n }\n}\n\"\"\"\n```\n\n- mutation\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery = GqlQuery().fields(['stars', 'commentary']).query('createReview', input={\"episode\": \"$ep\", \"review\": \"$review\"}).operation('mutation', name='CreateReviewForEpisode', input={\"$ep\": \"Episode!\", \"$review\": \"ReviewInput!\"}).generate()\nprint(query)\n\"\"\"\nmutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {\n createReview(episode: $ep, review: $review) {\n stars\n commentary\n }\n}\n\"\"\"\n```\n\n### Methods\n\n- `fields()` \n build response fields.\n\n```python\n#Syntax\n\nfields(\n fields: List[str] = [],\n name: str = '',\n condition_expression: str = ''\n)\n```\n\n- `query()` \n build query fields.\n\n```python\n#Syntax\n\nquery(\n name: str = '',\n alias: str = '',\n input: Dict[str, Union[str, int]] = {}\n)\n```\n\n- `operation()` \n build operation fields.\n\n```python\n#Syntax\n\noperation(\n query_type: str = 'query',\n name: str = '',\n input: Dict[str, Union[str, int]] = {},\n queries: List[str] = []\n)\n```\n\n- `fragment()` \n build fragment fields.\n\n```python\n#Syntax\n\nfragment(\n name: str,\n interface: str\n)\n```\n\n- `generate()` \n generate query.\n\n```python\n#Syntax\n\ngenerate()\n```\n\n## Examples\n\n- Nesting fields\n\n```python\nfrom gql_query_builder import GqlQuery\n\nfield_friends = GqlQuery().fields(['name'], name='friends').generate()\nquery = GqlQuery().fields(['name', field_friends]).query('hero').operation('query').generate()\nprint(query)\n\"\"\"\nquery {\n hero {\n name\n friends {\n name\n }\n }\n}\n\"\"\"\n```\n\n- Query with input\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery = GqlQuery().fields(['name', 'height']).query('human', input={\"id\": '\"1000\"'}).operation().generate()\nprint(query)\n\"\"\"\nquery {\n human(id: \"1000\") {\n name\n height\n }\n}\n\"\"\"\n```\n\n- Query with input and arguments\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery = GqlQuery().fields(['name', 'height(unit: FOOT)']).query('human', input={\"id\": '\"1000\"'}).operation().generate()\nprint(query)\n\"\"\"\nquery {\n human(id: \"1000\") {\n name\n height(unit: FOOT)\n }\n}\n\"\"\"\n```\n\n- Alias\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery_empirehero = GqlQuery().fields(['name']).query('hero', alias='empireHero', input={\"episode\": 'EMPIRE'}).generate()\nquery_jedihero = GqlQuery().fields(['name']).query('hero', alias='jediHero', input={\"episode\": 'JEDI'}).generate()\nquery = GqlQuery().operation('query', queries=[query_empirehero, query_jedihero]).generate()\nprint(query)\n\"\"\"\nquery {\n empireHero: hero(episode: EMPIRE) {\n name\n }\n jediHero: hero(episode: JEDI) {\n name\n }\n}\n\"\"\"\n```\n\n- Fragments\n\n```python\nfrom gql_query_builder import GqlQuery\n\nfield_friends = GqlQuery().fields(['name'], name='friends').generate()\nquery = GqlQuery().fields(['name', 'appearsIn', field_friends]).fragment('comparisonFields', 'Character').generate()\nprint(query)\n\"\"\"\nfragment comparisonFields on Character {\n name\n appearsIn\n friends {\n name\n }\n}\n\"\"\"\n```\n\n- Refer to fragments\n\n```python\nfrom gql_query_builder import GqlQuery\n\nquery_leftComparison = GqlQuery().fields(['...comparisonFields']).query('hero', alias='leftComparison', input={\"episode\": \"EMPIRE\"}).generate()\nquery_rightComparison = GqlQuery().fields(['...comparisonFields']).query('hero', alias='rightComparison', input={\"episode\": \"JEDI\"}).generate()\nquery = GqlQuery().operation('query', queries=[query_leftComparison, query_rightComparison]).generate()\nprint(query)\n\"\"\"\nquery {\n leftComparison: hero(episode: EMPIRE) {\n ...comparisonFields\n }\n rightComparison: hero(episode: JEDI) {\n ...comparisonFields\n }\n}\n\"\"\"\n```\n\n- Query with variables\n\n```python\nfrom gql_query_builder import GqlQuery\n\nfield_friends = GqlQuery().fields(['name'], name='friends').generate()\nquery = GqlQuery().fields(['name', field_friends]).query('hero', input={\"episode\": \"$episode\"}).operation('query', name='HeroNameAndFriends', input={\"$episode\": \"Episode\"}).generate()\nprint(query)\n\"\"\"\nquery HeroNameAndFriends($episode: Episode) {\n hero(episode: $episode) {\n name\n friends {\n name\n }\n }\n}\n\"\"\"\n```\n\n- Directives\n\n```python\nfrom gql_query_builder import GqlQuery\n\nfield_friends = GqlQuery().fields(['name'], name='friends @include(if: $withFriends)').generate()\nquery = GqlQuery().fields(['name', field_friends]).query('hero', input={\"episode\": \"$episode\"}).operation('query', name='Hero', input={\"$episode\": \"Episode\", \"$withFriends\": \"Boolean!\"}).generate()\nprint(query)\n\"\"\"\nquery Hero($episode: Episode, $withFriends: Boolean!) {\n hero(episode: $episode) {\n name\n friends @include(if: $withFriends) {\n name\n }\n }\n}\n\"\"\"\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/youyo/gql-query-builder", "keywords": "graphql gql query-builder", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "gql-query-builder", "package_url": "https://pypi.org/project/gql-query-builder/", "platform": "", "project_url": "https://pypi.org/project/gql-query-builder/", "project_urls": { "Homepage": "https://github.com/youyo/gql-query-builder", "Source": "https://github.com/youyo/gql-query-builder" }, "release_url": "https://pypi.org/project/gql-query-builder/0.1.5/", "requires_dist": null, "requires_python": ">=3.6", "summary": "This is a GraphQL query builder.", "version": "0.1.5" }, "last_serial": 5821608, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "62a0235ea4074c584a5b5247f09f9750", "sha256": "c8d5c84d5ea37b8903f82a48cfc06ab6225f605068e0cdd51a2feb91f5174516" }, "downloads": -1, "filename": "gql-query-builder-0.0.1.tar.gz", "has_sig": false, "md5_digest": "62a0235ea4074c584a5b5247f09f9750", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2369, "upload_time": "2019-09-08T19:28:58", "url": "https://files.pythonhosted.org/packages/92/fb/972eac84224d75e557397dcbb4d248936ddd9a21ccf8e5ae0117d7075bc0/gql-query-builder-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "23dd0ab65f149ff07c7f9aed63eb709f", "sha256": "158b8a3fbc40a248cb2305f5382cd1e2e438426f9a60d9b325ede77a6fdd11cd" }, "downloads": -1, "filename": "gql-query-builder-0.0.2.tar.gz", "has_sig": false, "md5_digest": "23dd0ab65f149ff07c7f9aed63eb709f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4170, "upload_time": "2019-09-08T19:56:45", "url": "https://files.pythonhosted.org/packages/ee/41/37d1d2c371e7d0be2fa617ec432f84ed00f1b7365c0d77ff6fc690f0ceba/gql-query-builder-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "551c2c341f74d8727210b2a6093c5d92", "sha256": "0543894cb422860702bef09ebfac7faa8bd831f15ae37b67ad3a478527fd3e71" }, "downloads": -1, "filename": "gql-query-builder-0.0.3.tar.gz", "has_sig": false, "md5_digest": "551c2c341f74d8727210b2a6093c5d92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4140, "upload_time": "2019-09-08T20:12:59", "url": "https://files.pythonhosted.org/packages/4e/c1/956be2c0dbbca171f4795234eeeefaf86452d45c1d1df73ca4fdda0fe294/gql-query-builder-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "2b10ca6a4643ecd109ab67c0cb91bd66", "sha256": "655b017834022cd916db30d6a6e9c6f302ea1818b7fc4a2b57a7de90a4e6db76" }, "downloads": -1, "filename": "gql-query-builder-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2b10ca6a4643ecd109ab67c0cb91bd66", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4694, "upload_time": "2019-09-08T20:35:05", "url": "https://files.pythonhosted.org/packages/9c/19/b065bde0f34b21acd384916deabfaa002ad401ad65960c923c3137cde190/gql-query-builder-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c6f18d953ac488a2b4076a1cf3cb9160", "sha256": "02d186822055ed6587613856e4c5e1721417dd43e5ca683cb27a97619f979cdd" }, "downloads": -1, "filename": "gql-query-builder-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c6f18d953ac488a2b4076a1cf3cb9160", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5180, "upload_time": "2019-09-11T15:52:56", "url": "https://files.pythonhosted.org/packages/6f/88/6681fe21780a85ce6c7be3f28d7dbf3f1fa483bd65cb74d4b0b18ac7c7a6/gql-query-builder-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "77725373b4cb875fe0474555c2dbb336", "sha256": "7eb453d98f050aafc28f87a2db2d31cfa68f772a6d7d7e35b6da3bc2c70dcffc" }, "downloads": -1, "filename": "gql-query-builder-0.1.2.tar.gz", "has_sig": false, "md5_digest": "77725373b4cb875fe0474555c2dbb336", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5398, "upload_time": "2019-09-11T16:18:32", "url": "https://files.pythonhosted.org/packages/f0/87/1a2913e4a2dcf7b14c4080045dd5a0137958d3234c35528468a9fb4e22b8/gql-query-builder-0.1.2.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e13c4222d259c6380e8cbc63093478e0", "sha256": "75a521a5bbbc46672bdbf3cfc449ea94b8c3e117c1ab195fa5593b4754a08715" }, "downloads": -1, "filename": "gql-query-builder-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e13c4222d259c6380e8cbc63093478e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5960, "upload_time": "2019-09-12T17:15:29", "url": "https://files.pythonhosted.org/packages/3c/3f/0118568e3c8ec58d5201ccccfb06882518089d368d23f45df2fd9912dc9c/gql-query-builder-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e13c4222d259c6380e8cbc63093478e0", "sha256": "75a521a5bbbc46672bdbf3cfc449ea94b8c3e117c1ab195fa5593b4754a08715" }, "downloads": -1, "filename": "gql-query-builder-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e13c4222d259c6380e8cbc63093478e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5960, "upload_time": "2019-09-12T17:15:29", "url": "https://files.pythonhosted.org/packages/3c/3f/0118568e3c8ec58d5201ccccfb06882518089d368d23f45df2fd9912dc9c/gql-query-builder-0.1.5.tar.gz" } ] }