From dc770d33d2ff5df44b1dbc45debb8bc3462905e3 Mon Sep 17 00:00:00 2001 From: Ben Jeffery Date: Wed, 21 Apr 2021 00:45:22 +0100 Subject: [PATCH] Use dict representation for compress and decompress --- CHANGELOG.rst | 6 + requirements/CI-tests-conda.txt | 1 + requirements/development.txt | 1 + tests/files/1.0.0.trees | Bin 0 -> 10300 bytes tests/files/1.0.0.trees.tsz | Bin 0 -> 28043 bytes tests/test_cli.py | 14 +- tests/test_compression.py | 41 +++++- tests/test_legacy.py | 37 +++++ tszip/compression.py | 231 ++++++++++++-------------------- 9 files changed, 164 insertions(+), 167 deletions(-) create mode 100644 tests/files/1.0.0.trees create mode 100644 tests/files/1.0.0.trees.tsz create mode 100644 tests/test_legacy.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 824eccd..4e805dd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +-------------------- +[0.1.1] - 2021-04-XX +-------------------- + +- Add support for new columns in tskit. (benjeffery, #39, #42). + -------------------- [0.1.0] - 2019-05-10 -------------------- diff --git a/requirements/CI-tests-conda.txt b/requirements/CI-tests-conda.txt index 1c21b0b..f5ee0bc 100644 --- a/requirements/CI-tests-conda.txt +++ b/requirements/CI-tests-conda.txt @@ -1,4 +1,5 @@ humanize==3.4.1 +h5py==3.2.1 msprime==1.0.0 pytest==6.2.3 pytest-cov==2.11.1 diff --git a/requirements/development.txt b/requirements/development.txt index a8609e2..f801ebe 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -1,6 +1,7 @@ codecov coverage flake8 +h5py pre-commit pytest pytest-cov diff --git a/tests/files/1.0.0.trees b/tests/files/1.0.0.trees new file mode 100644 index 0000000000000000000000000000000000000000..c30951a9c7013613b138f325e0b22e2b858950f0 GIT binary patch literal 10300 zcmds6eT-aH6`xg$ZIyOa&~~jbjHDXF&c2!b={w3=1(~)1<|7-aY4i+@04q zOH_=LoW1X!dw%zP+;czo8wWmd+tph~whk2vg^vN<{9*XBf#2Im_U`TS;~i9Adyo8h zH`TL>E!1!?;kQzK?i%@#hex~d_g%tolhwkLgr{m|v58t9B>c4sp4`a9v;JiTU*wK5 zk+Ol~_glihljIqn=Re2q8Nze?JET7k&*uGA!LJdX`(rt^eE@~epe4hP`-#ILSBZNOXAfD|XC;Ynz{{Z1RABnxL;P~$&Jg40S!gGBckQl80 zDB<5v{LcI2M_&9n|9nON65%gqDOU7|@HC8tg#qKo`cD&{ zio(MK;#vP$#r~B6@f^R02v5_#uuAy6{O9re8R4(vVWNTL{fOCW$@-rqJg?Up;V-KI zrOx_aB0QO0&}bnXRR1PY%=qKHkShArDv#fFgy;Q>@p4~oB8(Z4bv zp7UqFf?pjF&+$J>c((Tz+K72QP~*mR_P?R{zce78^T${0e}V8G3$Q|^Wc%+SJRiG` zQzGZ>zuf&<1^=UHA}9)#D*Jy<@t^T|@#FD3Px$D(alKTOhiChLMR@jiiSP#$d(|q( z?-|1Lw0VK>?4OF`I_v+Zf?p#%%Vm{}-%gHFHwDJ;%UQtL{u>C-^M7u))R=evWc{;* z=lr>a@VuX8+0XiKB|M*BI|J(H@jpR$-v7IVXZy1BbNgM2{R@QW`J9Dk`@f~we}?db zuD|C9&+F$h;h)M29m#3q?ft8y#VjWY_S7Ljs=J?gTB@ zvyEWPF>FDf^TP8@*D;-@SOE2?K{p*=cmZ&A*J}zd)#eG?oj0tg#hf>rJ;U#XNtE`|Zc0 z-upI59bM0z7mndHz<5tIU?!~Ra4!i_Gy;ai?k1%pCINi$rJjJEbxSzypo1~<$3j(s z2XiYN(!NZ_hXD3ZN^-5Q2o0i??7C3G#O(FVCap!dci{erYZl(qa4mc*5UzQ+?p_Uq z>ocB7t^&ff9q-3@#>IV#j_mOD|NBGVkuWA47mf|a2V;VS@j$}ZAYp8f@I1q3nnGc< z237dI`DNgrFoSa73E_tpp-;Sbab939AP;i@#~*V9#~<^AW5TiE7$kk?Ji#`M70O}^ z5sQ6bU)U%1jXF>l>cpJna}9ik-^ja?Jt(*Sr^dN3M>14yR?1MSA!(>*&R93^DtcK~VhMCeS2m<}^EMEmW0MrD+rn5kg0$l+56VOGVH}b===tpm) zuPb42j4}6dygAQt%;itb&%C;v3ph8JHrh`m{*euX%`fx==Wd*S(e9tl%9x$X$(WtW z$e5kV$C#bU#+aST#h9JS#F(AR!El49j|Y`LE>!yXQ0e1DrH>aCa3daJyc+KYngKcpqyu?Cr-7D$ z&H?=b=qVtaH@K#6gG4F;O#$r(`T|haTOc$=>mh#wEBs*{fB%iO9`$HDPCvH%!1>zi zJEz;z51y}m?IVxvJN@Hd*6#bq9WQ-n_tUj|kJm5#{mZMhN1lFs%eO!KO6>z;@}m!uUl_jI_YCqU^o+vvtHUdtJQ zUB^Mu8?Mtb+daDW1MC3yq*B42Q%2Ubzcaa$Y^ggwc5fF zFoRq#?x^K~Y#3`&1Wy`Xpp)yw6HZg%kp32|1-jw2p}!V9Euwm-XX}#czFsIt9jT{K&I_u zswf@6F#vwNui*b^z^TfpHZfYQ9;tw*;O}^OW_o5~&p1mJ3M0|yYE6rO5f}Gr+^4T} z&tHEJ37@ypJELT!_C(1_9fu?tdamq2`Ell@b8SGxP!%i0rI4t?&^zlL(<*l%9_1D3bmxc!e%7LIIbKMUn^XPOuP zjQnNoD}RHsIHI3<5!;XLx)00ehE{&?a;?&wtZ4PRF)H?GVsuY+qA_Z;s#BxY@p@&t LK5n!c&6$4z6|E9w literal 0 HcmV?d00001 diff --git a/tests/files/1.0.0.trees.tsz b/tests/files/1.0.0.trees.tsz new file mode 100644 index 0000000000000000000000000000000000000000..ca14d5bfdc94dd8f8d8d3e92139beaae588ec120 GIT binary patch literal 28043 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