Codebase list anosql / debian/0.2.0-2
debian/0.2.0-2

Tree @debian/0.2.0-2 (Download .tar.gz)

anosql
======

.. image:: https://badge.fury.io/py/anosql.svg
    :target: https://badge.fury.io/py/anosql

.. image:: http://readthedocs.org/projects/anosql/badge/?version=latest
    :target: http://anosql.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. image:: https://travis-ci.org/honza/anosql.svg?branch=master
    :target: https://travis-ci.org/honza/anosql

A Python library for using SQL

*Warning: very alpha*

Inspired by the excellent `Yesql`_ library by Kris Jenkins.  In my mother
tongue, *ano* means *yes*.

Installation
------------

::

  $ pip install anosql

Usage
-----

Given a ``queries.sql`` file:

.. code-block:: sql

  -- name: get-all-greetings
  -- Get all the greetings in the database
  SELECT * FROM greetings;

We can issue SQL queries, like so:

.. code-block:: python

    import anosql
    import psycopg2
    import sqlite3

    # PostgreSQL
    conn = psycopg2.connect('...')
    queries = anosql.load_queries('postgres', 'queries.sql')

    # Or, Sqlite3...
    conn = sqlite3.connect('cool.db')
    queries = anosql.load_queries('sqlite', 'queries.sql')

    queries = queries.get_all_greetings(conn)
    # => [(1, 'Hi')]

    queries.get_all_greetings.__doc__
    # => Get all the greetings in the database

    queries.get_all_greetings.__query__
    # => SELECT * FROM greetings;

    queries.available_queries
    # => ['get_all_greetings']

Tests
-----

::

   $ pip install tox
   $ tox

Caveats
-------

Postgresql and sqlite only at the moment

License
-------

BSD, short and sweet

.. _Yesql: https://github.com/krisajenkins/yesql/