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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

baresql-0.8.0-py2.py3-none-any.whl (10.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file baresql-0.8.0-py2.py3-none-any.whl.

File metadata

  • Download URL: baresql-0.8.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.9

File hashes

Hashes for baresql-0.8.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9793363e66d6f35835f733f4f7e2214bb82fad54187be9edcca8bde1e6f0bcd9
MD5 0283e3ff245b593db3513d41cac22ec9
BLAKE2b-256 7417120b962b032f455946b6ef7af201f75e86d01e6da484c0201b3dc4f9ea45

See more details on using hashes here.

Supported by

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