baresql : playing SQL directly on Python datas
==============================================
baresql improves sql agility of python data science beginners by :
* allowing sql over python objects (list, ranges, ...) and SQL Tables,
* requiring no special module except : pandas.
Inspiration :
-------------
* pypi.python.org/pypi/pandasql : sqldf for pandas
* pypi.python.org/pypi/ipython-sql : sql magic in Ipython
Features
--------
* query lists , tuple, dictionnaries, dataframes
* result as a dataframe, list of records, or list
* basic Common Table Expression support on old python3.3- versions
Installation
------------
You can install, upgrade, uninstall sqlite_bro.py with these commands::
$ pip install baresql
$ pip install --upgrade baresql
$ pip uninstall baresql
or just launch it from IPython with %load https://raw.githubusercontent.com/stonebig/baresql/master/baresql/baresql.py
Basic Example
-------------
::
from __future__ import print_function, unicode_literals, division # if Python2.7
from baresql import baresql
bsql = baresql.baresql(keep_log = True )
bsqldf = lambda q: bsql.df(q, dict(globals(),**locals()))
users = ['Alexander', 'Bernard', 'Charly', 'Danielle', 'Esmeralda', 'Franz']
# We use the python 'users' list like a SQL table
sql = "select 'Welcome ! ' , c0 from users$$"
bsqldf(sql)
Examples
--------
http://nbviewer.ipython.org/github/stonebig/baresql/blob/master/examples/baresql_with_cte.ipynb
Links
-----
* `Fork me on GitHub <http://github.com/stonebig/baresql>`_
Changelog
=========
2016-09-18a : v0.7.4 'pandas walk'
-------------------------------------------
* bug fix: pandas 0.19 compatibility fix
older versions :
----------------
* 0.7.3 : Python keyword is 'pass', not 'Pass'
* 0.7.2 : support space in dataframe column title
* 0.7.1 : cleanups
* 0.7.0 : support of pandas 0.14 sqlalchemy
* 0.6.6 : sqlite_py_manager.py browser added functions and fix, fix tokenizer error in baresql
* 0.6.4 : minimal compatibility of sqlite_py_manager.py with old versions : python 2.7 and sqlite 3.6.21
* 0.6.1 : a pure standard-installation Python SQLite browser in examples\sqlite_py_manager.py
* 0.6 : first version with correct mysql support
* 0.5.1 : bug correction + SQLite3.8.3 beta from 2013-01-22
* 0.5 : use SQLite true CTE if SQLite >= 3.8.3
* 0.4.1 : inline CTE when syntax is "with x as (y)"
* 0.4 : rewrite with token
* 0.3.2 : support comments in the SQL
* 0.3 : includes a basic CTE
* 0.2 : add "range(10)" iterable object support
* 0.1 : initial version