Metadata-Version: 2.1
Name: tartiflette-asgi
Version: 0.10.0
Summary: ASGI support for the Tartiflette Python GraphQL engine
Home-page: https://github.com/tartiflette/tartiflette-asgi
Author: Florimond Manca
Author-email: florimond.manca@gmail.com
License: MIT
Description: <div align="center">
          <img src="https://raw.githubusercontent.com/tartiflette/tartiflette-asgi/master/img/tartiflette-asgi.png" alt="tartiflette-asgi logo"/>
        </div>
        
        <p align="center">
          <a href="https://github.com/tartiflette/tartiflette-asgi/actions">
            <img src="https://github.com/tartiflette/tartiflette-asgi/workflows/Build/badge.svg?branch=master" alt="Build status">
          </a>
          <a href="https://pypi.org/project/tartiflette-asgi">
            <img src="https://badge.fury.io/py/tartiflette-asgi.svg" alt="Package version">
          </a>
          <a href="https://github.com/ambv/black">
            <img src="https://img.shields.io/badge/code_style-black-000000.svg" alt="Code style">
            </a>
        </p>
        
        `tartiflette-asgi` is a wrapper that provides ASGI support for the [Tartiflette](https://tartiflette.io) Python GraphQL engine.
        
        It is ideal for serving a GraphQL API over HTTP, or adding a GraphQL API endpoint to an existing ASGI application (e.g. FastAPI, Starlette, Quart, etc).
        
        Full documentation is available at: https://tartiflette.github.io/tartiflette-asgi
        
        ## Requirements
        
        `tartiflette-asgi` is compatible with:
        
        - Python 3.6, 3.7 or 3.8.
        - Tartiflette 1.x.
        
        ## Quickstart
        
        First, install Tartiflette's external dependencies, as explained in the [Tartiflette tutorial](https://tartiflette.io/docs/tutorial/install-tartiflette).
        
        Then, you can install Tartiflette and `tartiflette-asgi` using `pip`:
        
        ```bash
        pip install tartiflette "tartiflette-asgi==0.*"
        ```
        
        You'll also need an [ASGI web server](https://github.com/florimondmanca/awesome-asgi#servers). We'll use [Uvicorn](http://www.uvicorn.org/) here:
        
        ```bash
        pip install uvicorn
        ```
        
        Create an application that exposes a `TartifletteApp` instance:
        
        ```python
        from tartiflette import Resolver
        from tartiflette_asgi import TartifletteApp
        
        @Resolver("Query.hello")
        async def hello(parent, args, context, info):
            name = args["name"]
            return f"Hello, {name}!"
        
        sdl = "type Query { hello(name: String): String }"
        app = TartifletteApp(sdl=sdl, path="/graphql")
        ```
        
        Save this file as `graphql.py`, then start the server:
        
        ```bash
        uvicorn graphql:app
        ```
        
        Make an HTTP request containing a GraphQL query:
        
        ```bash
        curl http://localhost:8000/graphql -d '{ hello(name: "Chuck") }' -H "Content-Type: application/graphql"
        ```
        
        You should get the following JSON response:
        
        ```json
        { "data": { "hello": "Hello, Chuck!" } }
        ```
        
        To learn more about using `tartiflette-asgi`, head to the documentation: https://tartiflette.github.io/tartiflette-asgi
        
        ## Contributing
        
        Want to contribute? Awesome! Be sure to read our [Contributing guidelines](https://github.com/tartiflette/tartiflette-asgi/tree/master/CONTRIBUTING.md).
        
        ## Changelog
        
        Changes to this project are recorded in the [changelog](https://github.com/tartiflette/tartiflette-asgi/tree/master/CHANGELOG.md).
        
        ## License
        
        MIT
        
        
        # Changelog
        
        All notable changes to this project will be documented in this file.
        
        The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
        and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
        
        ## 0.10.0 - 2021-01-19
        
        ### Added
        
        - Add official compatibility with Tartiflette 1.3.x. (Pull #132)
        
        ## 0.9.0 - 2020-06-10
        
        ### Removed
        
        - Drop deprecated `mount` helpers module. Prefer using the mounting mechanism of your ASGI framework. (Pull #119)
        
        ### Changed
        
        - Update dependency on Starlette to `0.13.*`. (Pull #106)
        - Convert internal modules to private naming. All public API should be accessed from the top-level `tartiflette_asgi` package. (Pull #117)
        
        ### Added
        
        - Add compatibility with Starlette `0.13.*`. (Pull #106)
        
        ## 0.8.0 - 2020-06-04
        
        ### Added
        
        - Add support for Tartiflette 1.2.x. (Pull #115)
        
        ### Fixed
        
        - Fix GraphiQL subscriptions endpoint when using ASGI sub-mounting. (Pull #98)
        - Fix protocol mismatch error when serving GraphiQL over HTTPS. (Pull #114)
        
        ## 0.7.1 - 2019-10-28
        
        ### Fixed
        
        - Requests containing malformed JSON now return a 400 Bad Request error response instead of 500 Internal Server Error. (Pull #81)
        
        ## 0.7.0 - 2019-10-27
        
        ### Changed
        
        - Renamed project to `tartiflette-asgi`.
        
        ## 0.6.0 - 2019-10-18
        
        ### Added
        
        - Add support for Tartiflette 1.x. (Pull #58)
        - Officialize support for Python 3.8. (Pull #80)
        
        ### Removed
        
        - Drop support for Tartiflette 0.x. (Pull #58)
        
        ## 0.5.2 - 2019-10-09
        
        ### Added
        
        - Add support for Python 3.8. (Pull #55)
        
        ### Fixed
        
        - Type annotations are now correctly detected by `mypy`. (Pull #66)
        - Fix a bug that prevented the GraphiQL web interface from making queries when the application was mounted on a parent ASGI app. (Pull #51)
        
        ## 0.5.1 - 2019-07-16
        
        ### Fixed
        
        - Fixed a bug that prevented accessing the GraphiQL interface when subscriptions were not enabled.
        
        ## 0.5.0 - 2019-07-12
        
        ### Added
        
        - WebSocket subscriptions, configurable with the new `subscriptions` option on `TartifletteApp`.
        - Pass extra context to resolvers using the new `context` option on `TartifletteApp`.
        
        ## 0.4.0 - 2019-07-04
        
        ### Added
        
        - Support for Tartiflette 0.12.x.
        - Add a `mount` module with submounting helpers.
        - Add `mount.starlette()`.
        
        ### Changed
        
        - Due to the new [engine cooking API](https://tartiflette.io/docs/api/engine#cook-your-tartiflette) in Tartiflette 0.12, `TartifletteApp` now includes a startup event handler responsible for building the GraphQL engine. If submounting, it **must** be registered on the parent ASGI app. Helpers in the `mount` module take care of this for you.
        
        ### Removed
        
        - Drop support for Tartiflette 0.11.x and below.
        
        ## 0.3.0 - 2019-07-03
        
        ### Added
        
        - GraphiQL configuration via the `GraphiQL` helper. Options: `path`, `default_query`, `default_headers`, `default_variables`, `template`.
        
        ### Changed
        
        - Internal refactoring that leverages more of Starlette's capabilities.
        - Documentation improvements.
        
        ## 0.2.0 - 2019-06-10
        
        ### Added
        
        - Support for `starlette>=0.12` (previously `>=0.12.0b3`).
        - Tartiflette is now installed too when installing `tartiflette-asgi`.
        
        ### Changed
        
        - The default `path` is now `""` (previously `"/"`).
        - The request is now accessible in the GraphQL context via `context["req"]` (previously `context["request"]`).
        - If no error occurred, the `errors` field is not present in the response anymore (previously was `None`).
        
        ### Fixed
        
        - More robust URL matching on `TartifletteApp`.
        
        ## 0.1.1 - 2019-04-28
        
        ### Fixed
        
        - Add missing `graphiql.html` package asset.
        
        ## 0.1.0 - 2019-04-26
        
        ### Added
        
        Features:
        
        - `TartifletteApp` ASGI application.
        - Built-in GraphiQL client.
        
        Project-related additions:
        
        - Package setup.
        - Changelog.
        - Contributing guide.
        - README and documentation.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Description-Content-Type: text/markdown
