Discussion:
[mdb-dev] Python bindings / Hello from new Gentoo maintainer
Chris Kerr
2013-05-23 22:46:01 UTC
Permalink
Hi there,

I'm a PhD student studying battery chemistry at the University of
Cambridge, and I use mdbtools to extract data from the JetDB-based log
format produced by Arbin Instruments battery test stations. (As is often
the case with research hardware, the closed-source vendor-provided tool
is buggy and runs only on Windows.)

Since there is currently no maintainer for mdbtools on the Gentoo Linux
distribution, I wrote my own ebuild for mdbtools-0.7 and have volunteered
to be the mdbtools maintainer from now on. Hopefully mdbtools-0.7 should
be in the main Portage tree in the next few days. I've signed up to this
mailing list and am following mdbtools on GitHub - please let me know if
there is any other source of info I should be following.

I do almost all my data processing in Python; currently to extract the data I
run mdb-export via subprocess.Popen and pass the INSERT statements
directly into a temporary sqlite3 database, then query the sqlite3
database for the data I need. Recently I've been having a quick look at the
source code and I think I could knock together a Python binding that would
support the very limited subset of operations I need relatively quickly.
Searching online for Python MDB bindings seems only to give bindings for
the Windows Jet DB API, but I thought I'd ask if anyone knows of anything
I've missed, or has any suggestions on where to start. (I've only ever used
F2Py to make bindings to Fortran code before, but I don't think it's the
right solution for libmdb because of the heavy use of pointers.)

The format of the databases I'm using is basically a dozen or so relatively
complicated tables with only a few rows each holding metadata and so on,
plus one table holding the actual data (all columns are integers or floats).
What I want to be able to do is read out the metadata tables into
something similar to the sqlite3.Row object, and read the data table into a
NumPy array.

Thanks for all the work you've done developing this code; it's been very
helpful!

Chris
Nirgal
2013-06-27 16:51:51 UTC
Permalink
Post by Chris Kerr
Since there is currently no maintainer for mdbtools on the Gentoo Linux
distribution, I wrote my own ebuild for mdbtools-0.7 and have volunteered
to be the mdbtools maintainer from now on. Hopefully mdbtools-0.7 should
be in the main Portage tree in the next few days. I've signed up to this
mailing list and am following mdbtools on GitHub - please let me know if
there is any other source of info I should be following.
Hi Chris

I'm using Debian, so I take extra care of that distro.

You might want to include a few hotfixes patches:
http://patch-tracker.debian.org/patch/series/view/mdbtools/0.7-2/gmdb2_double_free
http://patch-tracker.debian.org/patch/series/view/mdbtools/0.7-2/binaries_to_string

Additionnaly, I wrote a few bash-completion snipet a packager might like:
http://sources.debian.net/src/mdbtools/0.7-2/debian/mdbtools.bash-completion
http://sources.debian.net/src/mdbtools/0.7-2/debian/mdbtools-gmdb.bash-completion
I plan to merge these in the main github repo. Any idea where it should go?
In a dist/ directory maybe?


Cheers!

Loading...