Metadata-Version: 2.0
Name: dataql
Version: 0.0.1a1
Summary: ``dataql`` is for "Data Query Language". It allows to query data in a simple way.
Home-page: https://github.com/twidi/py-dataql
Author: Stephane "Twidi" Angel
Author-email: s.angel@twidi.com
License: UNKNOWN
Platform: UNKNOWN
Requires-Dist: parsimonious (==0.6.2)

py-dataql
=========

Python backend for "Data Query Languages" (like GraphQL and others

What is it?
-----------

``dataql`` is for "Data Query Language". It allows to query data in a
simple way.

It is heavily inspired by `GraphQL, from
Facebook <https://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html>`__

I didn't want to force people to think "graph", and I chose a language
that is different in some ways. But this library is written with a base,
and we provide a generic parser, but other parsers could easily be
written!

How it works?
-------------

For example, the default generic parser included, ``DataQLParser``,
allows to ask for data with this example query:

::

    User.get('Elon Musk') {
        name,
        birthday.strftime('%x'),
        companies[
            name,
            date:created_year,
        ]
    }

And to get data like that:

.. code:: python

    {
        'name': 'Elon Musk',
        'birthday': '06/28/71',
        'companies': [
            {
                'name': 'Paypal',
                'date': 1999
            },
            {
                'name': 'Space X',
                'date': 2002
            }
        ]
    }

The main use is for an API, letting the client asking what it really
needs, in only one http query, without having to update the API
endpoints.

The only thing to do on the server side is to define, via a registry,
what objects and attributes are allowed.


