Metadata-Version: 1.1
Name: graphene
Version: 0.1.6.0
Summary: Graphene: Python DSL for GraphQL
Home-page: https://github.com/graphql-python/graphene
Author: Syrus Akbary
Author-email: me@syrusakbary.com
License: MIT
Description: Graphene |Build Status| |Coverage Status|
        =========================================
        
        Graphene is a Python library for creating GraphQL schemas/types easly.
        It maps the models/fields to internal GraphQL objects without effort.
        Including automatic `Django models`_ conversion.
        
        Installation
        ------------
        
        For instaling graphene, just run this command in your shell
        
        .. code:: bash
        
            pip install graphene
        
        Usage
        -----
        
        Example code of a GraphQL schema using Graphene:
        
        Schema definition
        ~~~~~~~~~~~~~~~~~
        
        .. code:: python
        
            class Character(graphene.Interface):
                id = graphene.IDField()
                name = graphene.StringField()
                friends = graphene.ListField('self')
        
                def resolve_friends(self, args, *_):
                    return [Human(f) for f in self.instance.friends]
        
            class Human(Character):
                homePlanet = graphene.StringField()
        
            class Query(graphene.ObjectType):
                human = graphene.Field(Human)
        
            schema = graphene.Schema(query=Query)
        
        Querying
        ~~~~~~~~
        
        Querying ``graphene.Schema`` is as simple as:
        
        .. code:: python
        
            query = '''
                query HeroNameQuery {
                  hero {
                    name
                  }
                }
            '''
            result = schema.execute(query)
        
        Relay Schema
        ~~~~~~~~~~~~
        
        Graphene also supports Relay, check the `Starwars Relay example`_!
        
        .. code:: python
        
            class Ship(relay.Node):
                '''A ship in the Star Wars saga'''
                name = graphene.StringField(description='The name of the ship.')
        
                @classmethod
                def get_node(cls, id):
                    return Ship(getShip(id))
        
        
            class Query(graphene.ObjectType):
                ships = relay.ConnectionField(Ship, description='The ships used by the faction.')
                node = relay.NodeField()
        
                @resolve_only_args
                def resolve_ships(self):
                    return [Ship(s) for s in getShips()]
        
        Django+Relay Schema
        ~~~~~~~~~~~~~~~~~~~
        
        If you want to use graphene with your Django Models check the `Starwars
        Django example`_!
        
        .. code:: python
        
            class Ship(DjangoNode):
                class Meta:
                    model = YourDjangoModelHere
                    # only_fields = ('id', 'name') # Only map this fields from the model
                    # excluxe_fields ('field_to_excluxe', ) # Exclude mapping this fields from the model
        
            class Query(graphene.ObjectType):
                node = relay.NodeField()
        
        Contributing
        ------------
        
        After cloning this repo, ensure dependencies are installed by running:
        
        .. code:: sh
        
            python setup.py install
        
        After developing, the full test suite can be evaluated by running:
        
        .. code:: sh
        
            python setup.py test # Use --pytest-args="-v -s" for verbose mode
        
        .. _Django models: #djangorelay-schema
        .. _Starwars Relay example: tests/starwars_relay
        .. _Starwars Django example: tests/starwars_django
        
        .. |Build Status| image:: https://travis-ci.org/graphql-python/graphene.svg?branch=master
           :target: https://travis-ci.org/graphql-python/graphene
        .. |Coverage Status| image:: https://coveralls.io/repos/graphql-python/graphene/badge.svg?branch=master&service=github
           :target: https://coveralls.io/github/graphql-python/graphene?branch=master
        
Keywords: api graphql protocol rest relay graphene
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: PyPy
