[IPython-dev] SQLite kernel

Doug Blank doug.blank at gmail.com
Wed May 7 15:42:02 EDT 2014


On Mon, May 5, 2014 at 11:52 AM, Jessica B. Hamrick
<jhamrick at berkeley.edu>wrote:

> Hi all,
>
> I jut wanted to throw out there a link to the SQL magic, which may be
> relevant:
>
> https://github.com/catherinedevlin/ipython-sql
>
> I know it's not a whole kernel, but may be a good starting place for at
> least seeing what other people have been thinking about along the same
> directions.
>

That is a nicely integrated set of extensions... make good connections with
the IPython python stack (pandas and matplotlib).

Thanks for development, and sharing!

-Doug


>
> Cheers,
> Jess
>
> --
> UC Berkeley, Department of Psychology
> Computational Cognitive Science Lab
> http://www.jesshamrick.com
>
>
> On Mon, May 5, 2014 at 8:28 AM, Doug Blank <doug.blank at gmail.com> wrote:
>
>> On Mon, May 5, 2014 at 11:00 AM, Martin Gadbois <mgadbois at gmail.com>wrote:
>>
>>> Hi!
>>>
>>> I would like to develop a SQLite kernel for IPython.
>>>
>>> Keyword, table and column completion would help building queries, and a
>>> dynamic output could resize text columns and have a proper notebook table
>>> output.
>>>
>>> To achieve that, I see two main directions:
>>> 1- Have an external kernel  (like
>>> http://nbviewer.ipython.org/gist/Carreau/4279371/node-kernel.ipynb)
>>> coded in Python since there are no 0MQ bindings for SQLite.
>>> 2- Extend IPython itself to support SQLite, since I will need to write
>>> Python code anyway to support SQLite.
>>>
>>
>> I've wanted something like this for a while! I would like to incorporate
>> SQL as a language that could easily be used in a variety of educational
>> settings and other open source projects. But the utility of such a project
>> lies in the details of implementation.
>>
>> There are pros and cons to both approaches. But you could perhaps develop
>> it in a manner that could be used in either situation. What would generally
>> be useful would be to replicate the SQLite shell. It would be great if the
>> parser was written in pure Python, and had an interpreter, also as much
>> written in pure Python as possible. That is, it would be great if the
>> low-level C-based sqlite API was limited, and could be swapped out.
>>
>> That would allow other implementations of Python (Jython, PyPy,
>> IronPython) could use it with their own sqlite wrappers. But also, that
>> might make it useful for interfacing other data storages (for example, CSV
>> files, Django databases, etc.)
>>
>> The SQLite shell is actually a bit hairy. Here is a port of the C code to
>> C# for example:
>>
>> http://stackoverflow.com/questions/12620673/net-sqlite-sql-shell
>>
>> You could also use the simple-kernel [1] as a way of quickly turning a
>> Python program into a kernel. (simple-kernel was just updated by Min, so
>> now it is correct; thanks, Min!)
>>
>> This might also have connections to the ADODB API [2]... they have worked
>> hard to make their connections be Python-implementation agnostic.
>>
>> Looking forward to see what you develop!
>>
>> -Doug
>>
>> [1] https://github.com/dsblank/simple_kernel
>> [2] https://sourceforge.net/projects/adodbapi
>>
>>
>>>
>>> What would this list recommend as an implementation strategy?
>>> Any example of creating an external kernel by reusing a subset of
>>> IPython itself?
>>>
>>> Thanks!
>>>
>>> --
>>> Martin
>>>
>>> _______________________________________________
>>> IPython-dev mailing list
>>> IPython-dev at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>>
>>>
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.org
>> http://mail.scipy.org/mailman/listinfo/ipython-dev
>>
>>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20140507/eb8f89df/attachment.html>


More information about the IPython-dev mailing list