From 452b322a1b362b3901e85f70fa9162e7ae444a4a Mon Sep 17 00:00:00 2001 From: Arnaldo Russo Date: Wed, 19 Oct 2016 21:38:42 -0200 Subject: [PATCH 1/2] Plugin to load HDF5 --- rows/plugins/hdf.py | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 rows/plugins/hdf.py diff --git a/rows/plugins/hdf.py b/rows/plugins/hdf.py new file mode 100644 index 00000000..7fbdbe0b --- /dev/null +++ b/rows/plugins/hdf.py @@ -0,0 +1,48 @@ +# coding: utf-8 + +# Copyright 2014-2015 Álvaro Justen +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from __future__ import unicode_literals +from decimal import Decimal +from rows.plugins.utils import create_table, get_filename_and_fobj +from tables import open_file +from re import findall + +def import_hdf5(filename, *args, **kwargs): + + """Import HDF5 file + Parameters + ---------- + filename : path (string) + """ + ff = open_file(filename, 'r') + gg = [] + for group in ff.walk_groups(): + gg.append(group) + + gg = str(gg) + gr = findall('(?<=children := \[\')(.*?)(?=\'\s)', gg) + + data = getattr(getattr(ff.root, gr[0]), gr[1]) + header = data.attrs.values_block_0_kind + table_rows = [] + for val in data.read(): + table_rows.append(val[1]) + + ff.close() + + return create_table(header, table_rows, *args, **kwargs) + From cbe7ba577cb2cb08fa1a7d225d4e8c04bb480dfa Mon Sep 17 00:00:00 2001 From: Arnaldo Russo Date: Wed, 19 Oct 2016 21:39:33 -0200 Subject: [PATCH 2/2] simple HDF5 sample --- tests/data/data.h5 | Bin 0 -> 84041 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/data.h5 diff --git a/tests/data/data.h5 b/tests/data/data.h5 new file mode 100644 index 0000000000000000000000000000000000000000..ddf22ae121d414dc0726ceb3031e19e5df74deb7 GIT binary patch literal 84041 zcmeI2O^_4E6~}wD>>`9P!Z<0gU9qa1*h`!&(wYz7vVzrGsuH`DB(K*eF}s>&RcJ>l zNsF;Bfy#y4IOZ0PuADgLNaf^Pe6&yD7#~taRSrIq_qzMdjAkW)0AmOKLoq%5@m_cT z`t_SPt^IRpdF4pz&6MIRnN$ZaW-bQ>)Z%oBt|d9vn5NxbB24 z&shE08B_4Ume;GrqN0|fUs7AG?$4R0q!b{1r3jRYh08qQ4LfVG(yy(Z35=#YaQRv6 zu_P5wnI5zD8n^4T%4&^l-@I$;<$8q-SRJQ#GvBd(TR;rl&9+CGMynx@ zx=QTYShKW#d|F#wTXx8T1G_t5WJKS*&6i^1c)aFUtA+TvIIo|dpG#{$*LD4-+iwiM z=(05#zk8TcS@-RpyX!?vEUk>cbkxzP{B^I_Z*_bl&n6=BxrO}Mg~h0UJ*?%l(T3e> zzf3MakaN3Tk48pD-q1rxs}j|6y^(MEP47lytJCi5Vs)I7H+8+q&$qj|)O;mZNv-Rq zsct?s=q{$*1ydjDGaRnF?LDs_DjcbA-L~3ncebuIa;!7d$8Q}TpW)(n{Dv8$d&8qK zvc7k9J-1TIjxS$H(NjLPUP$ra)-R;GAEw+v_lzhGc^}c-_`S@d+}rg@tI-?ft@Y9z zPout`#AcZ{iMF~d-gG*+(CLysT$OG?T)lxp$E}F-=y^qm!7hV zseXlVH;M2%+k1*Aub0`5Qr)wu{<=?=-cNPU@rs;Jt-Ad_adc=TTBlVkad+-DJq&fv z#!WL6QE`*^D9pLEot)mg3jIlP(oM8ZaMRDP0sh;X<0(p#q7*nm>s zvQxno5a2kIFUK*QcyI9~-)rG|O^#m|7tU+BCx5@>bbCh`f3i|8R+byN#%keGkt^c+ zTW;RO2?K~>aenR?PDOW1o?>K+Kb$pGM&o`c2UgjNre_W&K8T~x( zgY+olZ}|i7s@J1_OS*xh-q8DIcwUV_0sE^rBJ$b~vsb5A1bcOP^MvylsgK>D?vM4c zFOc!9k}u*bl>f!3@igT{zJDDD=gw$(;V`HD^=ftP(;AhJ<1co}-z^*;ihWA@@DYz{ z|CKp8T*l6cufRc>Ebbrx0w4eaAOHd{F#(BVB$e+Rdn{@Wd1?Okm`Q(YG7hQdZ$Z8| zM&nD`$@j$}Q;a(ZfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=9z)wuTQM1aSF`TgD$f%5dy8jlJD)qI#D^;%+ zi;7x4ie0u^mEJM!lTv{6l_F3o7B2IIH|(s96)Cl2?MPs>{HAw{iDgxGmr7Ww$%M?7-b@d)d=X zci^7Z&nm6v^$11Z#Y&-8v-;*D`s(G?LzqEyAKm%_hIJOru~v>uKu!U@*mkel9!u+?8AF@nmabVdDhs0`1jm7lfP{1 z$J#5^58G?rN(?8p)wN}ZELi;i?YE77b64t~&42SNDH)bW&Jd9Gx$|*+easFP{}c6R zza&wis{NVvVcOG@Uu*B}`cZ#m{9)98%|_*o`+8#kwYXsHA+5xZB}q1^R?3w+xjdC2 zgD^I+q$eojbR6@PRx+=nTCTs>^?IA_&epYl>q}2*?>vY(9Cg^(jxBKHJ(rLcR*{{rgnu%BvDb~?nD&3S&1Z=^ zmn3G4`olC&&O7!!meBQ%>hJ7rZ?`?WMr_9{=cuN)-F63_mSL4i8==l5W@HGuL&B(+ z_jRj*3s3dtHbQ%h**n#z=)V@GRKKnZ)oS50%Ft!}*sQf?rSAVuTAKR!ecl#iKA7B& z?U1j`dz0I3m}aVbW^%hF+wS4%$?a^j7oN<}&gGHC?Qh!mOne;!zel={(0`eItME6UoKxV;~Bl5Nr*0otb=uaWff1mAA)(4j%YvA?g#50Xe?9j z2QB)%_QUk+CH^cHcN32jnlIhxTHV{-q+q+Voz)&Q+wx7&{jBSD_c7~c-A@odOFmdP z@+Q&u#kA{YWT*0D{Ep*cXwj!#w~K{~6#9jJZ2EPR_xJvFOVi+FpH*G|suymvXWnPG zgY{zTpnhyzpfhw6XaC~YCm~&{te6CiXaD-l>!C_q7Q|Il8vQPmwRxWF67_$Vyk^Vw zvprs(=i&bzw~zj)XC1DOOw~VtnJ6c;J@({*+X{J0E;#1n%%=rR&Ft*SLq7L?Ud4F=dpqFhiYW@6}LagRy&_(`{sl6 zy8a-|ejv`vQRbXq1RQ&=5yrjpMPgDJ|3iCjD(f<>oj=L7_!cW>wo6358yU(76_kGkp zGSrFmAJ~T-;JA1>ey-K;E`1_*<^Iia4-Y?op#JrpI?D16|Iqr6yFaY$ T9zA$$J|=hThg%LE@Hqbil%3O7 literal 0 HcmV?d00001