From 81be6b54c81082c0dba69983dfee0cf6d869518a Mon Sep 17 00:00:00 2001
From: Florez Ospina Juan Felipe <juan.florez-ospina@psi.ch>
Date: Sat, 22 Feb 2025 17:10:53 +0100
Subject: [PATCH] Change import statements with try except to enable explicit
 import of submodules from import to avoid conflicts with parent project.

---
 instruments/instrument_registry.xlsx       | Bin 0 -> 12089 bytes
 instruments/readers/acsm_tofware_reader.py |   5 ++++-
 instruments/readers/filereader_registry.py |  10 +++++++---
 instruments/readers/flag_reader.py         |   5 ++++-
 pipelines/data_integration.py              |  12 +++++++++---
 pipelines/metadata_revision.py             |   7 ++++++-
 src/git_ops.py                             |   9 +++++++--
 src/hdf5_ops.py                            |  10 +++++++---
 src/hdf5_writer.py                         |  12 ++++++++----
 visualization/hdf5_vis.py                  |   5 ++++-
 10 files changed, 56 insertions(+), 19 deletions(-)
 create mode 100644 instruments/instrument_registry.xlsx

diff --git a/instruments/instrument_registry.xlsx b/instruments/instrument_registry.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..283283bbe21aaa4cb7a490118e9275dc3db07ffc
GIT binary patch
literal 12089
zcmeIYg;yO});@f3CpZLm3GPmUySux)y9bBh?g<uLFAl-oA-KD{+mCejd_9xt?=N_#
zYOShO_tf62?m5r4=WIDiFmN;gBmf!!01yHA*#pLGKmY)62mk;T01c`sXlvtSY~!S>
z<Zfr|s7>c)ZAJJM9F#H#0Q&a+|BnB|Gf=8DVAIKf)T(;$QK(HNEH|XM7#g<;SCe!P
zD#a~MjTE^3p7P0?!bD!V3c7<#-fB#f{E`Q&Y=K-|;M1lR-GjO;sUBQmRGGs$@3UC8
za6n$EN>oiu1Zxf!!s#jGR2`I5!-4^w1@S8}83t=DEc0&1h0MM{N$5vGvepkf#h~|d
zhr9!w>Y$QT&R7N<Zh;E4*b*zMEiLj)%qpZ6>5h2HbP2anRA^OljkOO1;s=A1XgS(d
zX79NK2|k&Zf)rUZ5x_GC!yr{LqFoT0`a#l@EH@1{Fu`^$xOwRviefcoZk7X`b)UEc
zCSoF$b7W_#T^lX7qTw!69WReq`t!@eXa_Znk7RCPUfi&Zy{>I(@-8v`$My)b7-P=e
zTR%fP1|yj-16G=jk*{za%Ru*F&aYJ1G0!j`6A-^lb8tjwEC7;S^)X}1xvt^C{o#)U
z9n9u#B606a77>>-zw#5TC7mPUyu8`j>nj*Q?mx`5PMLw^>J58RZ=-N;W~%F8Y~@H#
z_v`vU^ZY+-lmGVDOXH+vyBOeuPsN@>`fq2JV~_+SUHQeDiIjZ&#FyUHMSUa1S#GDm
zMN+~J1QYdb^?4dxT;_>7=qI|_U@472LE|O?x|RheKiE4%eIR#860t8`??!f+xt_U6
z6_s$ObZL$LP|{G8D><-AA~JO@RE0D~r-}`OnvWZd!JF!@(JQUKVsKXuG9#dPTozne
z&z^G-KbG!0n^drm@G+EA>S!_*z2DKmbiUlH--_t^9$Q(_jMKc*Aj^S^*j?Ai>c^!}
zdOPZ~7p+W2zXCA}${o{~XdhY5wXa4k%lS~IdpA2wS4scbKtKdR(aKxI`fno%(`RbT
z0ec&H3vKV-X2#8m-qqH@(!kc%@>d)yRkpVM#)0(WGx-eF?Fvi&3Bam-?x9Mht!xfl
zjwe<|Oxd8;8%-f^wRnAu5*J$>IY>CvNtmlLb$c2fX5M+40+uIGbaD@-rG}5fD-%ig
zIxO%EPty-6IV$I)HVoMJU^6LZix>Jd-CZYNB5X!m_Tr-h%$ia)U?(1$R*cEM+q?E^
zO#0>Pwe*4}J@KDv$k?qUehzJ#l<u;-!k!XYCc1k<gI7UgAz>VPNMkX8>J$%x7(bO*
za3Rsi%mh_6e3`4)=smz7{8{^T!yTZU$aP6ifZcoE6i`{;uL8tvLwt$>3FOQIFZlM&
zBF+A1l|TkaZ5xR<+D9g*&nx+Qo*98tF*KR+6dx?z^m;PiRXZT6jZ$MV`CudX*Fu)v
z#k9QpIuB)2;9;*b9=>#vSF#3tj<i(&E}{HkDU7r*V2jxqRuV{b%I3Bj%v<)uf@=y!
z;W{EPqoOe`9`rU*Eg(kJZ4bWhTuRd;fFVEvX+@8p_$T!EI$wGA%#t5oB0O3-O}{Sh
zHaIri6+~5MC^JDtvn7p0{_c!a)YD8dVy7-T`sUW@<409PU8j=OqLj_+4~48c69uSV
zd&xG}BDHr7f-iwq_T-Maf=n)-U0>T};m>wnC`T+i(C>WTkLB{P-@$}K#P#2{dcn+m
zihm^E<ZJQ`8zvP8W1iTUW@H(v2BnQ85tZyTM+=TO+W?QZMS^#Iid@%8@Wd0_OSRyi
zh?Y`y<JO2-zh&{wKQ}n~n3mCwBeKZ;zOv=qhHBoaB0N^o*i$q;!`h@cSPJ^!{@H;U
z>(q=+A|}IBZLNCoF>^cw1&d@cF@5}f+`N?cIXpYGypcuLp+*ego%zW$Q|)x50d*P|
zh65o;HMlJ$f-AKgj!FLehjo#adT2U(&UfM}=qE$WcgB2Tx&#D6c8UHk+bkR&{S3VB
z!B({p16VB-SsniI7>azRYDrQH11iJZjKhS|uvf9h;EG)}EF`IOY1<wJI~u5p5v6ld
zN9HILxwMBAt9UQ3_JN3a8`1P+?}ft})f_T-J4>wi!;xGG8?=A?xTT#RcM&uMMJq$g
zPYdD^gcIzWJmSclQ$!OD%WR8F+^6Dm^KE=MW9j%BvXW%YTk6eO@VMM%QnffYd#-K!
z5TUl?{d(2Tx$@}>opXY-m3M;i!K<!?Yr-{)=Ja$@F*C4)0a51m9Y(}jwDE;AkHD+G
zz;*7L1FlhVG*jap)IS-sKVL%f<(m;Vy+u5105r&(G5;C#{@tYi6#zlr^3yk$@PGR#
zRgjkKe#_6`UP2gL(_PS!=bh+@kCYGJK@ZeYEs_&4`&_N!d}z{E`zc8eW*h8&I@0HI
z%Zj)GhI-vWT@;Q2?tyA`$_-&VaybG9ZE#$MA0P^WigI*tSaJ-9nC6Ju$QRd7lZD2y
zb4N+`KIB^gvCviHWH5`xD1$STh2uEh;9CF~s@?K?_^fzT7EoJXPnbq!vi;g9xOfAZ
z9pFwdarquboCm=jFtImHM19vGd;@*a@?;|IK5E(V?E!upw?q=Zn3dNn*oiQtUzEU?
zD$a5HYihId>AI7^;~-W0;swpn)v3wWK;O*j+e-hp|KH+VqRs^e0J@L>0Iat+{__8h
zX2!-&j`V-r7=HzVjQGVb=?qB0r_|SYG^>sbdT}{1GX+-DttB2UE|D-Q3<W?(HD&Kx
zJi-u(Sm1<&U)1sIqiKr%i=7g}0-RyKjib~P63K*v_Ml7rCc&!e3L43wnr5{~J#im>
z=SE0R-@D5|Hcd^qbtEK>^v#7vIylfF%iNS}X9|tE@3r#79VPSNK<0qNKrvQ+v|#g`
z6svQw{$XBtZRNNKfy+#kG8`fimSO%UU{WUU6k0n}VaogoSG45}hyg9mz78a%NVw@(
zx(W`^hVYa`97|LbOcmVK3;6!0ZAQYDh^96tL4OC<rS(IN9tMLC(ejQjW-zHgvgbVJ
zS$OygCQ2@*ic?U}>F0b*wbw=|V7&2{S0PmFIJ5h`*e$A?IAgIEV}97^UUB{ib(Em<
zEqa|{Nf`8#8UYa{P9M^FRB`*tly?YMis6CJreAP1eNm&<Wc*+{icZJselEVOG1CP3
z)pq&g4>ZJko{O_cfAOTLZih;a7q&ZB8?LylS+&^Pr-w}ZYS7&4Jrgn}U}FK*i^g=U
zNk**;tIv5wsrHC`47S?@0?rc~_dEv4+xx|^vf9b{i(<A+XUY%rZr7jY*Opoo6xT(8
zgYaBf?>2o{&c#s*UMKjGA@L$jwVjgn9Z)*mP{^wYq^WWPw>8x2<Ge3ygAv3LZWywt
zrn42&@}^))Tcu%wZEs<Jq391NB_wIf95NsU)hif-)Z;a`Qwnv8V=5#{@N}Smhds&)
zi#X!!gYC4nZZo<XnL8KfZquThU3cPjK7L&6+jy>uHDP@D*!tz+P=AVs&)A#mBabga
z^0}9LD<4~lug#Rxv3t|4xb08LZ!hi6B`)rV3)}Z05JTYVwyA<_YCExbw3-w^rR%Lz
zizjUsisl?L1yvlTdMRL@P43Xi+OFl3*VQ)|2-?`Etxo|MO)cbWmF4zoqEH%PIb_vc
zUvL2@=3*F4slwAyx3|(9)_t1E)IDYIYlTqqoDXPGHP$->YC@|Hko8XB3!2MfS4G?%
zpf!jGF70R?Yn`F|o^AlckC0ogtQXCcvQr3eBU2l<N$3{<^%a4SH5Iq47mt7a?#TzF
zp*aGn=1mwmWsZE2GxQC;VOhx`i{mAL|CfMc=|J%Zb`|+-v@Rvm><?&^yyIWN@`UZ?
z27Pv>W1EiRJ>Ae6p*mDa34{pR+v54LKiS^_uJ4Eav`Ljgid<zw3hlsUl&hg3<f5H+
zj1!9UrkcM&n=UJn*@g*#Q)X|SS#e4~mX3vB$<%!Ku$`6IssDXe8db<MPZ%{Oxu*@1
zYgR}(V~|%i2u!&mojmkLEP|YnJq&+cJz3UBE38;8(X-s40jl*y6ZO;mA!3&En^^f$
zH<PcK@2|x1PcX1V@xyk0f)}n}+5)H`Bj-=GMwEL5^ye}2XMScOcJt8GcX{=8d%X=$
z6{#I|hLKI<?euXC*2|C_qI<BFMLOA_s}Kodh_!b5%n;!gXtP(p9QIVkFF!#3qVO3G
zoU!0wkA^iMypibf!F3z0!)6~)vgF;3FG+N<{*RHc0~4uD=53^x@E1k%hg)+pGqyIS
z|Ks|HM>|p<iNIk;YsY-}2=D0n#JU+xwz4*66~9bsl$n5A2RxEjVP=YJ!9fKj<Gfa&
z%*#&}u;opd`~-&3dKC>rTDwm$K`}B%QnpQ+ZY81Nf)FA4(pp$}o8{wi>2yBXn&Kgv
z0@oRrq}wKU!J82|mqI#~<ZH=6$>Jp|mJo?-3}bT-NAo1PnC;_$Y&`(oHwShvWR;sl
zAkMk?0iy>xIJV)335WkGd1RkhCrLI&A1+?tN(u&bzCsxmN!*=IfPtK+Hxm)b5kjJb
zujls`*>%QP0fb1(Rn_7uvfQf8u4;kMpgn~XJfejQ{VYaq{0+~^TS^oZAG3S1=UvQt
zdW;Dba-nTVbwQh)SEfcOJukHh$BX?Ai%CN0Kn>4)U9cjpzU#whjdtK<A&41EKw<%K
zj_WYdCPp7Y?qMdkS@l$T2xDbjSG%SWuQ)nrHb=>~GME6qX-ycef}e^{t1Beaq|o$m
zHU~{tvujrJSVyk@%2G~9+@T?uE~w7JwQ&L6sB`ZN>I!@ye`_4on0yRE$&rGhlo~Pn
zwnpR$6Cc12RDo1{W1t6Kb{x98A%c=~t$UGd3L3>W7=>J~L5T`MLiw(O&;O->Bpk@V
zl$WTj7p8`zaN}msJs<^qqRyFNC#28f^?W(ozYJ;T^}X7=@6xSqtotBo14X8&crp{M
z`}+KhxuV<ta&~aezCTTI-r3#$bU&2b{(8=JUAeJ@PT%Hzaj_qdx$1qrD;tfsu!xJ7
zaz+$ZbymJ^cuF3j?~nL+4)QUxn?ayE?i2E!OVP<tKd6o-;X$W!<#FdCu39fd3s1Y{
zd=tTWBk7ma3Xv*^CBsM;ELX0z;<TZ&GrKIQ<@n3Su;#GwSj!VSiBiDrE_06RhQfSQ
zrST3zI7(OnN5`aMdzD}$UP-fH==Llx(}q-K*wqPAMPTR@nV^FnnF3v{ph4(Rr!nE@
zg^Q6D>x!--%NbrTBNF|$?_lr={l48hWJV`{q`)b}$con%VYJ2M;M*ZeUQSOc<PlDF
z`Cv%%S#pOf<Qkj59Tt8Q@eyCUn=MY#VQ;cA0*g78*JUnBj>mC9Dz3lVha8beIMy{#
z9Mda$o?D1l5Ld36aj6~#*!gTi+yJp<k(NLa`d~bYSJe`k+Dd@w6i^vqyubsTs~ZVp
z=H|Nmp19DArRWsdi{)9*=cqQW&pfo-IH5|cmxy;HQA*uEs(hWH2VxvoZ26PQAsL$5
z`1U-(y3*9vKEMrwG7Nb&?;cxdSwfp*J44AM^9!Q%8Y}2F!B)f+)hxswLtJya_+b>Z
zx@ocp#)+4<9kq{bO`o3b3h!|n_<Jvl_k=g~HzP>$mH|Ba!O*bqn9Bj7=r3AAnI#%l
zCkg3u>1^-7&_q;PQRBCwdd9-4DV|&h@m)b2At9nQ&mR-G(kYF1h5Tz^ZV6~CJ<PI}
ze%Qs8I{tK5cGQ`<dwnc6nbP5_Fdnr`z0~NvzPaYNNNw@*A0$7$*vpb_soG{HN;nyU
z=xG*k^#*U5h=gJ&T9j|1XtV$sCB92zO`%yzAfer~C;v#nv=BWGuOVo>{39b=>RQQ-
znLNiZFT|M|J$t<DQRdPuI%-PBw6U})?K>Pq+`Su>R+M0}M8Td0@99d}^r6q5lB;?$
zB<1`RmcEn;j=VFLye^^unvUsbo%vL?2`9A)xr5|f4H5foSO#l!bhquBHR0Cn5dH=J
zU=!SgT|@N3+SHcFa@f&S5s!H0@2Mbi2K3B?(N2o<P4?~<&gR9f!g;hLkxn&H43i82
znCmp$BT0|yy-leh(@e6B28}ol%m-2LkS&FYDH{CA$rZ=Dxoz(2ETHQ@kg!<ZqwZmK
z&ALH0l1yu2epPI6c`u%2bLXm`^d7T1L@0qvD_&+0k})>LGohPSm)18Cfn@^st2MQ%
z9}=I&X4)ref^>T%C+>bXrVbMG;AJfNEExj-b;WYKm*SpPyi(G6+|E{lsOVNOu3dKI
zJT*0XYN#(^ei4BV2P2IB>6PfQ+xM;;dV^-OE#Z@#313LKBII1YrWj>)vWArpPsmae
zV9Cy>b>tq>@uU=k-L%RsvlGk=IzpQ7m=^SWIGA>d-w)y5LMXWqoUZ<mZ}Tie>rie<
z*NBKR<1W#%KJ6U=*1<rVJ<KGn-XhZ#UQ;8#Sj$WU4KF**c4zG@!oho9PVuonb6CUq
z6V0JS=H0{KQp=19l&e3Fhn+7+p~9Y=fNe4f<-;USe*&9c#8SL^6!dBfCk5@R50w?v
zvcw#10=9lTl2V{TE;6tr$OTJf=($qs!1=?wHN9AQEyStA2M{g&abXwpioRL8lg(|~
zks#!V2r1oR%)0f5jW(@$FZ)wu!pz6I!5npK7mFa1I$lcfR+(?(M?blObjmbO5j>VF
zCvbVrT1gNP7iMha4%uPr9O^ZpEy#?0zNr^MB}#A?)#E(pJQGqI>TOeb8?^y$Et-L^
z|Hvx2=lWUYy%nJfkN^O}pW)Zh$=%A>@mDF4r)+Jx$bj_1H|LA=a5Ct!Ndp5Mnw*x~
z>&?MCDlr%eE7FN1H687Jd6aR{!Q}!@_=L&qPC1S(J1R`3%fQwe_Bxa?;c5qAF)AN~
zmq-V<^PzXZlN=Tm7mbG-yN%Jb4Xn0HmMy~FG#C#P`N^?$Y3`;$5CNB%#E%ngQUd7f
z*y6b6(h#bm^lPhMV$ettyQpFlsCfu!jP5@Y#-;57VI*jA4(`(6PHuQHM5?uxY!ld=
zX#FfOrOm>c%q$G1Qw`%*9*Lv3@+VYgPhjoB$}M%Olbv>rWX#+}K(}UzgkfMdBNn(X
zCGubxt@>KMIAkr$GKBMO62Tb#i)=eK)b~$|&$3$_LkATf!H$anvY*AXk~GW$amAoA
z4|&5S*o2l8I%b0(E7K(CZUVV)zUUkaW^9dno|0zu=~vl>!r2?3dxEa@E5?j5euJIM
z34E@#C2S24$I*Le@D;L!Ulz4z;`;RP*}ds!LBIgt?dIN~VuuBk5W=d}^MMmsyX7%%
zQFbAEAx>G*Sw1`=1=t`}DpIu1L;DQooOYBFHQfG5349mtg)~Q+Tz?1dS#VSz!8e3C
z+hAdB@342FBny~%viq^K++Eqv&gcxBP|&qDjdohk{tS95%Z(7Zsz2^aX4!WWAh_hK
z(tw@3nS3U9R=x)4w#HuJ51p<H*GTXA7T@W7H#=~w9OYHRqF0l*bPM)fq5U|l>MD#o
z+__DYqE$nhLNTNqBW06ZqRjYi^Xz7J55%qO`gFB~Cn%z>5)>cCk@7}vV{<-veZnMX
zb&PTx-!Z#y>dX)&h~FMhq{B$Uw8P3H6I>Xjr)1yAJsE8v)bnD{l$cbWg@+@{tJ+SB
zsbfaI<ePvYeJJ>1I~xBNiI~f5{ui8oDw2a?L-)$xfFAL-;fMAYoXzwdjExkX9L#M@
z|3Gy@g05{k16t22#Wgo!JG)8Q-V1b*T$)uPFi%3k*|xujy#oc9T4BDnI9n<?lUfQJ
z&3F4UT;)x7?o3^>1_KXUhH_z#5(iMqZIo;Nykxtxn=S5_L^b-MjF1SAuu*1=uRD~@
zuC()W!q1<&R6Sq82kgFD%9U5oh%g-{nTS@g{oqIfsHj{K!&ej;3B=}%M^(dwwZ-Jf
zZ@7X@VXj}GiW{PtTPb!JT1=(fl(dHnSYpErjym^r(4>I3n^J#Bsl#~7;0${bnZb9y
z%uiOVwAuKQz#iI}G#Ps10!zP_Mpv{Mw>g;tsu;oIS8=EsDz)2O`0DtxA9F2L9yfZm
zb=%Z{V9ysHTE+^8;M)DF@sC;z!Kl*9eRtBgpNKR^o@lMOIZXUzeP%s?_&hV4E6Er&
zy7OM+Y9c-arh&FeDz>i#ka^zyS_%7f;hmJe>e2@%XnAFfn9+~+NYrvWqf=S$Iij{g
zgkbF0mMfj4R8H?7q1+yYHpMUp?SBweZ&H377u{bpcX7OkecZ9fe}Nz2*kVv1`QG&-
zs_Vi23i`mOV4wMI_5Pa#;kIUy?06dycw1wVKiBscWA+yb@+XD%Hx=>+f%ZANBfOIV
zP52h<MbOPN{$~)ppdveQgYqtz!NUUNVsgwa+Oua3uJMoUZM(5;w)97y?>Huiu{6_7
zpg~)Pm}Zq{o(r_?{8bzWOK32(JTdxHbZu#1GBOfjeKBh2a8*I_q|aDgKHc+GUtqq+
z@a@cthq*Hh+(+Pymlj)CU+6;B(#zDH(rkIF26FK#sJ|S2@h0H0`PM!vb}{x@oHIs`
z@2ePRzwq&ep8@}&>rIxWHzIg}_3+T;4a`5yK%q~Czu#NEw1)x!Q2aRqc5l#jGImfj
zc5?cKar)n$8R-nnZH|&WS*GuC`r0Ai$MQoPYdMJb==B+k4OsVDTaFwhyzjN9Otv3l
zoxnzB4V|DIK4K6lVf|bw_}Q8<*T`a!tTrWFIih3dLDBc+<tekq_i6N;XO}1Y_MRvE
z@@3O`^pZ20eGP#WK=cV538LGJ+tAe}qn(O)4Fntnpa-c2a^pv)*Ay@E!xaE(2P$()
zc_$+)1v-umW`s_(_%SR3Wb#uLJgyXYH-Ku5M+_cttTaAa;!Dx(V%6Swno#l3-ZkAl
zp?Je1FEd%Qu`#Oy2M$1ybR0d0Eub-CkC4HB;;4|^zD~DHvkO8uLi>;-Bsy|8CDF5C
z$~X-@y2puA@y<FfuDvcX4#9h)hq^eZL#B>#s<IS{14{G|t8<wq_{4mkL}|C#y(ja*
z6hqfB6ziFgKm$0J8_h-_wQk^_B7xP#H7RHwgu8-QkvmZ|-7Hor&Px`tnP%oZ)?7(x
zb8kWmkzma==)6c`aUuK@7n-3vfAA~3XU38y^D!Bs>kT@5LREZp)<yH4TE6fZ^2XGN
zldz~ozo=Kat>hf#R!HiGn+vCW=A09_6vg`|P(wl#3e|T}VjmWA!ta%I`g`dGIqb<O
zhse%Mno*KnRA3qtzCiKoV-6i=j!|?wBSC^=v4CCE0drHYu^~PlE2Vxuhv%J0q<$U7
z#pTF(t^`3II{@}q8oqW}ck>I9Chb3#7c2x!@}<=%SmVVTboka~lj0-mI%ez|Ds8fE
zczL+LQie_|V<5tHPPFo;@G>9R2N9I7U(w`4OyWb3_Hd4K{<MHI?F~NOw2R$C&t*6y
z@UGTM5Z;$>2iCD1cq-S_B$PeGc7l%}co=rEyq;hUG)D=)B7D3uqH>(>z>@WP=%OT<
zDyADh6}Lk+{YH<OMXqF=cc^2YvKkrf^B$aXf4}U6+2%yLBlinJZt%7_W~CSj=4-v@
z5lrFQl8{KhZMk}2Re8v@m9EJig`(MF@8y;xhxtbh?v-FY)0jv3T9ZsaO+_gLtMlRT
z=uBL#@B#(U&H_0T(+gu<^~{o)K;`1RMB;B}i#t6O+xYki4OvbJXKAT96vu?KD{aU%
z<Z0iV;U21y!4KaRRqCWKwDZx_4yZLhug8G8-$NpXj@)x9%Wqm8T2?UI&`ro#TRG{2
zmRrb^5-bgttw=JUhqmN9cscbzOq7nQJ}gHHZKu5CY4DZ#<UjD<bbkX6_D-2_Xb)XN
zUXZHW(Y9MuljEVISqFBbCr!ongJFz$Wuj(h;O+DPa@(2d*(q7QZIWEzALATUh#Wj3
zEc%j>UN>5vWRT=IL+T^+9(tBBtr<Im<GxLz4>46Fr9SY(H_->4?BdWFKL6lfh<QxQ
z)i_aR$7R8<C{NRdv==*^I|tw?s?zZ{yu7)gns^hXoBl;CuDeS26WfBq;~b2O@_Z&u
zQM+Sn_YD%2*xQ<3&akbVSZv7li=5eHRMg@HoA*cKgE4%q+)r#U$Rxz0R8Q-NbPI((
z_c4X3QDD%=p-}XdlV+~IbG7dH0+%TsU5a=;*(A>k?(6CI@`WB=4aQ94fJK-?)G222
z9$cbL)j(Oy4Uun{_$wb9GTPX9Uq;(kG*RW}Nnm0N`9}9Qc`-E-;gi!k2>VKW*B2tS
zFEeOT2Tw{Y5RczCC`#~{@Hbx!zgsyM57yE&=DMT~V`pk+v^rC;H%yD}hJfUPt0SmD
zriv#<F0>4z-yWg*F&?V>;`g1sCB2u$+0tTS)<!yZrHF7xS_==V?>dKYR!NM4bflqY
zQiZuG&jq+NbT*Q>7Rh482dl`Q`SoWCtyE@#RfVO^wd3$>9f8BFTk;P&e{Ilaa2J@T
zSCqS^MfT%+V6!2YV4u_$yRGb3W2-U&x^poiGrL^*b+zD6yz}DhyK|qsYZqNK?MF$l
z#gE6ni<Y1##g1y;ZNnXMC0nxke5PcNO)4?D+&LV|mh|yuPHrL7Ne*pS)gojx;>fFZ
zrN3X2C-6?E3^e+IIqiN{G1v8YSIpSrRSYXU>ir1f!G?9gC(DNY9a#P3W0|?SRMXh~
z`WY>2yz0Ag36*LY?pMjo40QY-WcIgB2t2B<f%^ehL6nc8O!GK_F8eR2;}{k`+{_mc
zS+ij3W<Ri#mQmn6L;B67Oy42Ui9676DImH{8t2ykAU$9DvYU8~juuCvexL(2++qDu
z?fbf+qFsU_@<IhQn?QQdIO5uuul^c4)SQvtN~n3qTsb&W)Y&PPC`!-Mz*qr%6RoBR
z6=XAQp#WXn7NZR-5V$9zW0RY<ChE2}-VC%dQ*5U?iQ0vU^AMigwtVmGQ%wR75|9t)
zZbym3+bU-x{!8g^wDBi8{xwU^bUwAf94e9~CR?=r8=tlsJ9<bTXC`Iribmb_F4l%h
zovn6O`&u$f<hgGzyaqoTUVb)cImk;Np6`!*rD&|={MbxQT|Sd_Vk@Rma3~hd|4_AZ
zl8{k(ZezqaW?ilvB!<P_KWI)*#UDAOsDYydn}6EII+di~L_v3NQ!aQCl~FR6x%w9p
zD!^a<AYOlOc)`gWHdcB|VFKSOFXXrFKO<X1IR{%iM|wkB2jgFr*IV1m|91V}vYW^_
zdC4vYw4hapSHS_#bl{>Ej5X8;Z={d_^q%^dCF>401o0g<-&XVHnL!~hsnJH=(MD43
zqr<^RfVB__Ga3ZZ#i#0ExW>_ONA)|Hi^%-Asp8m}TrjNKetLR^0%%JXo&ynoAZX;S
z*d$T`Q*D(BawNjyCu!+5+{v&Kk=f~{Z#ss;^W55CU%Jj<XZ5HGlQuB+O8i5=h>b$#
zEgTes*#+kYVCS)Nz!E<l*X3AV9)2o}%&4n`+UCOB{4$?$y|K1}!-(bDtX-Mz#HjTG
z-A;F!-BjEbb6k#<!?PX9fH2L*MgL*;aLSWGLhNAK`ui1Z(dPiPXsu%rYKx;uT3<3h
zU4j>E9`<I;=78s#AH0~UR}iv;Lt8sQ8ae!s^Wk@fAEgG(BnnWOBv%$_KJF~SJ_~zG
zUA;44q3`-UyhDnOD(lD7W4cQI`UbZD&Zx5;*PHU*p!o3(s7U_~MSVNF{~_@Wf`1(u
z@vFbMkiJ!@M}o)|9L{A*lKu~5$9sB){te5Q(tLeitBss6<Buw`t>U}qZ))owdv5uf
zxW7LN9#-R%%&);!X>Ab;+6ovymm|?{@21NVlR)bF!{Ni(3!&UTJagBD<#zRBP)VX>
z!A>x^Qd14E%z@G>EEG!N8Ng*MHN@wZmv!{%-Ozd@)w}ypod4LPF12Z@$w@&|<$bL%
zLm&PjTCrUv`9mYozatSSoJs9&KP@=RY3Vn0c+GBUkR#`K<HWF+kU^pRb>-{4=ujWO
z;Yo2BNXX%|-0T{3Vhi{*b0@<v!kn1Kb<4qoUFiFHUGt23;zyXzU?xN!p%^?AOSx7K
zB8$%5@~_b6QP@J{WQrYVxFhbzOF)8a2O6<n=XF8`|GaKi1M_(z?+SLLdxGvE&hvhT
za~Y0Bf7=7jU7YL;uIJoVL~E#*BKAtxdA4QgNUR$AthtM<M4s&#)x*`jeCjR|hOA&O
zJf%fQVij}xU9t?Y1I`ilCVr!3zg2zb;(Kn!jPAoLf~yOgSl|9BpeZ96eR9R0yIa4U
zEC?v=TiyT9?Z5w8$$#Ddp&9sh1^?NY_%Fd<_rf=G`L{O3-vxhf*7{p?_>E}$t##{n
z;s0z7`CAkKNPXMW{r_(j`CZTN9Rq)B8ixP>KH|Un2Y%P``v%?LTD~Fw<96Ne3Vx>;
z|5iZ!{tpFz6OO-&{!ZuoEqeY&|GdqF<L~6o?;3t54F1+If%p3y{3CtvyTae=@4ppJ
z;s2rVx9a;JtMT8J{%1b$w@LsYg&Y9*uk7G=@&EMU|1M5K^>5;Td2~5Rh&K!Z0Pt@o
M`5TO%see8FKeiicg8%>k

literal 0
HcmV?d00001

diff --git a/instruments/readers/acsm_tofware_reader.py b/instruments/readers/acsm_tofware_reader.py
index a519c18..c45039c 100644
--- a/instruments/readers/acsm_tofware_reader.py
+++ b/instruments/readers/acsm_tofware_reader.py
@@ -6,7 +6,10 @@ import yaml
 
 #root_dir = os.path.abspath(os.curdir)
 #sys.path.append(root_dir)
-import utils.g5505_utils as utils
+try:
+    from dima.utils import g5505_utils as utils
+except ModuleNotFoundError:
+    import utils.g5505_utils as utils
 
 
 
diff --git a/instruments/readers/filereader_registry.py b/instruments/readers/filereader_registry.py
index fc4010d..ca745a2 100644
--- a/instruments/readers/filereader_registry.py
+++ b/instruments/readers/filereader_registry.py
@@ -3,9 +3,13 @@ import sys
 #root_dir = os.path.abspath(os.curdir)
 #sys.path.append(root_dir)
 
-from instruments.readers.xps_ibw_reader import read_xps_ibw_file_as_dict
-from instruments.readers.g5505_text_reader import read_txt_files_as_dict
-
+try:
+    from dima.instruments.readers.xps_ibw_reader import read_xps_ibw_file_as_dict
+    from dima.instruments.readers.g5505_text_reader import read_txt_files_as_dict
+    
+except ModuleNotFoundError:
+    from instruments.readers.xps_ibw_reader import read_xps_ibw_file_as_dict
+    from instruments.readers.g5505_text_reader import read_txt_files_as_dict
 
 file_extensions = ['.ibw','.txt','.dat','.h5','.TXT','.csv','.pkl','.json','.yaml']
 
diff --git a/instruments/readers/flag_reader.py b/instruments/readers/flag_reader.py
index 8534bb4..46cc249 100644
--- a/instruments/readers/flag_reader.py
+++ b/instruments/readers/flag_reader.py
@@ -8,7 +8,10 @@ import json
 #from instruments.readers import set_dima_path as configpath
 #configpath.set_dima_path()
 
-from utils import g5505_utils
+try:
+    from dima.utils import g5505_utils as utils
+except ModuleNotFoundError:
+    import utils.g5505_utils as utils
 
 
 def read_jsonflag_as_dict(path_to_file):
diff --git a/pipelines/data_integration.py b/pipelines/data_integration.py
index cd453c0..5bb5bb7 100644
--- a/pipelines/data_integration.py
+++ b/pipelines/data_integration.py
@@ -22,9 +22,15 @@ from datetime import datetime
 from itertools import chain 
 
 # Import DIMA modules
-import src.hdf5_writer as hdf5_lib
-import utils.g5505_utils as utils
-from instruments.readers import filereader_registry
+try:
+    from dima.src import hdf5_writer as hdf5_lib
+    from dima.utils import g5505_utils as utils
+    from dima.instruments.readers import filereader_registry
+except ModuleNotFoundError:
+    print(':)')
+    import src.hdf5_writer as hdf5_lib
+    import utils.g5505_utils as utils
+    from instruments.readers import filereader_registry
 
 allowed_file_extensions = filereader_registry.file_extensions
 
diff --git a/pipelines/metadata_revision.py b/pipelines/metadata_revision.py
index 0089dc6..199c886 100644
--- a/pipelines/metadata_revision.py
+++ b/pipelines/metadata_revision.py
@@ -15,7 +15,12 @@ if dimaPath not in sys.path:  # Avoid duplicate entries
 
 import h5py
 import yaml
-import src.hdf5_ops as hdf5_ops
+
+try:
+    from dima.src import hdf5_ops as hdf5_ops
+except ModuleNotFoundError:
+    import src.hdf5_ops as hdf5_ops
+
 
 
 def load_yaml(review_yaml_file):
diff --git a/src/git_ops.py b/src/git_ops.py
index b7395dc..1c55231 100644
--- a/src/git_ops.py
+++ b/src/git_ops.py
@@ -1,7 +1,12 @@
 import subprocess
 import os
-import utils.g5505_utils as utils
-from pipelines.metadata_revision import update_hdf5_file_with_review
+
+try: 
+    from dima.utils import g5505_utils as utils
+    from dima.pipelines.metadata_revision import update_hdf5_file_with_review
+except ModuleNotFoundError:
+    import utils.g5505_utils as utils
+    from pipelines.metadata_revision import update_hdf5_file_with_review
 
 def perform_git_operations(hdf5_upload):
     status_command = ['git', 'status']
diff --git a/src/hdf5_ops.py b/src/hdf5_ops.py
index ba71f73..9b8575d 100644
--- a/src/hdf5_ops.py
+++ b/src/hdf5_ops.py
@@ -17,9 +17,6 @@ if dimaPath not in sys.path:  # Avoid duplicate entries
 import h5py
 import pandas as pd
 import numpy as np
-
-import utils.g5505_utils as utils
-import src.hdf5_writer as hdf5_lib
 import logging
 import datetime
 
@@ -29,6 +26,13 @@ import yaml
 import json
 import copy
 
+try:
+    from dima.utils import g5505_utils as utils
+    from dima.src import hdf5_writer as hdf5_lib
+except ModuleNotFoundError:
+    import utils.g5505_utils as utils
+    import src.hdf5_writer as hdf5_lib
+
 class HDF5DataOpsManager():
 
     """
diff --git a/src/hdf5_writer.py b/src/hdf5_writer.py
index 3006b7e..c8f1475 100644
--- a/src/hdf5_writer.py
+++ b/src/hdf5_writer.py
@@ -1,15 +1,19 @@
 import sys
 import os
-root_dir = os.path.abspath(os.curdir)
-sys.path.append(root_dir)
+#root_dir = os.path.abspath(os.curdir)
+#sys.path.append(root_dir)
 
 import pandas as pd
 import numpy as np
 import h5py
 import logging
 
-import utils.g5505_utils as utils
-import instruments.readers.filereader_registry as filereader_registry
+try:
+    from dima.utils import g5505_utils as utils
+    from dima.instruments.readers import filereader_registry as filereader_registry
+except ModuleNotFoundError:
+    import utils.g5505_utils as utils
+    import instruments.readers.filereader_registry as filereader_registry
 
  
    
diff --git a/visualization/hdf5_vis.py b/visualization/hdf5_vis.py
index c1d8a22..1fc4948 100644
--- a/visualization/hdf5_vis.py
+++ b/visualization/hdf5_vis.py
@@ -13,8 +13,11 @@ from plotly.subplots import make_subplots
 import plotly.graph_objects as go
 import plotly.express as px
 #import plotly.io as pio
-from src.hdf5_ops import get_parent_child_relationships
 
+try:
+    from dima.src.hdf5_ops import get_parent_child_relationships
+except ModuleNotFoundError:
+    from src.hdf5_ops import get_parent_child_relationships
  
 
 def display_group_hierarchy_on_a_treemap(filename: str):
-- 
GitLab