From 7bf7f3ae0df173c2c7bd6c1ddd042dd3fb1cd61b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Miguel=20Matos?= Date: Wed, 15 Jul 2020 18:22:51 +0100 Subject: [PATCH] update --- ...ement-of-Nominal-variables-Environment.iml | 2 +- .idea/misc.xml | 2 +- cane/build/lib/cane/__init__.py | 100 +++++++++++++++++- cane/cane.egg-info/PKG-INFO | 3 +- cane/dist/cane-0.0.1.6-py3-none-any.whl | Bin 5387 -> 0 bytes cane/dist/cane-0.0.1.6.tar.gz | Bin 4257 -> 0 bytes cane/dist/cane-0.0.1.7.4-py3-none-any.whl | Bin 5650 -> 0 bytes cane/dist/cane-0.0.1.7.4.tar.gz | Bin 4621 -> 0 bytes cane/dist/cane-0.0.1.7.6-py3-none-any.whl | Bin 6407 -> 0 bytes cane/dist/cane-0.0.1.7.6.tar.gz | Bin 5399 -> 0 bytes cane/dist/cane-0.0.1.7.7-py3-none-any.whl | Bin 0 -> 7016 bytes cane/dist/cane-0.0.1.7.7.tar.gz | Bin 0 -> 6090 bytes cane/dist/cane-0.0.1.7.7b1-py3-none-any.whl | Bin 6688 -> 0 bytes cane/dist/cane-0.0.1.7.7b1.tar.gz | Bin 5800 -> 0 bytes cane/dist/cane-0.0.1.7.7b3-py3-none-any.whl | Bin 0 -> 7040 bytes cane/dist/cane-0.0.1.7.7b3.tar.gz | Bin 0 -> 6096 bytes cane/setup.py | 2 +- 17 files changed, 102 insertions(+), 7 deletions(-) delete mode 100644 cane/dist/cane-0.0.1.6-py3-none-any.whl delete mode 100644 cane/dist/cane-0.0.1.6.tar.gz delete mode 100644 cane/dist/cane-0.0.1.7.4-py3-none-any.whl delete mode 100644 cane/dist/cane-0.0.1.7.4.tar.gz delete mode 100644 cane/dist/cane-0.0.1.7.6-py3-none-any.whl delete mode 100644 cane/dist/cane-0.0.1.7.6.tar.gz create mode 100644 cane/dist/cane-0.0.1.7.7-py3-none-any.whl create mode 100644 cane/dist/cane-0.0.1.7.7.tar.gz delete mode 100644 cane/dist/cane-0.0.1.7.7b1-py3-none-any.whl delete mode 100644 cane/dist/cane-0.0.1.7.7b1.tar.gz create mode 100644 cane/dist/cane-0.0.1.7.7b3-py3-none-any.whl create mode 100644 cane/dist/cane-0.0.1.7.7b3.tar.gz diff --git a/.idea/Cane-Categorical-Arrangement-of-Nominal-variables-Environment.iml b/.idea/Cane-Categorical-Arrangement-of-Nominal-variables-Environment.iml index 2c6cccf..e11b310 100644 --- a/.idea/Cane-Categorical-Arrangement-of-Nominal-variables-Environment.iml +++ b/.idea/Cane-Categorical-Arrangement-of-Nominal-variables-Environment.iml @@ -2,7 +2,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index c4575c4..ca872af 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/cane/build/lib/cane/__init__.py b/cane/build/lib/cane/__init__.py index e1c9d05..075a9e1 100644 --- a/cane/build/lib/cane/__init__.py +++ b/cane/build/lib/cane/__init__.py @@ -80,7 +80,8 @@ def pcp(dataset=pd.DataFrame(), perc=0.05, mergeCategory="Others", n_coresJob=1, if columns_use is not None: dfFinal = pd.concat([i for i in d], axis=1) dfFinal.columns = columns_use - dfFinal = pd.concat([dfFinal, TransformedData[TransformedData.columns.difference(columns_use,sort=False)]], axis=1, + dfFinal = pd.concat([dfFinal, TransformedData[TransformedData.columns.difference(columns_use, sort=False)]], + axis=1, sort=True) else: dfFinal = pd.concat([i for i in d], axis=1) @@ -88,12 +89,98 @@ def pcp(dataset=pd.DataFrame(), perc=0.05, mergeCategory="Others", n_coresJob=1, return dfFinal +def pcp_multicolumn(dataset=pd.DataFrame(), perc=0.05, mergeCategory="Others", + columns_use=None): + """ + Similarly to the normal PCP this function uses X columns given merges and applies the pcp transformation to it. + Next it will apply the transformation into the disaggregated columns sharing the transformation obtained previously + + :param columns_use: Specific columns to apply transformation. + :param mergeCategory: Category for merging the data (by default "Others") + :param dataset: dataset to transform + :param perc: threshold percentage of P + :return: the "Dataset" transformed + + + + """ + + TransformedData = dataset.copy() + + assert isinstance(TransformedData, pd.DataFrame), "Dataset needs to be of type Pandas" + assert 0 <= perc <= 1, "Percentage goes from 0 to 1, it may neither be negative nor above 1" + assert (columns_use is not None), "multicolumn PCP requires the usage of columns!" + assert (len(columns_use) > 1), "multicolumn PCP requires the usage of more than 1 column!" + if isinstance(TransformedData, pd.DataFrame) and perc <= 1 and columns_use is not None: + + assert all(flag in TransformedData.columns for flag in + columns_use), "Use columns specific to the dataset given the columns provided are not found " \ + + ' '.join([j for j in columns_use]) + if set(columns_use).issubset(TransformedData.columns): + + mergedColumn = [] + for column in columns_use: + mergedColumn.append(TransformedData[column].values) + + dfTesting = pd.Series([y for x in mergedColumn for y in x], name="X") + + d = __pcp_single__(dfTesting, perc_inner=perc, mergeCategoryinner=mergeCategory) + dic = {v: [i for i in np.unique(v)][0] for _, v in d.items()} + for column in columns_use: + TransformedData[column] = TransformedData[column].map(dic) + TransformedData[column] = TransformedData[column].fillna(mergeCategory) # because of others + # dfFinal = pd.concat([i for i in d], axis=1) + # dfFinal.columns = columns_use + # dfFinal = pd.concat([dfFinal, TransformedData[TransformedData.columns.difference(columns_use, sort=False)]], + # axis=1, + # sort=True) + + return TransformedData + + +def idf_multicolumn(dataset, columns_use=None): + """ + The Inverse Document Frequency (IDF) uses f(x)= log(n/f_x), + where n is the length of x and f_x is the frequency of x. + Next it will apply the transformation into the disaggregated columns sharing + the transformation obtained previously + + :param columns_use: List of columns to use + :param dataset: dataset to transform + + :return: Dataset with the IDF transformation + """ + + TransformedData = dataset.copy() + + assert isinstance(TransformedData, pd.DataFrame), "Dataset needs to be of type Pandas" + assert (columns_use is not None), "multicolumn idf requires the usage of columns!" + assert (len(columns_use) > 1), "multicolumn idf requires the usage of more than 1 column!" + if isinstance(TransformedData, pd.DataFrame) and columns_use is not None: + + assert all(flag in TransformedData.columns for flag in + columns_use), "Use columns specific to the dataset given the columns provided are not found " \ + + ' '.join([j for j in columns_use]) + if set(columns_use).issubset(TransformedData.columns): + + mergedColumn = [] + for column in columns_use: + mergedColumn.append(TransformedData[column].values) + + dfTesting = pd.Series([y for x in mergedColumn for y in x], name="X") + + d = __idf_single_dic__(dfTesting) + for column in columns_use: + TransformedData[column] = TransformedData[column].replace(d) + return TransformedData + + def dic_pcp(dataset): """ :param dataset: Dataset Transformed with the PCP :return: Dictionary with the constitution of the PCP dataset for each column value """ - assert isinstance(dataset, pd.DataFrame), "Dataset needs to be of type Pandas" + assert isinstance(dataset, pd.DataFrame) or isinstance(dataset, pd.Series), "Dataset needs to be of type Pandas" return {k: {i: i for i in np.unique(v)} for k, v in dataset.items()} @@ -109,6 +196,15 @@ def __idf_single__(f): return resTreated +def __idf_single_dic__(f): + x = f.value_counts(sort=False) + N = len(f) + idf = {} + for i in range(0, len(x)): + idf[x.index[i]] = math.log(N / x.values[i]) + return idf + + def idf(dataset, n_coresJob=1, disableLoadBar=True, columns_use=None): """ The Inverse Document Frequency (IDF) uses f(x)= log(n/f_x), diff --git a/cane/cane.egg-info/PKG-INFO b/cane/cane.egg-info/PKG-INFO index c7ba5e3..6134b8d 100644 --- a/cane/cane.egg-info/PKG-INFO +++ b/cane/cane.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: cane -Version: 0.0.1.7.7b1 +Version: 0.0.1.7.7 Summary: Cane - Categorical Attribute traNsformation Environment Home-page: https://github.com/Metalkiler/Cane-Categorical-Attribute-traNsformation-Environment Author: Luís Miguel Matos, Paulo Cortez, Rui Mendes @@ -31,7 +31,6 @@ Description: # Cane - Categorical Attribute traNsformation Environment It is possible to apply these transformations to specific columns only instead of the full dataset (follow the example). - There is a new function called multicolumn (for PCP and IDF only). This function will aggregate 2 or more columns into a single one and apply the transformation to it. Afterwards it will map the transformation obtained into the disaggregated columns. # Installation diff --git a/cane/dist/cane-0.0.1.6-py3-none-any.whl b/cane/dist/cane-0.0.1.6-py3-none-any.whl deleted file mode 100644 index 6f4431b373c41f94214dbf45ced877d1e9900b82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5387 zcmZ{o1yCGqwuT1{Fj$a4&_K{(81%;>!3l#TgS!QHf-`}j39dm0cPF@$1PCsJh2R$4 z9R|7ickkZ4o7!~OS6_8kpQlcBy{G%F_azhqlMDa=-~c!^c3zTiln6`W005jc008l? zyJjX1=3GWb)(+OLMn(`PuRZN~huL28_6s!xhyq$q#_3I}_oyViE9w(rwQlY(I*`(z zo8&zSbyz2DTz#D^y>+IkQQ2b3awWJ>C3U{`IhJIO#W3Rj0Kw-icjK*hcW$e)7%uhG zwV=8@N^2(okq?#6&5iXt++9k^ZV_q8kqYOJPFPUdEWdAaRP}QGxta%AuB`G`&ewz0^(rrkKOa64drlBw9mJOE=`G z`g5*o(v2D?v*wtF3Mj{vbL;qQ=le7$PX%i{G-#nnh%*_=RHu{__t}aC8d;tK-cPuT ziGOpoZYL0!{iS$E!-X&Qg>sFF)Ab%QRKBvG80fW(^e}HG@!mnE@qS^YXSBq>{y1nb zQuJ^cOGzyn^t$_3a z+w)sW$Ovy{z(%gg;mvezIIls4?22T~%Wt}$;nRi{o?E&WOI0y5LH4bz+Fb3l^hBz1 zg{+;q^TyqpVs$kz&@*0=W9EbDTVm@v z9#!>nh&h6v$-1epp23WQxptiKDXM zxKy(UoaEcUz`&Ps{F#;mcEeW6Yw&%U!%q_fUWfvis{Gw%usn6K*0B2C-eyhyqO4pSB7#gxi-(7;OUr2?Lc}d15K1-sx zm03{SJXrf_(Yd8*q0W|@cm)WBK5u43;?!Nw#`k^>0MAh9g_#m82rF4?>I*ZnhrtGP zBeWqO35N<+ZneLsf*XjrI#ib9KfS3w(gWo~8w$jtmfL`(@rmVQ5 z7ut`tsO!qa7C#V}m*B-PaBK@v*5WnSvkt4n9AF)|kzPWj0a9x5ZYqpwtS(z4Ync4I znDcI&;x{mdewnH~>ofu1mVKGKas@?UqY_?Dm!2~-xpE8yi)jrG7Ft|5u5fr7(kHr0 z`7q;73J90P4!;D%1YA6;sB#21n!azy!8?*%D1YUTNL}o5x!S4a>Dd8o-;EzmlAx)e zJ-*l7)?Oc0C6hlT{+c=M!@7ng?8T)e-%z#|*Y=vRA4C zSFA;;rZuFWaMQ~_@@fd?l!LZZsurg6f=7ea{ApZb1ap*xK5=1^4DIpSk(x@?#Gy#j zOsA%GtzO5)koVV?^@}NOA8#_x=BdP$3-|iCwN5h{J3{NEl#%->R(lx}L@cRiPDtk0 z2dZ?@A|=v7jIZ#Yax@s^5=MR>Mnyj0Z_0V72ihd4kd$hZOz3yPUQ zJNbn8VP#{O_HKu*PK}VAddL+tqB*KgJOW~x@w{N-K^-UDs%(yJ`J$CLSp`9xVR%3W zlC-DHr}S2OLh+5gTL2?N8A$J{6W#dkvC;~4u*v9`8^xpD?sRxp1bTci^(U-@z$)yFBu28%lAv*X6%bCs3_^c>tqA#Vo$u4&6yuPTSUTb58u;YLQogNVvvRHII}KQhu!gyu*Yi@0 z3V5i3;&qGafT98V4UxW+_tac-Mi^Gof=;9oT$HC@8@W`h=gA2zuM{_uWaBE>Z-mLPN=5>3g z^6;?v<#O&TCUmCNTixE4xgK!Lc9@l-5>)twJ@deC(^-ydVT+Xv_tdf-MwDr$MKEEb(j3kY z%CS{q>&ddYm%btxCVJ$TBRQBJq$+FIM#9ASUqas*n(t$`u_w}ORl=hkcvKY%G zmjHFTC=glxW4>h~|hZcGvyI^1#9hqL}UqYJ3eZcFNK4ERs3as|u(a`W? zZ|-{6azX|LEDl-1NIbl0_p*UbvvXfgRy$Wafnt{9nTvETKFLZ%<=8({Ritg7eE)Kl z#0DDjtX@5q6E*qdKyF5rCOFU_a)wG}B*7C0g?3k&DpI_)>{=hU^jhUURzRP*xgfbF)r zB|GVj0zmGONiBhMm+||8Ox@$dsr@~qAvuo3L6^LOh?mlH2{WPQsr@b6b?rjy?|O^f zqq;c@%4p#kVJ9wT{YTxAOUjG#y~fB3#98OOnDmrt?WmJMY+--Xo1T#uWzpy3LRon! zJmsAqhr*sIlNL#>`h36GS3*(=)+Ul%RlZU;gC5Lr@mV$@;7(}ehTu^&6?(0UUnVVh3H0daO0?G=5^LHJRBin>7P1D+ytM|eV^Qzr<%*j4rL zOtHfDGj4a7H_!#QZ2GIxol}8k}p%+$0gu;&+mL>YQ9Xpp2OkS zbQ+(qZ$u@sbU%Tg7Jn#5wlVs}^tzOGjhBRc9E3%6W64|E#U6!|g(&i}98Bx!(EnM=%ChQ`GLq_& zb(*s-RPw}c7b`b=i2}&Lf{OM#{!l z@B{v!e&2i;3&h!DDzQ^gnLi<37 zY>G9N&FZCepkYGXuui_6mYni%@E~@=$FXlsf>+FSypT7=>mm?+R~AyuNB)`7hH^y7W zzvOr@xjta--$lcv54>$tIV*4GdloxIV3h;?TrecHQ`QGmQ7j~wjEWKy^gi<|Ddpu# zG@J_+y}dMs8sdD!(_^po=vyrG3MRa&=YKtc>DA=QdlEL^Nblj!?u#?#-q0q!t7%BM z5-2Y^*J$pK_f(Ipk4Wl60|ouJ2hI(2vP8bF_-s^k(V20zOuhZBfMr}3^-Vp2ao*go z+-x!2Gm(TF5q4_mWIq{GpqGQ%lvp}SugGXcUEUPvKd=)|H?=EnAnhW|Df$7I;>z~x z!)|rSNV_0yDO`xIXWo6odG6rZ?kVcl zJJ4Z+H$_m2$CClRN9C)746;5zH|KUI+K3tEEr`_vLI>Kb8{TLpRQJLM8??n=KTMEZ zV0_S-E_*w5o=pRrudDiY1P&41N?fC`6mKtGS3tw&gXhHao-Wsxs0Xl9rX!}f@2f$X>;I2_pghAFpQu*hXz~xuhhu>u8Ua_3}_x!-G(PHz-HhE;#cw^tSP)|)yt z8xort9UEYg7`!cughn!TVxh|?1S?dCqwrKYSq>pg{F6Ebj^dOHK{Qc0oAWIm32WBs zy`~t;Mr?SD2U{fw{~`!JyOLEuLggJjZRyYT=MBw+un}y3@_|qp3gR91#-Q!_nyCzh z*9Rsn(+P~u_jh8KPck%v@Rv0?KvG{0SIWMp7y350166keqBhUmvT6uA53jEYZk0fD z`htfTNtL!J(+@*bCaCEB7 zmGYIDo~^r;+?!fe3|&l(Ee(PUt_nB6SgGIF;gi}P3#*qPQZj5m?02htq2YN&`Qsu; zjAypwL)lFWhS_C!yW3fbAsu)@6N}!mD1FtaW~29e*xIP{#z=Ktp1w<^@KY_5EN{H+ zH%=G*j_(f>%z{bsG|nm4|H@G+)MNKKqJS+_-@!6ks+t!g&M=z9^;WIB9XDpmYfi#p ztNtWT86TUDfp8Fo9jJ7_UdJr|s(wstrZNhJMhINjG!2Ti>Lm?#TK5>CGVqV)phzy6 zv2pWJaj0}mxxS|&jj%Ph+tE;Ja||u6RoReEzq)Uo&1RU*s=~waEgX9m8PA+^?EIc~ zk3OO*IyNVJAH&){7?6B9ULr_jda35DSOhK^^ z3<>3WQ2c6?dz4QA$v3u!*FVCAJOfV=uyHC5^(j@u*w{hJKk;5DHNe=4_@{;jMxc|* zgQaUL=z#z1iu+oO;lZzNe*H@TOn>gm)zQhw&fMMH?r&EFRT+f-{2e62M=%CP0|5Gd zE!sbWV6xJxFd4Vep?az30Kn4Q5#FGi*Ul8Yfp~(_5c~CnkclA1;=&G(abb^DtoH7t zJq{7(yt4i%;&w0p^V%e`GpG#2J?-1EF6#53whnwl({zoa+;iB}D3i#f3J-&Tq7dCG zPAKiQA2I78I@dAC4?G*iQQDf(3?;o{SZT>djb6~wv9-mM>N*GS;?e zL&SN)tsmRz5~xGFQrA_eW3Fg(HMxBJr~UnOfALrLuC2WS(dkh@e{w|ZRU`u--smM1 z4V?_*&!O3`cm0ne&;Rf3_XzF(SN}H;{LfkdAkW|NR}lAi^?%Xi|8vB@^L{rX|K^DR z|H%87E%_bx`-uD-w)ZO@{6lm97?|HlzsvgHq`-%NB>jiTe<%K~?|%_%(FXra{HNMq VLb0&_ejNMP`SsU$@R9y~^*;`Cublt@ diff --git a/cane/dist/cane-0.0.1.6.tar.gz b/cane/dist/cane-0.0.1.6.tar.gz deleted file mode 100644 index 781904de6e00e9ce08f6047f8aa0560ca42591dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4257 zcmV;S5MJ*eiwFq#m<-&g+!>VLb_Q~yhY zZGN1gYFE)} zW%}zOJ4H2X;a|uXt}kY$%}&D57t<)@EcDHBFn4{h6usG*^HKP&v*J!z`_5hQmS-+7 z!ZHlKV0d`A5aBYK>N9tBNE5Peh0Xm#8laUU-%821isV~)@+VQabp0WF7yav>0lN^3 zh}-OfB-><{W@NkU)b&IDOOyQ&33kC9iwAM17GIgd9x~DeT`I%>Sb@-^m2j4>?uE5? zV#b{S6TdkBPIha_5`JvV+xFTux8MXG{dlWPwJ~$CVh=m1T`jNverd^(1HbBK+a4g5RX=*{p=05*9qG4_Rk=p^&0;m#=7kMmn zS=|HCI`b6i1``e*5;L5I%~c;}1~kxt5pF9Ia!SzQx|d`oD8S7&k39RZIO7+P!`84VVdvwk@TwUH`!avt$D>0IT)P*)3_c zM=Hx1^jR`y?%K9{N0We$T493Qlz#f@CpKGU6`t@?(&R~5X_vAYUquTT4$T+Ve2X$; zv`oCZ6q5sMF(4bC?@bV_nNWw|dv`kOe4czqk`Eq9ziElUoZ9@IYg*qThZ?cBFl{b} z{X2QbOW$3fallYp&K)?jWCUT&w^%~ed$44S%BT2HMzix^noqFy?-Kg1!zW8OOjb{U z#YNyZF)2G*ITY~b;-34(-kt64&A7)z^%xzf+XG1!j`vQ$6@d|w4+t0w^2y044)i=8 zDrenV9QsJ-x5J;Xm=mq0a3_jL&?wHayU!evfV-!l6%yLu>yXxU=@uIFrf-eylwjFV+%#xQz>`ibmRr`}V+lPlEGk z5(%Em;kYvVmd9;h3a>p9r`4VempvCAdrlly`+d0UDe=~m*|&(2l#_*k{cPH+kTXGS{vQ9`&koO|qDjQpgdzi_7lxaz|6Z@Juo z`4I>q9`DqZh=g#zP1*Y}_(lcRNQ-_HAV0K@c|CcagI|I@V<0 zM>hUaC#D@UI?WD{tI`zk_v+g*dwq1=GFnHSW24n+w_mpgdQ5wNq$r!B<kbbOjpI(|aL_qAGE%uv7WDwR$V@CJniDixd8RJ{@CV$agu3;{M;vq1?imm}dS%jz zhb_u%TUsr)OJ1)L8cXC=loZw3wpb7*RNHbvJg|0tMZ700?Rh#gdhHfsMw7jboY~T} zo0yr!g>Pc{SbMafM_1ef1*8vBY{wUWO^t)uqqqgH2ASo>hmT$f!!Gy2DaT7sS6 zZI-pUkKBx|(vvVQ?6e8;9dAvD%kfH4nC$KSY_0TomxKrDX&auZ`Z<^qx~`p7nSLlt zJE15b0a*|HhxCw5CO{bzwcRn9Xh@!DD+E!&;r>+g9SvCNk4!UID<||uL$wEAqE%$mh6B2! zYNKb*wYe_w1d?jnhte9lAgk42r?$D8S|)=@PKQjJUbk44gou~S#ZUD!2|6dOw8Fo zh`1aQvf(9KEvFz`%^R_GNCXa<2Rs}V_8uC_PRcAKHI4$_FbLo0k;UkPAMp+Qd2!o$ zdAs=nHdA6RO~R^j*Fx>>aTZJY4@&um@S5goLt;aAx^!LXb?0pDM(oa{d83j|kyS!@ zFb>n8H)dpqDRRsc%oJkC#tPoj?kzo|)e>+fC8P-zHpBBY3d%N2lw_@T+fkRui&g~N zTeDe&EX?GwrA zs(jCkR|0#69{@*a0PWnFyJV9^mj+vyP!b^)ZiWgz!$k)3E8G@FH9@C3=in1iH83UaD8S=JuxS%&a>o^+cWn6yd!hhwPc zY<}TV?nRNjO@s`osVj30+CuK}g0#aICha>w-{AG9F0KqU02FiYc}vcxv&dfmi}zb5 zm)TLwh+W@o*1xx{;&YN(ywL;m-xzyX*lyV#LN`4+dflAzwQ70ODC>?HB;C}LtQBQJ zBwdyJXvHL_kmAr~X^K;L6vsrVJ46@hmbSf!rW}{t{{OktV3Zkq>ib7UkCG#s?q6F) zRuxng1_jTiUB?fh8x&XXMKCh*GgP&DJV6ThDZ_S1EACPpT5i{klDb3`WwT4_wp;7) z@vs7|o_OSXZlXmS&J%$z(0&n~=6HJK2m}btQKptX*chnM$fO^~|CCGF7-`Zgta&c! zjl(b>KqFMm#_fma6Y*Q&ZhqASkR%vJ{A3)1#l3&(qI`~9KoQ?9$rZ9ikEdq^Z2*8Zb{$bPQA=tI5^r(bl8sWXg^ zPBMp>I*H;z$`}nZuRxncHn53&(IDQHLxUD5F`k^R7hma!Uq`rZH``6)GcTm=Q9z{G z&WUx5G=G@5g5(gYumo7Qdf$Njg6CpZkc+f)$8wVuOm?pz9qN2uBuq48y$$IsD;rsc z(Lf!Hskb_;rb3{b$7S)^U3^OBeiRnZME3~?RA74cVr%M%PGGEe+wN#fRy%xCY|UHC zC2bfMUQSf{y5Ql&A`l1Q9nVsUh!&lTdmAJX@$R^YfQf-2Bmrz!sd`jF_7Szu`5$4(zy*9lWZ_e_Po)|JV6q(V`bdpYBDF zhrju{&0GBrHA+7v*Q1Dr#~p-|4zGO^eX)S5+(h~hg!hH z$kV-bZSyOjTKTq6ZKt+u)FdV}TTkHhZiA90er#JMRiW!m)XS*9TMw)9Ap0+q+q2kz zyS=gh*XeYRx|RLEM5)enD*NAI|9PkUyz#%=-;DqA_n#~KfBrIcBlvi$<+-li;`e+O zg|0uMk683>O@4kh8X3BAtoLea|AubcboaBhqIS5esr{Z7&PLD{?-b}(=J_S<|H(41&&U5w`#0MCPG$cu zCI8CKD*KoAuOQ%TzIfU(K5PHI!RGJ(_j}dvKfFk}hP$7TyT7T0=3+99gnY|S-cUTp zb-PwMi2qOa|75@WvZwub+JkOp{{w^Uzt?M5_Wu$kK7W;xkADP0?%TT_ceHxCJ6LbB zx?gY5;q82>-V3o^2QDJp{id(pmb%YPOKaqb8~{gB26>=*591e0CAOr)fAzVX>Zb>u zEkav3JRl;qY+Aa!l;8Y~4oGPan%l=0@vo1J4q}BaYm=Mt=-`p>?3B?pYt8`vV@brY2|>h{?aX z+Rd7zCvtmO2Q-OZco-bDRl5=n5+;$xo5jB=<7~eUxEfWX(7)lccK*R0`|uu^9{jwl z>Z~{#FGQu&f(bksk;K@Z+CzJfWm_$(R`Zn9<)w?kJx^j`f=79xt~FP|ixv(p^>eaV zk*qT<;Z$uo0^);kctL($qrS41!Nm2gd{M}==oWC?o8g}t@p9?_;e0*{=JKjXL8||ZXpIS|nZgR^6y!OVA zl76XxK4MOErw|`pbMYem1S#+5&-S37y}j8Hqf5gFE?W{t^H@-uxN?xOI`U&z20aa7 z(2G2KbBU^%Su0M%Ep^fgd0SBn>^z?A!7aBW_Qw7)O2)NF(=T!1o4W#|yG&(I1uavL z?r`-!6^bCShXrlyzLzNiav4GvgDi5?rMr9=4Ol!6K!qC|i36c_^{=$6{K?2MpM}YU z1^t8?F*5G@k@Omhh<@z~@ir*WUS8YhAnFiWIU)06vFa|H>K>2LDVT(4(ik2~Nmm`c z&?s{$*$Sm))I9hoB`v4JUa%2?bYEcXCGb;N?+4=@?TRQp4wX%7XW7~9Y*gyeFS zo{^@n#a_EVq-_~qWCdY@-wt-?YD}7YZD|koGo58jE{1J0F}$t;@AYvx(WE}eD~kmw zPwF@3hZ#aNa4}L|Th9zQEMyIJ;yY0nx#-h+!J0ZuW(B&eSv2cZaj5u76S-SS418!S zKiJ%oLQfHhS+G+k&^ z+lKOaX0Ur{rrhLmtus82% zrFh@^!4mB$gL-;eKfIk_lhl}wQjwbX^t{M)Z(JxM z69*Nar{}3Hg;y7k=B3(f3&_l0QJu_fngjvbdFF0k^R!wTTVFN#S9h0NMzT>02Hbmc z$WK4_G-VFB&fjTTh9^=R%~i=$eibeZn_&Xp^V6vnRRZ_jR$4bASqO=UGNWB6+@{bR z=cgIF$xN~Y>maaicsOZQC z_cbsAY`t(x5*2YqKr`H|{d@7e6{kJZ!wSKLt@o7KQ!+QV_U179L&aWPdKA9&H1S;`=x)47;cD<1vU=bV2O}GAMG)vW_qUrIfX8 zMBf_pr*^auROdWzd@m4Y+jw$tfs;13RE1);n;y$+dRsg&>*SGe3(TEl&D6b4)bBXk zpGVFuC7!!KD@nK0Aab)<9?7{5A0F86@w0bk;vh^y^LduwELQ3|a+F?52i6Y5jb+>I znko)gWy$BhINJ1Cu;WC&E%PzllyDCysH}2IIYIC*CmiShKIK=U657s`N_GB(&35-D zgk6M0f@Q(5lydz4g&Ew$JuU{4a@6*}DVH*gvjq z3qbcyRB_%S#Xr|bR3R98^YnI&fEQ<8_j`R;>w|}Vn~DR3w5e2P=m?yJFWJvK2mo?&zNCfz21*| z>$U7|iU4(d%Z7f>(j0smBk_#jmIkBSCZy=%y5fm6FHK@}HaQutSF$k7xPetbaiC6) zmH~-|LFJo|1mKwFxC3g9^-|S_oI6FH1AhGm`omH zJ+=2#ri5IdLw!$r^qVO}Scpki4~$7!rrMA5o%B8`?uR+=g(;)mglQvg4!>0V0PRwhJVuO+J{hhsM!|aTIhxz zv0y+b@N^@1_%w}%F>Y0TAnl8?^mYpf2$=Er4?{b-p<{0>PU#@eJ-o@k=U_N4uXLYp z_ip!M2wBd2UZ-&ONmInGK;HeRENMfv(ETHofeGqazoyF@csZFqb!4!~aY&u^CiJHj zW|J_Ll~5YdhbO{qJ;PBH2=;{aS6QY>R%P4)hwWcBY$f*!0eNS}^;k}QMq!1Yb>OG-$KR(6 z@KHrh`ebAUycESmO!->oj}L5M+C|n2y6gRuI=O2~2$7#4=gy`hXZ_I|O6xL1MpM_B zm%Xb(lJhF{laBiFMI+5FgA;P)u~##E+41Gb`QPo7Y$9a1RUXI?(U zdd1!{KTFn|CoSX)N0)!q8JSe%*vsU*-dBx#DPL*Rh1L)8#&AX}U+m$1o6mVlS+J#n z1On2qb9dL!L1=Z0ay>sFZJ|dz+Qdha$l0LLdKNryqp8g-GYe5^z)3G|bgIX56VFsA z2^1ezXH9S$z)P~x7=h&ZLh3^pQqVO#$0KhkG-{CV1x2!TYFJ*DgjYrstyk@Dpwu&3$3KmUC{02~ zP}4Md&qQ|?G-@8}E;EhS%AJu87IWWCgya9H$^4{`7LFH{6-;Pd*s9|3xg&~5ft_m; zxTj^E#pNybGoLUkLgE<%zK-;_JNs!R@8P-~DsK(^km^wca>@4sH>b|_4gFScCSXWoD5%yB+gpVc;QE_mEWQEqj zX96A@f;KnfemCR#H+duMQRI`OhZCY?(Q|DH{Lvx2l}az(?uN!hU&19b{44RI3&!(p zq6BJjm?%{Z7*p|V;eIf65WYOSBItI%K)%2o)mNw`oUZwltS8W)|L)-E{u1n(iLp1U zDA)8^o4YYL@F3FwUAQWa1Iw{9m>#-*b#lNv$-)=Flbcst50kg>4XsPQ`84ds$O;b& z(o)znf4e-5N}QZYFmwZc&}3xRFLD>mJ_)@W=ADXgEzvOFI9{~Eo*VD4l`=6{yAhtf z=Hgzsoxhjj7tJmy0c5zzo5Ew-;;nb13+5e%R%<99_4T!Y&1O#Q2jp}pq;Sx_Vv|lz ztI~t6=Inl)gS@0Pd3{xR+X%SkGZ|gG9fa~j{ql)D?%lwsxbrELfY%@V!PpEV!4prS z?M?_yPBbQ$-cSG;kDM|~n0{9_P7N3lN}r}`U0IN&!Jn*|iv)^r&g%)0Y9K~{pvSY} z`NBZjSYU~_c;sGi47m`rMTfe%tT7s-2TZ5dsCnk4NDAIVfq zw3nKt(!9pmvWn7?fJbzxT3jg9m8ExWOv9vK#dQk>)#oQU8KV`HK@%?EWt@?iNwOWs zyw_heGpM+kINduIBul(k9j>KCDL!Yt`e}c%ymNYLeR6urVLx*zQ4r})CAo$QtAu`o z6ehTjiwC(0@`bskphe%yYx56}8L;OUDnc?%I|dG^!?Ic61V{oaf~SqO*sctIx;-h1 zFtioMPFjO3C+AU^>=R^eUz2I3+0A+jrhdFAWo1)&rGdI{5*5eZR%w{((0OSsnyUP5 z--6^XO7>(VNILqnKr7U5wUQldk?<8w8~NlUc;Q%1!s&vT!@N|J$4&Wyu;+Yia|BSEk`B#5&oa9KpyI%|_^EkE);a@JtmAlYkzJ}ix5b)RK_Pb4dUmoHDD-skMK#Pefs0jliG|L)XIs-lATk4qpm@%zn&L)k zCiHAuL%f&zamcfU9NVkY)bBbk{n_1T=@S&!YocoR!pt-nya0CzyGP;@FN-}Wc7aUa zbGSwv4V1*E#`qPXGw^VcAJNu}yg>*#SolNI7tl5_;mL<_ie=UukY5L9-lxx#Le$tT0nrRq^(Uc z){mT=8siyTi#zu&-rTRvNbx?ZZg>>lK(p9z@dwFML_4L7PuBY@P5C^9*mb{d1Xz?* z9(rRwn)l(_{k$uu$j_TCWBxHGZKc9i?Rgdu=$MREMdr|KkouWsLGfVx3Dbr&b11}P zYyTcmd^S?3L{z7lp)j4uS8lDnY4ubfxRH-UIBJb0>h4WqnB7M^zx6`77O#bfM9QQ3 z3HJHtYgo|l`&TK~wl0Fr;gobKI>6++kBu_%zGW0v6puwh9=zfHM4jMpY;i>qgsC?kE~Cpjj$-%N2&@1T!N zuuomG%wsXI%0q`0Ye5W*OiH`xa*B;0hT_-r(9sEnIi<0(oh?Mb-|OPI6{1G@RS(jy zp!-u@t`3fdw&w2UwttyE1?4e?-QQ6!DNj4t5CDLgUqSgN6bLA(0+Mo@R7j8%0{|xd z#;2v2KWmTm>_4NU6(R2~WR{BKr1cM(nXm=%kP>=ErW$;+Rj>x93Ktx?AnQBr0uS=; zboACa&7Y^Hz9JrisuZ@RibnFuw-eH;m%cDbwxsVDgCQ9wK8RxuIlkyF|p^-i=4TRoR`^_w18?LRIAWttmPJ zqMqAfPO1~@V5p#C%-kI!Y3?L;b!?^`q?vvme}brFo06swgp3-uTro=c#Pk~!CSm6R zk49q-Nq_yycEDwsS`ypGLWK`=cYlsSsOOp!5xq0!3Yw_7l&0~>>)ihn7xpgcYUv`4 zH6d19m7M0>jeJ~!mWzf*`sWh80O);_y^pq_7iu7sT~z@A5%0qu%Ut7q(vj0EZ|2y$_xAh;QI>sM}|Mp(L<9=_K|KPT8|A6~v z^Zd^GUE=>?c|ZRH>u-Ypo%y@g|IMsN=>HS*U&>ciK>FoN0RZG*@7S+q;rQ!X0sjCd C5j!dX diff --git a/cane/dist/cane-0.0.1.7.4.tar.gz b/cane/dist/cane-0.0.1.7.4.tar.gz deleted file mode 100644 index d6bbddbbabe235b563932716828a57cf4ff621cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4621 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 MeMEB@1sE9r1M3q3a{vGU diff --git a/cane/dist/cane-0.0.1.7.6-py3-none-any.whl b/cane/dist/cane-0.0.1.7.6-py3-none-any.whl deleted file mode 100644 index 9f57c33821689542686a0cb55736f1dff64ae048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6407 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 Pzt{NhYzcYw*WG^r&V;PK literal 0 HcmV?d00001 diff --git a/cane/dist/cane-0.0.1.7.7.tar.gz b/cane/dist/cane-0.0.1.7.7.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3dc7880bf2259c403860823d64c903d26099bca9 GIT binary patch literal 6090 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 kHzHf!&yXBRcZURbg1gJ+dvAB& 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 U0}=jmLHNDqe%DSs;a_k60aXOFvj6}9 literal 0 HcmV?d00001 diff --git a/cane/dist/cane-0.0.1.7.7b3.tar.gz b/cane/dist/cane-0.0.1.7.7b3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b1673eab54ca1d9e583fd6af74950a76724b0de8 GIT binary patch literal 6096 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�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