Skip to content
GraphQL Engine built with Python 3.6+ / asyncio
Branch: master
Clone or download
tsunammis Merge pull request #242 from tartiflette/sch/update-documentation-plugin
(Documentation) Update from the new Engine API and plugin approach
Latest commit 6904b0f Jun 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github chore(repository): move from 'dailymotion/tartiflete' to 'tartiflette… May 24, 2019
bin chore(*): Refactoring of SDL and Tartiflette Apr 3, 2018
changelogs fix: remove warning message when using well the Engine() class Jun 18, 2019
docs doc(plugin): add links and fix typo Jun 19, 2019
github-actions chore(github-actions): add cmake on build python image Apr 15, 2019
libgraphqlparser @ f42c7bc chore(libgraphqlparser): add tartiflette/libgraphqlparser submodule Jun 3, 2019
tartiflette doc: update from the new Engine API and plugin approach Jun 19, 2019
tests feat: Support instance or class in decorator Jun 17, 2019
.coveragerc Correct some pylint, ignore some pylint Sep 28, 2018
.dockerignore chore(action): use github actions instead of travis Apr 4, 2019
.editorconfig doc: update from the new Engine API and plugin approach Jun 19, 2019
.gitignore chore(ci): add Travis as CI and Gazr Specification Sep 14, 2018
.gitmodules chore(libgraphqlparser): add tartiflette/libgraphqlparser submodule Jun 3, 2019
.isort.cfg chore(format): Add format on tests and import sorting everywhere Jan 15, 2019
CHANGELOG.md fix: remove warning message when using well the Engine() class Jun 18, 2019
CONTRIBUTORS.md
Dockerfile chore(action): use github actions instead of travis Apr 4, 2019
LICENSE Initial commit Jan 26, 2018
MANIFEST.in chore: rollback to travis Apr 4, 2019
Makefile chore(github-ations): check git ref to set version Apr 16, 2019
README.md doc: update from the new Engine API and plugin approach Jun 19, 2019
docker-compose.yml chore(docker): update docker image path Jun 3, 2019
pylintrc fix(pylint): bump pylint version & fix new lint error Feb 27, 2019
setup.py fix: remove warning message when using well the Engine() class Jun 18, 2019

README.md

Tartiflette

Tartiflette is a GraphQL Server implementation built with Python 3.6+.

Motivation

Read this blogpost about our motivations TL; DR We reached the limits of Graphene, we wanted to build something which met certain requirements:

  • Offers a better developer experience that respects the Python mindset
  • Uses SDL (Schema Definition Language)
  • Uses asyncio as the sole execution engine
  • Be 100% open source

Status

The first milestone is behind us, we are now on the road to the milestone 2.

DNA

Discover Tartiflette with our fabulous tutorial on https://tartiflette.io/docs/tutorial/getting-started

Summary

Usage

import asyncio

from tartiflette import Resolver, create_engine

@Resolver("Query.hello")
async def resolver_hello(parent, args, ctx, info):
    return "hello " + args["name"]


async def run():
    engine = await create_engine(
        """
        type Query {
            hello(name: String): String
        }
        """
    )

    result = await engine.execute(
        query='query { hello(name: "Chuck") }'
    )

    print(result)
    # {'data': {'hello': 'hello Chuck'}}

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())

More details on the API Documentation

Installation

Tartiflette is available on pypi.org.

pip install tartiflette

Installation dependencies

As Tartiflette based its Executor engine on libgraphqlparser. You'll need these following commands on your environment to use the library. cmake, bison and flex.

MacOSX

brew install cmake flex bison

Ubuntu

apt-get install cmake flex bison

Tartiflette over HTTP

Discover our implementation of tartiflette over HTTP called tartiflette-aiohttp.

Overview

pip install tartiflette-aiohttp
from aiohttp import web
from tartiflette_aiohttp import register_graphql_handlers

sdl = """
    type Query {
        hello(name: String): String
    }
"""

ctx = {
    'user_service': user_service
}

web.run_app(
    register_graphql_handlers(
        app=web.Application(),
        engine_sdl=sdl,
        engine_schema_name="default",
        executor_context=ctx,
        executor_http_endpoint='/graphql',
        executor_http_methods=['POST', 'GET']
    )
)

Roadmaps

How to contribute to the documentation?

As you may know, the documentation is hosted on https://tartiflette.io. This fabulous website is built thanks to another amazing tool, docusaurus.

The content of the documentation is hosted in this repository, to be as close as possible to the code. You will find everything you need/want in the folder /docs.

How to run the website locally?

We built a docker image for the documentation (tartiflette/tartiflette.io on docker hub), which allow us to provide you an easy way to launch the documentation locally, without installing a specific version of node.

prerequisite:

  • Docker
  • Docker Compose
  • Make
make run-docs

Every change you will make in the /docs folder will be automatically hot reloaded. 🎉

Known issues

You can’t perform that action at this time.