Skip to main content

playing SQL directly on Python datas

Project description

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

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 examplessqlite_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

baresql-0.7.4.tar.gz (9.5 kB view hashes)

Uploaded Source

Built Distribution

baresql-0.7.4-py2.py3-none-any.whl (11.8 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page