# -*- coding: utf-8 -*-
from distutils.core import setup

package_dir = \
{'': '.'}

packages = \
['gql', 'gql.clients']

package_data = \
{'': ['*']}

install_requires = \
['click>=7.0,<8.0',
 'dataclasses-json>=0.2.0,<0.3.0',
 'graphql-core-next>=1.0.0,<1.1.0',
 'inflection>=0.3.1,<0.4.0',
 'jinja2>=2.10,<3.0',
 'requests>=2.21,<3.0',
 'watchdog>=0.9.0,<0.10.0']

extras_require = \
{'async': ['aiohttp>=3.5,<4.0']}

entry_points = \
{'console_scripts': ['gql = gql.cli:cli']}

setup_kwargs = {
    'name': 'gql-next',
    'version': '0.1.1',
    'description': 'Python GraphQL Client Library',
    'long_description': '# GQL: Python GraphQL Client Library\n\n[![Build Status](https://travis-ci.org/ekampf/cql.svg?branch=master)](https://travis-ci.org/ekampf/cql)\n[![Coverage Status](https://coveralls.io/repos/github/ekampf/gql/badge.svg?branch=master)](https://coveralls.io/github/ekampf/gql?branch=master)\n\n## Introduction\n\nGQL is a GraphQL Client Python library intended to help Python application make GraphQL\nAPI call while enjoying the advantages that come with GraphQL.\n\n- **Strongly Typed** response objects (dynamically created in build time to match your query)\n- **Query Validation** that checks your code\'s queries against the GraphQL server\'s schema.\n\n## Installation\n\nSimply install from PyPi:\n\n```bash\npip install gql-next\n```\n\nThen go to your project folder and run `gql init`\n\n## Quick Start\n\n`gql` works by parsing query files (`**/*.graphql` by default) into their own Python module where\nan class, named after the operation defined in the file, allows you to make that query and get a typed\nresponse.\n\nFor example, given the following file `get_film.graphql` file:\n```\nquery GetFilm($id: ID!) {\n  film(id: $id) {\n    title\n    director\n  }\n}\n```\n\nA `get_film.py` will be created defining a `GetFilm` class:\n\n```python\n# AUTOGENERATED file. Do not Change!\nfrom typing import Any, Callable, Mapping, List\nfrom enum import Enum\nfrom dataclasses import dataclass\nfrom dataclasses_json import dataclass_json\nfrom gql.clients import Client, AsyncIOClient\n\n\n@dataclass_json\n@dataclass\nclass GetFilm:\n    @dataclass_json\n    @dataclass\n    class GetFilmData:\n        @dataclass_json\n        @dataclass\n        class Film:\n            title: str\n            director: str\n        film: Film = None\n\n    data: GetFilmData = None\n    errors: Any = None\n\n    @classmethod\n    def execute(cls, id: str, on_before_callback: Callable[[Mapping[str, str], Mapping[str, str]], None] = None) -> GetFilm:\n        ...\n\n    @classmethod\n    async def execute_async(cls, id: str, on_before_callback: Callable[[Mapping[str, str], Mapping[str, str]], None] = None) -> GetFilm:\n        ...\n```\n\nAllowing you to make the GraphQL query:\n\n```python\nfrom .get_film import GetFilm\n\nresult = GetFilm.execute(\'meaning_of_life\')\nfilm = result.data.film\n```\n\n*Important notes:*\n* Operations defined in graphql query __must be named__ so that we can name the relevant Python Class which you can then import in your code\n\n\n## How it works\n\n\n### The `gql` client\n\n#### `gql init`\nInitializes a project to use GQL as client - writes a .gql.json configuration file.\n\n#### `gql run`\n\nRun through your project\'s files and compile GraphQL queries into into Python types.\n\n#### `gql watch`\n\nUseful during development. Listen to file changes in your project\'s folder and continuously\nbuilds GraphQL queries as they change.\nThis allows you to:\n* Immediately verify query changes you make are valid.\n* Enjoy your IDE\'s autocomplete features on GraphQL auto-generated objects while developing\nas `watch` will auto-update them as you change queries.\n\n\n# Sponsors\n\n<a href="https://ebates.com"><img src="https://opensource.ebates.com/static/images/ebates-rakuten.svg" width="250"></a>\n',
    'author': 'Eran Kampf',
    'author_email': 'eran@ekampf.com',
    'url': None,
    'package_dir': package_dir,
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'entry_points': entry_points,
    'python_requires': '>=3.7,<4.0',
}


setup(**setup_kwargs)
