From d9e97f0e33ca9fc0c0d391d64b494c4e744dcd55 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 16:17:09 +0530 Subject: [PATCH 01/36] docs showing up, but structure is off --- .../docs/_build/doctrees/environment.pickle | Bin 0 -> 1083362 bytes python/docs/_build/doctrees/index.doctree | Bin 0 -> 297408 bytes python/docs/_build/doctrees/zingg.doctree | Bin 0 -> 297127 bytes python/docs/index.rst | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 python/docs/_build/doctrees/environment.pickle create mode 100644 python/docs/_build/doctrees/index.doctree create mode 100644 python/docs/_build/doctrees/zingg.doctree diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..613e146b91b442bd9b35f1890f8fc7e8cd704441 GIT binary patch literal 1083362 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

08`N?p;Lm0~r!&U{ahL@BMkGuL_%rY- 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

{1G`$p<%!#IsPD{15qUp&%ufAxCz2njJ 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 Aw*UYD literal 0 HcmV?d00001 diff --git a/python/docs/_build/doctrees/index.doctree b/python/docs/_build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..37ee69723148016fed69ea42362df4097d50a504 GIT binary patch literal 297408 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%0A$Xv>Jbc{ty&$ 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 ACIA2c literal 0 HcmV?d00001 diff --git a/python/docs/index.rst b/python/docs/index.rst index 26777a748..f25596d00 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -4,7 +4,7 @@ contain the root `toctree` directive. Welcome to the documentation of Zingg Entity Resolution With Python package! -================================= +============================================================================ Contents: From 9e67cb855290601695847b17ccadd819392f1ed8 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 21:21:39 +0530 Subject: [PATCH 02/36] docs appearing better, exanmple added --- .../docs/_build/doctrees/environment.pickle | Bin 1083362 -> 0 bytes python/docs/_build/doctrees/index.doctree | Bin 297408 -> 0 bytes python/docs/_build/doctrees/zingg.doctree | Bin 297127 -> 0 bytes python/docs/conf.py | 5 +- python/docs/index.rst | 90 ++++++++++++------ python/docs/zingg.rst | 8 +- python/zingg/client.py | 1 - 7 files changed, 66 insertions(+), 38 deletions(-) delete mode 100644 python/docs/_build/doctrees/environment.pickle delete mode 100644 python/docs/_build/doctrees/index.doctree delete mode 100644 python/docs/_build/doctrees/zingg.doctree diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle deleted file mode 100644 index 613e146b91b442bd9b35f1890f8fc7e8cd704441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083362 zcmeFad7KeP+^(e}V z|B!2{Zl8P4xo7*Hd+XNYYu>bC#mW`<-*9_xq0wv~oATR7n%z!&-f#DphFfnQG+XuC ztXpqf+WqpS$CfI?Q>qIKO9zJ=>YZA@>-+U)cWHRKq%r6>TT{~u)qbPZoLL&Kn?BU< z-V1*%y%B!6a_`b`%>zBZ+k^l2I_+u;{{LvRJvX;BT)VK?Z*DRcvkDQXPZE5lN^oud+jaafo5TS=ZN3! zHtT*5ID)bG{QR2^n%{nV|8V4^x*9L0u4f4(){Z}{^-Wun%q_Igd=Z?nHJn3=BidegJb7KrU3 zxJ515txa?*uo`V@59VP`re{0d`D&l^XQBs8k|Z}A5?9`(IOEW407Do~+}@m63b!vx~h8qqvdwmcUJ{b(pk&`jqY&ZOFvpOpbphVb$_^?{+ynj?=Kw`4c4`)?YRL?_;8gE1gPgzft_m0p9aMy z$xevBdrMXE{A?kbY4uy0gLV~X=**XPJDvVxQ!iD|9(yS$@ne#(H|N8wAL~z7TdmH~ z>Dj@fk1kI4yVZ8DMatY;IzF6`ZIH#`dDg>ekjGrthbbp50NEWE!`U!j?SU?#d_mEg z?Ye(V_O}iPL-!kVqV1+$XV9(r)4jp$Z1Wge+v=%q4;>6p?so^ZKFoO?$GFrJzt|#w z;kRL`Ve&vf2mRSSPv6sP&WUasdmC4Zwp*KRN4tlsF27s}Ze!h_tqxlK=`I+gnu4>d z^*V^6O-cxM(FKRs@O!}Dt0h%zFyE;UU`kNR`oZ>or#9W0K_i`pA9b7N(N6c#bguz2 z7xYoT>z(;(Q%(8#@auW7icY`X>HE`Nf7XX_pr972HD5`3Bask>uEoE3VQ~(fbZ@%X zUnI6jDYrMkQMAxmXgvW(6Sv(2>WET9dd{}W7a?)&o#pcQ_P+&37w(Dg0q{`3qu zOwikd;{K+?zP~ViwAyWxfl1Za)*CD=kk05QK!}w5Opqw)3fR~De5VcS<)ccdjy8Z= zO#2JXR%cGl6x{+Xv~F!DxnWEI^_iY+RnfR52MZw5YIhOzj|4qjwE&h#eQ#_-oC0}K zpj$e45LJDvxM#Wi$KVM(*f?KpFMx&irUzXxd_iGdyV+l8)($T&9j8W{<=@lIxi&h^ zhs1AB=eJ>A=fF7R!?nT}s>wY~x<+t^a5Y``7a&gFwUYX4JhO3w==l8k>apfLJO}k} zSJ7IgTg^87aaITGMATtAY3C6Da*hcsLM?lod1@Ycv$109PuF;S@nshz)N;nkKDX zH|;^V1_?iD_YZz$8hioRu$uPMiBGU4aew+~vyRrbLi|c_L(Ud#9-VcwjaDWlCmw^= zLu!G+?$v^mtwa-&$Xd5a-V|j>q83je{RD3{11TcRo_w;6esdJk6L6atWFUrbfHbc8 zC^UwIn10{5rg5$Gz9t*vZh5=)z|uU51Tuvq%^U8Z?9iih&;!3Yz|bKwS<%H-q6EBm z`_uiDzY#sK@Ux!CfT!+&PoQCJq&u_KBTW#5yxF+E@pO9Hct&F%>mSEd<2-I50^p## zRsP@%(HCSP(}RUN#4L#Clwwi8A_?t*vd&b&?jgX@ZSf-r?I3!@9zYWHLp?r?Xo}E* z)7-3)C!?Q=fh_ot!h%*DMh{2#Pp99Q`_shfaMg$3CHoX9vaLAuJ1O#o79^=cqmJ9M z!2EMsWI?#$DtmcNy9MrRk8)CRv+>zL0a&KLjiMX_xx(N*1$Z~8W7r|`mLNp zF;eU-^gxiK0hx4JisfuE9?X73Kk(amjLd4lTIHaD2+8u7LS@iyFd%&L zRNL?GZ7f1rX0m zb}#v2`1;57W)H&jB1QF8FL^OGdPp_Wgg_%OO_4LAetR`!l2P}s3Ex*JNU8^@;S5Ia zt?E9)EkdO7!AA99fPwM2XuVzCM3^b76EYT^qaPXX(yw;mE@mqt#GIwt0HOv*D=`@2 z_Z_!CaNvMU#my8{QF-D*yCx^wC`8!?qX2G%l%VQjc=p$@q++yO;H*0+eqDjrZ$)tDQue-xt9 z+!VIcMF^|Buokke0R*W&;431tL6DJNpKfgxx1dG@T1ie6BtTEj6;IFwiK}@)X5cYf zgZVZH*&Y|RIR>5)vTbpHhxkRmv(WO7_$}}&lusf&JSbY6E?PJa+$L)U_*LzW9M);# zhx80X0;I~AHPG)ii)T<&A;5(miSC~%?pwh`=P~qrn|My;3yIRu2-eMXI)~vVBp6WI zX?42Y&e0wyJN@QV`5Q{lg14ce(|tKUN<3{-qlZ%3;vreKlC~T=%rK#MJ@l>UgCGa2 z9X8NKbabwHqOvnvKb%HXQvlZn_`TVM`Jh-zquOjJVXlidK=*f;`(6JLsK)fC8-A6t zb0yhrb`ycH0TR)#tw;Ulybtj}&As*HXs3G^v;Di)I6tbkYmnq%SRis|o1WwoBaq>$ z@3~OvxEI$B0Tn^S-GbnGrXiFH5vI*Ud{;w#&a=B8BupV1uLo0-83S)@~?6R31SN3joYy@bA!kxbvR2k0S9sEAjO@v!1SAZo0eKtNAU6qcBH3<1DtT zJ|cX>R`tv^HT5Lgvh~1?REFzRSw*Vd8Hz+3`1AYKW(%x&phR=FdRpstpw^`;FqF3Nx!cl`Ig#rvpx;wT*4O69cT%)-H!P)Bm+^;w$`RaB7N9j1RJT- z{0=7|pM|OdGDKIMSr|JwDJaZOV6bdqAXtw`s@cZ;ZMY7L9Z-Y-@V%)gQg$d1LvaAg zCjCYijCq=Bm*CWBNIPqwm?`QPXVn%KL@Ml7hltQNY7oix>G&v?@eA>3sxfTEmXLQ1 z=75LJVSt*-c+3ORGFV;w{WEz9u zp#2C0T*UMB>Hgw^sz=I}m&lf>*t3jRP`gXJ^8Lcv-1tp&() z+I3k5g(}8yy?#P9k<;{_sv+b{2ZQIXTCoDNjML5Ix_<pIkxmxjWX?hz{?y75*+1{za|Pd~E=b^UoP%<|`F zncos_n^rO9xF)f~G?{Osp;|WXY`uIgK#L#)JB~HAb-%097IVaEs|d;`I$8 zX50Z2X2f-_X@+nD%ZK1MusQ^;#LST;eBDfxRUb06&NQ@$Z$ME3Mr_$T=ymtbG~0U{ zO5AWM)4x#<%&$Dt5$Gwd`k>o_bt_a+@JpbgS`J%5r-Y80VjdQ}=_aY? zHjHgL}DkL#_8AqxSF2#sRj%#9gv z&>0`{Y%DI3e>qDv74&pn87R&-kNHpu;MEW zfX^`ji@3r;qxXR|Xm~VSZ^k3Waf#|iHv%WEOK#HwXDz|1G*rDqvLKHM?h_`6l2aP? z*)Bb~I0*~E=o2NCGgUjek^u!}$k)4)v&L;Qgzr$zaM{D}9)VRnvF4<`=?=9XJU!Rx zKoW*ImXMc{(%HHNj`ZCM+~S5fh63&{#(frx`4X9Kl?4bj#j?Uu%Mu zgtX<|I8)?wv_3TTx5`p2r6BxqJIOlph^UApCENiD4$Oh&qGtU2(6bq$)%?d%Dp z0f3C<)bK}L)CTqFboMKm6RC%0!eCAznm{G67YdO2=S;<9{l!dYZ2;~amTp8^t`|^D z2bje{5CPH1^;kLdEo!%bv>AnTPS^Kg`GUM7E>Flj#nTUGJG9;_>!xRJ$J3DE%o}WK8c=!wUeI@qYSru45tq8O z4nxidsTBA+ND5?aS5DixrbjH9&NpGl1*{E-VT(3{!OU=zD0V?P0agJ4;I15=#_ovx z9-`WCEtE*mmmajXlx&t;Su{$UxL58r(VJrQ)|xXLha2;+g!B!TaBxvp3|B?J#ysuG z5ewt5gQ|wy0iY1<>xWw@IY6NSzqHEs7&Kc?nFB5U2P;kiBq@tc(8E%&5^fCOhw=yb zTS^w-htxP&4GpMOum+ogJoF|EB)(O$CqQCvs5idqyP!4H4@du+d{XyAOqOShj}kA97ewAR4X%+2Fbq zT1#cP86z7)O}S7%Tm{Mfa1*Vo0Ya*Z%^9mPGs1mFkahsX#T^N-TnREhK0Koatq#L_ zEFf-(9Ch3m0H*rt;l>5nI)G^trPo7PFA%k8xZRr)V!&D^Y!};%Ev;~HaJaEMTeE(9 znffg(1684_T7&A(RMYRz5&=-By_f?cCHx(uw7J=43kr=#hMVCBlv7V1!<+zxhQ7Nu znBjM~sX|N7Z_Q$j{xCG%(5S*r6RJ-_`Du72<&#ZVYUyHa8A`F}uL1kb|zPHDLQT6r&;Ihg1TaLwTq-C4Z0AWn5CzKM$%f{^7^S1@dhwp4e^b zVK|-iYQP)p_wZ&GH;6&)d1L_0K~mi9d!4oi+nT-S4qBdfy?52s`>wur-?dkHuygwA zsSPje47^&k?N#g5g}&EsG!De4?}GR<@&HE7G9c1{Hdj21~`HmS{)f%eLwh6jGzCV zIDF+2z7POg_h}35QZNUc_GYTX4c6KOCX%N#X}Lk}CI|I_TxX5I4{)^(Hg%aluo@0o z8nsyuYajc-&|p6-EMUv>3T*VA=vQIU0(L(KKJ*wog8xjTl-HvU3$+wC)=GsOR`xys zd02064|o2^Kr2#?z3`LXUV}}Bn9%x=zzt?->KZpH4JQ?C9FX%`5fi&clwet#;ei+U zEl?{T6$+I^jfyZnu9b;;?QK+x_3ra~um+AfqW1zQ=y)Pq@?-{dp;n|8vRE!@F@qH$ z!q=c2U#^51d_P3@UZarl359RH!Y zc>=FE;ot}G9umK6LJE4g9*Z|~-ReRk9YFh>53M@EOMn%@{J0Ghj23^$M! zfN`~8#d){^B7qr)REJ-Vkm9Lg zC^QwZO9Y=qVU^PS_TPIa1c*-815RMY!~^#ut#lHuVW(G}HUtt$c9czrnr0=SJ{=MuvD1d5HD zs5Tkl=+bRPiC)9s_$gdY%YU-ZfL#UGYqhl1{jO+SHXB?t#G4 zJqn8wlit3C#eGQ8JF2VCQO@f zb5QGn5)_o8j={u)ROkG}k*i?}{hN?0)tp4|A2GU^k?7|4v#LLpqWKsWGGtOR`i7vJ-W>rC<|~9m0!#v$UQu zTulQRo(eboW9V_3SbD?fxNZfP>p?rj%S_yUXJ1*{vAW!rSeha8UZuHyYe;eb9|tOB zMMun08gneKHDXIIouQSHfDtWJ@onKvLLZ;$k=8B28&~wQ-5&8Lti$w|szUo3b5S0X z=cd7a5K83i<{V~lH=5Y#Y>-pJslv;<_E^>3%tIznxK>(UaUrj1_F!00T3!P-4ORN! z9@G<&hfl*L32b;%JP0Dm@3pFo`w$jEDhX)|;1w}3B41w_H6vhS50@|tijUwh4*H=e zCT6t}(4-~=fS&>gck=N8DD+hzn{ej+%=@t#BMi%f zE5ywB3Mb~?-9>Mq16xB-4e|bqKqcoCMusF^X9*Pj3sGY7eXT17oe}4dugL~~5D63V zJw;d&7x-W%91AN_L-t4)M0Pi8#2okVR6PPnICY9mw71X?%{~v_&G70M-*7RmeeCmg5wE*$ zn)Gf^eTg^1_j$UBx9g^xAj=SbLPAEl7mR7}hjFH2JVb~e`PMn-XQih)k$B1Dx&I#~ z(2uc@;mV`Q@cm;*lX7Mpy=x0x;kkkbF9XLKd>{NHecA^#vG=({9o}6+AhDEAh7>Rg znsHcE1y#XePk#eFjRJi+Iq#7hM{;av%G(W!E&T1HGl0IWkwO2uXQFIXoBAWdR1v+P__p# z!pq4hOtCd92JQ~mipULlysg+v!IQ8J9G8M-2dx&(K|llE0K0qWO$FGZ6kLEK#oJH7 z)=zq1T1sZ#gHu8P)Y3HJBz_YgX&0xoPuL!<%Y|2%^psSbBxJ|UxJ`5)Ra3}9_B|}v zepsoh^tBVRA@_zAWJC`ogiyX4O8K^9;Ul_}U?uQmC62+>NZ3va*UH&ohH`B}_c6}6 z5^RL7L`4JY0+3$7s~jA5Ot+yum|l7`woj$=D)Qd1@o`SVeSQ&;VzITlWyRVux503GHA3|nTZL1&3 z{jO&HlJe@Y_r{d@1&n!aOEJnESw#zrd8}IC%ot((4e;tt3tozX7t&*bgIY+WhRJOt zG4hZ+rC4_>;C?)bNBJs|vYFdVzTI-=yMW{*b?= z9&J9KU4-$2GK$^!xExxYfz7mHbw$0RJqe5UAkf|x^vz`b1a_zmxjbDCjD#hQ{C?;un@g7V@i-1q&tEQ2b{I*7CSDG! z!2|%x(1IIQfU`pKBmBv59c<`~((3!wZ6@irvW^N%+GzDpBH<8osMRkI4fj%b2NzYC z+%4`E>54rfB|RpDca$px6QPW{troiStI$(Hbwk0H zrfzarMbzzX44tkM)wh|X|D;?=8+H35B%DIsF28TkMwc(jWw0-+)x#Z7SR}(WYY6kW zE)AP>H*AR0xnU(O4NZa4f%HFPB73S_kwq!z8ljwjPMVb?S1`U1r=c|El*0-ur-Q&o zZ>yO_8IrT+2?zIgrB~*HU&HkJay;t?AbhW~+pE}M&lEzuc^{4?twVWkXLN%pMI*9K zm&nw+U<}cba?UX3)#L2edW{$m~mXDb(iU$B9te%6rbv<-2~`llx2;nay8uU+9zxzg|e33^B|cp zm8=LR^vpVbbTe?LD_OzWXm&f|&F*}76ji(ug@v8?>zAOoJiMyI)zGR}!d7SHH(s?A zT!f@fce#Tl0m+dmXIWDq)N3ntqJ0Wvn3n*xg3}^j1I?Ou}iH0?j*pLTjc;Q<& zYlVN0sS`C`9t==E6Hud~{VBl_{FBPC_TTN!9`W`ZY*lH)@*bY5czn27-QGhBe{g4` ze5n531}$V^ucsSrX?N5;)eb3PfAWR4C1n%u1fOptY{gN`x3oHqDSAFzY+l#OaeKEj z|J+0O983tN__8O|X>?4Ldj{nix27}|LwTGb_Ue(nS8%uKL5LcYUO4uCC=`3IF)Lt# zT)b<-Q8AbB12zdtYz#-@mx(oiY zeD!ckNc&ZKR0;NkTCP(qRg>VFku4|zGCyRZ`8bYChY_yyF`@~c1;0tuQpCTxzcB?(UqMRZTBCW`GX_;fBn9(yCGccobF=;<6K*v4_*UmTGt7gemoN0dS z2TZ0@Y#8anMuJRDLGubEOa)D&%n(7s^>e)tAeM_xoq=rwzBtR7R}XYUxpcN3OA>Tm zN=!Rv@$^;|alOhR+T^<1+p`DPN4;C_Ie2?m!O=Eup||qyp%YFge#CdDZ(nR!jolu7-v*LXbXd$1F_u+PL&ns z2&#`SgxFsz#H>Un2B2;-)@Kt25tqCqXklHmUM1GEkg)eC2=E*6mW4pIxYfnpx)U^@ zH`>4;mNwxNO0O2X7BFrEde?&VKeSK5nV|3sN{RC$av<-i$KM#*rZ@Umd$TG&o3JGM zPC!n`W^7kXqPRWtgh>*&qKJvaej*Xv2LH2CbECVVCAi_uBEW^6!o7FwKXhAWuW*p} z8m^Lx2@{o5CeWY6;g=WNjPbukNF&<#@nKxA@y73mcvL3MoSeGJxO_)Ke_4!F&bhJk zUn4HFkg)AMcq#lmYUfdmoxcm&_&)e2oq5|+5H|0`8HhFS(Z9M9%{!9{vx!RTppbq4 zNal%(vF{wCcot3@xriI`j>4=IVt$jYa3dL^T@y5l3X#Z=-c8&`$1sO-JAIeU;CGPO z@*Iju?EV=EXG!eB{`PuQO?th<@4`VGbgTxhXv@RG)H@$^Scd>6a_=MaFS)5ODQ$pH zK9wjXf)q5j6F@jyy+o>q(J&PBa%C3Yv|PkFL@LrJU_2tM#0GQJrFMn!JJvy+NKNs2tJA_==~|>|_y)<15fqO7Rsr7%`hucuj*B z6LJtX%a^?T74`}621*R|ipcCnE?>SBW7?xwV>^zj`%-=Ny>N9rc#Qsi8U6cx^zY;J z@5|}m@5g`TjGWM=#@l07S_BNwu;6%Y+$Nsr#UBatqu#(PX=l&VwF8f#~N!pSr;FF!X4}I@UkpEsxp&al?yLHo}XwK zygoIeEsJv>a9P&N5;4yL=oxRxWoK3+-uZTXUj38o_)Ldvu%>W|*c@7bQRlIOyeo$d}txG=RexjUsCq82DEw<9VlZ(&-V zut1q%bD=a;lLqomL>g#~BsP?#-NiPEGNm+d4_;9kNLMFS8n_$29EmwlLc*uFmR%5& z=}8jf+)8$uQ9nIk6?`f|ID}8A5wRkWzRP0I?KpYaN?%37^385{!w1Sud^Gd1k$#mq zej)8MbOV89-2$sj29rpktGiBuzJKMo$un z3~NTLZqKxgJz+9@f4MR=n)Y5KTtw4KujqfeBv$Q;e#UJh(G`7+83|iPJ^_!xLks;wy46Vk-JP=y6rbLD)b!p1Fj5LQ+Mav}R;QA6p41ci{%OA}B{!Cl!>Ngw*VA ze98OHdKxr$VLY0XRK^MD&Sd$y9=1vzT}-#ZaHkpxhh{%ufoUJkrOtP`I>uOA5oC9r z+uiWN(vh8-8iTCDW!%!iT?Avn9mwnn19#Tjla^MDcr74;jd*-_74TOozMDpY5x$#) zD?2<5Z3R{kFU~w1lxIzZKpxj%M_TI>P+kV)FMBl(nRg-_vNe*}P?WZ|b_|)I+S(#s zkwd1dlgc4q2g>;(*sL^%$H9@|-rDS@am`o6yJm;pIGwb|oV3%msUo@V`t&H?x#Ny* z!d&JAZa7oA3wPvby$?BdXCA>~@Keb433KKbBrDmdvRwp2@oxP%a9XNc z|4kGfx%Cgg6?5y+>a867Xw!0By){k3)xQQiAGfRLod{QNjij)v{}W__T>U5Uid;Qi zom8&=M%&$~!^dug!O$rB?~-XW2QCs!1GnNyJerYyYOu0vB#eXPJ{0t_a`j=TpAsJ!m2$2T}1E| zABO${7%nvoZ9NqvNMYz~xME=_QRh`ON^OKrP_pJu1f{PqRZhYm;e~-&zQ}}?e08R$ z+U7soY1QF9fTMIwE#*-gdetNF5iD%nmuEhT<3MNe^Lp?RPEz(34{9h)QVKVn*YM7!1Xv-N(G*dSCk6SRjH|f z5fTQf{rrR%^WtCLF9Xpjcvq{Clm+$e8j%AiT4@8n_CFb-@p-N@RNW?_y{%z>xskb# znK?X$udluT-PZT?8{)t(_%>JAlhl z!|D+f8->-E!4(Uuu1c#|nruQ&0JWw@xa{X*r#d(!1<>>^$|>OSPJ}DBMpD?7zYduo zSN?juB3DjVrMhyh3S)BP&r)v9&L8fsb`SgYl(;VL<%mSWX&rpoJLZ!Il>^&Zn?@69 zCxw>t6MxC$%!sxu=)9eo+1P{5&$`{6fazNvj2FRc@NVS)ghikTd=qKXqry=HXW9oj z;pnG;TNijRDmjt^yUg8y?JuMA;8zF z&iE~#ARnT^K@Z=0wO>kJwqBW^`7)DIDnFAB>%A2T3yTu-@u#e(f>@7Fu1F9p4Je!- z{4)-g5`=%jD@qXPs?-D_&_Ws?*4rNypdM%o9Zi`gTsH#x+0M!$ojOsN9}m2V8&-}~ z;R+Wc#86L47Iu!93+@m`wq}OBZKLh(QWh7 zwiS*j4M*@6pEOJW)1@X2*P#?CX}AflSkf?3|5e(M$vBM&uR|Jm@KO3KDH#uGHM( z9VjizE#3!LEVs~hu5t+LrA5gbB=SzKV98(P3Jcgpnq0wsX>q5iGC+^8M6BLWjC`SN zWNT(RA7#Tz<*-tP=P|n>A=3}B!NUqe+{=j>-W;>fjAjnse!xWd1vZMpA~f%feHIDR zdt*kM@b#zA#~960Z@4`59NRN{757{?Ity9_Ms++o9GR}wjGsYR3Bm`xa;MDX#UC+= z{X@ADGsnLE9S{ZqQM_=@e8z{y0{J|}zaSPq_SGCjXP4ykUB>4ro8o(ni%Y2vcwPa7 zvqdEP6|{_R>IG|%4eQ`n^pOcK>B&h53l84bWBL((fA73;2}_PA_Tbly>zS1)-;=T16@ zgv_2Vo_~eIYSOEhWJe=ky~I`m&_9k>1nB9iR6wtD;xTO$xB?>oEuGe2zMbav9xtZa zuZfHk(4VV}uQ#RptJG-h+6TFNtk>(dJQ`W|nZ>?2yT2*|=-=daH+(_4YaW&WG(HSN z`n5uiT0~(mAATN&@!{v>W7SP2-(PhZ);b>N&N6(!>z9ChwnQlby8nCuVlmJ?V!nf) zLy_pIS?=?OIJ_0UVAO7c2rl#_I!^obz+S1~{j(@90`GqgR}8#cR;}Rs8BuN{0>E3d zAi(Auu$z1U{*O6;@AW$iFX(jZy;}zT&g^XXYa1JGUi9kzY<1A;PkOXB-1Cq1yVY91 z=UsK>rD_X#qdC{`X1o3)1HWBc^akxFTzN;4F5HH1T2<9Y(WksSXK5ROceL6DBK79% ztlx$2hXT%P`L%wt)1JhQ=Zjvi(HXSr1pfvL-l6a~yPXBU+h5dffz0~98*|J({WY6( zo{q%1rvwD2H@J`8sSBO`OE&xyRUr8;8%1FungYqcB4H|!7;8oRpSnQO51V3Tw$-Wj z^(V6Mu{5b#q^-t$FU#w6<(K5@^{(IRVKY22mToHZajPj?Lc>ul1(b50GELpO*>+Eb zg=}gn8-Z|aO$8qsr^tIvUsG8_Qs>;tdyL0R6MD;Gjpjo-7ZHzHNEE53>_Rpyq>W)K zp`Kz-Kp5F3%0Cv_j{emP?}wddl_h)wh|#+g1jPSDB(mt0 z9EAbI+=X)s%ON2Hho$t@rnR3U7b{b7+1IP_2)EjIPO?k zNn)H}cn8aBX~35+G~uK02~ZeUwy-7lyZSD((^udW>g1PeVT^hgfx(Zv-Hl;ENieUG zmIH!?1hse^5X_&;Z)0w&`@Pz9uQ@l3$#S*d>4v@!x$<&NksLJq%|!jp_joMP$XK3mK(0~m3GqT5i9KxJZSxLB>z%iu2iu8DU=q0^)JE|1MAxJD5%a$ z5#-b&fVw4rq2iBW7ur{WvR@MWCE@Ub>2(~alh_nGGIh;DoHp{|g&MVG$bG`E4Xj zu+!*XCfIowd0Ve?FGT1UKSXG=*5=1V6d?~=;ubTe3lsXv z5+9^78QgdQahQcf5!`q&vSHyy^q>j2QHnpjyuI?pTwd@u6V|?Q2`g?q@U2CAE5*u( z_;~IZ^LRuO7FwoG)XrF3J^EMA$ZzLtl9GCIf_N6(ye6|oJGdF$V?o^fEh3S{t{mLV zV-WW*IV5CoGfywVaUcmdUk9=sjhnHRz|B8^SA?7C>ZHQW*Fs`&d(&^#Z}s8ankKF> zq=C@8<5!eJ)W(UXFJovr)Ny52vSo$d@RsrIF8AEYMKxds{$n`zI*H}#8)Fwm0QZl$ z-3=cuecd@E$%Mm1)+r%tv4zpM+aio<-4^7y&21*|-*6?MVNs00vmo1F0rI6SME_y| zVll`zLIHxeqexB|vbByMiLj;-AUA>?J)4gAe(P3M=9?cx%)bo@Q9+Us>{O+qtAn*gQd7WO8rL2Cmi<2+%bV7}mQnHWMVRu2-#2N;1%x$K2r){;Zx3HiL5Z?lXV}Uq6G(Lm(ngNKT0F@xbdi83$#W<`a z^c5Fm6Sh+rAbu%vn1w_UAbvTrVF7XU@(Dm(ia!Lzg9~ukmm%NKH|qC~OImV3sdvP0 z2`N9HXXh!K^5>0Y@~`lj%wlNhfQ|Qq|a)Sy!B@1_qmgRgHfo5?P#-Q`O)RojdCs5;9c{o;il2YEo5$ z3~A){cx)xA8gIiZs%p^HNmbQ&I;6M<@OUO%j5<`EUugM8`<&eb2iVfvp8_>R(-KK37rtgauFw?9RY&P!sejPs0MCBLi9ez#JNH8sYgog%ndi~a-hqaoc@Tvg33;-_) z%vO8wzlDWv=U5XqG~oS3989azIgG!nVx!)Cwbk-^6!FwXh^}9wmkp3yvks-4=IkQ= zz(2MCFBQN5#P$fN{y>9v2M&_M-4gtz+W!$=M&U7cydI3kC@s$hHzSmLg^T~$FIExWyvtooAcC(&PZ`fds zjKv%K0W;a3!`alyJy*yW|5>E2@HV%*vOl0~i$H_V@Cyv9n)TSyf&DC8DX^cBJH{JK zpzn7%)Tl8=pjkFcya&jaRtI=j0b((AfQShW-iad7Q?cBy0azcBwp3#T_K#pg&!Xd} ze**X`75je$1xDEa@8ODVlCTX~;eG2v(uTtbjBihbKo&oR9ck-_tT6ri0MFsL9-(+= z(5Ic+O@P1fa?hgth8sR2fU6oDZ318hAdjDQGiFHUR2o%gliy}+rgC!WHZ7F=?RPVK zsthWo>0504Ckg z;xY?~A~@`6$cBZ((0L}{FnbEZI4p4nVsY5$Uu_PlCYy$&pF2S(3w$~&^E5c{32n3> zd^#oXC=7h!j*uHh4hb3f!~DuotSF{g7=y($Bd;8K#-`vGT$$*c zK4uECAhVwV@}(iOpDsWw2AM^uMDSB65WWraM)@ zNQYTV{tU8Xxze8qrTtUJ#fd_$-)5sIEK7r2zlDSexf*lLgj}D^BBNJnw#5l+aC-)< z2=*GltL`${A~T$89)UGXvJrY2UIkMZ+=fCSD+h<3F~wVdn(b!_3(G*>H9$BP^5R3| z-FUC*A@3<5KP3@?cj*q}?}CJ$;?jUrVE0_&FAIqxVAn%7EU=4_C;{x+!ViPpMA^rJ z-O<0=onDLC3?)%^f_oMmyejhyIXDc5O*G z_!^MyXdH~K1P-p_72#mII;n6l9tD066}!`HZ%#N0To4&2^5sW?%R!Gk{|pZYmSbaa z!@AEb_A#7Hottufj8XI==yuWVZVac!DgkJG6o$2H`6*{X7|({DSArjdvm0!{JL|9{5SX|W-(8Yi=; z@NS63;OPh@3|@mG(fYF7c$yyyCe?QYkdEL&tC%DEKCo9Rkp6v?7Xj%%fhz{2Emxxu zG(VqQ`m%^)&#YMxDC7usquo;`=$vOk5{@;71IoRUmpLP;GB5mj#%3xnoDMRU|Ct5u zTg5DWh7JEjVa2brQ4|)U!HR!}gb6De{mg_F4-nvEN27J*iaTzO7f+Y(Y_wIU+eTGb zPzERd2M8(_C*nh6%DmU~I5FMXXlIqnp;;C^9SCPD6&FE@JCF?vDWa=QK#EfQ;a9S6 zz!$k^piB>Ek`X2hAC7kAxTF;`pyxUR3Z0I2%l;2MudJH$V)k_Kfb9FG>FHcq&`hwa%7bzH%(23TLWNmy*gvyei+=5@`e z2F%W1pWXWvf#gHCyD^-S=7>aNtuQusz6hdXR~V$nHVnh!*oNfQou_Ove$JJSMppIRyot`3Y(vj-xgUTN5Pk*>UVRABz6(_8~0gOvv>AyD`T+*PpRT z=gCl<=ZY$)NjGEOqb>iuw~$WrE!1CRe4MD_!auT66qcqbE_?$CQ*ptVErRI(7eDtk zafa=u3Jcj3CQbpuv4shIXuKouHGN?s?VGdbCG?iVEKO-*2l1GNM3K_O1;~a~n!t#b zP@1qOAiRj3DF0aCJ^EM6^|`O4kvK_37F@m}^Nc#U9KB0HT>ke&B8y(hQ5am#T{yR} z91=3PoF_J6H=2aYuL9YQ#^u;b;PM%~B3w>aCmk-ozgvZaYuj_;e6Lj7zY}nIh}t-D z`6UdOhdQo|To1>@I`ktKj)xntJnE%5^E!Fv${S-9Md0{Rx4SXG@i4~*&xPT5Xeqq> zrSdnp3~NjlBi}4b<*xX;m~)#{9|w;G9IVXm+?d$sUy$s631bU_;^@qBFqnemNAja52srrFCWi_ z=7{6jPcuGXGUj5w>Aio((~c=m6Q zFyUFFhMDl}{qAD9_`Z-3M5fTq$_eA}S z#qOhjb#n2!5cf%H89R9^&{)!ePkZkko|i{g*oR%FHr%lQ#ks>jM~ z!pium7Ka>zvnR}KUz^>j6#?H*y4?+5So-1FN?Ix}gy%|BZ z8^MR3M#odX5*REM#eN(mMkw~vaK%t8vttEc&te5U#bXq1wdO+L)>mOy`EctS`1{59 zLUXHAgQH;KP-=WBn#O^k6_2v=n*AOe7Yp#IU2W01)Pp`X6~{c&$uGSr@7|VQg?FmK zjlmD_x3G1$Rjt9{(ha{0uUtbPaNzVDATh52?@dF4qunN)JzcHU{9Z5gLGAyF17xoE zOHBAYABb}nQ8gxM*=GHC{0>!U&*vEfCkkkPlZ~RV7!A<=Iua(JZR`etWa@?ED`(l! zTf!ph`Uto-6cp5{=)wY2NOIm-4t^5H!nPQPBF~z$Y)dXI1%sYf0^wNnj1P_f;Jv0t z&+6bU#-O^%OlC(ye>qIXAm}rR%Pb^{An0?E4GTe|pHD#0_7sHiVd4zL;=|Fux+sOV zvZ+ZT>BP(|`0qbJIN6dO2mhfZ7sP*mmvv{*E134=%Y5~mQg z3fRt~t=l3DCEXU}t<7yF^4GaC(1;{P%-@D9hA^YeUqMal!%15(TMYo*s4%t_sQ=)yfTM)T1l@#$%iSL4TvTJRNVZKh;mxv4OV{2j(dDkqq3 zwR9O>o0yOfGfqwvjQb)RMPYdw8233OOfb%-N+6sq3Kju@Ymp5L1fnZW0D<-tgh629 z48(%K(Z4!Ss**ERP3qhUfLY+;-;k>2(1XYImuS#q6oiZaC+{c>T;y(_6)CJy~mh`>4V(ojDV`=OE=G6zsY z-H72V#(Il@$Z5B`VPpItQhjGY3CYBGVR=Ns@;>-zY~RyaU73N0BdW#AQljCBFl++YDtZG;qG5D6{1 zjjI#pI(~!+fjh+**O3l-ExSVyllmscPXYj|jCIHA|7OD|ELMZS-j0L`ff;>HL}1UJ zhzo4D#XJdq6nv(Ae&DTTfHvisi{i51FITb#mwgln$Ko=4XnX~q&vD?gKTGH@hglk2 z_C?|{3yC7Q?90f8h0D<6C*U%B3c|Q7aRy>>+2~*G&4|nRCZ#0$Ie-Q2J9q@lFZfXA zd6EI|RND3Bseoi>5^luPN+~@ZP-F9d#Lf>UG*eTc4 zOeWSs!dWu0a9VXes^&t6w(`L~zII={^z2zx?LM^VH`LOLL>SzO=BC1=^mw^aGI8v& zyn1dl3d$SmO!esd4<;u`#+K(dPBAT{cYMI&fpbI6H`0z$vcS8P@ zr#-)35~~G*&rpvnLj?L|QYCq?Xod5H&$8zLB&7AaB*;nreges5iqUp`C9j}DXOAWc zDn~RjzTy{YcCrXY#zf;Q&{RtC6*(9&%MH8;!IRh=gw1jTFIk0sLeg>rWp-=ft=mSY zzT`)ia2hYC{7)=5{3og|EjQ5Bc$OOq$>KM$vd57^@E3Sb6=!3pSB9$=7MF%=#BPRI zQEWU1NIiZvkF&*yrgc-maT&g43i$5QnlK zh+WM-i{F>wJje0$@z4-fdWxcqCLVYFQwhZ4JlyA?kHl|kd<+^0Y>#8j=I5Mcjt^>L z7rA2{KCg`R95%bw3uJ#866PkReO$1iXKco9aR;uoFhzk|KpOlP!I|F0krM6AXRP~I7U;m44R&frv zS*OTpN@S(xHj~a=cIjlk02JaH#Wi(hAe!U7kq<5z~qSK+=xMIFX)K+ ze4tl+ITx~%o#<_FbYd;{H}DGod}1lMNIjDCZ`NQfZz&XFC;m*wT(G+I8(4ST3`?lJ zecrx>#eI|o?0Z3kMAT{32xMC8+;fE+m3#% z7#8pTqY2%|sB|UR2wjQnb=|_^o}>g;N`8fQ@gIc#GVaG)3zgn_r?wQVz>Ep&zV*&L z)Tow%KL%o^F07KNsKW8lYPY>~Jh%YIK`OEnuY}qlGfFmcy#I#Y4fEnL<{v`waQd?) zP;!X+)zIMo;uMO|FKE6KZ`jHls`x#42pr)pxQQBydhp?4S@Y}3J+5AdHo5k!SAK=& zY}iK|1;nO-ed08$yQ}?LV^UmCdUTT2q}OV;4^P4_*miw?yM6#abS(Z-M?Bq1UrFxz zwa)y!54#Zjer>}(EO9B)VvCLH4}tqN5j-h-XDv+`wRB!L?lpi6l1QVu+{ zpP}dZQ*%?^MSJ$Bx0x@(E~jLBczYRo7{EyS#4;TD*l$)_O-u%@s^^p(q8QBq7=>P; zf_=bF+#?#rrREHWihoQ|{ zIU*kFXGX79BdIg zT3wuaF8pzCwRX5V2TqgTWw^;CD_Khn7r2b-ye~$sL532;IY1r~vX@{qK3x}A76$EF ze?aF=EO7_|c!=pj7#~e#AMSAF!csKgkS=2qY0`cPIohl;yfOQra>$UtY+8L_wu5Y$ zl!DuiliO$6MJr^PXZ$N~{Y3}ajmZ4!MkbT$mtN`}h$$W5Wa zOQ4Zd2?I7PCWMZxMy~AqEIrtG<}IDpV7?89r*!a875KoCceK;3!;vd^mP*H)@jabZ z`E|%%x}CvXL*z=_EDBL#x=~~7aNUTr|AcpUbYeT4f~>y>VF}VO$oEDEC6)v~%ti$c zq=XYgSG&uwtMA7xDNG*6SkHy!Vb)&EQvoG$_X@?ddH7p(c1Nc7AiLNA+D2VNJx%6^OGeFJDeq2lW~f$ z?rX_AMAM{10%Uu0pVos4<{lh& z`)g(Fk*iV^x69PP+6U|wyfhBie?)n zcXA`zGVixHhwi1yxF^$R+{RN0F-@{DEoZ)cE9*I(B_>G2Z7)!T8fSu$9!AYM_XO;;yX zragJv-TUu6kh*-HRH-0Jt+s1$m(C&pq4Z3-g>@0ONGT@((X-2 zn9}a`comy=hk{o)@AmM=sq$_~h)wpTC2?0I@m364nKv3)Lgsx@Nuzc$Z!;4z^S%Ij z%9Yrf%p2!9Hpxt~9FuuF!`i?EkZXV@^X9h2HQaHvSu$_#;DoMQUNBZDuwfbaOO<(J zLy>vE5U(inrmK@G^PW0z=PkD#gxCJlmbv){et0e{X^k`cJ|nuv*!+7!jY&Bw%0Kj7 z=8?KgwYfHqAqQ`}-IeoIpBNFT9A^2m@K?H=mYIdW9LVR$!rz!~OK9^7rWG%o+Y38yKJG7-yK2QJ7qOZ`xd3du}o9 zLS7$b!&=U4{7+fWg#}`=@h>1@%Emu~SFzc+)-V;y!uj~$1UD!nVj4i)@PXjat+YrLAHgGA0%kDUR=RyBof!{NlI~ zfy!%^KQn)x%W9dK`Q1Q1M`k{qV^kS3b2+N4nfZKm` zGJ*rxto_Z=H%uUBO=$l9y!x)2lP1ozLX2q z`&lXLeU9Ct#79$^{5+1PDthQ1P>jx$3yMnoC<3!pnUL)VQ|hW;Qlb24;`5s_}5 zf}Cl$lPN==e9@f;pYxpQTkpJYuj<@`<97!=A71M0c)jWoJdoG-=o{m_N|EiS%ui0U z0jKhlNf}3uyj?M?-hvT=dvku7DQV42`0)+`S}Im z59cNAZ5h>=xxg!O=wHIyj3x(9y~~`rD

08`N?p;Lm0~r!&U{ahL@BMkGuL_%rY- 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

{1G`$p<%!#IsPD{15qUp&%ufAxCz2njJ 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 Aw*UYD diff --git a/python/docs/_build/doctrees/index.doctree b/python/docs/_build/doctrees/index.doctree deleted file mode 100644 index 37ee69723148016fed69ea42362df4097d50a504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297408 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%0A$Xv>Jbc{ty&$ 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 ACIA2c diff --git a/python/docs/conf.py b/python/docs/conf.py index 6be49c6eb..e491980be 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -18,12 +18,13 @@ print(os.path.abspath('../zingg/')) # -- Project information ----------------------------------------------------- -project = 'Zingg' +project = 'Zingg Entity Resolution' copyright = '2024, Zingg.AI' author = 'Zingg.AI' # The full version, including alpha/beta/rc tags release = '0.4.0' +version = '0.4.0' # -- General configuration --------------------------------------------------- @@ -53,7 +54,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'classic' +html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, diff --git a/python/docs/index.rst b/python/docs/index.rst index f25596d00..914795720 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -3,50 +3,82 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to the documentation of Zingg Entity Resolution With Python package! +Zingg Entity Resolution Python Package ============================================================================ -Contents: + +Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML +(https://www.zingg.ai) + + +.. note:: + Requires python 3.6+; spark 3.5.0 + Otherwise, :py:func:`zingg.client.Zingg` cannot be executed + .. toctree:: :maxdepth: 3 - - zingg - -Zingg Python APIs for entity resolution, record linkage, data mastering and deduplication using ML -(https://www.zingg.ai) +Example API Usage +================= -requires python 3.6+; spark 3.5.0 -Otherwise, :py:func:`zingg.client.Zingg` cannot be executed +.. code:: python + :number-lines: -.. toctree:: - :maxdepth: 2 - + from zingg.client import * + from zingg.pipes import * -.. automodule:: zingg - :members: - :undoc-members: - :show-inheritance: + #build the arguments for zingg + args = Arguments() + #set field definitions + fname = FieldDefinition("fname", "string", MatchType.FUZZY) + lname = FieldDefinition("lname", "string", MatchType.FUZZY) + stNo = FieldDefinition("stNo", "string", MatchType.FUZZY) + add1 = FieldDefinition("add1","string", MatchType.FUZZY) + add2 = FieldDefinition("add2", "string", MatchType.FUZZY) + city = FieldDefinition("city", "string", MatchType.FUZZY) + areacode = FieldDefinition("areacode", "string", MatchType.FUZZY) + state = FieldDefinition("state", "string", MatchType.FUZZY) + dob = FieldDefinition("dob", "string", MatchType.FUZZY) + ssn = FieldDefinition("ssn", "string", MatchType.FUZZY) -.. automodule:: zingg.client - :members: - :undoc-members: - :show-inheritance: + fieldDefs = [fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] -.. automodule:: zingg.pipes - :members: - :undoc-members: - :show-inheritance: + args.setFieldDefinition(fieldDefs) + #set the modelid and the zingg dir + args.setModelId("100") + args.setZinggDir("models") + args.setNumPartitions(4) + args.setLabelDataSampleSize(0.5) -Indices and tables + #reading dataset into inputPipe and settint it up in 'args' + #below line should not be required if you are reading from in memory dataset + #in that case, replace df with input df + schema = "id string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" + inputPipe = CsvPipe("testFebrl", "examples/febrl/test.csv", schema) + args.setData(inputPipe) + outputPipe = CsvPipe("resultFebrl", "/tmp/febrlOutput") + + args.setOutput(outputPipe) + + options = ClientOptions([ClientOptions.PHASE,"match"]) + + #Zingg execution for the given phase + zingg = Zingg(args, options) + zingg.initAndExecute() + + +API Reference ================== +* :ref:`modindex` +Index +====== * :ref:`genindex` -* :ref:`modindex` -* :ref:`search` -.. note:: - This project is used by Zingg.AI +* :ref:`search` +.. meta:: + :description: Zingg Entity Resolution With Python and AI + :keywords: entity resolution, identity resolution, record linkage diff --git a/python/docs/zingg.rst b/python/docs/zingg.rst index 2e5369c2b..bbeef788a 100644 --- a/python/docs/zingg.rst +++ b/python/docs/zingg.rst @@ -1,9 +1,5 @@ Zingg Entity Resolution Package -============= - - -Contents ---------------- +================================ Zingg Python APIs for entity resolution, record linkage, data mastering and deduplication using ML (https://www.zingg.ai) @@ -12,7 +8,7 @@ requires python 3.6+; spark 3.5.0 Otherwise, :py:func:`zingg.client.Zingg` cannot be executed .. toctree:: - :maxdepth: 2 + :maxdepth: 3 .. automodule:: zingg diff --git a/python/zingg/client.py b/python/zingg/client.py index 3c748a978..fd1aeb6c9 100644 --- a/python/zingg/client.py +++ b/python/zingg/client.py @@ -365,7 +365,6 @@ class ZinggWithSpark(Zingg): :type options: ClientOptions """ - def __init__(self, args, options): self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) From 37d4989bf7420d75293bab231d2df559e73d92e2 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 21:30:06 +0530 Subject: [PATCH 03/36] added sphinx rtd theme requirement to py docs for readthedocs --- .readthedocs.yaml | 6 +++--- python/docs/requirements.txt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 python/docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 3a1089ff1..e6e682e71 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -30,6 +30,6 @@ sphinx: # Optional but recommended, declare the Python requirements required # to build your documentation # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -# python: -# install: -# - requirements: docs/requirements.txt +python: + install: + - requirements: docs/requirements.txt diff --git a/python/docs/requirements.txt b/python/docs/requirements.txt new file mode 100644 index 000000000..52b04f2ec --- /dev/null +++ b/python/docs/requirements.txt @@ -0,0 +1 @@ +sphinx_rtd_theme \ No newline at end of file From a4765bdba052d9e9f1cdf0e9d7bae9853013b43f Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 21:50:14 +0530 Subject: [PATCH 04/36] updated rtd yaml --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index e6e682e71..e5cc55118 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -32,4 +32,4 @@ sphinx: # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html python: install: - - requirements: docs/requirements.txt + - requirements: python/docs/requirements.txt From 2ee148ab52391f32ca17d81e1917dca12eb5c243 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 21:58:20 +0530 Subject: [PATCH 05/36] added py docs --- python/docs/_build/doctrees/environment.pickle | Bin 0 -> 635961 bytes python/docs/_build/doctrees/index.doctree | Bin 0 -> 10704 bytes python/docs/_build/doctrees/zingg.doctree | Bin 0 -> 296430 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 python/docs/_build/doctrees/environment.pickle create mode 100644 python/docs/_build/doctrees/index.doctree create mode 100644 python/docs/_build/doctrees/zingg.doctree diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..8ccd5ea676ab1d8747f151c4cfb0e1618d24b661 GIT binary patch literal 635961 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

F6>V79VF+Uffod$Ujy}Jn>x7E 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 literal 0 HcmV?d00001 diff --git a/python/docs/_build/doctrees/zingg.doctree b/python/docs/_build/doctrees/zingg.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4d5ef1240a23db39984ac416cde32cc560c5b3df GIT binary patch literal 296430 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 Date: Wed, 3 Jan 2024 22:05:47 +0530 Subject: [PATCH 06/36] moved examples below the index --- .../docs/_build/doctrees/environment.pickle | Bin 635961 -> 533566 bytes python/docs/_build/doctrees/index.doctree | Bin 10704 -> 10371 bytes python/docs/index.rst | 17 +++++++---------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle index 8ccd5ea676ab1d8747f151c4cfb0e1618d24b661..6c0e28602b7c4ea9cbd8e0475ce9fa6c60e1b7d6 100644 GIT binary patch literal 533566 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 literal 635961 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

F6>V79VF+Uffod$Ujy}Jn>x7E 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 XVtSq723D2vG3z!+-KNb|8exn8eVV)u delta 843 zcmZn;yb#RVz&iD)=0?_E+>;Z8%qHvd*f5H3zA5yThmmFSdHJNtw*?g^hbs6oicfyX z?ZcX-%*ennS)WH&FiQc*%23Q;&QQuw&QS68n4HCTAx*mWH`{T zKBY-nMnEB$UozN0KGeuEM-uB1gaku+Y92HgVBrAM)x(db0^$%v2u%ms3N)BM%LU2c ztm%`N@yW5w0SW;fhZ1Bn;X$?x9AstuVywPEe@_Jm8HhCz6l7A+AnOB}5061Vpr_0y z|Ks-*KLxcH)!I{&;{;?_&SSCm4BXnAKxKtwr+U}6Fi|ADO19?rbP+|-iFg4AMgqI}nx p1=7$7R@@0z*jbt(2uiQ7Gu*)DWPF4e0!sa0L$Yc&>#Bz_0swfJ`Ah%+ diff --git a/python/docs/index.rst b/python/docs/index.rst index 914795720..ca6307762 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -19,6 +19,13 @@ Zingg Python APIs for entity resolution, identity resolution, record linkage, da .. toctree:: :maxdepth: 3 + +API Reference +================== +* :ref:`modindex` +* :ref:`genindex` +* :ref:`search` + Example API Usage ================= @@ -68,16 +75,6 @@ Example API Usage zingg.initAndExecute() -API Reference -================== -* :ref:`modindex` - -Index -====== -* :ref:`genindex` - - -* :ref:`search` .. meta:: :description: Zingg Entity Resolution With Python and AI From 9771389adb5f64bbe38281ab6e9f1d1c84021a72 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 22:17:28 +0530 Subject: [PATCH 07/36] added zingg to the index.rst --- .../docs/_build/doctrees/environment.pickle | Bin 533566 -> 533605 bytes python/docs/_build/doctrees/index.doctree | Bin 10371 -> 10386 bytes python/docs/index.rst | 1 + 3 files changed, 1 insertion(+) diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle index 6c0e28602b7c4ea9cbd8e0475ce9fa6c60e1b7d6..d8e6b105f093f0aa3a3bf2506bdccbef9e112a9d 100644 GIT binary patch literal 533605 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 literal 533566 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 diff --git a/python/docs/_build/doctrees/index.doctree b/python/docs/_build/doctrees/index.doctree index db86f70dee06e7a375fe485019538c5ffd86d32b..aacb0eb1c34e290678cdb7273e51db35a45e424d 100644 GIT binary patch delta 620 zcmZn;oD|5?z&f>kBTFBbf?p47Rc2m#`joaQi9I}-dC57YDXD3hIjO}{Vy9$WPu#qi ztDBMW+hlznJ>Jh5iW$rqN*T%-D&CTlvv^`eco`WOGT4C%do>%U)K1aJV9ny4e2Yhx zk$3VB9yu0qpfpgY)Z`fgDjcF9wF+56lPB`aPp;>cU{sv^N5Ek630^T)DWEt%P+Xsp zd-6ekWhqXGQZ^6;x6-dPDT`}z0H2PQBS;+8R+vzh7*G!G7RSlU_~ckTfkNo6aD%%d z80?BNelb>Qpevk#;@Xo71X&pE3AyASzo&RP)Fr6amQRiokYTC8Vr?bd+BTrIF03*@ zD@#FEf?0(iD>-1EpS(cOT7U&)0VKqMft2xi@@v5`M#;$!x#cD&2${2NhuEPjn6(9@ z5FS?E@|$l8edS?1KKZZvQDs)&e9A)kl@=4H?Y2p&tOei LTQ=*ehcN;GTphEH delta 626 zcmbOf*c`~xz&f>JBTFBbU=L4bUUE)pN@`kWPHOR#*eRPgadk5?ewl2?qsRL(LotIn zLn%W!L&aNSawSiU2sa}GLk4^7l#E`@#woQ^G%{GTxF^5lk!9qb%+4#vA_|lS>Xe$i zTtJ0G7^GGqOJMQ>e)-9Lyb_G^leq;ACST_jW0eGo^8&@S!7R?n7x*dfYUKos0s zztW^Ej>++SIzILwaa5aOLRlg}Ik3 z69d6cY~>eYl>$1^5$r?|%a)K6c?CShOQB9gbx-N!Tmc!DDlFEP!>w%rTI<3p4Ya5j zD5lSt53-H}79x|^3t9^>feeR41u*n7K2H867{(|uIZ!B+Wh=yNUBRqPAVu)N^OoEE zLg*_G Date: Wed, 3 Jan 2024 22:23:29 +0530 Subject: [PATCH 08/36] added pandas dep for rtd --- python/docs/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python/docs/requirements.txt b/python/docs/requirements.txt index 52b04f2ec..de8aa1a15 100644 --- a/python/docs/requirements.txt +++ b/python/docs/requirements.txt @@ -1 +1,2 @@ -sphinx_rtd_theme \ No newline at end of file +sphinx_rtd_theme +pandas \ No newline at end of file From 9b8f0b217d70111bb611e083de60541933b1c4ce Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 3 Jan 2024 22:28:22 +0530 Subject: [PATCH 09/36] updated requirements to refer to py requirements.txt --- .readthedocs.yaml | 2 +- python/docs/requirements.txt | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 python/docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index e5cc55118..9a1fb7cfb 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -32,4 +32,4 @@ sphinx: # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html python: install: - - requirements: python/docs/requirements.txt + - requirements: python/requirements.txt diff --git a/python/docs/requirements.txt b/python/docs/requirements.txt deleted file mode 100644 index de8aa1a15..000000000 --- a/python/docs/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -sphinx_rtd_theme -pandas \ No newline at end of file From 1d46899ce44e15dcf90f16dea6b8872a2bc8fc81 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Thu, 4 Jan 2024 18:49:52 +0530 Subject: [PATCH 10/36] added __main__ to pkg to make sure it doesnt run when loaded --- .../docs/_build/doctrees/environment.pickle | Bin 533605 -> 35314 bytes python/docs/_build/doctrees/index.doctree | Bin 10386 -> 10040 bytes python/docs/_build/doctrees/zingg.doctree | Bin 296430 -> 6968 bytes python/docs/_build/markdown/index.md | 183 +++ python/docs/_build/markdown/zingg.md | 785 ++++++++++ python/docs/conf.py | 3 +- python/docs/index.rst | 5 - python/zingg/client.py | 1370 ++++++++--------- python/zingg/pipes.py | 439 +++--- 9 files changed, 1875 insertions(+), 910 deletions(-) create mode 100644 python/docs/_build/markdown/index.md create mode 100644 python/docs/_build/markdown/zingg.md diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle index d8e6b105f093f0aa3a3bf2506bdccbef9e112a9d..e7641c78c77993d02a78bcbc34987c18902a7986 100644 GIT binary patch literal 35314 zcmeHwX^_R{C4-^_hyWK4I6w$e79l|o{od=D?mKVe z>+Zn}Wy-Q8k{G!y(&kfTaV3tOs1jKvr&6g@Dyl3}MRqBc6Q@$PlS*W{k{|KE#QEon zN>09W&b__7Z59GfCB^yC{rc|r+_T+t&b{-6p|Aew<{tiw=KQAX)z=G7ea&k%>NTex zw4<3%gkH6BDV6kY`{d8JUvKB5{dTk2UW#&+MmcCXPQ`1rqeHrlFz~8{V$%-Xs#j`9 zqs41M>ngt5@1o+~g?2RbvhTEfy!}SquHyZgS6^9aN5jpHz-`pq(E&7z{NZAW27o4X zH-0;4zle0dRi+-@vAmme$K45c(w%arC9mA5FMDWgQjf-b4?is#@f5}yYfh`>RU98P z!dRRj`L$gBs2O4zakQ*deQM4 zRe+qj8Y?%N8!d0eMX9N?r_Vld%Hpzx3(o^;7^mC7I*lf2BQ2-u*gkq5I$e08aJn6h zU??>Cw!09`IP2wVSaE1A1E(bbac82jm)x*c@(UHL?pWdCH7szWg#Mf$P-J z;*6e4E2x;HDW@5hie=v~E_+qL{RW1~RWeDFoTO5PChK7hi&|W6v}$(12sq*c7Ch

?M%F!Ckm#U5OYCFnZ_WS@4rJOK2#GN-C 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 literal 533605 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 diff --git a/python/docs/_build/doctrees/index.doctree b/python/docs/_build/doctrees/index.doctree index aacb0eb1c34e290678cdb7273e51db35a45e424d..399dbb7c48f3e5bb6443c3e03e9ed775c5602788 100644 GIT binary patch delta 2508 zcmbVO?`s=n9N#s`U4C@7=`?F>yCk$Rm)ct#h(F52R$rB3s6&vcWxXVqesiYjamj71 zs8QI&!t=uVJR%$TR$q*Xk~e#^Hwyj(8-s$ceK7_)L>x@P?{i7+u33{7U);mp_r5d8?qp$&Z)}@l^&B z_)OuGz$dlJEJ#BRVldZc2N|;Tj=zPfJ`Y?Tj=`d%hK`FbB6&qjG-I&rkOyifqN$ZF zv%=sFZfFS&Em{SL5+Td3uumCx%4-9aX#-t-6*3@)A-jxWbD!x$@k3#ON>Vi-qgsVV zCFLoPYTfaZ%E9x}MUXITj4hZb#ozhE7%R-Rs5?!tbak_cz;4YpD$puL3)*O8Aw@ zer15HyY#d0tZ<9|7>4)K@I%Mh6Zq#wuO%|l*eo_oO;awJs$pm*Q+t8AzTdbfvDAtv z0lNz6cM+xOsl!>6@wLIQfszoUXS3}p34q9RC&P1H0y)08vXnfhl{IV`?2mS8d#P@f z{py9;X^5G=9kJ(nLN5)!HL=h&41e0D>h3qaKOAp%$Wap9*eq3QC2h-7hyNaE+_o*l zW#X$hN?2xiD!l3*E3-$4%){O+cp)d^Nfaz?78&f4ko~%$R%%R_Xe4^NdDY_-Z^UjX zK8C~^jirQ?{U5Fi0l!$dr zHH+W@xWM`M0sKGko!2iM5=1|MtDTbWI_3p)62W=*5WQY7Ise;7;O_x5Z>?74MoO$5o@k+rBf$)b@&|sj(-|3>c2_1BW9mkEQtT9-DkE zrhhXqPu}stA;}>W*Bl8xfLp(f?TA9OWyIeXlQI1U{={oZpZ!c9B@(`An4we2)O1?E z&Na37UCN`_4VX0XPlie zS*dP?s06N}z1M;dDn3^VVT&Knr4;oK@Tnj^h=_qe!8gHkXLojXH<@l9e7G}k&$+*I z&hLEO`@_=pm;KlLpMRA6%)c`1DlufChHu8e(A}c zS~Aygw9^#s=XT?(3=hB>f;9qb6xJ~^NB6vQCm9|mp)07msp|O(GqH#xSi)YMfHi?9 z@d=I^-hJbaa1QpLsjSJam?XSa+L*6sat@phX*#MP{cU7np6bM;e|mC4nvQ#?&VIle z+(0Q|N%)$^Lxmv`lScBh{cvX63VndS7#OTM(L3HgTJ#V+2fOC(z^YX$?==|e zC_fU)sU=M{%Tx-_j=9#fgm2O-;c4MldLxW4iTLMc5CZ^tuiGx^H`JV=Bb3_IWlcjm zle-DKd%zVt%XB4@@>?xMNhI}jv#B`AXW>j+_hf@W-b;^3R&1=wA2$`D78l*i!LO+Ox*bf%HjZ+SJx@J$j1 zq`X>^i)E%H=sSHgwR)R(oMO8+p8)9oL!lkyR`Wsmas6m-eI?xRI>3Jr{?XPPR3flN zPsYTWL+}FE;*IJMY;P&UAZyWX@4^%b6;QdG>`c=do_GYZ&p(XqML;^pwnK><*{|AU zx4dg7`xuaSrU!C6*{eX6(s99d^y4_%3E0=u?}%V>Lg^7 za|=1@Oo+V;2?;cCq4sOd+eo>}&-@?7U+qCcXF8%z@qgINhwWT@HpYNmvj=c{Hn{#< zz4g1ZfhTIsCxAWppp3d+5+tx@ZfqcU$OzMXfGa-Eob`0z9oLvm?e`;z$y$-mi{{jm zZA42TwF^d8XRX%?52bssjvhW(`{D_B3e3dEPD{%7+!NOv9x_Ok+pQBk?mCI@1cY?` z+ju_kRAV>;kM}^w{TW2RIWBrn<1_Tm@kC8j?mA>7;H-_`!ABfz$t7(Ar8qBUMJ^z? zikd7FTPT50vV{-1Z^Sm}u|twoQB57L8azpB;+!DT@5DESOnq4TLhwXA_1(m?f-qVC zW8#))X&>(?yWqZZi+_IOpZoAJNtnMrjjDz!)~j}Z$5Pv|RCY`p=TFW(yl9=n53EDV Q?fUOeE(-xjhPgKLA4a~haR2}S diff --git a/python/docs/_build/doctrees/zingg.doctree b/python/docs/_build/doctrees/zingg.doctree index 4d5ef1240a23db39984ac416cde32cc560c5b3df..205abbb8fb5526e0d9010cdfe7a3ba1d47574a4b 100644 GIT binary patch delta 434 zcmaFYEwsaot$}r_t~A3&HYT3wQ^c5SIh7e17)mp=GcHVjFV5^aJz1PNh{>37vS64F z8-Ip$mI34Tm*UJf7@3?vVg|g9K;;>7-ppXBX;REeOv;SYRiv1Wq@glQ882(6WW27O zk_9q3OBF~IZ&xp4Img7*#kl=@1VvAWbnK zLI_0ggNRTN5dGrs*47Sfntt_%LZfRjVUZD{?V0F!Zn$=a&{G fr%uVz2U^p^l9QR2I>nn27#Ud~7^iP-Ww8VR@{M~U literal 296430 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 + +# Zingg Entity Resolution Python Package + +Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML +([https://www.zingg.ai](https://www.zingg.ai)) + +#### NOTE +Requires python 3.6+; spark 3.5.0 +Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be executed + +* [Zingg Entity Resolution Package](zingg.md) + * [zingg.client](zingg.md#zingg-client) + * [`Arguments`](zingg.md#zingg.client.Arguments) + * [`Arguments.copyArgs()`](zingg.md#zingg.client.Arguments.copyArgs) + * [`Arguments.createArgumentsFromJSON()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSON) + * [`Arguments.createArgumentsFromJSONString()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSONString) + * [`Arguments.getArgs()`](zingg.md#zingg.client.Arguments.getArgs) + * [`Arguments.getModelId()`](zingg.md#zingg.client.Arguments.getModelId) + * [`Arguments.getZinggBaseModelDir()`](zingg.md#zingg.client.Arguments.getZinggBaseModelDir) + * [`Arguments.getZinggBaseTrainingDataDir()`](zingg.md#zingg.client.Arguments.getZinggBaseTrainingDataDir) + * [`Arguments.getZinggModelDir()`](zingg.md#zingg.client.Arguments.getZinggModelDir) + * [`Arguments.getZinggTrainingDataMarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataMarkedDir) + * [`Arguments.getZinggTrainingDataUnmarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataUnmarkedDir) + * [`Arguments.setArgs()`](zingg.md#zingg.client.Arguments.setArgs) + * [`Arguments.setColumn()`](zingg.md#zingg.client.Arguments.setColumn) + * [`Arguments.setData()`](zingg.md#zingg.client.Arguments.setData) + * [`Arguments.setFieldDefinition()`](zingg.md#zingg.client.Arguments.setFieldDefinition) + * [`Arguments.setLabelDataSampleSize()`](zingg.md#zingg.client.Arguments.setLabelDataSampleSize) + * [`Arguments.setModelId()`](zingg.md#zingg.client.Arguments.setModelId) + * [`Arguments.setNumPartitions()`](zingg.md#zingg.client.Arguments.setNumPartitions) + * [`Arguments.setOutput()`](zingg.md#zingg.client.Arguments.setOutput) + * [`Arguments.setStopWordsCutoff()`](zingg.md#zingg.client.Arguments.setStopWordsCutoff) + * [`Arguments.setTrainingSamples()`](zingg.md#zingg.client.Arguments.setTrainingSamples) + * [`Arguments.setZinggDir()`](zingg.md#zingg.client.Arguments.setZinggDir) + * [`Arguments.writeArgumentsToJSON()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSON) + * [`Arguments.writeArgumentsToJSONString()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSONString) + * [`ClientOptions`](zingg.md#zingg.client.ClientOptions) + * [`ClientOptions.COLUMN`](zingg.md#zingg.client.ClientOptions.COLUMN) + * [`ClientOptions.CONF`](zingg.md#zingg.client.ClientOptions.CONF) + * [`ClientOptions.EMAIL`](zingg.md#zingg.client.ClientOptions.EMAIL) + * [`ClientOptions.LICENSE`](zingg.md#zingg.client.ClientOptions.LICENSE) + * [`ClientOptions.LOCATION`](zingg.md#zingg.client.ClientOptions.LOCATION) + * [`ClientOptions.MODEL_ID`](zingg.md#zingg.client.ClientOptions.MODEL_ID) + * [`ClientOptions.PHASE`](zingg.md#zingg.client.ClientOptions.PHASE) + * [`ClientOptions.REMOTE`](zingg.md#zingg.client.ClientOptions.REMOTE) + * [`ClientOptions.ZINGG_DIR`](zingg.md#zingg.client.ClientOptions.ZINGG_DIR) + * [`ClientOptions.getClientOptions()`](zingg.md#zingg.client.ClientOptions.getClientOptions) + * [`ClientOptions.getConf()`](zingg.md#zingg.client.ClientOptions.getConf) + * [`ClientOptions.getLocation()`](zingg.md#zingg.client.ClientOptions.getLocation) + * [`ClientOptions.getOptionValue()`](zingg.md#zingg.client.ClientOptions.getOptionValue) + * [`ClientOptions.getPhase()`](zingg.md#zingg.client.ClientOptions.getPhase) + * [`ClientOptions.hasLocation()`](zingg.md#zingg.client.ClientOptions.hasLocation) + * [`ClientOptions.setOptionValue()`](zingg.md#zingg.client.ClientOptions.setOptionValue) + * [`ClientOptions.setPhase()`](zingg.md#zingg.client.ClientOptions.setPhase) + * [`FieldDefinition`](zingg.md#zingg.client.FieldDefinition) + * [`FieldDefinition.getFieldDefinition()`](zingg.md#zingg.client.FieldDefinition.getFieldDefinition) + * [`FieldDefinition.setStopWords()`](zingg.md#zingg.client.FieldDefinition.setStopWords) + * [`FieldDefinition.stringify()`](zingg.md#zingg.client.FieldDefinition.stringify) + * [`Zingg`](zingg.md#zingg.client.Zingg) + * [`Zingg.execute()`](zingg.md#zingg.client.Zingg.execute) + * [`Zingg.executeLabel()`](zingg.md#zingg.client.Zingg.executeLabel) + * [`Zingg.executeLabelUpdate()`](zingg.md#zingg.client.Zingg.executeLabelUpdate) + * [`Zingg.getArguments()`](zingg.md#zingg.client.Zingg.getArguments) + * [`Zingg.getMarkedRecords()`](zingg.md#zingg.client.Zingg.getMarkedRecords) + * [`Zingg.getMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMarkedRecordsStat) + * [`Zingg.getMatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMatchedMarkedRecordsStat) + * [`Zingg.getOptions()`](zingg.md#zingg.client.Zingg.getOptions) + * [`Zingg.getUnmarkedRecords()`](zingg.md#zingg.client.Zingg.getUnmarkedRecords) + * [`Zingg.getUnmatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnmatchedMarkedRecordsStat) + * [`Zingg.getUnsureMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnsureMarkedRecordsStat) + * [`Zingg.init()`](zingg.md#zingg.client.Zingg.init) + * [`Zingg.initAndExecute()`](zingg.md#zingg.client.Zingg.initAndExecute) + * [`Zingg.processRecordsCli()`](zingg.md#zingg.client.Zingg.processRecordsCli) + * [`Zingg.processRecordsCliLabelUpdate()`](zingg.md#zingg.client.Zingg.processRecordsCliLabelUpdate) + * [`Zingg.setArguments()`](zingg.md#zingg.client.Zingg.setArguments) + * [`Zingg.setOptions()`](zingg.md#zingg.client.Zingg.setOptions) + * [`Zingg.writeLabelledOutput()`](zingg.md#zingg.client.Zingg.writeLabelledOutput) + * [`Zingg.writeLabelledOutputFromPandas()`](zingg.md#zingg.client.Zingg.writeLabelledOutputFromPandas) + * [`ZinggWithSpark`](zingg.md#zingg.client.ZinggWithSpark) + * [`getDfFromDs()`](zingg.md#zingg.client.getDfFromDs) + * [`getGateway()`](zingg.md#zingg.client.getGateway) + * [`getJVM()`](zingg.md#zingg.client.getJVM) + * [`getPandasDfFromDs()`](zingg.md#zingg.client.getPandasDfFromDs) + * [`getSparkContext()`](zingg.md#zingg.client.getSparkContext) + * [`getSparkSession()`](zingg.md#zingg.client.getSparkSession) + * [`getSqlContext()`](zingg.md#zingg.client.getSqlContext) + * [`initClient()`](zingg.md#zingg.client.initClient) + * [`initDataBricksConectClient()`](zingg.md#zingg.client.initDataBricksConectClient) + * [`initSparkClient()`](zingg.md#zingg.client.initSparkClient) + * [`parseArguments()`](zingg.md#zingg.client.parseArguments) + * [zingg.pipes](zingg.md#zingg-pipes) + * [`BigQueryPipe`](zingg.md#zingg.pipes.BigQueryPipe) + * [`BigQueryPipe.CREDENTIAL_FILE`](zingg.md#zingg.pipes.BigQueryPipe.CREDENTIAL_FILE) + * [`BigQueryPipe.TABLE`](zingg.md#zingg.pipes.BigQueryPipe.TABLE) + * [`BigQueryPipe.TEMP_GCS_BUCKET`](zingg.md#zingg.pipes.BigQueryPipe.TEMP_GCS_BUCKET) + * [`BigQueryPipe.VIEWS_ENABLED`](zingg.md#zingg.pipes.BigQueryPipe.VIEWS_ENABLED) + * [`BigQueryPipe.setCredentialFile()`](zingg.md#zingg.pipes.BigQueryPipe.setCredentialFile) + * [`BigQueryPipe.setTable()`](zingg.md#zingg.pipes.BigQueryPipe.setTable) + * [`BigQueryPipe.setTemporaryGcsBucket()`](zingg.md#zingg.pipes.BigQueryPipe.setTemporaryGcsBucket) + * [`BigQueryPipe.setViewsEnabled()`](zingg.md#zingg.pipes.BigQueryPipe.setViewsEnabled) + * [`CsvPipe`](zingg.md#zingg.pipes.CsvPipe) + * [`CsvPipe.setDelimiter()`](zingg.md#zingg.pipes.CsvPipe.setDelimiter) + * [`CsvPipe.setHeader()`](zingg.md#zingg.pipes.CsvPipe.setHeader) + * [`CsvPipe.setLocation()`](zingg.md#zingg.pipes.CsvPipe.setLocation) + * [`InMemoryPipe`](zingg.md#zingg.pipes.InMemoryPipe) + * [`InMemoryPipe.getDataset()`](zingg.md#zingg.pipes.InMemoryPipe.getDataset) + * [`InMemoryPipe.setDataset()`](zingg.md#zingg.pipes.InMemoryPipe.setDataset) + * [`Pipe`](zingg.md#zingg.pipes.Pipe) + * [`Pipe.addProperty()`](zingg.md#zingg.pipes.Pipe.addProperty) + * [`Pipe.getPipe()`](zingg.md#zingg.pipes.Pipe.getPipe) + * [`Pipe.setSchema()`](zingg.md#zingg.pipes.Pipe.setSchema) + * [`Pipe.toString()`](zingg.md#zingg.pipes.Pipe.toString) + * [`SnowflakePipe`](zingg.md#zingg.pipes.SnowflakePipe) + * [`SnowflakePipe.DATABASE`](zingg.md#zingg.pipes.SnowflakePipe.DATABASE) + * [`SnowflakePipe.DBTABLE`](zingg.md#zingg.pipes.SnowflakePipe.DBTABLE) + * [`SnowflakePipe.PASSWORD`](zingg.md#zingg.pipes.SnowflakePipe.PASSWORD) + * [`SnowflakePipe.SCHEMA`](zingg.md#zingg.pipes.SnowflakePipe.SCHEMA) + * [`SnowflakePipe.URL`](zingg.md#zingg.pipes.SnowflakePipe.URL) + * [`SnowflakePipe.USER`](zingg.md#zingg.pipes.SnowflakePipe.USER) + * [`SnowflakePipe.WAREHOUSE`](zingg.md#zingg.pipes.SnowflakePipe.WAREHOUSE) + * [`SnowflakePipe.setDatabase()`](zingg.md#zingg.pipes.SnowflakePipe.setDatabase) + * [`SnowflakePipe.setDbTable()`](zingg.md#zingg.pipes.SnowflakePipe.setDbTable) + * [`SnowflakePipe.setPassword()`](zingg.md#zingg.pipes.SnowflakePipe.setPassword) + * [`SnowflakePipe.setSFSchema()`](zingg.md#zingg.pipes.SnowflakePipe.setSFSchema) + * [`SnowflakePipe.setURL()`](zingg.md#zingg.pipes.SnowflakePipe.setURL) + * [`SnowflakePipe.setUser()`](zingg.md#zingg.pipes.SnowflakePipe.setUser) + * [`SnowflakePipe.setWarehouse()`](zingg.md#zingg.pipes.SnowflakePipe.setWarehouse) + +# API Reference + +* [Module Index](py-modindex.md) +* [Index](genindex.md) +* [Search Page](search.md) + +# Example API Usage + +```python +from zingg.client import * +from zingg.pipes import * + +#build the arguments for zingg +args = Arguments() +#set field definitions +fname = FieldDefinition("fname", "string", MatchType.FUZZY) +lname = FieldDefinition("lname", "string", MatchType.FUZZY) +stNo = FieldDefinition("stNo", "string", MatchType.FUZZY) +add1 = FieldDefinition("add1","string", MatchType.FUZZY) +add2 = FieldDefinition("add2", "string", MatchType.FUZZY) +city = FieldDefinition("city", "string", MatchType.FUZZY) +areacode = FieldDefinition("areacode", "string", MatchType.FUZZY) +state = FieldDefinition("state", "string", MatchType.FUZZY) +dob = FieldDefinition("dob", "string", MatchType.FUZZY) +ssn = FieldDefinition("ssn", "string", MatchType.FUZZY) + +fieldDefs = [fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] + +args.setFieldDefinition(fieldDefs) +#set the modelid and the zingg dir +args.setModelId("100") +args.setZinggDir("models") +args.setNumPartitions(4) +args.setLabelDataSampleSize(0.5) + +#reading dataset into inputPipe and settint it up in 'args' +#below line should not be required if you are reading from in memory dataset +#in that case, replace df with input df +schema = "id string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" +inputPipe = CsvPipe("testFebrl", "examples/febrl/test.csv", schema) +args.setData(inputPipe) +outputPipe = CsvPipe("resultFebrl", "/tmp/febrlOutput") + +args.setOutput(outputPipe) + +options = ClientOptions([ClientOptions.PHASE,"match"]) + +#Zingg execution for the given phase +zingg = Zingg(args, options) +zingg.initAndExecute() +``` diff --git a/python/docs/_build/markdown/zingg.md b/python/docs/_build/markdown/zingg.md new file mode 100644 index 000000000..9467c6751 --- /dev/null +++ b/python/docs/_build/markdown/zingg.md @@ -0,0 +1,785 @@ +# Zingg Entity Resolution Package + +Zingg Python APIs for entity resolution, record linkage, data mastering and deduplication using ML +([https://www.zingg.ai](https://www.zingg.ai)) + +requires python 3.6+; spark 3.5.0 +Otherwise, [`zingg.client.Zingg()`](#zingg.client.Zingg) cannot be executed + + + + + +## zingg.client + +This module is the main entry point of the Zingg Python API + +### *class* zingg.client.Arguments + +Bases: `object` + +This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + +* **Defining:** + specifying information about data location, fields, and our notion of similarity. +* **Training:** + making Zingg learn the matching rules +* **Matching:** + Running the models on the entire dataset + +#### copyArgs(phase) + +#### *static* createArgumentsFromJSON(fileName, phase) + +Method to create an object of this class from the JSON file and phase parameter value. + +* **Parameters:** + * **fileName** (*String*) – The CONF parameter value of ClientOption object + * **phase** (*String*) – The PHASE parameter value of ClientOption object +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### *static* createArgumentsFromJSONString(jsonArgs, phase) + +#### getArgs() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing the address of this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### getModelId() + +#### getZinggBaseModelDir() + +#### getZinggBaseTrainingDataDir() + +Method to get the location of the folder where Zingg +saves the training data found by findTrainingData + +#### getZinggModelDir() + +#### getZinggTrainingDataMarkedDir() + +Method to get the location of the folder where Zingg +saves the marked training data labeled by the user + +#### getZinggTrainingDataUnmarkedDir() + +Method to get the location of the folder where Zingg +saves the training data found by findTrainingData + +#### setArgs(argumentsObj) + +Method to set this class object + +* **Parameters:** + **argumentsObj** (*pointer**(*[*Arguments*](#zingg.client.Arguments)*)*) – Argument object to set this object + +#### setColumn(column) + +Method to set stopWordsCutoff parameter value +By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + +* **Parameters:** + **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file + +#### setData(\*pipes) + +Method to set the file path of the file to be matched. + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setFieldDefinition(fieldDef) + +Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + +* **Parameters:** + **fieldDef** (*List**(*[*FieldDefinition*](#zingg.client.FieldDefinition)*)*) – python FieldDefinition object list + +#### setLabelDataSampleSize(labelDataSampleSize) + +Method to set labelDataSampleSize parameter value +Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches + +* **Parameters:** + **labelDataSampleSize** (*float*) – value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples + +#### setModelId(id) + +Method to set the output directory where the match output will be saved + +* **Parameters:** + **id** (*String*) – model id value + +#### setNumPartitions(numPartitions) + +Method to set NumPartitions parameter value +Sample size to use for seeding labeled data We don’t want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit + +* **Parameters:** + **numPartitions** (*int*) – number of partitions for given data pipes + +#### setOutput(\*pipes) + +Method to set the output directory where the match result will be saved + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – output data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setStopWordsCutoff(stopWordsCutoff) + +Method to set stopWordsCutoff parameter value +By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + +* **Parameters:** + **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file + +#### setTrainingSamples(\*pipes) + +Method to set existing training samples to be matched. + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input training data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setZinggDir(f) + +Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. + +* **Parameters:** + **f** (*String*) – Zingg directory name of the models + +#### writeArgumentsToJSON(fileName) + +Method to write JSON file from the object of this class + +* **Parameters:** + **fileName** (*String*) – The CONF parameter value of ClientOption object or file address of json file + +#### writeArgumentsToJSONString() + +Method to create an object of this class from the JSON file and phase parameter value. + +* **Parameters:** + * **fileName** (*String*) – The CONF parameter value of ClientOption object + * **phase** (*String*) – The PHASE parameter value of ClientOption object +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +### *class* zingg.client.ClientOptions(argsSent=None) + +Bases: `object` + +Class that contains Client options for Zingg object +:param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc +:type phase: String +:param args: Parse a list of Zingg command line options parameter values e.g. “–location” etc. optional argument for initializing this class. +:type args: List(String) or None + +#### COLUMN *= * + +Column whose stop words are to be recommended through Zingg + +* **Type:** + COLUMN + +#### CONF *= * + +conf parameter for this class + +* **Type:** + CONF + +#### EMAIL *= * + +e-mail parameter for this class + +* **Type:** + EMAIL + +#### LICENSE *= * + +license parameter for this class + +* **Type:** + LICENSE + +#### LOCATION *= * + +location parameter for this class + +* **Type:** + LOCATION + +#### MODEL_ID *= * + +ZINGG_DIR/MODEL_ID is used to save the model + +* **Type:** + MODEL_ID + +#### PHASE *= * + +phase parameter for this class + +* **Type:** + PHASE + +#### REMOTE *= * + +remote option used internally for running on Databricks + +* **Type:** + REMOTE + +#### ZINGG_DIR *= * + +location where Zingg saves the model, training data etc + +* **Type:** + ZINGG_DIR + +#### getClientOptions() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### getConf() + +Method to get CONF value + +* **Returns:** + The CONF parameter value +* **Return type:** + String + +#### getLocation() + +Method to get LOCATION value + +* **Returns:** + The LOCATION parameter value +* **Return type:** + String + +#### getOptionValue(option) + +Method to get value for the key option + +* **Parameters:** + **option** (*String*) – key to geting the value +* **Returns:** + The value which is mapped for given key +* **Return type:** + String + +#### getPhase() + +Method to get PHASE value + +* **Returns:** + The PHASE parameter value +* **Return type:** + String + +#### hasLocation() + +Method to check if this class has LOCATION parameter set as None or not + +* **Returns:** + The boolean value if LOCATION parameter is present or not +* **Return type:** + Bool + +#### setOptionValue(option, value) + +Method to map option key to the given value + +* **Parameters:** + * **option** (*String*) – key that is mapped with value + * **value** (*String*) – value to be set for given key + +#### setPhase(newValue) + +Method to set PHASE value + +* **Parameters:** + **newValue** (*String*) – name of the phase +* **Returns:** + The pointer containing address of the this class object after seting phase +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +### *class* zingg.client.FieldDefinition(name, dataType, \*matchType) + +Bases: `object` + +This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. + +* **Parameters:** + * **name** (*String*) – name of the field + * **dataType** (*String*) – type of the data e.g. string, float, etc. + * **matchType** (*MatchType*) – match type of this field e.g. FUSSY, EXACT, etc. + +#### getFieldDefinition() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing the address of this class object +* **Return type:** + pointer([FieldDefinition](#zingg.client.FieldDefinition)) + +#### setStopWords(stopWords) + +Method to add stopwords to this class object + +* **Parameters:** + **stopWords** (*String*) – The stop Words containing csv file’s location + +#### stringify(str) + +Method to stringify’ed the dataType before it is set in FieldDefinition object + +* **Parameters:** + **str** (*String*) – dataType of the FieldDefinition +* **Returns:** + The stringify’ed value of the dataType +* **Return type:** + String + +### *class* zingg.client.Zingg(args, options) + +Bases: `object` + +This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + +* **Parameters:** + * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching + * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object + +#### execute() + +Method to execute this class object + +#### executeLabel() + +Method to run label phase + +#### executeLabelUpdate() + +Method to run label update phase + +#### getArguments() + +Method to get atguments of this class object + +* **Returns:** + The pointer containing address of the Arguments object of this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### getMarkedRecords() + +Method to get marked record dataset from the inputpipe + +* **Returns:** + spark dataset containing marked records +* **Return type:** + Dataset + +#### getMarkedRecordsStat(markedRecords, value) + +Method to get No. of records that is marked + +* **Parameters:** + * **markedRecords** (*Dataset*) – spark dataset containing marked records + * **value** (*long*) – flag value to check if markedRecord is initially matched or not +* **Returns:** + The no. of marked records +* **Return type:** + int + +#### getMatchedMarkedRecordsStat() + +Method to get No. of records that are marked and matched + +* **Returns:** + The bo. of matched marked records +* **Return type:** + int + +#### getOptions() + +Method to get client options of this class object + +* **Returns:** + The pointer containing the address of the ClientOptions object of this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### getUnmarkedRecords() + +Method to get unmarked record dataset from the inputpipe + +* **Returns:** + spark dataset containing unmarked records +* **Return type:** + Dataset + +#### getUnmatchedMarkedRecordsStat() + +Method to get No. of records that are marked and unmatched + +* **Returns:** + The no. of unmatched marked records +* **Return type:** + int + +#### getUnsureMarkedRecordsStat() + +Method to get No. of records that are marked and Not Sure if its matched or not + +* **Returns:** + The no. of Not Sure marked records +* **Return type:** + int + +#### init() + +Method to initialize zingg client by reading internal configurations and functions + +#### initAndExecute() + +Method to run both init and execute methods consecutively + +#### processRecordsCli(unmarkedRecords, args) + +Method to get user input on unmarked records + +* **Returns:** + spark dataset containing updated records +* **Return type:** + Dataset + +#### processRecordsCliLabelUpdate(lines, args) + +#### setArguments(args) + +Method to set Arguments + +* **Parameters:** + **args** ([*Arguments*](#zingg.client.Arguments)) – provide arguments for this class object + +#### setOptions(options) + +Method to set atguments of this class object + +* **Parameters:** + **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – provide client options for this class object +* **Returns:** + The pointer containing address of the ClientOptions object of this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### writeLabelledOutput(updatedRecords, args) + +Method to write updated records after user input + +#### writeLabelledOutputFromPandas(candidate_pairs_pd, args) + +Method to write updated records (as pandas df) after user input + +### *class* zingg.client.ZinggWithSpark(args, options) + +Bases: [`Zingg`](#zingg.client.Zingg) + +This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + +* **Parameters:** + * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching + * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object + +### zingg.client.getDfFromDs(data) + +Method to convert spark dataset to dataframe + +* **Parameters:** + **data** (*DataSet*) – provide spark dataset +* **Returns:** + converted spark dataframe +* **Return type:** + DataFrame + +### zingg.client.getGateway() + +### zingg.client.getJVM() + +### zingg.client.getPandasDfFromDs(data) + +Method to convert spark dataset to pandas dataframe + +* **Parameters:** + **data** (*DataSet*) – provide spark dataset +* **Returns:** + converted pandas dataframe +* **Return type:** + DataFrame + +### zingg.client.getSparkContext() + +### zingg.client.getSparkSession() + +### zingg.client.getSqlContext() + +### zingg.client.initClient() + +### zingg.client.initDataBricksConectClient() + +### zingg.client.initSparkClient() + +### zingg.client.parseArguments(argv) + +This method is used for checking mandatory arguments and creating an arguments list from Command line arguments + +* **Parameters:** + **argv** (*List*) – Values that are passed during the calling of the program along with the calling statement. +* **Returns:** + a list containing necessary arguments to run any phase +* **Return type:** + List + + + +## zingg.pipes + +This module is submodule of zingg to work with different types of Pipes. Classes of this module inherit the Pipe class, and use that class to create many different types of pipes. + +### *class* zingg.pipes.BigQueryPipe(name) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with BigQuery pipeline + +* **Parameters:** + **name** (*String*) – name of the pipe. + +#### CREDENTIAL_FILE *= 'credentialsFile'* + +#### TABLE *= 'table'* + +#### TEMP_GCS_BUCKET *= 'temporaryGcsBucket'* + +#### VIEWS_ENABLED *= 'viewsEnabled'* + +#### setCredentialFile(file) + +Method to set Credential file to the pipe + +* **Parameters:** + **file** (*String*) – credential file name + +#### setTable(table) + +Method to set Table to the pipe + +* **Parameters:** + **table** (*String*) – provide table parameter + +#### setTemporaryGcsBucket(bucket) + +Method to set TemporaryGcsBucket to the pipe + +* **Parameters:** + **bucket** (*String*) – provide bucket parameter + +#### setViewsEnabled(isEnabled) + +Method to set if viewsEnabled parameter is Enabled or not + +* **Parameters:** + **isEnabled** (*Bool*) – provide boolean parameter which defines if viewsEnabled option is enable or not + +### *class* zingg.pipes.CsvPipe(name, location=None, schema=None) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. + +* **Parameters:** + * **name** (*String*) – name of the pipe. + * **location** (*String* *or* *None*) – (optional) location from where we read data + * **schema** (*Schema* *or* *None*) – (optional) json schema for the pipe + +#### setDelimiter(delimiter) + +This method is used to define delimiter of CsvPipe + +* **Parameters:** + **delimiter** (*String*) – a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams + +#### setHeader(header) + +Method to set header property of pipe + +* **Parameters:** + **header** (*Boolean*) – true if pipe have header, false otherwise + +#### setLocation(location) + +Method to set location of pipe + +* **Parameters:** + **location** (*String*) – location from where we read data + +### *class* zingg.pipes.InMemoryPipe(name, df=None) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with InMemory pipeline + +* **Parameters:** + * **name** (*String*) – name of the pipe + * **df** (*Dataset* *or* *None*) – provide dataset for this pipe (optional) + +#### getDataset() + +Method to get Dataset from pipe + +* **Returns:** + dataset of the pipe in the format of spark dataset +* **Return type:** + Dataset + +#### setDataset(df) + +Method to set DataFrame of the pipe + +* **Parameters:** + **df** (*DataFrame*) – pandas or spark dataframe for the pipe + +### *class* zingg.pipes.Pipe(name, format) + +Bases: `object` + +Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc + +* **Parameters:** + * **name** (*String*) – name of the pipe + * **format** (*Format*) – formate of pipe e.g. bigquery,InMemory, etc. + +#### addProperty(name, value) + +Method for adding different properties of pipe + +* **Parameters:** + * **name** (*String*) – name of the property + * **value** (*String*) – value you want to set for the property + +#### getPipe() + +Method to get Pipe + +* **Returns:** + pipe parameter values in the format of a list of string +* **Return type:** + [Pipe](#zingg.pipes.Pipe) + +#### setSchema(s) + +Method to set pipe schema value + +* **Parameters:** + **s** (*Schema*) – json schema for the pipe + +#### toString() + +Method to get pipe parameter values + +* **Returns:** + pipe information in list format +* **Return type:** + List[String] + +### *class* zingg.pipes.SnowflakePipe(name) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with Snowflake pipeline + +* **Parameters:** + **name** (*String*) – name of the pipe + +#### DATABASE *= 'sfDatabase'* + +#### DBTABLE *= 'dbtable'* + +#### PASSWORD *= 'sfPassword'* + +#### SCHEMA *= 'sfSchema'* + +#### URL *= 'sfUrl'* + +#### USER *= 'sfUser'* + +#### WAREHOUSE *= 'sfWarehouse'* + +#### setDatabase(db) + +Method to set Database to the pipe + +* **Parameters:** + **db** (*Database*) – provide Database parameter. + +#### setDbTable(dbtable) + +description + +* **Parameters:** + **dbtable** (*String*) – provide bucket parameter. + +#### setPassword(passwd) + +Method to set Password to the pipe + +* **Parameters:** + **passwd** (*String*) – provide Password parameter. + +#### setSFSchema(schema) + +Method to set Schema to the pipe + +* **Parameters:** + **schema** (*Schema*) – provide schema parameter. + +#### setURL(url) + +Method to set url to the pipe + +* **Parameters:** + **url** (*String*) – provide url for this pipe + +#### setUser(user) + +Method to set User to the pipe + +* **Parameters:** + **user** (*String*) – provide User parameter. + +#### setWarehouse(warehouse) + +Method to set warehouse parameter to the pipe + +* **Parameters:** + **warehouse** (*String*) – provide warehouse parameter. diff --git a/python/docs/conf.py b/python/docs/conf.py index e491980be..df6be82de 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -37,7 +37,8 @@ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', - 'sphinx.ext.coverage' + 'sphinx.ext.coverage', + 'sphinx_markdown_builder' ] # Add any paths that contain templates here, relative to this directory. diff --git a/python/docs/index.rst b/python/docs/index.rst index 63b396d3e..d04663503 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -75,8 +75,3 @@ Example API Usage zingg = Zingg(args, options) zingg.initAndExecute() - - -.. meta:: - :description: Zingg Entity Resolution With Python and AI - :keywords: entity resolution, identity resolution, record linkage diff --git a/python/zingg/client.py b/python/zingg/client.py index fd1aeb6c9..58617a296 100644 --- a/python/zingg/client.py +++ b/python/zingg/client.py @@ -3,759 +3,759 @@ ------------------------ This module is the main entry point of the Zingg Python API """ +if __name__ == '__main__': + import logging + import argparse + import pandas as pd + from pyspark.sql import DataFrame + + from pyspark import SparkConf, SparkContext, SQLContext + + from py4j.java_collections import SetConverter, MapConverter, ListConverter + + from pyspark.sql import SparkSession + import os + LOG = logging.getLogger("zingg") + + _spark_ctxt = None + _sqlContext = None + _spark = None + _zingg_jar = 'zingg-0.4.0.jar' + + def initSparkClient(): + global _spark_ctxt + global _sqlContext + global _spark + _spark_ctxt = SparkContext.getOrCreate() + _sqlContext = SQLContext(_spark_ctxt) + _spark = SparkSession.builder.getOrCreate() + return 1 -import logging -import argparse -import pandas as pd -from pyspark.sql import DataFrame - -from pyspark import SparkConf, SparkContext, SQLContext - -from py4j.java_collections import SetConverter, MapConverter, ListConverter - -from pyspark.sql import SparkSession -import os -LOG = logging.getLogger("zingg") - -_spark_ctxt = None -_sqlContext = None -_spark = None -_zingg_jar = 'zingg-0.4.0.jar' - -def initSparkClient(): - global _spark_ctxt - global _sqlContext - global _spark - _spark_ctxt = SparkContext.getOrCreate() - _sqlContext = SQLContext(_spark_ctxt) - _spark = SparkSession.builder.getOrCreate() - return 1 - -def initDataBricksConectClient(): - global _spark_ctxt - global _sqlContext - global _spark - jar_path = os.getenv('ZINGG_HOME')+'/'+_zingg_jar - _spark = SparkSession.builder.config('spark.jars', jar_path).getOrCreate() - _spark_ctxt = _spark.sparkContext - _sqlContext = SQLContext(_spark_ctxt) - return 1 - -def initClient(): - global _spark_ctxt - global _sqlContext - global _spark - if _spark_ctxt is None: - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': - return initDataBricksConectClient() - else: - return initSparkClient() - else: + def initDataBricksConectClient(): + global _spark_ctxt + global _sqlContext + global _spark + jar_path = os.getenv('ZINGG_HOME')+'/'+_zingg_jar + _spark = SparkSession.builder.config('spark.jars', jar_path).getOrCreate() + _spark_ctxt = _spark.sparkContext + _sqlContext = SQLContext(_spark_ctxt) return 1 -def getSparkContext(): - if _spark_ctxt is None: - initClient() - return _spark_ctxt - -def getSparkSession(): - if _spark is None: - initClient() - return _spark - -def getSqlContext(): - if _sqlContext is None: - initClient() - return _sqlContext - -def getJVM(): - return getSparkContext()._jvm - -def getGateway(): - return getSparkContext()._gateway - -ColName = getJVM().zingg.common.client.util.ColName -MatchType = getJVM().zingg.common.client.MatchType -ClientOptions = getJVM().zingg.common.client.ClientOptions -ZinggOptions = getJVM().zingg.common.client.ZinggOptions -LabelMatchType = getJVM().zingg.common.core.util.LabelMatchType -UpdateLabelMode = 'Overwrite' - -def getDfFromDs(data): - """ Method to convert spark dataset to dataframe - - :param data: provide spark dataset - :type data: DataSet - :return: converted spark dataframe - :rtype: DataFrame - """ - return DataFrame(data.df(), getSqlContext()) - -def getPandasDfFromDs(data): - """ Method to convert spark dataset to pandas dataframe - - :param data: provide spark dataset - :type data: DataSet - :return: converted pandas dataframe - :rtype: DataFrame - """ - df = getDfFromDs(data) - return pd.DataFrame(df.collect(), columns=df.columns) - - -class Zingg: - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - - :param args: arguments for training and matching - :type args: Arguments - :param options: client option for this class object - :type options: ClientOptions - - """ - - def __init__(self, args, options): - self.inpArgs = args - self.inpOptions = options - self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions()) - - def init(self): - """ Method to initialize zingg client by reading internal configurations and functions """ - self.client.init() - - def execute(self): - """ Method to execute this class object """ - self.client.execute() - - def initAndExecute(self): - """ Method to run both init and execute methods consecutively """ - self.client.init() - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': - options = self.client.getOptions() - inpPhase = options.get(ClientOptions.PHASE).getValue() - if (inpPhase==ZinggOptions.LABEL.getValue()): - self.executeLabel() - elif (inpPhase==ZinggOptions.UPDATE_LABEL.getValue()): - self.executeLabelUpdate() + def initClient(): + global _spark_ctxt + global _sqlContext + global _spark + if _spark_ctxt is None: + DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') + if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + return initDataBricksConectClient() else: - self.client.execute() + return initSparkClient() else: - self.client.execute() + return 1 - def executeLabel(self): - """ Method to run label phase """ - self.client.getTrainingDataModel().setMarkedRecordsStat(self.getMarkedRecords()) - unmarkedRecords = self.getUnmarkedRecords() - updatedRecords = self.processRecordsCli(unmarkedRecords,self.inpArgs) - self.writeLabelledOutput(updatedRecords,self.inpArgs) + def getSparkContext(): + if _spark_ctxt is None: + initClient() + return _spark_ctxt - def executeLabelUpdate(self): - """ Method to run label update phase """ - self.processRecordsCliLabelUpdate(self.getMarkedRecords(),self.inpArgs) + def getSparkSession(): + if _spark is None: + initClient() + return _spark - def getMarkedRecords(self): - """ Method to get marked record dataset from the inputpipe + def getSqlContext(): + if _sqlContext is None: + initClient() + return _sqlContext - :return: spark dataset containing marked records - :rtype: Dataset - """ - return self.client.getMarkedRecords() + def getJVM(): + return getSparkContext()._jvm - def getUnmarkedRecords(self): - """ Method to get unmarked record dataset from the inputpipe + def getGateway(): + return getSparkContext()._gateway - :return: spark dataset containing unmarked records - :rtype: Dataset - """ - return self.client.getUnmarkedRecords() + ColName = getJVM().zingg.common.client.util.ColName + MatchType = getJVM().zingg.common.client.MatchType + ClientOptions = getJVM().zingg.common.client.ClientOptions + ZinggOptions = getJVM().zingg.common.client.ZinggOptions + LabelMatchType = getJVM().zingg.common.core.util.LabelMatchType + UpdateLabelMode = 'Overwrite' - def processRecordsCli(self,unmarkedRecords,args): - """ Method to get user input on unmarked records + def getDfFromDs(data): + """ Method to convert spark dataset to dataframe - :return: spark dataset containing updated records - :rtype: Dataset + :param data: provide spark dataset + :type data: DataSet + :return: converted spark dataframe + :rtype: DataFrame """ - trainingDataModel = self.client.getTrainingDataModel() - labelDataViewHelper = self.client.getLabelDataViewHelper() - - if unmarkedRecords is not None and unmarkedRecords.count() > 0: - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - unmarkedRecords = unmarkedRecords.cache() - displayCols = labelDataViewHelper.getDisplayColumns(unmarkedRecords, args.getArgs()) - clusterIdZFrame = labelDataViewHelper.getClusterIdsFrame(unmarkedRecords) - clusterIDs = labelDataViewHelper.getClusterIds(clusterIdZFrame) - totalPairs = clusterIDs.size() - updatedRecords = None - for index in range(totalPairs): - currentPair = labelDataViewHelper.getCurrentPair(unmarkedRecords, index, clusterIDs, clusterIdZFrame) - - score = labelDataViewHelper.getScore(currentPair) - prediction = labelDataViewHelper.getPrediction(currentPair) - - msg1 = labelDataViewHelper.getMsg1(index, totalPairs) - msg2 = labelDataViewHelper.getMsg2(prediction, score) - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), msg1, msg2) - selected_option = input() - while int(selected_option) not in [0,1,2,9]: - print('Please enter valid option') - selected_option = input("Enter choice: ") - if int(selected_option) == 9: - print("User has quit in the middle. Updating the records.") - break - trainingDataModel.updateLabellerStat(int(selected_option), 1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) - print("Processing finished.") - return updatedRecords - else: - print("It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler.") - return None - - def processRecordsCliLabelUpdate(self,lines,args): - trainingDataModel = self.client.getTrainingDataModel() - labelDataViewHelper = self.client.getLabelDataViewHelper() - if (lines is not None and lines.count() > 0): - trainingDataModel.setMarkedRecordsStat(lines) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - displayCols = labelDataViewHelper.getDSUtil().getFieldDefColumns(lines, args.getArgs(), False, args.getArgs().getShowConcise()) - updatedRecords = None - recordsToUpdate = lines - selectedOption = -1 - - while (str(selectedOption) != '9'): - cluster_id = input("\n\tPlease enter the cluster id (or 9 to exit): ") - if str(cluster_id) == '9': - print("User has exit in the middle. Updating the records.") - break - currentPair = lines.filter(lines.equalTo(ColName.CLUSTER_COLUMN, cluster_id)) - if currentPair.isEmpty(): - print("\tInvalid cluster id. Enter '9' to exit") - continue - - matchFlag = currentPair.getAsInt(currentPair.head(),ColName.MATCH_FLAG_COL) - preMsg = "\n\tThe record pairs belonging to the input cluster id "+cluster_id+" are:" - postMsg = "\tThe above pair is labeled as "+str(matchFlag)+"\n" - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), preMsg, postMsg) - selectedOption = input() - trainingDataModel.updateLabellerStat(int(selectedOption), 1) - trainingDataModel.updateLabellerStat(matchFlag, -1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - - if (str(selectedOption) == '9'): - print("User has quit in the middle. Updating the records.") - break - - recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) - - if (updatedRecords is not None): - updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + return DataFrame(data.df(), getSqlContext()) - updatedRecords = trainingDataModel.updateRecords(int(selectedOption), currentPair, updatedRecords) + def getPandasDfFromDs(data): + """ Method to convert spark dataset to pandas dataframe - if updatedRecords is not None: - updatedRecords = updatedRecords.union(recordsToUpdate) - - outPipe = trainingDataModel.getOutputPipe(args.getArgs()) - outPipe.setMode(UpdateLabelMode) - - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs(),outPipe) - print("Processing finished.") - return updatedRecords - else: - print("There is no marked record for updating. Please run findTrainingData/label jobs to generate training data.") - return None - - - def writeLabelledOutput(self,updatedRecords,args): - """ Method to write updated records after user input + :param data: provide spark dataset + :type data: DataSet + :return: converted pandas dataframe + :rtype: DataFrame """ - trainingDataModel = self.client.getTrainingDataModel() - if updatedRecords is not None: - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs()) + df = getDfFromDs(data) + return pd.DataFrame(df.collect(), columns=df.columns) - def writeLabelledOutputFromPandas(self,candidate_pairs_pd,args): - """ Method to write updated records (as pandas df) after user input - """ - markedRecordsAsDS = (getSparkSession().createDataFrame(candidate_pairs_pd))._jdf - # pands df gives z_isMatch as long so needs to be cast - markedRecordsAsDS = markedRecordsAsDS.withColumn(ColName.MATCH_FLAG_COL,markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int")) - updatedRecords = getJVM().zingg.spark.client.SparkFrame(markedRecordsAsDS) - self.writeLabelledOutput(updatedRecords,args) - def setArguments(self, args): - """ Method to set Arguments + class Zingg: + """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - :param args: provide arguments for this class object + :param args: arguments for training and matching :type args: Arguments - """ - self.client.setArguments() - - def getArguments(self): - """ Method to get atguments of this class object - - :return: The pointer containing address of the Arguments object of this class object - :rtype: pointer(Arguments) - """ - return self.client.getArguments() - - def getOptions(self): - """ Method to get client options of this class object - - :return: The pointer containing the address of the ClientOptions object of this class object - :rtype: pointer(ClientOptions) - """ - return self.client.getOptions() - - def setOptions(self, options): - """ Method to set atguments of this class object - - :param options: provide client options for this class object + :param options: client option for this class object :type options: ClientOptions - :return: The pointer containing address of the ClientOptions object of this class object - :rtype: pointer(ClientOptions) - """ - return self.client.setOptions(options) - - def getMarkedRecordsStat(self, markedRecords, value): - """ Method to get No. of records that is marked - - :param markedRecords: spark dataset containing marked records - :type markedRecords: Dataset - :param value: flag value to check if markedRecord is initially matched or not - :type value: long - :return: The no. of marked records - :rtype: int - """ - return self.client.getMarkedRecordsStat(markedRecords, value) - - def getMatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and matched - :return: The bo. of matched marked records - :rtype: int """ - return self.client.getMatchedMarkedRecordsStat(self.getMarkedRecords()) - def getUnmatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and unmatched - - :return: The no. of unmatched marked records - :rtype: int - """ - return self.client.getUnmatchedMarkedRecordsStat(self.getMarkedRecords()) - - def getUnsureMarkedRecordsStat(self): - """ Method to get No. of records that are marked and Not Sure if its matched or not - - :return: The no. of Not Sure marked records - :rtype: int - """ - return self.client.getUnsureMarkedRecordsStat(self.getMarkedRecords()) - - - -class ZinggWithSpark(Zingg): + def __init__(self, args, options): + self.inpArgs = args + self.inpOptions = options + self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions()) + + def init(self): + """ Method to initialize zingg client by reading internal configurations and functions """ + self.client.init() - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + def execute(self): + """ Method to execute this class object """ + self.client.execute() + + def initAndExecute(self): + """ Method to run both init and execute methods consecutively """ + self.client.init() + DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') + if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + options = self.client.getOptions() + inpPhase = options.get(ClientOptions.PHASE).getValue() + if (inpPhase==ZinggOptions.LABEL.getValue()): + self.executeLabel() + elif (inpPhase==ZinggOptions.UPDATE_LABEL.getValue()): + self.executeLabelUpdate() + else: + self.client.execute() + else: + self.client.execute() - :param args: arguments for training and matching - :type args: Arguments - :param options: client option for this class object - :type options: ClientOptions + def executeLabel(self): + """ Method to run label phase """ + self.client.getTrainingDataModel().setMarkedRecordsStat(self.getMarkedRecords()) + unmarkedRecords = self.getUnmarkedRecords() + updatedRecords = self.processRecordsCli(unmarkedRecords,self.inpArgs) + self.writeLabelledOutput(updatedRecords,self.inpArgs) - """ - def __init__(self, args, options): - self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) + def executeLabelUpdate(self): + """ Method to run label update phase """ + self.processRecordsCliLabelUpdate(self.getMarkedRecords(),self.inpArgs) - -class Arguments: - """ This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + def getMarkedRecords(self): + """ Method to get marked record dataset from the inputpipe - :Defining: specifying information about data location, fields, and our notion of similarity. - :training: making Zingg learn the matching rules - :Matching: Running the models on the entire dataset - """ + :return: spark dataset containing marked records + :rtype: Dataset + """ + return self.client.getMarkedRecords() - def __init__(self): - self.args = getJVM().zingg.common.client.Arguments() + def getUnmarkedRecords(self): + """ Method to get unmarked record dataset from the inputpipe - def setFieldDefinition(self, fieldDef): - """ Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + :return: spark dataset containing unmarked records + :rtype: Dataset + """ + return self.client.getUnmarkedRecords() - :param fieldDef: python FieldDefinition object list - :type fieldDef: List(FieldDefinition) - """ - javaFieldDef = [] - for f in fieldDef: - javaFieldDef.append(f.getFieldDefinition()) - self.args.setFieldDefinition(javaFieldDef) + def processRecordsCli(self,unmarkedRecords,args): + """ Method to get user input on unmarked records - def getArgs(self): - """ Method to get pointer address of this class + :return: spark dataset containing updated records + :rtype: Dataset + """ + trainingDataModel = self.client.getTrainingDataModel() + labelDataViewHelper = self.client.getLabelDataViewHelper() - :return: The pointer containing the address of this class object - :rtype: pointer(Arguments) + if unmarkedRecords is not None and unmarkedRecords.count() > 0: + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + unmarkedRecords = unmarkedRecords.cache() + displayCols = labelDataViewHelper.getDisplayColumns(unmarkedRecords, args.getArgs()) + clusterIdZFrame = labelDataViewHelper.getClusterIdsFrame(unmarkedRecords) + clusterIDs = labelDataViewHelper.getClusterIds(clusterIdZFrame) + totalPairs = clusterIDs.size() + updatedRecords = None + for index in range(totalPairs): + currentPair = labelDataViewHelper.getCurrentPair(unmarkedRecords, index, clusterIDs, clusterIdZFrame) + + score = labelDataViewHelper.getScore(currentPair) + prediction = labelDataViewHelper.getPrediction(currentPair) + + msg1 = labelDataViewHelper.getMsg1(index, totalPairs) + msg2 = labelDataViewHelper.getMsg2(prediction, score) + labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), msg1, msg2) + selected_option = input() + while int(selected_option) not in [0,1,2,9]: + print('Please enter valid option') + selected_option = input("Enter choice: ") + if int(selected_option) == 9: + print("User has quit in the middle. Updating the records.") + break + trainingDataModel.updateLabellerStat(int(selected_option), 1) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) + print("Processing finished.") + return updatedRecords + else: + print("It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler.") + return None - """ - return self.args - - def setArgs(self, argumentsObj): - """ Method to set this class object - - :param argumentsObj: Argument object to set this object - :type argumentsObj: pointer(Arguments) - """ - self.args = argumentsObj - - def setData(self, *pipes): - """ Method to set the file path of the file to be matched. + def processRecordsCliLabelUpdate(self,lines,args): + trainingDataModel = self.client.getTrainingDataModel() + labelDataViewHelper = self.client.getLabelDataViewHelper() + if (lines is not None and lines.count() > 0): + trainingDataModel.setMarkedRecordsStat(lines) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + displayCols = labelDataViewHelper.getDSUtil().getFieldDefColumns(lines, args.getArgs(), False, args.getArgs().getShowConcise()) + updatedRecords = None + recordsToUpdate = lines + selectedOption = -1 + + while (str(selectedOption) != '9'): + cluster_id = input("\n\tPlease enter the cluster id (or 9 to exit): ") + if str(cluster_id) == '9': + print("User has exit in the middle. Updating the records.") + break + currentPair = lines.filter(lines.equalTo(ColName.CLUSTER_COLUMN, cluster_id)) + if currentPair.isEmpty(): + print("\tInvalid cluster id. Enter '9' to exit") + continue + + matchFlag = currentPair.getAsInt(currentPair.head(),ColName.MATCH_FLAG_COL) + preMsg = "\n\tThe record pairs belonging to the input cluster id "+cluster_id+" are:" + postMsg = "\tThe above pair is labeled as "+str(matchFlag)+"\n" + labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), preMsg, postMsg) + selectedOption = input() + trainingDataModel.updateLabellerStat(int(selectedOption), 1) + trainingDataModel.updateLabellerStat(matchFlag, -1) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + + if (str(selectedOption) == '9'): + print("User has quit in the middle. Updating the records.") + break + + recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + + if (updatedRecords is not None): + updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + + updatedRecords = trainingDataModel.updateRecords(int(selectedOption), currentPair, updatedRecords) + + if updatedRecords is not None: + updatedRecords = updatedRecords.union(recordsToUpdate) + + outPipe = trainingDataModel.getOutputPipe(args.getArgs()) + outPipe.setMode(UpdateLabelMode) + + trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs(),outPipe) + print("Processing finished.") + return updatedRecords + else: + print("There is no marked record for updating. Please run findTrainingData/label jobs to generate training data.") + return None - :param pipes: input data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - dataPipe[idx] = pipe.getPipe() - self.args.setData(dataPipe) - def setOutput(self, *pipes): - """ Method to set the output directory where the match result will be saved + def writeLabelledOutput(self,updatedRecords,args): + """ Method to write updated records after user input + """ + trainingDataModel = self.client.getTrainingDataModel() + if updatedRecords is not None: + trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs()) + + def writeLabelledOutputFromPandas(self,candidate_pairs_pd,args): + """ Method to write updated records (as pandas df) after user input + """ + markedRecordsAsDS = (getSparkSession().createDataFrame(candidate_pairs_pd))._jdf + # pands df gives z_isMatch as long so needs to be cast + markedRecordsAsDS = markedRecordsAsDS.withColumn(ColName.MATCH_FLAG_COL,markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int")) + updatedRecords = getJVM().zingg.spark.client.SparkFrame(markedRecordsAsDS) + self.writeLabelledOutput(updatedRecords,args) + + def setArguments(self, args): + """ Method to set Arguments + + :param args: provide arguments for this class object + :type args: Arguments + """ + self.client.setArguments() + + def getArguments(self): + """ Method to get atguments of this class object + + :return: The pointer containing address of the Arguments object of this class object + :rtype: pointer(Arguments) + """ + return self.client.getArguments() + + def getOptions(self): + """ Method to get client options of this class object + + :return: The pointer containing the address of the ClientOptions object of this class object + :rtype: pointer(ClientOptions) + """ + return self.client.getOptions() + + def setOptions(self, options): + """ Method to set atguments of this class object + + :param options: provide client options for this class object + :type options: ClientOptions + :return: The pointer containing address of the ClientOptions object of this class object + :rtype: pointer(ClientOptions) + """ + return self.client.setOptions(options) + + def getMarkedRecordsStat(self, markedRecords, value): + """ Method to get No. of records that is marked + + :param markedRecords: spark dataset containing marked records + :type markedRecords: Dataset + :param value: flag value to check if markedRecord is initially matched or not + :type value: long + :return: The no. of marked records + :rtype: int + """ + return self.client.getMarkedRecordsStat(markedRecords, value) + + def getMatchedMarkedRecordsStat(self): + """ Method to get No. of records that are marked and matched + + :return: The bo. of matched marked records + :rtype: int + """ + return self.client.getMatchedMarkedRecordsStat(self.getMarkedRecords()) + + def getUnmatchedMarkedRecordsStat(self): + """ Method to get No. of records that are marked and unmatched + + :return: The no. of unmatched marked records + :rtype: int + """ + return self.client.getUnmatchedMarkedRecordsStat(self.getMarkedRecords()) + + def getUnsureMarkedRecordsStat(self): + """ Method to get No. of records that are marked and Not Sure if its matched or not + + :return: The no. of Not Sure marked records + :rtype: int + """ + return self.client.getUnsureMarkedRecordsStat(self.getMarkedRecords()) - :param pipes: output data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - outputPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - outputPipe[idx] = pipe.getPipe() - self.args.setOutput(outputPipe) - - def getZinggBaseModelDir(self): - return self.args.getZinggBaseModelDir() + - def getZinggModelDir(self): - return self.args.getZinggModelDir() - - def getZinggBaseTrainingDataDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData - """ - return self.args.getZinggBaseTrainingDataDir() + class ZinggWithSpark(Zingg): - def getZinggTrainingDataUnmarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData - """ - return self.args.getZinggTrainingDataUnmarkedDir() - - def getZinggTrainingDataMarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the marked training data labeled by the user - """ - return self.args.getZinggTrainingDataMarkedDir() - - def setTrainingSamples(self, *pipes): - """ Method to set existing training samples to be matched. + """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - :param pipes: input training data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - dataPipe[idx] = pipe.getPipe() - self.args.setTrainingSamples(dataPipe) - - def setModelId(self, id): - """ Method to set the output directory where the match output will be saved + :param args: arguments for training and matching + :type args: Arguments + :param options: client option for this class object + :type options: ClientOptions - :param id: model id value - :type id: String """ - self.args.setModelId(id) - - def getModelId(self): - return self.args.getModelId() + def __init__(self, args, options): + self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) + + class Arguments: + """ This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + + :Defining: specifying information about data location, fields, and our notion of similarity. + :training: making Zingg learn the matching rules + :Matching: Running the models on the entire dataset + """ + + def __init__(self): + self.args = getJVM().zingg.common.client.Arguments() + + def setFieldDefinition(self, fieldDef): + """ Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + + :param fieldDef: python FieldDefinition object list + :type fieldDef: List(FieldDefinition) + """ + javaFieldDef = [] + for f in fieldDef: + javaFieldDef.append(f.getFieldDefinition()) + self.args.setFieldDefinition(javaFieldDef) + + def getArgs(self): + """ Method to get pointer address of this class + + :return: The pointer containing the address of this class object + :rtype: pointer(Arguments) + + """ + return self.args + + def setArgs(self, argumentsObj): + """ Method to set this class object + + :param argumentsObj: Argument object to set this object + :type argumentsObj: pointer(Arguments) + """ + self.args = argumentsObj + + def setData(self, *pipes): + """ Method to set the file path of the file to be matched. + + :param pipes: input data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] + """ + dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + dataPipe[idx] = pipe.getPipe() + self.args.setData(dataPipe) + + def setOutput(self, *pipes): + """ Method to set the output directory where the match result will be saved + + :param pipes: output data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] + """ + outputPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + outputPipe[idx] = pipe.getPipe() + self.args.setOutput(outputPipe) + + def getZinggBaseModelDir(self): + return self.args.getZinggBaseModelDir() - def setZinggDir(self, f): - """ Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. + def getZinggModelDir(self): + return self.args.getZinggModelDir() + + def getZinggBaseTrainingDataDir(self): + """ Method to get the location of the folder where Zingg + saves the training data found by findTrainingData + """ + return self.args.getZinggBaseTrainingDataDir() + + def getZinggTrainingDataUnmarkedDir(self): + """ Method to get the location of the folder where Zingg + saves the training data found by findTrainingData + """ + return self.args.getZinggTrainingDataUnmarkedDir() + + def getZinggTrainingDataMarkedDir(self): + """ Method to get the location of the folder where Zingg + saves the marked training data labeled by the user + """ + return self.args.getZinggTrainingDataMarkedDir() + + def setTrainingSamples(self, *pipes): + """ Method to set existing training samples to be matched. + + :param pipes: input training data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] + """ + dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + dataPipe[idx] = pipe.getPipe() + self.args.setTrainingSamples(dataPipe) + + def setModelId(self, id): + """ Method to set the output directory where the match output will be saved + + :param id: model id value + :type id: String + """ + self.args.setModelId(id) + + def getModelId(self): + return self.args.getModelId() - :param f: Zingg directory name of the models - :type f: String - """ - self.args.setZinggDir(f) - def setNumPartitions(self, numPartitions): - """ Method to set NumPartitions parameter value - Sample size to use for seeding labeled data We don't want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit + def setZinggDir(self, f): + """ Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. - :param numPartitions: number of partitions for given data pipes - :type numPartitions: int - """ - self.args.setNumPartitions(numPartitions) + :param f: Zingg directory name of the models + :type f: String + """ + self.args.setZinggDir(f) - def setLabelDataSampleSize(self, labelDataSampleSize): - """ Method to set labelDataSampleSize parameter value - Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches + def setNumPartitions(self, numPartitions): + """ Method to set NumPartitions parameter value + Sample size to use for seeding labeled data We don't want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit - :param labelDataSampleSize: value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples - :type labelDataSampleSize: float - """ - self.args.setLabelDataSampleSize(labelDataSampleSize) + :param numPartitions: number of partitions for given data pipes + :type numPartitions: int + """ + self.args.setNumPartitions(numPartitions) - def writeArgumentsToJSON(self, fileName): - """ Method to write JSON file from the object of this class + def setLabelDataSampleSize(self, labelDataSampleSize): + """ Method to set labelDataSampleSize parameter value + Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches - :param fileName: The CONF parameter value of ClientOption object or file address of json file - :type fileName: String - """ - getJVM().zingg.common.client.ArgumentsUtil().writeArgumentsToJSON(fileName, self.args) + :param labelDataSampleSize: value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples + :type labelDataSampleSize: float + """ + self.args.setLabelDataSampleSize(labelDataSampleSize) - def setStopWordsCutoff(self, stopWordsCutoff): - """ Method to set stopWordsCutoff parameter value - By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + def writeArgumentsToJSON(self, fileName): + """ Method to write JSON file from the object of this class - :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file - :type stopWordsCutoff: float - """ - self.args.setStopWordsCutoff(stopWordsCutoff) - - def setColumn(self, column): - """ Method to set stopWordsCutoff parameter value - By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + :param fileName: The CONF parameter value of ClientOption object or file address of json file + :type fileName: String + """ + getJVM().zingg.common.client.ArgumentsUtil().writeArgumentsToJSON(fileName, self.args) - :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file - :type stopWordsCutoff: float - """ - self.args.setColumn(column) + def setStopWordsCutoff(self, stopWordsCutoff): + """ Method to set stopWordsCutoff parameter value + By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property - @staticmethod - def createArgumentsFromJSON(fileName, phase): - """ Method to create an object of this class from the JSON file and phase parameter value. + :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file + :type stopWordsCutoff: float + """ + self.args.setStopWordsCutoff(stopWordsCutoff) - :param fileName: The CONF parameter value of ClientOption object - :type fileName: String - :param phase: The PHASE parameter value of ClientOption object - :type phase: String - :return: The pointer containing address of the this class object - :rtype: pointer(Arguments) - """ - obj = Arguments() - obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSON(fileName, phase) - return obj - - - def writeArgumentsToJSONString(self): - """ Method to create an object of this class from the JSON file and phase parameter value. + def setColumn(self, column): + """ Method to set stopWordsCutoff parameter value + By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + + :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file + :type stopWordsCutoff: float + """ + self.args.setColumn(column) + + @staticmethod + def createArgumentsFromJSON(fileName, phase): + """ Method to create an object of this class from the JSON file and phase parameter value. + + :param fileName: The CONF parameter value of ClientOption object + :type fileName: String + :param phase: The PHASE parameter value of ClientOption object + :type phase: String + :return: The pointer containing address of the this class object + :rtype: pointer(Arguments) + """ + obj = Arguments() + obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSON(fileName, phase) + return obj - :param fileName: The CONF parameter value of ClientOption object - :type fileName: String - :param phase: The PHASE parameter value of ClientOption object - :type phase: String - :return: The pointer containing address of the this class object - :rtype: pointer(Arguments) - """ - return getJVM().zingg.common.client.ArgumentsUtil().writeArgumentstoJSONString(self.args) - - @staticmethod - def createArgumentsFromJSONString(jsonArgs, phase): - obj = Arguments() - obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSONString(jsonArgs, phase) - return obj - - - def copyArgs(self, phase): - argsString = self.writeArgumentsToJSONString() - return self.createArgumentsFromJSONString(argsString, phase) - - - - + + def writeArgumentsToJSONString(self): + """ Method to create an object of this class from the JSON file and phase parameter value. + + :param fileName: The CONF parameter value of ClientOption object + :type fileName: String + :param phase: The PHASE parameter value of ClientOption object + :type phase: String + :return: The pointer containing address of the this class object + :rtype: pointer(Arguments) + """ + return getJVM().zingg.common.client.ArgumentsUtil().writeArgumentstoJSONString(self.args) + + @staticmethod + def createArgumentsFromJSONString(jsonArgs, phase): + obj = Arguments() + obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSONString(jsonArgs, phase) + return obj + + + def copyArgs(self, phase): + argsString = self.writeArgumentsToJSONString() + return self.createArgumentsFromJSONString(argsString, phase) -class ClientOptions: - """ Class that contains Client options for Zingg object - :param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc - :type phase: String - :param args: Parse a list of Zingg command line options parameter values e.g. "--location" etc. optional argument for initializing this class. - :type args: List(String) or None - """ - PHASE = getJVM().zingg.common.client.ClientOptions.PHASE - """:PHASE: phase parameter for this class""" - CONF = getJVM().zingg.common.client.ClientOptions.CONF - """:CONF: conf parameter for this class""" - LICENSE = getJVM().zingg.common.client.ClientOptions.LICENSE - """:LICENSE: license parameter for this class""" - EMAIL = getJVM().zingg.common.client.ClientOptions.EMAIL - """:EMAIL: e-mail parameter for this class""" - LOCATION = getJVM().zingg.common.client.ClientOptions.LOCATION - """:LOCATION: location parameter for this class""" - REMOTE = getJVM().zingg.common.client.ClientOptions.REMOTE - """:REMOTE: remote option used internally for running on Databricks""" - ZINGG_DIR = getJVM().zingg.common.client.ClientOptions.ZINGG_DIR - """:ZINGG_DIR: location where Zingg saves the model, training data etc""" - MODEL_ID = getJVM().zingg.common.client.ClientOptions.MODEL_ID - """:MODEL_ID: ZINGG_DIR/MODEL_ID is used to save the model""" - COLUMN = getJVM().zingg.common.client.ClientOptions.COLUMN - """:COLUMN: Column whose stop words are to be recommended through Zingg""" - - def __init__(self, argsSent=None): - print(argsSent) - if(argsSent == None): - args = [] - else: - args = argsSent.copy() - if (not (self.PHASE in args)): - args.append(self.PHASE) - args.append("peekModel") - if (not (self.LICENSE in args)): - args.append(self.LICENSE) - args.append("zinggLic.txt") - if (not (self.EMAIL in args)): - args.append(self.EMAIL) - args.append("zingg@zingg.ai") - if (not (self.CONF in args)): - args.append(self.CONF) - args.append("dummyConf.json") - print("arguments for client options are ", args) - self.co = getJVM().zingg.common.client.ClientOptions(args) - - def getClientOptions(self): - """ Method to get pointer address of this class - - :return: The pointer containing address of the this class object - :rtype: pointer(ClientOptions) - """ - return self.co - - def getOptionValue(self, option): - """ Method to get value for the key option - - :param option: key to geting the value - :type option: String - :return: The value which is mapped for given key - :rtype: String - """ - return self.co.getOptionValue(option) - - def setOptionValue(self, option, value): - """ Method to map option key to the given value - - :param option: key that is mapped with value - :type option: String - :param value: value to be set for given key - :type value: String - """ - self.co.get(option).setValue(value) - - def getPhase(self): - """ Method to get PHASE value - - :return: The PHASE parameter value - :rtype: String - """ - return self.co.get(ClientOptions.PHASE).getValue() - - def setPhase(self, newValue): - """ Method to set PHASE value - - :param newValue: name of the phase - :type newValue: String - :return: The pointer containing address of the this class object after seting phase - :rtype: pointer(ClientOptions) - """ - self.co.get(ClientOptions.PHASE).setValue(newValue) - - def getConf(self): - """ Method to get CONF value - - :return: The CONF parameter value - :rtype: String - """ - return self.co.get(ClientOptions.CONF).getValue() + - def hasLocation(self): - """ Method to check if this class has LOCATION parameter set as None or not - :return: The boolean value if LOCATION parameter is present or not - :rtype: Bool - """ - if(self.co.get(ClientOptions.LOCATION)==None): - return False - else: - return True + class ClientOptions: + """ Class that contains Client options for Zingg object + :param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc + :type phase: String + :param args: Parse a list of Zingg command line options parameter values e.g. "--location" etc. optional argument for initializing this class. + :type args: List(String) or None + """ + PHASE = getJVM().zingg.common.client.ClientOptions.PHASE + """:PHASE: phase parameter for this class""" + CONF = getJVM().zingg.common.client.ClientOptions.CONF + """:CONF: conf parameter for this class""" + LICENSE = getJVM().zingg.common.client.ClientOptions.LICENSE + """:LICENSE: license parameter for this class""" + EMAIL = getJVM().zingg.common.client.ClientOptions.EMAIL + """:EMAIL: e-mail parameter for this class""" + LOCATION = getJVM().zingg.common.client.ClientOptions.LOCATION + """:LOCATION: location parameter for this class""" + REMOTE = getJVM().zingg.common.client.ClientOptions.REMOTE + """:REMOTE: remote option used internally for running on Databricks""" + ZINGG_DIR = getJVM().zingg.common.client.ClientOptions.ZINGG_DIR + """:ZINGG_DIR: location where Zingg saves the model, training data etc""" + MODEL_ID = getJVM().zingg.common.client.ClientOptions.MODEL_ID + """:MODEL_ID: ZINGG_DIR/MODEL_ID is used to save the model""" + COLUMN = getJVM().zingg.common.client.ClientOptions.COLUMN + """:COLUMN: Column whose stop words are to be recommended through Zingg""" + + def __init__(self, argsSent=None): + print(argsSent) + if(argsSent == None): + args = [] + else: + args = argsSent.copy() + if (not (self.PHASE in args)): + args.append(self.PHASE) + args.append("peekModel") + if (not (self.LICENSE in args)): + args.append(self.LICENSE) + args.append("zinggLic.txt") + if (not (self.EMAIL in args)): + args.append(self.EMAIL) + args.append("zingg@zingg.ai") + if (not (self.CONF in args)): + args.append(self.CONF) + args.append("dummyConf.json") + print("arguments for client options are ", args) + self.co = getJVM().zingg.common.client.ClientOptions(args) + + + def getClientOptions(self): + """ Method to get pointer address of this class + + :return: The pointer containing address of the this class object + :rtype: pointer(ClientOptions) + """ + return self.co + + def getOptionValue(self, option): + """ Method to get value for the key option + + :param option: key to geting the value + :type option: String + :return: The value which is mapped for given key + :rtype: String + """ + return self.co.getOptionValue(option) + + def setOptionValue(self, option, value): + """ Method to map option key to the given value + + :param option: key that is mapped with value + :type option: String + :param value: value to be set for given key + :type value: String + """ + self.co.get(option).setValue(value) + + def getPhase(self): + """ Method to get PHASE value + + :return: The PHASE parameter value + :rtype: String + """ + return self.co.get(ClientOptions.PHASE).getValue() + + def setPhase(self, newValue): + """ Method to set PHASE value + + :param newValue: name of the phase + :type newValue: String + :return: The pointer containing address of the this class object after seting phase + :rtype: pointer(ClientOptions) + """ + self.co.get(ClientOptions.PHASE).setValue(newValue) + + def getConf(self): + """ Method to get CONF value + + :return: The CONF parameter value + :rtype: String + """ + return self.co.get(ClientOptions.CONF).getValue() + + def hasLocation(self): + """ Method to check if this class has LOCATION parameter set as None or not + + :return: The boolean value if LOCATION parameter is present or not + :rtype: Bool + """ + if(self.co.get(ClientOptions.LOCATION)==None): + return False + else: + return True - def getLocation(self): - """ Method to get LOCATION value + def getLocation(self): + """ Method to get LOCATION value - :return: The LOCATION parameter value - :rtype: String - """ - return self.co.get(ClientOptions.LOCATION).getValue() - - -class FieldDefinition: - """ This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. - - :param name: name of the field - :type name: String - :param dataType: type of the data e.g. string, float, etc. - :type dataType: String - :param matchType: match type of this field e.g. FUSSY, EXACT, etc. - :type matchType: MatchType - """ - - def __init__(self, name, dataType, *matchType): - self.fd = getJVM().zingg.common.client.FieldDefinition() - self.fd.setFieldName(name) - self.fd.setDataType(self.stringify(dataType)) - self.fd.setMatchType(matchType) - self.fd.setFields(name) - - def setStopWords(self, stopWords): - """ Method to add stopwords to this class object + :return: The LOCATION parameter value + :rtype: String + """ + return self.co.get(ClientOptions.LOCATION).getValue() - :param stopWords: The stop Words containing csv file's location - :type stopWords: String - """ - self.fd.setStopWords(stopWords) - def getFieldDefinition(self): - """ Method to get pointer address of this class + class FieldDefinition: + """ This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. - :return: The pointer containing the address of this class object - :rtype: pointer(FieldDefinition) + :param name: name of the field + :type name: String + :param dataType: type of the data e.g. string, float, etc. + :type dataType: String + :param matchType: match type of this field e.g. FUSSY, EXACT, etc. + :type matchType: MatchType """ - return self.fd - # should be stringify'ed before it is set in fd object - def stringify(self, str): - """ Method to stringify'ed the dataType before it is set in FieldDefinition object + def __init__(self, name, dataType, *matchType): + self.fd = getJVM().zingg.common.client.FieldDefinition() + self.fd.setFieldName(name) + self.fd.setDataType(self.stringify(dataType)) + self.fd.setMatchType(matchType) + self.fd.setFields(name) - :param str: dataType of the FieldDefinition - :type str: String - :return: The stringify'ed value of the dataType - :rtype: String - """ - - return str - - -def parseArguments(argv): - """ This method is used for checking mandatory arguments and creating an arguments list from Command line arguments - - :param argv: Values that are passed during the calling of the program along with the calling statement. - :type argv: List - :return: a list containing necessary arguments to run any phase - :rtype: List - """ - parser = argparse.ArgumentParser(description='Zingg\'s python APIs') - mandatoryOptions = parser.add_argument_group('mandatory arguments') - mandatoryOptions.add_argument('--phase', required=True, - help='python phase e.g. assessModel') - mandatoryOptions.add_argument('--conf', required=True, - help='JSON configuration with data input output locations and field definitions') - - args, remaining_args = parser.parse_known_args(argv) - LOG.debug("args: ", args) - return args + def setStopWords(self, stopWords): + """ Method to add stopwords to this class object + + :param stopWords: The stop Words containing csv file's location + :type stopWords: String + """ + self.fd.setStopWords(stopWords) + + def getFieldDefinition(self): + """ Method to get pointer address of this class + + :return: The pointer containing the address of this class object + :rtype: pointer(FieldDefinition) + """ + return self.fd + + # should be stringify'ed before it is set in fd object + def stringify(self, str): + """ Method to stringify'ed the dataType before it is set in FieldDefinition object + + :param str: dataType of the FieldDefinition + :type str: String + :return: The stringify'ed value of the dataType + :rtype: String + """ + + return str + + + def parseArguments(argv): + """ This method is used for checking mandatory arguments and creating an arguments list from Command line arguments + + :param argv: Values that are passed during the calling of the program along with the calling statement. + :type argv: List + :return: a list containing necessary arguments to run any phase + :rtype: List + """ + parser = argparse.ArgumentParser(description='Zingg\'s python APIs') + mandatoryOptions = parser.add_argument_group('mandatory arguments') + mandatoryOptions.add_argument('--phase', required=True, + help='python phase e.g. assessModel') + mandatoryOptions.add_argument('--conf', required=True, + help='JSON configuration with data input output locations and field definitions') + + args, remaining_args = parser.parse_known_args(argv) + LOG.debug("args: ", args) + return args diff --git a/python/zingg/pipes.py b/python/zingg/pipes.py index 94db83699..bb505d2ec 100644 --- a/python/zingg/pipes.py +++ b/python/zingg/pipes.py @@ -4,270 +4,271 @@ This module is submodule of zingg to work with different types of Pipes. Classes of this module inherit the Pipe class, and use that class to create many different types of pipes. """ +if __name__ == '__main__': -import logging -from zingg.client import * + import logging + from zingg.client import * -LOG = logging.getLogger("zingg.pipes") + LOG = logging.getLogger("zingg.pipes") -JPipe = getJVM().zingg.spark.client.pipe.SparkPipe -FilePipe = getJVM().zingg.common.client.pipe.FilePipe -JStructType = getJVM().org.apache.spark.sql.types.StructType + JPipe = getJVM().zingg.spark.client.pipe.SparkPipe + FilePipe = getJVM().zingg.common.client.pipe.FilePipe + JStructType = getJVM().org.apache.spark.sql.types.StructType -class Pipe: - """ Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc + class Pipe: + """ Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc - :param name: name of the pipe - :type name: String - :param format: formate of pipe e.g. bigquery,InMemory, etc. - :type format: Format - """ + :param name: name of the pipe + :type name: String + :param format: formate of pipe e.g. bigquery,InMemory, etc. + :type format: Format + """ - def __init__(self, name, format): - self.pipe = getJVM().zingg.spark.client.pipe.SparkPipe() - self.pipe.setName(name) - self.pipe.setFormat(format) + def __init__(self, name, format): + self.pipe = getJVM().zingg.spark.client.pipe.SparkPipe() + self.pipe.setName(name) + self.pipe.setFormat(format) - def getPipe(self): - """ Method to get Pipe + def getPipe(self): + """ Method to get Pipe - :return: pipe parameter values in the format of a list of string - :rtype: Pipe - """ - return self.pipe + :return: pipe parameter values in the format of a list of string + :rtype: Pipe + """ + return self.pipe + + def addProperty(self, name, value): + """ Method for adding different properties of pipe + + :param name: name of the property + :type name: String + :param value: value you want to set for the property + :type value: String + """ + self.pipe.setProp(name, value) + + def setSchema(self, s): + """ Method to set pipe schema value + + :param s: json schema for the pipe + :type s: Schema + """ + self.pipe.setSchema(s) - def addProperty(self, name, value): - """ Method for adding different properties of pipe + def toString(self): + """ Method to get pipe parameter values - :param name: name of the property + :return: pipe information in list format + :rtype: List[String] + """ + return self.pipe.toString() + + + class CsvPipe(Pipe): + """ Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. + + :param name: name of the pipe. :type name: String - :param value: value you want to set for the property - :type value: String + :param location: (optional) location from where we read data + :type location: String or None + :param schema: (optional) json schema for the pipe + :type schema: Schema or None """ - self.pipe.setProp(name, value) - - def setSchema(self, s): - """ Method to set pipe schema value + def __init__(self, name, location = None, schema = None): + Pipe.__init__(self, name, JPipe.FORMAT_CSV) + if(location != None): + Pipe.addProperty(self, FilePipe.LOCATION, location) + if(schema != None): + #df = spark.read.format(JPipe.FORMAT_CSV).schema(schema).load(location) + #s = JStructType.fromDDL(schema) + Pipe.setSchema(self, schema) + print("set schema ") + + def setDelimiter(self, delimiter): + """ This method is used to define delimiter of CsvPipe - :param s: json schema for the pipe - :type s: Schema - """ - self.pipe.setSchema(s) + :param delimiter: a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams + :type delimiter: String + """ + Pipe.addProperty(self, "delimiter", delimiter) - def toString(self): - """ Method to get pipe parameter values + def setLocation(self, location): + """ Method to set location of pipe - :return: pipe information in list format - :rtype: List[String] - """ - return self.pipe.toString() - - -class CsvPipe(Pipe): - """ Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. - - :param name: name of the pipe. - :type name: String - :param location: (optional) location from where we read data - :type location: String or None - :param schema: (optional) json schema for the pipe - :type schema: Schema or None - """ - def __init__(self, name, location = None, schema = None): - Pipe.__init__(self, name, JPipe.FORMAT_CSV) - if(location != None): + :param location: location from where we read data + :type location: String + """ Pipe.addProperty(self, FilePipe.LOCATION, location) - if(schema != None): - #df = spark.read.format(JPipe.FORMAT_CSV).schema(schema).load(location) - #s = JStructType.fromDDL(schema) - Pipe.setSchema(self, schema) - print("set schema ") - - def setDelimiter(self, delimiter): - """ This method is used to define delimiter of CsvPipe - - :param delimiter: a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams - :type delimiter: String - """ - Pipe.addProperty(self, "delimiter", delimiter) - def setLocation(self, location): - """ Method to set location of pipe + def setHeader(self, header): + """ Method to set header property of pipe - :param location: location from where we read data - :type location: String - """ - Pipe.addProperty(self, FilePipe.LOCATION, location) + :param header: true if pipe have header, false otherwise + :type header: Boolean + """ + Pipe.addProperty(self, FilePipe.HEADER, header) - def setHeader(self, header): - """ Method to set header property of pipe + class BigQueryPipe(Pipe): + """ Pipe Class for working with BigQuery pipeline - :param header: true if pipe have header, false otherwise - :type header: Boolean + :param name: name of the pipe. + :type name: String """ - Pipe.addProperty(self, FilePipe.HEADER, header) -class BigQueryPipe(Pipe): - """ Pipe Class for working with BigQuery pipeline + VIEWS_ENABLED = "viewsEnabled" + CREDENTIAL_FILE = "credentialsFile" + TABLE = "table" + TEMP_GCS_BUCKET="temporaryGcsBucket" - :param name: name of the pipe. - :type name: String - """ + def __init__(self,name): + Pipe.__init__(self, name, JPipe.FORMAT_BIGQUERY) - VIEWS_ENABLED = "viewsEnabled" - CREDENTIAL_FILE = "credentialsFile" - TABLE = "table" - TEMP_GCS_BUCKET="temporaryGcsBucket" + def setCredentialFile(self, file): + """ Method to set Credential file to the pipe - def __init__(self,name): - Pipe.__init__(self, name, JPipe.FORMAT_BIGQUERY) + :param file: credential file name + :type file: String + """ + Pipe.addProperty(self, "credentialsFile", file) - def setCredentialFile(self, file): - """ Method to set Credential file to the pipe + def setTable(self, table): + """ Method to set Table to the pipe - :param file: credential file name - :type file: String - """ - Pipe.addProperty(self, "credentialsFile", file) + :param table: provide table parameter + :type table: String + """ + Pipe.addProperty(self, "table", table) - def setTable(self, table): - """ Method to set Table to the pipe + def setTemporaryGcsBucket(self, bucket): + """ Method to set TemporaryGcsBucket to the pipe - :param table: provide table parameter - :type table: String - """ - Pipe.addProperty(self, "table", table) + :param bucket: provide bucket parameter + :type bucket: String + """ + Pipe.addProperty(self, "temporaryGcsBucket", bucket) - def setTemporaryGcsBucket(self, bucket): - """ Method to set TemporaryGcsBucket to the pipe + def setViewsEnabled(self, isEnabled): + """ Method to set if viewsEnabled parameter is Enabled or not + + :param isEnabled: provide boolean parameter which defines if viewsEnabled option is enable or not + :type isEnabled: Bool + """ + Pipe.addProperty(self, "viewsEnabled", isEnabled) - :param bucket: provide bucket parameter - :type bucket: String - """ - Pipe.addProperty(self, "temporaryGcsBucket", bucket) - def setViewsEnabled(self, isEnabled): - """ Method to set if viewsEnabled parameter is Enabled or not + class SnowflakePipe(Pipe): + """ Pipe Class for working with Snowflake pipeline - :param isEnabled: provide boolean parameter which defines if viewsEnabled option is enable or not - :type isEnabled: Bool + :param name: name of the pipe + :type name: String """ - Pipe.addProperty(self, "viewsEnabled", isEnabled) - - -class SnowflakePipe(Pipe): - """ Pipe Class for working with Snowflake pipeline - - :param name: name of the pipe - :type name: String - """ - URL = "sfUrl" - USER = "sfUser" - PASSWORD = "sfPassword" - DATABASE ="sfDatabase" - SCHEMA = "sfSchema" - WAREHOUSE = "sfWarehouse" - DBTABLE = "dbtable" - - def __init__(self,name): - Pipe.__init__(self, name, JPipe.FORMAT_SNOWFLAKE) - Pipe.addProperty(self, "application", "zinggai_zingg") - + URL = "sfUrl" + USER = "sfUser" + PASSWORD = "sfPassword" + DATABASE ="sfDatabase" + SCHEMA = "sfSchema" + WAREHOUSE = "sfWarehouse" + DBTABLE = "dbtable" + + def __init__(self,name): + Pipe.__init__(self, name, JPipe.FORMAT_SNOWFLAKE) + Pipe.addProperty(self, "application", "zinggai_zingg") + - def setURL(self, url): - """ Method to set url to the pipe + def setURL(self, url): + """ Method to set url to the pipe - :param url: provide url for this pipe - :type url: String - """ - Pipe.addProperty(self, "sfUrl", url) + :param url: provide url for this pipe + :type url: String + """ + Pipe.addProperty(self, "sfUrl", url) - def setUser(self, user): - """ Method to set User to the pipe - - :param user: provide User parameter. - :type user: String - """ - Pipe.addProperty(self, "sfUser", user) + def setUser(self, user): + """ Method to set User to the pipe + + :param user: provide User parameter. + :type user: String + """ + Pipe.addProperty(self, "sfUser", user) - def setPassword(self, passwd): - """ Method to set Password to the pipe - - :param passwd: provide Password parameter. - :type passwd: String - """ - Pipe.addProperty(self, "sfPassword", passwd) + def setPassword(self, passwd): + """ Method to set Password to the pipe + + :param passwd: provide Password parameter. + :type passwd: String + """ + Pipe.addProperty(self, "sfPassword", passwd) - def setDatabase(self, db): - """ Method to set Database to the pipe - - :param db: provide Database parameter. - :type db: Database - """ - Pipe.addProperty(self, "sfDatabase", db) + def setDatabase(self, db): + """ Method to set Database to the pipe + + :param db: provide Database parameter. + :type db: Database + """ + Pipe.addProperty(self, "sfDatabase", db) - def setSFSchema(self, schema): - """ Method to set Schema to the pipe - - :param schema: provide schema parameter. - :type schema: Schema - """ - Pipe.addProperty(self, "sfSchema", schema) + def setSFSchema(self, schema): + """ Method to set Schema to the pipe + + :param schema: provide schema parameter. + :type schema: Schema + """ + Pipe.addProperty(self, "sfSchema", schema) - def setWarehouse(self, warehouse): - """ Method to set warehouse parameter to the pipe - - :param warehouse: provide warehouse parameter. - :type warehouse: String - """ - Pipe.addProperty(self, "sfWarehouse", warehouse) + def setWarehouse(self, warehouse): + """ Method to set warehouse parameter to the pipe + + :param warehouse: provide warehouse parameter. + :type warehouse: String + """ + Pipe.addProperty(self, "sfWarehouse", warehouse) - def setDbTable(self, dbtable): - """ description - - :param dbtable: provide bucket parameter. - :type dbtable: String - """ - Pipe.addProperty(self, "dbtable", dbtable) - + def setDbTable(self, dbtable): + """ description + + :param dbtable: provide bucket parameter. + :type dbtable: String + """ + Pipe.addProperty(self, "dbtable", dbtable) + -class InMemoryPipe(Pipe): - """ Pipe Class for working with InMemory pipeline + class InMemoryPipe(Pipe): + """ Pipe Class for working with InMemory pipeline - :param name: name of the pipe - :type name: String - :param df: provide dataset for this pipe (optional) - :type df: Dataset or None - """ + :param name: name of the pipe + :type name: String + :param df: provide dataset for this pipe (optional) + :type df: Dataset or None + """ - def __init__(self, name, df = None): - Pipe.__init__(self, name, JPipe.FORMAT_INMEMORY) - if (df is not None): - self.setDataset(df) + def __init__(self, name, df = None): + Pipe.__init__(self, name, JPipe.FORMAT_INMEMORY) + if (df is not None): + self.setDataset(df) - def setDataset(self, df): - """ Method to set DataFrame of the pipe - - :param df: pandas or spark dataframe for the pipe - :type df: DataFrame - """ - if (isinstance(df, pd.DataFrame)): - print('schema of pandas df is ' , Pipe.getPipe(self).getSchema()) - if (Pipe.getPipe(self).getSchema() is not None): - ds = getSparkSession().createDataFrame(df, schema=Pipe.getPipe(self).getSchema()) + def setDataset(self, df): + """ Method to set DataFrame of the pipe + + :param df: pandas or spark dataframe for the pipe + :type df: DataFrame + """ + if (isinstance(df, pd.DataFrame)): + print('schema of pandas df is ' , Pipe.getPipe(self).getSchema()) + if (Pipe.getPipe(self).getSchema() is not None): + ds = getSparkSession().createDataFrame(df, schema=Pipe.getPipe(self).getSchema()) + else: + ds = getSparkSession().createDataFrame(df) + + Pipe.getPipe(self).setDataset(ds._jdf) + elif (isinstance(df, DataFrame)): + Pipe.getPipe(self).setDataset(df._jdf) else: - ds = getSparkSession().createDataFrame(df) + LOG.error(" setDataset(): NUll or Unsupported type: %s", type(df)) + + def getDataset(self): + """ Method to get Dataset from pipe - Pipe.getPipe(self).setDataset(ds._jdf) - elif (isinstance(df, DataFrame)): - Pipe.getPipe(self).setDataset(df._jdf) - else: - LOG.error(" setDataset(): NUll or Unsupported type: %s", type(df)) - - def getDataset(self): - """ Method to get Dataset from pipe - - :return: dataset of the pipe in the format of spark dataset - :rtype: Dataset - """ - return Pipe.getPipe(self).getDataset().df() + :return: dataset of the pipe in the format of spark dataset + :rtype: Dataset + """ + return Pipe.getPipe(self).getDataset().df() From 248f971c570b6878122dd5e6fd3ae12457a4d397 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Thu, 4 Jan 2024 20:25:14 +0530 Subject: [PATCH 11/36] Revert "added __main__ to pkg to make sure it doesnt run when loaded" This reverts commit 1d46899ce44e15dcf90f16dea6b8872a2bc8fc81. --- .../docs/_build/doctrees/environment.pickle | Bin 35314 -> 533605 bytes python/docs/_build/doctrees/index.doctree | Bin 10040 -> 10386 bytes python/docs/_build/doctrees/zingg.doctree | Bin 6968 -> 296430 bytes python/docs/_build/markdown/index.md | 183 --- python/docs/_build/markdown/zingg.md | 785 ---------- python/docs/conf.py | 3 +- python/docs/index.rst | 5 + python/zingg/client.py | 1370 ++++++++--------- python/zingg/pipes.py | 439 +++--- 9 files changed, 910 insertions(+), 1875 deletions(-) delete mode 100644 python/docs/_build/markdown/index.md delete mode 100644 python/docs/_build/markdown/zingg.md diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle index e7641c78c77993d02a78bcbc34987c18902a7986..d8e6b105f093f0aa3a3bf2506bdccbef9e112a9d 100644 GIT binary patch literal 533605 zcmeFad4L>ObuVnml4j8^%d&-ST$UHLY|Tg(27|m?mW;6$W7&Aa9`|(DOn0fLyWNYV zVaYQgEFwinaFa(M;jv^PA;}9N3xOmM9uSrQ5AzbpBZ0($kbNN}gun;yoO9PxTUT{g zkD`3&k5P5it-G9imftz|+*^;Ye8X91EjtVU`J39!O0|A++N~e2wi@*Xx8CXb8*c4Z zYvujcttWarUeeHx!UUan`Ir{PPH~Y(=2u>wd!ooAD=ne zY25|CdQZTM%XanrmG`#YRvZ3rH|oV2{QshAeSW^@uWBxKDvf&2Ujfy^^Hnpm*a4_Q zHq-8PdUwP9cB_OfRwfFS$;#@=n#$VBy2^U-tkkH_RiU!AvN!7Ys(s>t9>PT9xZ7$~ z%WfM+1buNkT^f>mvg6j<)keMDdl))=j-t%T&UCrkDt6#W&(I6*7Q3AWbg;*Y){D(X z&Bda21;?xIiBhBN^1CJMNparox&BzQ)$rUB5dXXfktojodZ*f1bnbTBjT#UZE1W1b znv1RKd<9Ca+p~MmH9H+DJAKO?KpW^yr2(@sZtjh>+?rc#L#r!yPhT^=yXTKVgE+)q zW!m51o-Eb6Wfy0x@GD;xZYdn(<9+4gi9=5S*AwxckOjTZKCveH?o&2%d60@S!c zkY}dVDXUxS+-7%nrqpiF%vEbZ-G`x@^a{JRmTq}gp|$ny0!-b^T%)y6>=2ucwSg8i z=*gqv%DEgF1B!K_FaFqp>ijg_TG=Vi*5JB``~Iu~#`Ps+ypmGjj`_p1d<&E7s?` z$PWH;7iNfBTn(cr*4!Cjdm`wV_}%Um#q;w8MP}5yMEZIWXK2fdTa8BNrPD7~&tCds zVDXpAik*2EX8mMmrdX>rPRz`8U-Y8InNF)%Z`X*`+r3l%m@I=s^Dnd>&Hx?eTQ1CW zsa9;afo7*fcP1B#ZQ!LD5{s49df7cG+Z)Hu(EUn9lwI3ybXz5Nrrn*JtDZzzTru5h zqxylGJFRZ115;hbKK9z;jrH;kw+=H5a|-;~?aWO*d#YWX7tK_5SFRRiH&p8(?)H~o zd8H!UnzB1r?AAInEf7~V1?LybWgtbJcn{>F1?sTk;`m-IYsCT!jdB;J1gWeaZ0a;h zGmTjk;Td?TRW*+;4nLY{SAgcCeq`%%W1(18Q+^S=y#T_{=+qk>cc$gexzGTl-P%NSLyH0IGc#8!LfdlM)-{2o z#nvM59}(JL-ULacw%63biUGaI4E7EmMtW@!_bh|(Qg{Ln)+`k3O_0#`Ot%FBFKQUC zS3AvW>DXfL6ct)0f6r9s>!>&%7VmE6w_#rAK{({YRYC=-$vsDEM9_k8HB)w*U`6j- zM(tIuuiPLSzG$I%vbq4zf&J@6l$IG#YVgOc&qI0Hz4f3|D>G2dEXXAYyJ}-2-FF`Y zQY+0X-&n2Q0NtV}IN7PSXTW$==N8qi)p)A}EZOR`Rb!J~u<$cLA%GF8wl+|{^H>*n zS)uRJYWlMuyUmr8ve|wv%@p!u!JkmdjI`l$uh=X4kQzXI=*!knZM!dzDVwDPAUiRRvnC1&(Ymald|a4Q8-el?YsrX8#h6%_qcgy>Zs z5VwW-h1P4;cEtshB#TS4tg!=_D5_>X)eSfZ1~^xR7yPkq{aC$m0u&Jy5RJD>WbiBh zC~l6^Tit582X{z{=Ao3UZpq#Ok1B8=ii%z|8z{08HPC~~vntn$7B^9g z3aqd~z90oCSSccBi%Lb$@iss^sRMM;HW+W9@DJPVgSMFg4FQs^m|-)u3KAyn&zz{1 zQ3lTvZ;8>63Iul&u46sIUY0l=)>8$b+FM2b;9Sub;FpJ$yyykxm5462iREPfvAo;WPr37zJI>x58@-y4!pa7wp(>rGaD2TMq9oqSOaAU zA)}fCf%qHUPP2>1OaaH01RUk?glquz0DuJ$2^W+32si?PjGPhm?jFFJQTLw_ zys!Ku$sWKMCA8!l)O~cwIw1V&!5a0Ti$?O4D7{JD#F&AMZb-ZIH2uhEkxsD%cM;DB zb90_51Kt*>Sm~vqx4-qky$26Ehi^Hw-?@JOpqepM-iI&ebuL|#S zrsEbDAZT;&mczH-d&}+c-ob-6*Q(Qv*1URW4TAlXAT9G~(){se8PGJ`0Y<~2uNRM% zB_P;UsrXx81QrUBAH*#H=gY9gG`^P*)Ud)8s{pxm!K8J-N27)&MMF~m)2$8S7DSm2bSJwxLFa2qiOy|+$0gCGq#ZK$*8{uXiHGAkPO(DRMr zIYmCCr-x!PKHF#)NOBm^)q&9~W z^h91tA!TuHFJ50M*soZ*F~%JP=WM z0z^q-5#S6E&T}J$v*%xwi1v`QJBxQN(-OHB>ot5X`S@vgccFL;0Dur23|GNb1FW_z za!wnBspbmfu27VBt+q%TK}}Taa}A6T5x!JfC8p!xAno+N1F!oRAE~=YMAxx^wbPh$ zbVPOSp=!J2*1$HythSAM*`(Tx&?Xzyv#@ZgC(*h<55!Q(A6LN~$*AY5D(Wy^w^OXv zK>oXmROhRwrB(wXY&!m8gtNhP;0PQFop)WhQ?$9J+*2bF`++> zAr=UIfXlzOE#N)|BwG+hT+^wvK>TMYVhU=Ix^!^~7&S%IoJ z#nLed0=FwrB@Oiwu{<+_X0uy=3`{h}3(7N{#ioja%95AKlBtHbO%|3Q4%G_ykKoq8 zng}d2K;_yQKNlnvl!seu0(PpGW$?A<$3$rS30UBV7hrK(OpLG`Ena$>L z**%VdxhgIStaR&Bpe}T=^Gz|?2^IbEmtAd&tuw`hkE$!M+Br6hA@nlDxO@Huq=JKC zrYW&vqhH=&s)d&+{HUK<6}Q|43>x$2=b3j!m{r-TQ@V<+rpQ9I4j8eupyPomp@x+6`s}d{}=?u?At^Sr@zk449ElJ5LoA_2~#Y)VNSR=|Xgq7gMW6 z7DA>17pQumSyZGDqce3$56^T9RwTihZ-SmPMv_K_okooZYw_^NpD=ZZeq5%S(S^V; z=rH1p@E2hn6XW{29F{W0!kbp^Th)^J%zUE(7|~RsnmJ#W09XRyE!~PL z@N`{3t@>4AwFP3fu<`+gwIK@?gLR?f2&Vg&Y&YFf6@)if@-kf~n#W=pmaixlNbub~ zSwzgDhk8j;VO;IgC9g;-X+c71csH`*FeVJ$&=hTAPXLvG^Dk$QKWZVPs7IUGTN0wF zhi1ZHPQi>pP_rGd*ZOtFeKN#krnA%qI|A!h!fVj0NTvY#s(OZZjAQ_=AG{8Pr7ex3h*Ut3RoTt(@q(djygGr)= z9~vy6R+LSVP#vU(VEVN$8?2+bC{~wEk@dQW32{^Vo2&=4$|wY%o`oBp0l>9joNH5n zLV)B!BNbrsse+4ik%Y`3cLDn?kl-C2LF2=hUh1Xf7FabM=2!|n(#1gxXK z3PL}qeGgm7IO}8*koG0V?vi;rI-N)-C2gtHD)moeT(B0SP*${3r)(yXH1Ilz z)~MtsnI-X~{sw{~NJ}6Ctw6pMicJtsp~MJp>}>FNC&`?(7haSv;JXA(;6*Cz zO+o<=OL?oYD9}S^0Ab}aiDz24vhC?o@6NOR^W~WJ%?jkDfbQ-f@y-iAtP07*XDXLW zzX+*fcTVW^Fm;;-gypve>N1`Sc0;94sn;+r+`DtRe{SF{nLBppictG73HU;=Tfl>G zyK*`7V3nw=cjxtx8YIy?@)mH2SkZwbm`&_HED^wxKBUITZb9J79|ziW;58JYg1-(8 z9y-J_iNRkE&W691Ru{pKD~iOG6^O7Pii|)79C6InfJIxN@hSh@5|layYt;}J0E1G- zoC%QNSNm(4kXC{4i{L%3l!z!i+-^?`GGG)J67AMuNy|zc_SdxLO4hqqsCQwZs|fMr z5=6D8t8QnGDgbuch1e2n!uMEB>#B9Olu~K=>)-{#^fMQVfg3RNdYPi3UbUSO{;RY-!E^* zU#nJUV18j4weoZ|%BOBvY>$`}p|nkHD|4 z4>?2_hK5xoO!x6uL(sLROqsu0;v9%lcOU~&WGMifK*6(7n4ajp0&*I?>p(719aMH5 ztj@L|rm^b)m}nORjqP1`QC{TqoVv5?1tNW~z3Um%SMS~hX_mXhywlG%X!0q5+Q)DW z5*|RlQ0v&P_G7hOILlNCuu0FK8C6rLSgD0g)6=_1P3w-1_#k ze1F9P#9j5f-XqZY%3*H?{sWCNX~i;8rJr4;@FavFWws-fSt%?zT#ZALiTQ!iGtid^ z(=cQy-P9}NLLK*ki{c0|cZ&70gQ>hL$oQiI(Hai}cFo4Kb$7$3ZNRf7)*R46uwa(Rh_U^f6?=@FDkdeJ-dh&rr z*C`e2PO)5UcAQS7+NLTU5xwrXwMD1Xa26r;6$X0@P{U3K5`LU&#{s{)TPr)oj)O_t z9mryaESqW_>Tn%Qo^>9D=m$#AqmEc!sUCNydy;3xcvsv5N&p7?UuuM}=;77_G3~E` zS#8f2Gw`850Sgv;Md~c9WXm8#Pcqc2k!AWb)SW9OM^$cA>V^vjMBS0!R*J|bE8|}g zC;L+D?-CYU&*bZ{rnD~!;uORf-j1W;LUC9LL>8J!;=EN8=cmFI8)>_9Oo`hBh8N~r z#bzZSa6ckQAP0QQU3Y*`G+NGJ%3-I2a7M~22oUMbvI|MgI)j?i`_ciQ*z;2S)!=x_+80~KpIvvC71%Czg zpLP#GkZ5rV=eg&4QTRtP;9p}i#Pwf=t8O;ag<=FCttSIN^o#Z{c>e~K`LMlfj)J!S z3hIcz8g95JQ4LlxkbuuIZV#6ez?5R!3WT@D;fGi@IqaiGQL6`=!c!3rbs!U>k`FD83SQM68j%nMxb;rdFJF7HpJ&b$OL257-z0Di}+6 zbH#kE0a0>)Ri#>nXa-!Zl@;h4<02sh)YYA5`I7{5z@w-^evdy1ewXQoB%%Wi1_*ZN zIfAMe!J}9~fK5dL=cZ4gp(Bf8QYFE#8Av`1Utz)D@!s-c3$)71KecGsRBgneNB2<`|~4pB>{3 zc=j{FZK^HKZEp$pe5Bm=W@s-rZhI$GmYLf$9TK?h0x_*`%-q=oZj*KP2CZ`lZd)f* zoY*Du=wzIR^VhO+x>!)z{Q(R?@nn$i>}SMxt3<1u>pqJ$aCsRi*L^xO(Gzss7ooDO zT&Jjzz;hQ0p8G`Rt|suDtn;IT)|sB?g3yQq9u8ytRl;ib{AE`v=iou;Vi4;|{mh|2 zcQ)9RzqZ({qQw(i+(TdsA48njJZ^xogut_iF$?OY!&C@6(qpQP`$guCgV^fcHie{Z z2Q%V1!&YlnW)_l2b1nJ9V5^C6#l~9Qd9lJ)YgHPpI0b{Dnfo7Eb=FyPt;T|5`+JT^ zhHwqinRzmKDebhTh&1d_5_$R*$)lPk;a=Oh!MQ~}D(slN6qY(60PaFy8`eW{ z*$-Tf_T(I{WI)ja_~bVIpsn;}LgssjIB2Is%&^nJiQNf{G3Bf2 z?;cp%0qViEq!5;XkwQ$lF$>r2`oojN#?!#JLFUxWNVdj>8QhRvtHP=ctli;n5(HeI z(X|}H5_gmf+pgZdd)p3u`#}hY&EHmS6}C|oZR^qD?!sNL&Ll*oaE*EAASAKYZiC?W zQA#U3T78jQ*ggHs9g~xn;)*NAyfHM6A_sY-4fq3@8h61`H+2tgL;3+NHFcZt%-N3e zx*detg%e=J78Br=k#6Az2)fso!cOjs#MwbFtQDCp$tXi!U?X*AREua+G5?o!!q1S!O}N~ zv!)8jGdmsG;12O{8uj`u_40lZ(uPp0f|v*+zi)5CX72m;CScURZ*RVDZ@^l7-`;%R z-V9=Ig!3i5@C(63%9tav66_uxtp?{6>XXvY&|%)mn=mB&X82RN-yBpqhN)6;v_|jM z(nEV1`elIyvP(pNxXTvd18tA=VebO$<8X$v(eK zCL>SN->lA`0KkB|80jEDkuTeUeHt~fLL|?qpar9@B+`RGMSoqX+k&(_l^+kwPixd2 zk$-08Q~Mh+t&Q^b0B>S09R$f&y+9n(sGM4VmB2!<7ZCkqSkr_sA?zW=Q^)I zInQus9fHXwWSuUE;~WnA7l=D*54qSpq>=~^`?MGy8U&xcWXJ~iV3?%%+9$VNs zw+cImdsNp85{D1a@h=KI2~^=d0)pYM6ZM9U-|;Wx4+1ay8}wde=}16!X();N9FaQ+ z`^v0jY}n2L`Ezvc3v8j#$@q{M8qCl4wjo!pEyK<-*oY((`Jouy0Dp=0Y~rqv^>l}r zAG6%ettOnpQ*O*ao*9&aQ&r(GGd%dqyh)4!Ckq{~LW(wV<$5?FLF@|Ey&O~9UWAmb z!3}=kuZgo|fLCx+0*ptWl9rGuzZzC#b>ciQCLUm+js+CwM)VGC*dDb@fbB5w3P_oA z@g61RgP6d^U~v>Aq`kuZsmpg?0}>hDB*3>DcvoRX6L2&MNB|w9HeUImQ?UDF5i%T4 z&S;$rsjsyL9_ty%%a2a|_pZTOFTw*5;MgYE$t%uo5$6WM-uD*mn2*?;uojdGoi!nL zD*%C_w<`qpYxZ2WT#{<#|dbo~h| zi|HizrYL=iN}i%pr@EB%i;t)d%8j5pD8`F*cxdUm{#vasp(E6dwcwQ#ALC9EaR)ca zsB)AmP1|7A9Z?Q4sDVWmW*aqq8Y>9Jr}VPpJ2)*o118er>W_L=_5~)nMk&4b~-} zK#~J!jS{4F0B7~Q8*u8!_Q{`50EH;keH|n`f~>s(5}W zjB~P#`Oi|;&FTt-bFYJzy@%kBwFIe?0Ww6iFBY!;{@}6FPGtIN-_k7F{UMxuS`zwg zyh0chUJ@EKi(X&{m0Bwx)d#{2_DysrSShy6y#zXV=W-x!AWgtep9#wI)pJitEsNPo zkuW<%NBFwl=fgDBljyylGaw!*m_xqlmlK*a=@OrWQn2LnDe>QD#DAX^|9y`BGx?@} z4!GBUEOsR*yQ%Gmxem;W<}ev*EZ*Zt z%9b98_cHvAYQ^8zZxGVtKni_$2x{6AM&fUU_yD?k8l9A9W*6yO66mm<7x@$p5P(1= z65cxwf4~RK0Q}e3rjjkp`TP-s^l!k%vRO|rURij5hJ z2j}c4g4>Z_p=%404W^_fBDo-Db2;V?uuIWn7+k?2dBlT+L)<6}qhNZt-1`yeEwJ{F z(ticf^viJsn%UvZ5-)E>3~^1EW;~|;5}m8$6euo>c@eh2?10_t_U~!^0<$V;$Zk#A_r73rY&h9tmN=k%UEr%K_*6#Qnt(Gsae|=@89)E<7OrP!5*I z;!bIUB<{kaO0XkvegZ`K0!*=%F*u)!z%w@O-wThTpAIX)5=?b|3btWWKOpQ5-6Bq; z-)`iLdEdf@{sX5*;0`{RSdx0*!S_fPE>m=vAUZ@4VM5CkCxCUI4Sv&DJkQ7QB%IKV zgBK$o$BtwfwAJ&JBd%QTn{(2{k)M3#wbsc3zwI4^=c=>M*l91YbSAOlW*`#xZ{-Yz z`V~7Q%~2t5@e?q+MJbwaMhB1<;;2YqaZnoUp@|ZIf0Y0N;3L><4}B&!1g#FoHN(av zni`J=FbU^s(MiT|IGA@m&O6?IB^=X84@^lpIIUX5N13EEW-+4}?5B}CwboP&DtH^u zen9t<=}A3Zg;3yf>#dNf)!s{+k7*ox9~D&4yHlk49+L&Rf_-iRGlyb0n{dN!bR%9c zaC0|SY$r~yl9R(^>7In<<7CO(0OS)pabZ6zfEPISIcCbmw0K*P-h@H#g7$I?(mVo{ zSwR}fMzI^GPI;GNKZuPk!z<(^?{XZBqK)kDc6>@s$!JW2pao8SHj5{_XCP-2M_HW9AcV@HBy1hs7{+q@oIvc|-sqX2vLrAQG!# z#TX9Ki_=6@a3!TiCzp|xk+x)&`Qu^(04)46Rbg&3`o2C_`ucXa1T9{R4N#2n6?jFA zjS)|qB(n|pcnBZG^XY`xxkZd=;Oa7d%d`q9wZ&P;kPt_fs87W}rZet)fIM1E8^@!7 zAmJLzf)m;~<*Nm)soW0olV>Gg<&&_;4dCOjz)Kj6d{t?#D(2C@( zSRI+a58+h=gTFn{-OJ&V9>~q4f$>nPmN<-xlr%nQLC6&#k>tc6m;NC(V{>WB`WO*D zkCkXsGBgp4(K4JTSL8kiEe*nX-utkNny`a#ocDWJMPNo`w}xT2Lzw6vW;cDCQTku< zrLeC>*U3qu6j=~}0bGU1!jYq9vR1TmpB*^GZCh@yq3u)`nTuTTc{cDV5 zE8(M`BWBK(g0q%EOG7dzPD5_YDZ3S9&XA9muxQWqHen1g*8K^Ln0qMD`xqkcEAcag z5CCWwb~pvwEi?fY*yse`S1&_6@Z#tK)2fcRz+mFIJ_X%~HX={*C;nC)sL(AIXrqqa zbyM&*0tv0!;4n-%KF;>$He>7Sva@x;y9j6P>F_7o?GDCpylq&XwC1(p=KL4r8Vu8f z>II@fn=bZYvCQ{gp&oO|}Oxek=TY{Z;@6M!i8{E)3_2g&qzZ122$5lK0rO z+#jY>KgYsfR!@$C20A7tbPr$)oqo7Id7-vn|K@pw=_ zYC2BVN56$#oN6{V-hlR$SClFR$u(w_sJ9!=r^r&x0dpCrYDv{wn65EFLtSE)Rn zpF)C-LF9{0YxCZMKPmoe|E@QtL}mgU+*XGr$ufNE3^t^w+jvkFeooI{BOj{Y8=-^@ z7q)ew_4S6jr^;bXl-}!7j(blDjaZE`L>H7HV}*01Ic!9x_hxa_uI85ma4^C1jvhIj zV2N@61H^x{L6!%5%9VLt({xPDBeu_b`gWjz+4P6OTs+|WAtqvhaBeIlW@xRBRBK&43wbl%soRpC}a^|7KD z89NKwBk$X~vfmB&)pv778?gDN<7zfg9BqM*AU-=Uj#U}iV@t8g_)>U)T83jLV;J-n zK~L{bu?yO=-U+`f74EMOu)hLV1@HNRlH;nRD&pPOw*Vpm=#-!ywM7-YuQsjyb_aH+NI@}9a3?0U*Ed>@Y z)v7XX>`~a!QZhpP-jCC(r8@yThL=xYaEP3HJegl;VhGGTVx>|fhC$YtSgoRCPcS5f z7)6}yk1>4m5*_W9ILC2|stMqe9FD3Hrs8fLK(M2h$t6_R@zN!>kzz(~VuOJheN~J% zP{jVlvkY!9yy| zD}kuIf19$YPT?pe;O=myrf_xD*>~jdfglSb_wTcgl#xQA?6JyLQ>TqVN-yr;eQ20x(_aZn|m=lpQT1R-8Ugve5%y+K8I!4ap93%?cv2=)Qv-j6_Q zlo%nFO2H|4waA7*o8jqf2&sE0|ABy&Jzc?_TZywJ@Q?G<<4*)Umi}+;$|@3U`jYAo z8RG;bW2<2z#j(s2Cc_`r8OmbnD^yc@#c`{!aY3y?XG&#O8*OOZ_6gGB*55})(KepT zW)?1%bp1iBj_CTo1T~^H0zQmuHC`k9FuY}tQOP;eg6byYo}% zmrdoi$#@wbK;{g{yBI6Z0`h{0?ONnf+N9#P;4@{i zc|S{ke~$jXlm7lZ{rv^{`!4(|C*>F6+L9-l;U!yrJP@<+BK-6WYmnE(B?U#V1<5!- z%>M42GKHS4)p%T7RSwgGPdPzZ$VVn0&rx%739nFwN)Qwn*S8sI{=e*`$+ANEEvP;l$~H@BQeB%B%73NGMzunD z?rLThSSm^klVqX9MyNh#O2pXIJ_;dbg|a`>F7*oK_LSD7Ulv=$$h7o_NcbV(v0T?F zuS2$?b;^Bk#nvhNs4%r!xg#YVqSh=ewIc#6A7=8Nux6Pd4N(fJL4&*zfd;Lf#G0~H zS#AOi-h*T%G}RMg}9Zg6Gp?o%$J6S)BXZ0 z9){C$5AT0Fr=i+$>x?-i(cyix8439$--O2?qU4A#3xxOanXw97QN*wHCx-Vot%DS_I18Rr&vk)o}-cKS_$dAjC;_?leoh*b2=?WB;Ty(_%12N%!ZuB@S z4N$Rh=s0o->V%~5K5m`uNVqxw{@ndLH9N+?3WjuZckvxq5l8LV}T(_d2+;jg)UQuyXX`#3SVESrZ}rkB6|K zG`?O2|6jIh)G}{GsAa1su?8taob9bR4vMqA4X;Qo)72TJmY)Uu`5>e)&EsKoB)j+_ z+!PA>s(1w*s&B-q+I;1DI(jrpABUCp=BO7`aiPAWi!eq0KE~1hU6Hk#IxfO~SsdovE{0yraIVJa*+@Y$ zMmNJ1Ge(I#uWV9kAq<%&Ywm<;T7z9lWtxIZ1#^7a31j=}NKv&5V6IUs!#05vbXqO} zhRJsExGO$-(UIp&iqlBv;A@6uXLb>GG1trXWO9|TRE;w2@?1uvRN5tJ2|#aS_EuxX zLXyO6>}M?vv_@e(Kt8ns5Lok{2OyZi{t_T~6t4&n&{eL0z|aY8Ro>s<5QpyVQC2C7 z2e`ct5>RzzF#lQ$Ww6N?hE<|!+2j(04e^HHkh!RZA2Xp?WUQJ>D2DO)y5Z*hM@EB` z6z!}daz<`vBZlX_3Wt2!?CjIxnW|s1M#Nw=TZfh!nlQ>-jq6*GY-C)27Ot3a4YRbe zsL3J}GNabi2*usPMpK#5^q*@Bh4gqMLZMqd$wQ(4CXRy?`g`$;6gpkys?aqzj7XW^ zq%@liBo4thxZQF}A1`hPMPkJn)O_Aq^~wDjz|XT1OB3r(GB6hr7O`Xvwm9|L-9t>z)iD z;){)SR(&q2?;0MN^{hh{g8S~rR0o+z>AQ^Q{|Dp5R6IY7g?)3lxxDue>A`C=77PWi zvFWJcN$~LS=u*K0v!hEE3PFCj_vl%2-yjf#KzAdHAH=qU^ZCw?3Tmn*{f6QmX)jIY2ILl|1l6_T*FH!4LE z@hKIH{sJ+)5t~SZ7{c2dFE$YeXc4}^ruH&MZawQ;nu*Tev2LYOSgDNkh}Dpw>0h(X z!^&vfHpUEl%c6d(TW#hamp~X16l(0wG92{Gqab~H)-mI2!PoFo1!>~^4Lmip0 zolj0ekZ`cGkMT!vr{8U(B9`n=?172Fj!r0n2pm*u-Dk6W@2EO{_fWI!-3+g%-;(Iv zhr<|tmNk$TQW!ircwtn;lCvx}kp}ig;zK+m82>|C@0G% z&Gj(CY!Fq(ILwA_v^KHMZIaD58@j(uRb)|1vKN=*p@VePAUEk;Ne@6FlMBZ2SJ12` zZPFw;O0!853ktXXop?oVJzeGM)@xWiqSS$_!1(WL)Vd4xG+Th2n8?4bWW;X$1xf_l z)4It*iMp>fQ8@8yLYL(>$-2+v_V*GLNDR9V{rq@PIX&$Iv&61OI=Z`fS=U!GZtZLsS;yz(>rt_ZcLKo|>h0 z;JK44)Iq=ef{0P*Nerp(_rmaUb>Y8@^dc92)rNozZ%MUs;?Ipz8xd~2H4DN%y$_oi z%#HsvcjMcgM)ST#tK8n#?KI}*g5T_zymiqjyK}{Et+Ugi%yGv(2}uK`PTRS9_vI?V zyi%R7ICCxcv94P$EjrzL6|S5USTEdeEI38=nf7VtjyXy!a84BKP)WHuH|MtCbEM$y z)!b62+Nkfuue&cg?MkCtE0Yu0Z8}GT{cJUwZmYAX)dGq2f3?9e^|TH+%1k;3C2{I0 z!H?7F?;}_0f@fE=?w_tO$)&6pLle=2NgS-0!X!poF$$16OwtL8VqvbCC4g@SIt?sl+E7Q&}JAjw&e}s?bx$sn5=r$R@IK4OAQ(S;2>K z@{vBWvXZFIM=S5KF&;{2Z2)OBQI+S>7_(F{OjP9v4#V=d(QLh8`B}@(!hZ?j6?-Ov z-gV+c#5%hD-+JI4NJ<-x7_g~L>PZMfWbu!$&OEgt{}|QGkpA&SgZ9Gs$6S|lEjj>& zjDO65O;DdE`Ny*`sy^Rd7pKxZ@iU( zT~avKag7F%P-#;@a458Ql31I zR0ze~3nlPb^cO7tGuVXIUBK+O#eT~;xT^Xr?#E-kK7Pa(9QaN}x#e^N7E)(jXQ9|B zRorsm>(hf)!USy+sAC3^N&!c*v?Q1DOLIQ*TQMC=+8bk?hZ#66i}x3^UJOk__IZ$_-yQ4uSyKMx1`^DysEbHx22 ztP}LM6S*_i+wT9?a|V}lHc3e>g^YL>Z+Z%-ooziOi)J&e=Y?f@JuC#*5EzG!r@h4V{2F(*xY7pcU``OGVb`bP;sm~jt}FQJ%c-r z1XP3&i`pyb78~JR32nt0*@T=6q2Qfz|+DNQCl78J3KPvRBDHt6b%ifud_Q0_rI*a=sqjusc1HTP)s zMQ)n-##DTKBcjF;$2gwJVjL0e7wGsZKFWlU$ChZia8nUih-rbZAa`U#-@}AH{w&;_ zU(P-B5kcUD@W(k3wAYjjMnVz`2ZJJsg-O>(mS7X~?J&i(a~%i4O0XFyDR04>*Sm$j z3Dsva>%r3PM$gtA-bV$07q4% z1XKSZI*u6zWw0k0W`XPiI4Q6!68$lp0!zSPWIC=W0TawhK{|5Vb<6OjCyKpL>+m+! zM)auRBRpK7(eBh19Sqc*fXxK3T>!Qb%oW@4U$fb2oUB4l1KwZ6&eR%>WB6VX3$+)D zwVKl=Tc>g%T5gH9BVcvaGQ@GJbBp+bd$I}J4xj@fLjpoSP@vv`ljksDf^WY4KJhXV zk7?nnQED{Pawr(5g%f;flP9vI#!m>~G#kt53RE3ny%?IJCQ!8xE2cn|Q9T%tNgb#< z9;H;Q4GqVOHP|3D>vm4KZr#~Ey_>}DYWN>Sv(Z7pY&Kf9rjcp{G>ucOJM(TGGZ?WP zDibN|T3W+_tw@l-f*Fw|7z00)FS$*)>prMBHr#~|~yA0)oMYMEb`D8~VR>->77O@oZ8*LO|(LkpBxQF8!1) zZIQnx^L&OP6sTo}j8NP>XfI5Jf~#__LVR?fclX=*dVCr$qbb@Zn=v9}Prmd|1r^^kzn)PC6 zDjGL%8Y?C@&@gBwH}Ilr*(n_Dw7^fJ)P#jb*{wnN#Ubpg6n)rR>#xlZo z7*s|{PE->{mCA|2g2IV<8(xtUMOSB(6SW5r#^LV5T}6nRVce{p#+8cuaAvTs5j#}Y zCnAC^7wYzy5`7H~;M8LsS;ypGB~Q_c0`ip0=g-&#W(x zhM1|3mliP?J(nSK@NO7ou3p+Vk!<9peGjgfmljq7%2(sr`vFZF&SbZyMz{j+!A7+P z$>gzpf_rSN?eI#hSk-Jp3J)%;;(ExOwWP|HQ}2T%*hYPOM=YK~=~fq3ZXsLV!Szve z|8UiHCuF-@E3A)otEFSKtO_rP#g)bad{bP08&0hHR$!eK7G+DtI(U%vE>ySZz?yC# zq4p0(JFur7|B0m>8q-!|=i1ZF0Z*K^O69rc{4wQ_WbkHdN<$q4O@SH?8#;s#71 z3knCGF~++(Ut$@@cM2+wb$s!m(QbT-(mTFq1N{_5gx5=V*!T`4v^0QV8JBk-jW0_T z!??W9#bH=3FIu7mm)9nK(B(~}eXPsd|E(SAxtPsRQq3Xbp2Zu!GV=_DykV61A-&-( zgZ9FB!(6R$X&Hb*#vA4!BdFSvyy1snRH?jSEGWETAFs$8rmHi`8^+_qk5JS*jT@YB ze7LA&#QrZoK3w*@?;&Y;ps?&7vmVxcCbvI>^QjRk=gJthIE;_`ws3PJIB8Z9Kzm6+ z=XMo83e5|8wSnga@568=(~g(*UfL^okHAtw|3lG!J3LVB?8MO3`wSgcl>i7ohbKc( zqQ!fmda%nuH#_Z-IUgUOcNyGj(Yq{4Eg|>$*J!A*G!xk=pB4XoPW<<+RY0fzz&~Bc z$37(u!f~CO9l?d(dypiWVV2sh=0}A|{_W#WM~p(VScvvN3B$|PpZ-Ur7x~lQge&Gx zTe?O$()>_!smvnwf?Km782v5SjMh(?Jm^7ICtGeCPBnLOUh|Bsm8s$Hv0V^DrV_Btox_SW!${Q=9Qs|Xk5mPSTVVbhCeg8j0ef@V+W=+lhw(ZZVU{X}aTssLVOS0$ zs@epHQIbEnMZ1jWX|OHYfg{uI8x^%;I@AhvC~#(4dBhze2RZ0cC-P^kOWpsiy+epP zGZINng$#ZcAA4J7rVjbos3M2-vDXdS3*%#RJH%DY02DGlHiscWTae^qAB9n+^0Bd? z@Uh>5SL9>U)fweuhpD4|t(eKka<1AZp!(d_p+7oAWibwO1ao*FL6Yd{TWW`yugnJ7s*mR!F&sUc zAv5vIFwR^(=Wih4$aDSwz6IfO-&PG*n$;Ph{1?$ zrVzt_p)Z9^=SyT0p12Y!jtx)XL!%w})TR$lq}@`xFQK(KK#{OAU;-33(-^Z`8};7oM>C07pH!u$_P*J z&I7fL*gL@L7azg8`EP|stX;Dh0%ut_|8=My5I`_AkapetqXYCV!@9ZXT^3cCux|ct8fq-f z23a?cU`Ov)kR<;}!T>==?h^)x7>?$(&?Ni>j5F6Tz~3R^C=BooxC(^2hlWbHv@+Z?SQlF1L2$`8G=oO-}Aw)U^o? zsw98r74&;XMXi_)^<6Z=Fsh4Iz7UE-={016pjouiMSZAkLf?}AaK^3}1R@YUapSLCbH)fwfhPl2=g zAb_j++p4WJOX%C;&*fItjMzKpM_{Q&3v&s}y~nuOxz;Gbk+E=iHEx)uexUP; zhg~_zc??RMbX+y5Cm$dvE*81Yjn-*kTW=vAuVp6{>$ zoGyoZ^H!UOhbE(OxHn?OebFo@0k|35h7{L*nX1*!B-woavZ2Jh&_Vc;)_< zXGgwNFkbZKP;smmjSr3f;IvQgMXRH^l-VWIs%|ooxgnvwIQyDvsdq1pGD{W1c+xlF zFf32{nk6i$>Kn0VSV(TYFjuX)hrzNWc#4}N zyUnz3bP*=-KZ%T>u_I^a7)3ga@A$@WbN+0;zGF05wC@shBH^Q*g4A)oq#rI3@F*in zkj^$QGLpY1Oatwg#E?9Td-*@1`rO>hcMVZljC&cu0^TnmN%Rygb?UU0NF2#Lef-Rb z0qOY+S%fEGq`CT;e~hFfKl9Jwiusw*;;$S|>+4ccqmJ@Ct!WaN<_*}m)*hKW&ufk6 zNzFT`#o-&%H8`oO)mR`rExuAM&^3PQs0JUL)?!K`HgGLWBLA8VBb5?N=ff?bY7-Ok zmuw`b%bEKw>&4LYG|t?&v0`%O3@c`G=88(&GoS7r2ubWaa`-^-7&+v;eS{W{G{skT zW<59?+=0LdF>0|~hMnwfEatT_VglT&_%nQ#l`#j*NSoV?C(n7BEm}j<(71x@q2gFq z5FZ+W=B>Cj4OC04#RQyUBSc|h;;?~zjZKI zCTFag)Og4MW^o$VWS+#3(})^lNT>1NsfsMDBzs|;My{5*SPeiS<1}&u98`@-PU8(g z+f+^?78Fin9k0k~q^mQ^X}mrP&qjx3MR|&MY5_Bk+19DadejY-ActqAGMRI9^?hECun!}kQ2I{>52d}%Z z)DDxCb)LXQecYyqVa2;mKLF#+)ouDkBp|s>zXn&#ZAxNzxAGoSoX^RZ@r`&t6Dp1sZ+y6v;(a)wy)3dR=iG?*oixfURoLR~ zZGqSQ)h%}pzB*s4mf(8{r~EPa*;#Btcoc>>_@TUEJ!Q}tFA@XY&IyZ4|4kI9kChOv0~dD zDAB2?1sLgJa3wl$EsRP(oiCM)9edlLd~P@l3BA-DwpwtQBNU%~U?qFPX!v{i($H|) z?_$NnaM~uxWhVDQ2TBU@=#{kYn0%GPoZ;H zk>k@C+vm33`wrey@!6Q#3;y!vV$WYG(i)Peu^Vad4y4P~ni_PK2Q@wbv1!g6-o1RW zK}T!6^zm$e407yRRkz)H7~6^9y%d*~M`Peq zpkv8i`bCusSz`t8FWN_87&jbl)a^{XFL3hsdmg&}(vEwwv)9>9W7>Y>PUrfv+b+$t ztMfDMChUFK>*ylR_8V_}SfQta^g#s=Fhl-4oa(qSJ;l4=eHDJIMF+B&%N(vQ?@p*K zPS^bdR9cJ_QmOI2j;#{@#?EHbc%cQ4Z|lkqg!}40KaZ6iHoexyvhPCEcBpYJ<3Kf6 zVyXhq*p$tMJFeLm=GYWih$6s~>?;QMQy?WySy~^;x9oeg6Jbdr3KwZf@CT_95{cQHW`D@GWToJxS zGIP9G>$<&Y#pIvU?lzl^R%fQY0N)&ZtlQ{-36dYY@mE#rwJLUxbe0%FjB$=sdm)`w z*I&^2L7Jo(A@5UJOrq?8Fp&b{y~OLj-f`$rpH6l(e-bM{3rC}H78YDcMsPc&$-NlqQdNsg8`U0K z3ofkVbZ(W${XTe$l3AnxeFt;q0wd_y7Nr$WJ}~lTSVV zgrf6PkN?zYD9s?nBnp65-du&o=&(q$9F(k)3x7yZN8^1@?K^Vt-b06-0`qN{Kj0KQ z;IhwlJK*g4m&BKw7FESL<9tATCNenVn_1sfn>ryf=-RB3o#NI`-ejCIot;yL$y2;C z+?;=Z?%u4XkM{k7QHm?BZ!TWrO?$=T#hH0X7CTW~oPHksxT{z?R-6aDNqZY^GNHzA06Tu8Ih8v)IuwxIPMc%B#E6r}b)alYO6ul>U7FzS(gci`oK0y!ZuI&Bw zmo;NN51}_=IwnlA96)Be&SdYWmz}QU;ihF0CQvx8IMo}%{8@5fO-Lw0h`j5uS;g+5 zb}omf!}}J(sX+I_kI_ezL;4bE%nt-me5H|O&ZzfNC?u_maYC#?2qxK%qtbRPlM`~? zzDBLPP=|9?8hHK+e45EQ(P)+7bQU~zrQyuFj)q%q8Bk5D(Vedd45h?g1i6N)iSfn{ zvEguI5T_FoHuz}3>ra;(r8bx=fM z@e{1&q3L0kXMY?kCRgC~ctvu7>hkS;WST3LW(>Fm-p}LPQfmf0PwoE-CQ=6*+(C?@2Kyf~AG6m^0@kRvxMk6by5p;#I;mM8`9w_$w#ga){Y zi;q}VEVn&{SG4#@S9vVA5jsXW)zD}}%WYTDj@Gnr|KdaqdicPI!TzQo*oPLS7Ak~R zF;?Kn)MKHG#4VFSH9J)e1-qM5obx#M8(D)=3S+juA zNvIyI))Am)CM>)?^U##Ub&i#jOx#M8! z5PMS8f@&Hu=st&oZqZ~c>R!p73)n61F|+ew#@3t@W6aJlxch_Q=KTBe$K7)93bULB z;QjgVK(z}QL)R?8`*TqJAi(=819U3`@Rr@m47~q&fNo^~-m+VR18=Or;6*MaS@d-R z@Q#oS?@4S{F>$D!_rud%W9HEshLHEVizAS?)F%phuZJ=r=xq%_V9MWNq|5}pFLtLE ziq%?5@ZGmG(}P=}^KmmAC$9;BQ{x+dDlPnGI!n;%9M-9&#NSu3mN~-@Kn{by3s^DX z@5}Hi7JmoqR}g?-hcBlB;88~J=A1@13<6gJv>-SNSpo#VA*Wu4Ah?+c3BjKOEe(Wl z4Ftz|jzyd4Ab6--moowk)IkHmxomL`52@NL5S%MG!RwY5j3r9JI}GDX3&F9hfZ!dx zA_z`bXA}gVK6uBz{fFVGfV6>c{*@q(h-FfMf#bh4K({i$aoMfRaQuA(bSncK zm)#m1j$;LJU@eR8PJrVPvf;fMn^jC4YUhXGX|8ZQPSX$||2(u73WaN}q9FMfpi~Hw zTf-1A^OZQR!J^@i#9MOf>{zm-fO!AnOdo!kbu5)WOoA2$lZUF>>rdu1#$k}U>6#7IQSK6;`e$FUga>W7Zpw*TPF9k=BI)m3Fn3)OY2@lZWjM5MKh>)T8}U5xV?1=ZiM{H$eX;lIPN ztUpXt{ep12qrmKX&>HTX2F$)EJk~rh`!rNP2xh-&fNo{L?6O;#G5f&*x|IR5%We&h z*|CC1i2*^$qRJC6dxUU!Q`l@QX5Ru&M~T^u91&)(LUUovt_vy5?m@8-X14|+0OhPrHgw^A^jC&YtD%=W@s41{*`cZqex1Z zgI7rBG{E(5hXmCiKL}hO-v;ukVN$B;_Ax5HZVe9Cv4S|V zWzp9Oa6LjYynn-H6%&Wr`7%7s6|P5X7{cm%V1hzeUFsMG)Sm%mLO|Ubg20!5&PbUF zs6RdUS-zzFmwttr7Th}k|K*#K&NP;w)U~WrONqpfu$I$li3D;OBz_PpCM5n`yoyEQ z0qYfn;WPMhDi|&+Vv}9YX>`M2a5X?HB^^a90e}~C>U9W!o0*UR{9$NmAbe{8IL>n{ z)=a|i27rgUbq6EBKpivyoXZyH@Q|X-5=!UlP4K#<17nF&@LDjwv;Z8-3IP5_ydnTj zS7#IepSpYhp(FRC&qz-?c~Mj~VhA2M=}fj6i@{g%0s@4qn@lCWoAEYh#}T0LUkW!j zijx=B@D+kN4KVz};gRME!#@bs4+6tKJ3zNGz;M~E%rN{*19U3`442&+9EM{BBZlD- zqTzi2n^jC4vJUTrr@6xL7%f9M{M*o22!|_`qJa2!pil^iTZ0hr@)vMa+7-+M#IJ3+ z3-J8_c|x>^l+$cv`Zk&cOOb?bFHg0Sx3dDgS7YUx4@8K1Y$OIYHdBSg)26yPwZm9-1BoyPt~{6L#N-SFzY#aiaq0LGWI{w^M<4RTG=< zshq|)40=}`v*YI|nF;Xy%AC3#g70QBBz(UDS{eu)8~Bb>9g9?xq{qPbP`5TQ0u0na z1K+uLaV8Hb=q&J^D@DQXmgbBlO2NAh#+MepV_5;;i+DxwovzL(_`X}Oo2E{Mxhx@T zUDq~Z5Pu#|TQ|+d;`oVB83E<3`%Fc>h_O27&Jm#b)1iOBhQT=_Mu#Q=69en7PMhc+(szQsA7>p~ zN@V}%tmUCeVvzlpuwp{?{}-=fk-f!}3cv@!{Xb&`sldHe8JqZj%W0Iu;CriYHpE9k zO@R3Sl2gw^5Z}y-g!ummEe(XA4aCPek43Xdl4Kx$s9RrT1Q@7;2I6x$Ll!CY7vh)xi%L<5pC0-H4r>ipx;y-KN?J&4p*pZ0!#Rsh6BS}{!0R3Q{ zBgXskyKP6r*UzSdtrvDE^A$c%eM7LYDk|`Q_%YLD`*7m5CFUF)W5R|>t+^@OoIjht z8xSUm0#aV^+q26JZ8LlzJA~zq>u-rh4AFZ&4qJC&i9h`5Kb=WOh`DGbr70cme0q~!L(Nb|&{UIj@<5VQ$bAqW~~Z;3?x{vs8^sn#@!p=eu8mJ45Pgs9*>D2*19|NcmdUfuTuhaO`WaV#2Y8+t8a2eCfx0ttWt9{cG<5FGsPH z{O%_@I*hY$GXQK4pzpfMZ^Lo3FmNr5N^i-RO2lxabKVRU4}{GOctk?S;-np6 zH0txpf@N>O&v8t&+_?^XBiHTpg7$V$g6&98un?r^?>8B}@o}1^EX0u@z~~JWn_Tq9 z00S|eB{zVar3R?jY`)--Ca52l#g4onIA@jco)W*ng)AoA%BNorSL9aG)fwehPN5S4 z-*!psO(q>hDytf?6B!8M>i#RsANC!`RL4{}jMSUH%e2w8IF}j=bB>G=xM4iSXM~#@ z#bKnH0NOhnxq}!nGH*YQR(D~k9mK%Nl8PpM{KANF#QTNQFu+{>!WSaN$S*9zRnSiP znunD;7%LnhFVLC`;f(CYrZneg@&eE2ULbwc?|8A+b(KsCKoMVziC~R&B$Wt80s=W? z1-^Mm?>Y za7FT>ld5jSuEGT@q=QQWs$sJn5_T6>TjjL!A(w$YVTxws6)?XVJaH}^f!nY)+?@aL zNYITUm_j&U>__f8M2yb67)N~CT!*c(jMQ&gDPk<~?!!0?GFSKESx7Z$0w<`t zj}789xD*eu4h&620~7DZiU}qfRsz_O-lez@eFe=ciEc%5QN}g3e8+2mSrsZC2-_K8 zh9nyjnB7ZNjM%j}l`jnq&%6>V9)@R>v!DWk1GpA%$!TzTyB4VE6I_co!Q+A0&v5X6 zAG8X?!8n1raPR;gfN?FjQsp{rfQpT4!EIoWQWp$N zt^uemvcX<};li}u#g1g}!m4q^4#s66TxhjjXi%P;wUWFM)*W}etoPDh!FvP|#5z8F z?ra1fGV}DeIO!T?an>DyzwxzjbN-_v@i#2`CAb``1Zg$Fo)39xHerL$@9XoNygT(0 zBlPm^nF;NcptWKWhMd=Fbl(NSW>d$ZoV>cO>_3L6%AJS8&F( zw#ej@UBP`aiq+Gu@(!TxWA38dc&;UpBq{AnOwyh`fTSgybY%RrB~w&_*w19+$jMck zyh|;Y1oHaq2aKGDST|Bxh$NL|!1wd8VglcW&p?Nzci65J%G)W3!1xYlYKk}s4)_Io zh)I6PTWnRR;I$``HGI4VpUsyLKL{NW6a5HO4CAJjmpg%EDST)|j*~w=S?Y&_qf~1L zavzTvrM$_e`$R%}F@PXxy5FQn*`ZNpsbUC^##_W;SPLbnC=->qYS@n~$V=2JkJ6_w`Wb`H=R(cwZ>NLwaAgQxzHF2Ri>)x!g1Z z`Yxm0yK&OBx#F^ug%Rbzjq3VktaupJwH;$k!UmqGR7({+oP43!Y{K#6cmU#j^|)I{ zUB=B}>bDpbK9nyN3>{mG(+O79!7ed{ZG(BHkU`rvEksqAG8X?!8n1raPR=i+(e)_R^*y)fQn57 ziX;9YrzS<9hyl_pZeu|af!bbxD~dqT)fp9m!bRb`D#do{*i+KiK2=>Kjyjzma)IRt zl-UWdX^-o!G0kaiGqrg$PG~j*JWLYo_2K45@$Dc(0v)^<`BHYo(7eMqT-}AG&Vmhm zyipUSPa15*K;k1O*TM*MjhwhhvYW=>&jMV9A}5B8Rm>z_L_*OLYdVBq_Z)0YbAP62 z$yOdMp_8P!Co9~=gmO#}yR0kRJ`4chOiW}1pVQTxBzap9v&BY`Q#3@o4NRHoyNrad zVI3Hnga!h>3M(cEXgCNUMfy0%R&*u=izKdECzN9&eRIAeHE`>VQ1L*B&A=@r){t=P zhp37SE+=yf7^ko&jE3*cmxhL0ejO_whFdh!PIaVshkF9I}CYb!=g@42=aU! z9uLHRhJ!ykXcdNoaRPJU-~n*GaTvHd<=Sk3ijBj-jb4yblN^RG0%1}uSz|%rFf7{v zSL86z)fwe5Tn)~GN{URoUY(Q;YgIR5w;_<&XEmId4QrKC{)GTBtL-OD(L4?3S0gCS zr7^H&82@2QxVcdz=h?$G_# z$cwlgu0mb}<7eeaBnnN)m$2qVz~6JQNi7MPe2LqQFHx$vrDIOjK1{^{sz+r#w&4^O zcyhQ=hcm%jPQB6LLYrHyOyG~OVWtxJq}3w_UN0XeKUkAdZ za&oYsaB{wgSLEc-)fwgFTmvwIC7Go=YBDJ=m)AIASLZ6eLc-gYdAU1y7fe|WJQfK|;uXevmyVVa7w1ojEGpfQH6~#>LKM8^ zNRrd$Ee8^o147itVU8G1yu|7~!tn9%P)lP*k6c3Z~d@5fGnv~~PK*c~X5|>cQGd_%yf>ESAza^o) z7?733Cnn|j%{0m^RSe-OdT+&HSdJp9+5|_@o`PV?bK(pL#1N74-2bhMNPWg~ER)`( z+Ok;sP}1KIW}X#U#Rn#Upmfshf1@hW3-2zG>T7RQ5O*N`d)9S8l}4xihGjP`dix`s z{QNA5k=!T6(4!?6AI7yh3d#N3g!ZzCot$7Jxqn5Y%utLvB=<9!XC+2*2k6D7NhSO*8MGHBJca;b$naQY&|aAE z7)NOw9}Peu6CUHJJBXB$!eb;jX_AJqpa_p$e-&I&c#N*jsPNb{X#U)ihE-i74v7Um z6roxz)ZG&=z`gegajX7T^|;pRq>JZwmy0|~*X*SI33 zCQ~rp6)q8s@`Ou}@;A2`scYe}>*zq75zMeTy#m$e7WFC*QCUo^Ct~Wo5|Ttu(P>Vu z)=bkU$`dgVJ&z%ceh@~OYn12pNHU7@ya}#CQ63}aD!vm)u2!RritJd^At3l+Y)os1 zOpzTcX&Rc8nX`m%w7`+DB$Q*)^LEx1Zb##!C)I}Y5hPbD8uNI~|6n6Xh}UHKevBQL zNf)sBP1cQ}326d0zlIf4z{c=VV!$RCeYrxZWVYG74hIj5PZPl>W*{9zA5$In+l=C6 zq%gM`NBu#*gfQOQ$DrcaxC=fsBE`u+3h(XD6WSXU0!m95w+Fh_SUTU(ipd7eSTIXZM!ziuiVY1Z#pT2U6b9kIOmHI z(Q;?Lv@|I#JD}oh2sFfpI2}vPhircd<3;v_(eRFZX=wQI09HHj>laQz22eR;4c0)||A?X8IorG$$XsTgI73g0EyU7R^IHDzq zU_;rj`)HQ35GSNJP;7G18v_i)#QHeG=h$w5icPGK`(Z)-kQD19AxjhM!-68#_b%jM ziuKXeXkvXskz?P5A<^|*yr)75F|`*2>Rd^mpiKN+*n5!%?-++azon@`S9wt511q6k z)bToO;N80_dhI&H=YRb%$m4ER-FEL`II;3$P@%v5K-I04Z*%9W^(uZ3z$u82Z&vG$ zeI_S-cKSm5_jKU3xL7BRLq`V!Bl=X#hzj15{E2^6pt%C#=$%fv*eTw#*o3Pq7mA%y z1+T5J=NAIC?0M+=OFQn#&R%Cb4RZU9JDuyxZo4$ouFlW2o5hm5*U?3s?Kj@|unI&J zgn^K3!R-8#IQwx!e2RC$`zriq_+eS#xT^n~P+Oe(`v<5r@p#IwW2>}aik;1-1WkgL z)TrOqm3=zgSN~`phlmDdTg6DgVg4>OZl4RfmNBK8EiqYvXKd2`A>4H>X)$Cjc$0Wu z!D{&9My4HvD77BT6WJpu<^4T&L1`l|c#`b;5Dn}T<3dl_;J!1+;4Z?>K0W>5wq+Px zFtGl#c=1(J7|tzSfiJ1Yp=?V2lpvV6#VE6B3I-V?t1;7_C98BDRG-be3Gs|M{B@El z3uTp#E2S4pif{=chq=v2a^+}Aa>WvmWYTDVMU;Z~;SEevcxRzSwPk48mHeQ_H-y^O&|>9k&ug9ocDW`(G~ zB3WnNE{`uu;PhY= z+}{-6i1#-Dqb?{RItA@z zvmKo4STNwfLuLLLeh(WEanF~qH7b&FqS&hUPI;GNKZr#x!z*H&%W*J@HnP9l@hNi3 zNP(VUJ!F7vSXFjX?>6>+9w$*?EK%nV;0>Fdg9}Wry{7_OUWE@-Mz6?iJ8rR5apurZ zf`g19%lCxqbla{2E)pqk49?!?Iwjaii?=&i0pt^w;4`At`ECpEK=`-SXu7Qq_+GeB zWz{Gv!_!7}ZBX-rQ0x4(5)@$*{*(2M*`;4$gyoK2jJQOali(CC0iT6<;#HsyErp@8 z#4{{hWM6arNWKI#;o=Wr#R26Gay8N<`E9h$WvAKF4d8r~1rjC2+TkVIbWr}!@}-wq zn*9@~ICg0k9~%9^**s{J4BrfX3i!V!v^RiQnWfpU(`lV!QHYQrqxb))`|<$0iYo5_*$J!29(fQ# zULXqwR16Tv${rwLM+h(7uamy%bT|E8C&W(_mr;I|+k<1)&q-#Mr5t*TRXtM0A4bWi7xo7?Z+d#dWx*?y)qBEYy>$G zZNO&aS7E&iOcnO_fK!FDzgn7Kf|(rpD3?<0Q-XV_v}#`@^9haSWils@Cvwn(hGG#! zsUoH&HQ#jg)~(ksYizu3?fR>-v|P(gFg4eHXZ+oVq9cQD?leQh*V6NG;;#sft<`Jz z&{b-FS3OTMF$q}W{EYgYwe{tmQVX&+fKrPhbn1_o-6>7p40*6BQ`;(YXqCoEBMQfo3%sD#a#-pY& z(beGaHt}ImYhy^`d1H6GyK|%;hDlel5h>#}+??L{$u)B7ZFl~W)02(jQflDaEb{P_ z3NxFZ_5#zhpM)F4GOI^^Y!}xXs9{Vpg^$`Wr8(fWzv6MgaJ@A+q#fgDH#7Pj{w4<$ zCpiz^J1JYxG7s~!8|BWEKMF6G&y$NxC#A{{T?y=?RTD?UUC$a~?WKu&vVtO?n#G1* zrQ5YG69)4!#)6=9`!cn?Bq(h|PB?A#_rnH$ly;=lq{vD$B@X+PsdodpR$Xi-Q@4|? zw1WK$S!;m(u2f*i`U^Q-nekly%GmidRsrtqLSnyI(o`036%wW_pprRn7SK$LKf^JJ z854S`BG!mURamPFQ(;`%R4td(^yKwGIBXCmX0(c$kkKWhrj#!;?51Kwf8QqOor-H+7u|Uy4 z8^zFFc$_4&%n8c)%w>Ju7?(ho<=+^yUg04eVuy5QMK1=T`7=(o2i5^;2-A#7%08wQ zz+B3D+)6za!XC?dpz>5=Jqk2LVJ_|lxfd!xSWQyq;f-k}e3O((cJfS8#uvr3+|S`1 zO;V=2DyHQUC_~#OCnK zO@&;B_9+7IkGn`mULB9>E@y zmZK>01|$R{rX!M$;brW>!mejqxA^K@kxV11e|Tw zZNVBIn2Xle*#jecL+vG<#?VM#3s?0d-oPHQ*K9iTvD)uU>aMAlPioA53lL6Vjy0Bt z4_&hE#yQ2O-R$y|S3tMaDBezLWe5o!K?TCiXg4-P8^uGD>Oq=%7nq}X-X3s{;$?re zGFy%xz2hEDl9@F6=v%%jWKz!M!Tn@GIaK_TQ10xawNOxwTUTz^3UEk4Iqok_3+ID! zcR;Ih9ld}r3Mh9!-Vv0eyJ-dGo+@Tg4G!$fkK_3Ha+WWpDOo_UW)NowRY}2s;Kn@I z4V=dqcp|K!=~R;6nHql)yEiP9DTCTRXBSt^@pA5tQdq!*YzF|ZB$rIE#vYn5jXfk2 zOusPB{=jak4CY;4C;*!M3y`l2nti7PF$XkD>FMYZWXY64vt!&cl7Y)o+9JEsvgDtH zMplZ;<~$X+M!4({xJ$uhn$9Pn>^Nsz(-4`~F9H~R8aql_g&;(>S&fBCQ?#Uw%QxC` z(Ku}Q42v#c83%3K4%sGL&|%a#6|-HDLL6e066Bf69)+Bi&E_84rLwtjT_s2F84Ow> z*~>xQ5v&m&P!}?g8jk9gv1*j&r9yQ}kuae;CALARZY3~|;W;@aJ6bg}9X3NlZD?>ks7>zz6SaAJ zz=_(jzd9jHTA4-j(X%{P2ufQW+%FbNLq#r$(oP`~0of@z^@9b+@>j;YKgZ6m&KoET z_A(?~#)6$9kb4}^qjwcs)5rEJk&wi2iD}bK_L17Ow!yro($s3F@oQs0GWwk1Kx z$jO!s0^VU?-kIKq@vU#5x#AkU-& zd{JboX0L)f%2d%^J(;Rf?BF{(2zF@OJ~#yd_CJEjsmWdfjxCVx#r@FmJ;9A9Np8?x z72KG#ozWK35`6c5Xos_j{`9gdA6L;XXh%>XO<0iESr(sz*U_?Yle68~GVD@EKoSLS zcXpd^X}IaX-M%6&9WO}CUFm9I++AADSMdVd&y&a4>R_Z z;Mq+2i7{g+oEaf|nC%4eVIhg7GHSL>KM}L`FqqT_Mz~{g7|yz2VI)Y=|>;aHpIe>tzZOYH%v4V%gb=PkilU%q+kH{&TY_{ zxA+3Nb+w%p?0wZg-q&5xSU)lhX>Yh~v|x*^LD-BKr^t!7$2&N830~bZ*bliR@O$IC z;e}44H4IbgMq6XMfM5rTTG6;@pfNT+Omm%Zg458@zGZZDr>GmggJkKE+^a;SpQd|b zm_GiHbsaYc4t-1wc}*dyA*gl8nrn4kKrS_WOz8L3vQ6c|ev5=j%aqRm#dXj0tKc;1 zXJCBTXs%7PWhw6Tp>zj#mFteh^8!(kXwL*tv?K<#hm%Ca$-F^I5c=dZbhA-f_SAsV zVL;e9po9;VvErqg4$!^();!6rgbVSO9_n|dXQz5fEud#=SZN8hHH3uj(n2Q#F2iPM z!%Ez@#YR9aJJUPD99Hu7gL7CZ`>REHB$xG#kERt!h72to9NafC2i2}z2NH>ZUAbaZ z)M&0J-+1{bPTlR0O2^(ZK6{?jTJ2NG7uwn?EpZdmYWXW;=ysG684qw33z5{A8%nWn z7Th4|u;%yTLszN!727=1M2~2VXROV8J*5|Dvr_ObwK;@@uHeym@Ol36hiD%*Bfo;{ z9bziDw?CW;p8eILJaWwX#z(W1g5Mb2Hx30aPz$w9&)lN5P@^{(cKG3e0~M%kdVWPD zLgX~&g&Mu#ID*@an$}1zZr|4K8}GKQX|*x@NOt5o_Sq2d>{ua0Zv{PE5r67R*r&9n zcV%U%URgRJvCRwXydS z7~qS{d~N0X@uajU`d4hF%zaOC7Or;?6O^p2cT(!_PRKn74J)6Jqtu(&rT+KGDVkim z|Cu<%NL8PJ(~5+GPb3pcE#Z&NkjmC+JQtYr%S_Zj6gK2tceO}O^Nj0}wU{s07fkQw zLvsW5E*FH49#XO=_%Mf+6qZ(txvWOiIaA5lb7^<@#Q1QnJR|BSVtwg!t&{MMM%3x9 ziZNs|?}XGPpU?`|bHdiCvGiQp+TI?@@>M51+v%(5`w)k9P2~gG{Wu9Rzd43b!RPP7rC=RxRdUTi*Dl6(pAH9Y+4rxgZ?xuM22i3j_nxb z*dUGG7(%<0cDk_VJ*IcJvYO=5yL?XUOeCxiRt&R}N;)ylK;gtRE;}JrfD^kD>q}1T zF1#ZrMt9XZG0CU;oY?8QMZS6zCiiB-uEiOyOi&4NXwRz0p~V#`;MR_{EmOjq#B15k z?Qolw$;-mUrMEKL1=17L zo<&S)R&*3LRaRlLvxqVFVhqW^UMY=`Vr%7vW81a4z-C<&)}G zI>GL{%X0Ymcq4waG@wj4W?p;I71zuN~poq z%ZNn46gIYGlSw0c!g%=nYI&$6^0`R3j6@!u?A|S9PFtenU)h|h z`o7)hV8pt7ZQ{6^K=l{!7;F{ImN572#%IcbaD(EW??R-s*=tN9?(>jzWWQ78S!Yx9 zRv?;x21-w>n?4aGgi*#`-9AQH!9>XXu2)d+gfJ!!3zV%uRjI^Q6ljQ=c)^_`7o`G( z)gT`aa!i}xTQ*BllV^|*Ulf4wF}x!{NOzS2LK%J5G{A>P0bK_3)7$-9+I^|}byG%1 z9TBxCB{OQ$s2LQ-NhY&YA22-Be3^qo`!O?5f4~lwAu|_KhZdFrh`+Oo>)lXY`q*ZL zL};~x#FVB*2R60yVzckMxe(zcUk5~r5zQZSnPD<(+SRm%kh0IvqZB>^BZvSd)VmPphL z0LQE4p^~IABwR+47HkkQbk3HMy=$Zy@*_X~4HK4^R@6`(*M!19UOgS!pzrWtz!$^g zLISB|`h`VFD4>E}T8T_sUO5|aDWJlQFSmUK2rHn%ovSIkKA`eCU`(!^sPRPsR6d4x z1XSp5S^&OvlY>d+z3s_C?Dgb5YyT6+Yt$pg zGu9P9w|OIhgaccK?1=I>kPkEBYSWH5)>S*A{D_EIJEF{@O%R=&F&+~~;@=o2WXsf%?EPIfr-W}%ZZf|dh z*rM_19j|KeNf6mz70U+s=vsa*8*nP*+z#%a*h8r;9JUjQ{98C&F7~o+4vh@&AUz)# zYVC;k#fB}3`gXSab~OeE;w-K}EDe~30SC8r2XP}Ku|W$Ycwys~;gN3Qscikv8xej8 z#YDPPu6ZG%8?#2~`}+iI()Ar5x=PKj?=z8&2@8Z}5kE2g{<5d60xeYf{UEh4goLi& z(QDxI{A1_QSFsuS^;>7Zso!4iJM}yJtMkfAGwU~Bd8PFJAA}rIR zZ-O>$MhNxp^DJel_O}3P&}sPc?XtZ+xP=N23^83&?r8`gF|*XrVAn96^fHH15~qAnk!t4UU5 z(JS9zje%a7?4>_HWfdsRO%=8NI})a-Rf!^mL+-S+iE&OujI%w#IAj$Q5sQaCxOnAw zpUKf5s%^On9e)pmOJW{mUdhn$M?@k388c*)6Z0JVOx>tdC_P6Z;WE-w3iGV2s98GZ z37wN=VIK4xo`m>mQ0GEYrv$fIl!U@O*l(2xZUJbbFb}t?Tr3L^R+xu7QBy#DnCDzz zOs=U|_@cl(eRxNhhwi2o=4nE#AMfv+H34g3I>d>;t{Ks&_206#iC3|AwwbRQmAoXf z_WA?nW1fRuD1$C8h>lpL3_Q8bF0OY~rSK%_6$J%qME1J>(j5#--Kpq3JtXnwm|?y4~F8$h^Fq^QC??4Xii-Y1Ae&G_V3)$&kD z=zk#LG7@@ZvW)R@iREgClPQgho{J5ZRhaDU1=PZOL#VRGv{IVlhLt;@jg`X6S0mF1R{j;-Nm!XC z%n7{osgDISwN4RuXAldNS`Y*?jiIOU*z|;MGf$xz16@{=i&!L?u^X_0={G7^kB7|Pyycq zK)57OL}r!@_})t-Y6gn`RxJ;eH2n|>myssE@*{~G{OFK>!-VAz6*W}HJ)uKeym~t9 zK~LhriNAx#g#=Q`^lyriP{|MM(n@5y0M<|-h8tjR{|XRRAcnhHQ+9nI=D@Raj&b3O z0>nHO?+C=u-LwKRXU9G=eZp22o;f{z*b76zbb>WQo5gZa!(9d6?7oFwZY1bP+Ps?2+hsj$(-Yt($45QZ2OeKAT`g;!=a3Uwv<-65z$&` zZl#E51o=mZXfNDJM3f=z2{_8BfEG^DdQF7p>#-VAV}fwfYCas7w#wX?={KI(E3V;X z2r>149&1c4_0NZuCR?dR-#mvkX9{4`1gk)4eyTwCl}MNZT_unZCgq1si?lUOQmVW& z{&Ic6r0H$dwqAvm_X6QUk*NwRk%1+{%9j&~nxWFCs^y`QppPTrG7?m3&fm8yYE~Iw zWX<_QKjOhd55wa^Ql|v>t3^pD!Nq>7L~skh7KMknW#xvg0AYoPxH~lk)Q5+D2#m=! z=MP^Lc<8`$;EwPR-AyYzbQU3i&iGh6c$w337Z^&VRx=VhNkc-Z<@;dJv2G^t2+8*% z^I0dONXT%G3w8|vs9_h^>#rC9rE+yL(N9VvqgB}ODMLSvETPL93`%K|8~PjvZLJjg zT!hRc=yN69N$BGf@&xzfQ8x?pXq_bj>xEbWsU<<6=kj3Cvw5W3*a~(Iw>lZ@b{w0U zh+IeI)R}R(o;5p{amWXcCROD{7hc2KG6mRZm{p)OGgV}}3kg$XtK=3!ru^9GBn=x$ z;fvSXr7nib^8pj2=T+Nw6<|IG2p5V`Re*`?D;Z$!BoZ|vqc>E`LnS}=AmK9dQwkZ~ zUs1CvMMmgmJjm!icw9*8l;HkNQ4&gUvEM2Y+yVebAtP>AxmhbfSRo_sb4>yDA)}82 zV{#!Qd{H2yAL1P$Bf6Vb$mk^8|14`j=%^G7gx>|Ao!;i^0(B~y;$b{y_MzD`W-NXF z#O)K!=w?_ey>oLs5Z#Qv&Y$!ah(K1fIDtI&q_~-azP`ty_=$O?KVhfKsE&(n4cO-i zySRE-Iyq;5r!*%z=v?6Fl%bsYN;tCcOiJb5c;?s8ah2kklaWn?XO_X8#4|!f6Xe20 z-NGmut3`nO-%Pwb7{xkOb&G;1s5h{c;^4E}4Kf&wc+J%IeK4D?)jv4A19n^Nw#SBB zLwL%`z~GMYu~v6*WVqA7of!tkhx_QSL^TCUsiOd<$!8)%!!$V;P>FtvOceqxxcpRB zQlTI~xj5cs!o_L*>U8c+F()R^jP6UYzI1B%rFcg!j_xXTaf(m%of^IjWpnLt|Hj+e zedFDBmcu*I;qVlN5Z8BIwXRRAL;)ulpBQHHBhfkA9UjbIOnF!qrZg<-Vq>SwS;nV#8ophU~04EOA zr6!gu)jC2L`E6K`bSELM^qI<)j*Sn)1~c8Av^_C-$F{Is@llo?bf6uyWrKU#L;JW= zmY~D*_w}qLx%4-mW4sv&>yGhttfZ2Tk#~S_j9M>M;TZn`>r0ODJ$Ofsk?yK>jFM0F zImVTvVaS-$b)6yInO32=|n1_U6v6(U%-if!WT4DC4BWsTO@j*hl; z)jW{sFpC6NrIhDPMZUxYHY|GjW=I!fu6}xQDytLj*#{9FV!WTc zX&pu6e32H;T2EPb{Hx6$DP9gx9&!lJ_knzvaZ=~z#EwH9NAz7HW*tW~6D8Kk9R8Fz zB7S0Qc%oi5{I+^Fge3bEPaS6wrD#d?PskD}%#*#2?kI=7%E~mPv_#6Y#j;OB6Dtjw zPFw>#qmXGS+{utB#U>_E(=m>A!n6b{aMF521Wuo2QtJtv>}?>IsmKW?IW)#Q?JO$Z#VuJn8$8hkeS_?5W5f8R_LR{<-3#Nipey=POtffajCF$>Szgfzmuw15@jf zFbzy8K?CERe_*reUMn{WXZ6aHpp~&EbDaM(CQH{=%Lg@9bQKT|^I5T`s<9$ur88>w zN%SY@Kp)%&N%`n}B2n`oXSZ4&Dp|S}373&2V_8`|v`~1Z++7tlw9K%l(IjmLd~_C` z@y|bl$Att^$@B|~l29^@U0R7uTW&b}oFp~=$;~gfegz1tWX2SM$+4InEdD00V=ge-F-@G2^C*$ix5Moc3^cY_Q##xC!2W z00{P0TbSq4*7o+$)nwwcpzz8(P*|f^Gb&!`h`zKMG=~O<+nr2Ue7uh<5}c5~^S{b` z+_z9p!s4YeVEOBIalL^W!Lr6?&xFwfwH`<~X`|&?^j7lR!pO#B>WKI^#_^xoERYIS z0UrK$ARlJR6?U`m@DGVtEqHj=dBK7gk`~wx$XCpU5aX|S>cGP(iV!`9k}+j?IG$MR zwK5r_2`P<|qHS{zT3abJJ`E*`pz#@SC!w+57$zwB{0*>H*9F zE;3e26-n?yL?ofr#2G^c3^Q*)W>PkNBi>OYL3h(Ck~p=~?yeo%F}@pOj80bMa6(Gt zpnqR;q!91xq?g#t$doV8UzU!EJP&`w9MH|!p;AP7fa`ETWnBIZc5%IHs&o0A1=4z& zsd1j9y>c#_pVs3~uk}79_NF9w$L)4X_f|eT@9_P)PcPo*+mZQui;KQFs{mp!-|Ld_12|jbhR!J4(eJg zL~6gsLD?DIqf|y0ifu^4$}NxcEoOw?#j26Z2>G&Fl!w4NBi-jo zj&YsRerH014FYW9d^>xkoC?3aFD$#uPHaDpH1E#STVNc5Nh|8nH9F_q`8|~t% zJc37WzKp|7Xf!A0qvVi@j;t3mfj&I#`5-u6Juq6wJb=WStt33TRtfSXniQSlPsWxHlQTXdK-}l zFoAQnw7cVD!^S)~`77hyA#2_06(XH+!;|e$C3d4g zLsZI;V+I}$79gxrhU-983|Zya+(Er5lq}Ecebh#gGJF$CFr^IXZd#=bpSpK!u-m4& zbwlm`%g4L0sv~Q5#VK}TaYYK5fFxq?rs`%9q}7CgYS?Zz@odi&YRz%6Kp|e!nK|3@ zNhvgBf{x5%>KiNs`B1o#ER)N8pIzLfbW!Sp|0B})oiNaz+j%g5J$ccZSe=Y)w982 z^i#V<@zjz2P0^9)^T?7ZOaI2hDrx2>BM+R?7Aesd)BYYBS!o{l;B~+?$^#z>cQOy0 zY88`&@Nr_2XG&Ysrp{>nB6RE@nCyBo!`6mOr>mJWRCpscH_7tHMr#1}VA9q|N&`fO zCH!+{dY*!;k{N9tFu6>RCxayu#L@jqas`KuVC1e=G51;)1|xwL&CHQk52K|sX)MX zuG1oD%<=gVMa~$D0%Hh z|G?6W$gnguX13nPT9wPYq{5)s#;8E?LL@AtJ`SZ>Nny6k3KV%~h(J;6u_^+^FJXNt zP<#mQC{U!kY6C^dCkPZRUGkVBizSO!>GCO9asmF9m>vi9W^~>es8%!~d!n7%yV1Rv zb-?!oNB&82gzl=~$j4z;G8ey^mYSbJ@!z$B-JM%UVUw~(Q_Msk92UFft`JizVCv&> zcKT9&c$dk)si*K z8t3%4JAK?}5&y+B*J#wEyb93|;cqsr zWWUA)qxOV{nk!KHIS}<`#r_jZr7cddvSFH}oO-NNPe@|Fu*Aaae)hA!B|ImzYt9;QPe&6h=h{ zV-*tP6Pa879n3|Xx6FLVnzpb=(-vY?pOU|6Cj~Uk#3~2jQW&YONy}`2!WXxgGi>=& z0wF0&5YGr_M#$XSl|VksRa@Gma?Ga@F$;EBv(ZdWST7JW_&7vyus@&zNiqrEP3Qk3Ah(C99-*R6l8h6Q& z=!(eo{27!NW}>(_viTsd0%E;6W9@wkJAo79>G+8O2u2%wAq=M%NRY%ad3ZntObhKF@9VB;tcU%zyJK+M zXeH-ZbVtNdh%j~%zlv*2`?W=;0HqsZ+rZte4vey_Xk0YVfW5qj@%^EZzShvtzGV%Z zuP^F`?=*lcJz9|{oCva}dt;b){9D#_Jd$_lW~v`Dg`|E#wuH{LL*}dZo3Y;v{1-5F zHhdlSC#z+onx^>Fn?<&*odHKSV`Pb__X2F9!A(rshO_82HIY7eT` z?pC*NC;X8pO3`K8|6DB-)zX4TfH3fk{H3*Q8y_n3#dW}Rm6DrL*=5`R;VHF%=BZ`d zKc}{akkB2T@VN(q!)xC*IyBe^hl$;#{9kk~1U~e77sR0r>-7H%o1rZ!xDEf7o-Z~F zm6Y(De(3KbzR!B?d-1><&j)w6@4^AqI2CUQuDtV+&3|akIw_P5{a)9iTt{} zCRq}cvUrFs8VcQsLBcH-0Lot(LzixFt5}Gn#@tYfy%-2P6&oLxS8Q{NuO99i&sdw+ zcuFtOW~Ja~Q=3Cb=n5XqhR@UDR|;@#1wS8~kzc{}4lxzn+aFE^&;Dvr9yw-xs?;O7=y+tZ6jPW4}TzgP4{-} z3A3jku&XQ+c1{iz&%mc}D0)9uK@KjM8Tgqf8VNkH63+aonQi7z$xn%&7z-W>XF*8b z{R==oEUD$myMML>F-M*`yGtfJ&-@{1Bv0(cu67kBZz+~esk9VZ%e}k_=v9|z#@dNI z^Y8Hv|BUm@y@NCbOq+$`llV}n8JF7pd7?QncX%V^uS`$Q^OWdtt3EwZ5b_*qX9x)$LWbsu)?za>2uT(X zb3~hCi>&fPdIy;B(aV1)e9Zpp$;p-zTt-<>_^4Q(B72gSTFJjCxF=$sDX4~OTN0`r zLL>qb4Yp8QF6oM61$hutsT6W5y%5sVwI?A0D5T*h7<6Z?Q7-KJ1BE|)*w#rNKNRXSf0)$mwiih&1 zxcc%^)c0 zM>Qv=7UdpEf}RU=s%3IgGwtGfn=8smCHvqmn3J<*X^1!qEPe?az0?3DkYG%KgGN2bcNt1#IKm}7te83~w_O3QAt z?C77sSXGyR!P#-q9^}S=DZ(Xi0}+rO`JY4 zUJ0GgGhB%+p(QR`@QyqK-Ayaca3YwCi?6xN>lL14dIk8PW{)s8saB%+)p>(mOagg4 z;xu=~C-?8Li|bunkvG78P-fHg1hWMX6AlV5ko?Fzz_aZ-O4H(GN%0|x6qZE$unLps z0kW$w*&g6Iz<>-7kWy*cO_m4P4)m(?09ZTW0p3O(1((DFC{?wrzt*Y3`uF3!SF0OZVMJ~eVA!TAsZ-J8o%$M~6?Ud)thy07(2x**Z@F6KYi~bp_;PfGU zXxcopfj=!ato>i%EC?Ca{soW^ODb6qNG&J(NeN<(VeRZLnQWi>eQ0EcPfe+`6kE%u zeirCe=TotE!lyPafIIv%@u^R;lre2^Ta$O;UO$f%^SD=gaQh6k&4P1qdoHfbG-_c%RLxQJRNpNZ>3aOhW=n?7$rT z?;G&GqFN590q;wJuyep0AG&0>o&oQ+r$mRt^=XS5@ZL`C3?ZQpu7nPF@4#kg1Kwl{ z(+9lu4loD2z5I6$cxQi=XTaM>#quE`1Kt+}_e2cA)EE$|trPM1bjPv)PfG~6t%b*hD?-nJY%pLY(C1PB_ zZmS`09t-jytN>v(XlyExMalsjX81LT$x8s@9JT z=+PpFY>FzRU?YoNSo^@f2=F=U^3_sjSKe#Ivg~*{PfJfB_k)o0Lk+ZnCWGVxU)D z>IQ2kQa3y44lYURCPkgCaS^R|Me<+?Qjz*u)2KKvL^uzvCQi2*G%CIqTSDU^x8WT* z54xM4&SPu4(}5{s1)N9xLVf6Q|3J0Y*$}eB`3FvkEN$@D|!=FVe*_ub`>VudE5&O$Z#Ghm6qLPIgdMm zUUkj`YbTt?gLsF3TFyhMv*kRr-WAT{rAVc2=fMjR&O@t7HO}LouqEU?zKeI{Jm_v( zIgciWp0^I=!5zn1xI=zdv*REmCJU> ztiU_`GjSM}8e8r{>s#S2e#R7~Cal2=5$-~(Nj2``T;vA1i#2#h?t<>7mAhCBd&70t z4-K}5{W&VWHbZ?>v!hs`N~*(4T#G#?gO{AvuQ<5aY8O|{+6=`dkBgYEzokP8{Q+|h z19p9-)u{nZq_8JyV-+UPIb>I1vYo?DU_gd*NU5~!CJRk$271*w2dtfN4zI*J{4;S5 zTy-tapmnV93|Allsf#sv240Bp3|dX9@eFUqmXK$73*M1upu1`18J>pb0vFP*8yoD~ z)d4`!?#tsTmM~P|CQ`HKINn`y9iHSLne^7~N#1W4*Son2yy51W$Fm&k`%3pTz89J2 z`GVa(Y0_%&JSpsq9>6M0p6AJ~!eo1%2Y~?@o+qW!vYRZ=b3f3l&hudHgy;Dc-r=8# z=kcq)<%zV87M|!mNU&~C#0wFgNUKRTp6Gy!p(W&rX5t-rBD$Map6FCGFJk018>sNX zbmPmKea>MSy-L++OZwuyCKKr-x`-68^}Mb z*>xPjOT%LW_tdbq@D3)OwR?}}*u_a^CtT^*@ecn?T&H-6d}8XRt`7o--FCQW+jOlcosY|CZheJgR)I>t&)Pvvru7;e$w z-()q1&}nKGG5(BIqcj86B9F(BFfH;>vJM6?|02dgG|`Rbr67&8W$!huq474J($<1A z*2da!5P1g$y?=ZRB^VD#!}HSc9!_qPvj6miy_zN%PmGh`Lz6C|*X zfYE1o)v_YA8%{{)BcWDN{#d9@Z;orb`B(BMy^w8#udG%Tl)>DLgv%Jrr?9gJQ&4-S=BA(_~HCWIARhG$lKQ#-3goNbLB5egvriT@kE%8;6QFR|8eK$&E1JsYy#Wxt?0y$&w@LNHI2w| z99~O1q$OaJ(B7=U4%BAi&gc#-^V=x7(Ox{j>0~KL_B_Kh2Et}4iLoqk5H~A-n|8y1j>|@=qCP%@%KEt&RM3T%yt7QEQ;1( z739E;xxjM)Z@%tc`6Je>%ZfCs_)4AZW?3gUqHZSIWS`u~o?7Ek>?x_uO!|qjpf8*S zA>&cofP5ILu{1|*ad~42Vvg~s>@KN#JnD#TB4X*RBu!i?Twre&96CSPKM`FHZOj;s zN~yC{MhhJs3-khqqgXsjXJW${ifbU5MU@kyQGX6(>CbpHitb~#tPTs%bXFMBc(m?g5-x*-|}4DmZ77)B~g{w@yv<8;m+dKtP%z=F%k{E zg}KU$9_P`1^d>Arw?Z?qe!L!U@zlfNw3^YOV9!NDdhY1H<-`cbaW`>q94Q^oUqN|c zy2u5Qr9$2X#Cmf;XzAqiUhLx2k|TRtW5W}7MT@W=BsQ1|7oxNn8*`}Hi^(`99gIgX zF7vRJV(wAMB#J|rbB{Tz0^pBgPYT~8X#NHMpv$?5hnAx_2rNT`sEB+JeA4();>#M? zEF2Y0#9H|2z;Btk{|u`bmwkuK`9dVgg1RCY2RmJ(m;rkl&cC9CrbZg0|*D&-g#hL`$u-e7|TTH z2;?kmhL(2bW;Zrp>fBMi3(QeSZx1*}A+x_a%$88r6Fv%7ki#+u9Ej<*ny}oDN!|){ zrb?2dz83NrYVh#kqP0*-a_(ac-KZz4apw9h8#ip+eAPv3FWt83qDwb6n!4{!+!ndE zRu_!X_VF%c7JAONRv7eLX%BBxAA%r4L%3Q9`E~xJcf4Lht8AIGFtOz!W-VD@XFX+N ze08`%DYNt3m3DF2YuLhqC!22)l$)8O!1qG@V z&MmV4DZR{80Gr_Q;USjXN(`u!T8h|5eOPQFnpQcN!qd{QSb!Kr##yH2JVeiLf--wN z8`ZO{$4e%nwfORz;pNzODLk#UNr=a0Y^07eTzEPln;n;`22FV(B2d+8;`D^^HiPq| zD{uhS=w2N7eK$6RmPXunpv+kRW1TH)Lx-zNK(2{~3=SzRvV zmZ$Mx6OTtr5$xy@EH)8CtDH~5(<(h$s(BzkcEo1ekHz*O@m^1cS1j+P)n9n8PcuG( zgx2A`cp<`jX*H?Hdo6|r3-5Ib-jVmByJ_XU&b(^lWmjywVExu@>#kmZ$;PWn<2!?1 z%^r>8JF{%3Z#%^CrtossQ)UXz!`_ww7&iqD%U#CbooyFaIli;Fk(eCI^Bu7SmNtxz zjKR#`3;H_i#`|`)yJaBW7Q1y-y1~srzK9##R-jq|ZZNJ^up1mIP^|zr7*~tjV0uS0 zMZnixieUMwVm>iN_@m3P*hE0Ba-I%PtMrK(28O)jT~MZl@=Tpd{NzjFWy?=$Z4!R+ zENrASGBx>0UWo9MT1_hQlYfa#A(Z!eydytJchkyGuDa%;jn{77wsA9py$w0NPh!C*)!PQ z+u1mb*s#BhSNy!)sw%zWr-6JCulS7u)e7*6akYZI;tvW`E5Iwp)grHGb}A{e_SBl<%AS%@o=HD32A^-YIMadl!H|S^h;D~mtac8N51ZOy z<^9wY*Rx6xb4+nf>G0?o$P(EllRL$=_Y}XrP4HQVu}fHmgJLv+Bc(mEJ1vjbfQDA+ z@uC4_9C@~3xHCOlimJ!nt=I53I&JqBt&>E{Pr|~brSRZDd-s;5>NI#z&W1AB4b&H0 z5=DDi;2c#p+#T>8)44sYs=16>zIld|W~v0sJFFeR@+p~lcsHv>X>O{Shj$`jnt7;% z4bi~8plxY$YOHmAi%ER+nTKl1hY&4&c45lo!(0~p&DFMFO+I`B5QgTG=diXu!G}uS zIM?f#eE2?3d5%E9r!#8u;XhC-LrCaTy+bD-egK=HO+G|J8Ob@{u{l?h5A`lECm(uy zfI4kf4N5t|n9{d)!S1r=NC%7|W5^DY-YONE4_(Vd@Km4j}Ig=tXza3VJOASAG@d zm+~R56Mcw_=+q3fc=}vco~BQD0M^{(O&*%4pPAwwaRqd!43fB5I!s`h5xGO{;(FIs z52r-;sF2-6QL~7Nl0hbnG9H^a%6Kd+tDwkudz#%?8G1W-8?sn%36QT0Ni8Zt%z>m* z`Z_uZSu#~f>d7Xk5Mq)6pi-J4d(kr72SWR*1W;EZzX(8G4|gVjQaYXBrlV4um)>FLPUF5ElM*{ zA)*cvCPbv=5sRF z$&ZZLM_w7s>=3kdIFPRlZ5>>Km;-I4bbfRYvSg~z)=Al#m^F5l(k3_b`VB~bmC)-P zWFA4U4RB{dFNgXkILsO(PqVJc&K+vSn$}?gKKwUR=^#+H%m8JU*18c|*r!YjFGa3} znY?^(ZBh-HVE#p{EmMWvTC5hioQRL33cKBmgbBMTu?xa(rwQAh3f|&JInY~T%-KL{ z@*|V2J=JnT;kPj$?8I;Q&?V7z;J3RyTpQ_cVp37C;-O|B{xw8IHUj^ zcYmg_@&ULvL#uKDIDAn6xUb0H4lygtyovRc>G$KVPd@4Wl%$PiKJ76&%@Z)!to_bpvQ;e~71p~62s^PJK2%E0doMrMn~Cg| z?vxy%_=&Y}kEg5xlA>^4hgujyq72Tv4V$6iJT$`|oTszj#CcxsJ8@q2SC>~U<*Xll zaJKM59p>9&RdH3k46kW#(E{fI|u%avyA3M;|=A8(NhM9^#7v9)1Mx z2p-a1J@Bv;JNS0tf*op$Tpv4*hOK3iO{v?d*(9;+7``XC@de2Zx~qa4bOI83I2k?G zwCmVY)_3;MuA8odMxLY(X~r+RAh7q`ru>_2E{%(!<3*M=hDQ3}5a5yFb2pC+x0f|K zaBA@G7X6`tU~_A&dX64>6nk0*x?Fq1_oaN?L(S!~0u~%&Wy1`fwYp60llVQmuDy%O zhqQ@6DYRG3sUv^1t1C6h!P+vXj-+rW`U6%$f>?9u=N#E`eTz`}EAy%gwz{Rx*_h&I zjbt~*Oq?`urH)TglK`+;%RwY3h4UvQgYpz0Us(p_SR!Vz;UH$@6uZpi(%j^|7iHb;d_wo2%}&&hFM&_tx=|E*$lBR~(zZA9o0*g{h*-ApwtNs?|bZ zhlm}hInIO)&Bzq6+2XC_1tDI^kBn2p1vnM3HaaROT+b;`tpMSQt5r<6?kZ5X^1>ym zT&ZvsBj(5eXZxGU%>YLSLpNnCgh;8gj4v$adD)_j+RMnTEi>JC!+2-e*dNLO@_(&w-YJ-SLcNa+DjJ)EIciG!3rgI%=U zK{*v{azWIyQ_7O3U0~V5 zT&8>e)$T3|X|KhyxKJh1#kO(SD)CnA)oC z_e7$AimLfaJe6kjeLY9To(41aH^AZLy9eQfZFBKPoU&7!K{rz7r{IzeNx?N)#oMy{ zlT}WLYsAWI_9yk%rl^=x02Z)XGXKmUF~zwp+`5%nq0zOA>s?dXybs2-WC}B+Y|IG; z^CUl|hc_3`r@Ug0ZKk|J#!vg5vHBHu+vOmSOQ`}zIPV7XVeZ5;==+iq#2n*tDP14E z7+E4GwM_1~T6&W9eyPllh)8h)B zti(7nt$}GPFtlzE{^nLJNTyvtgEly};kEa7UUk(@n7S@@zQjrFG!_EG8e+OT{1;o| z#>hZ2U?P=})Tammre~jJmFGUjrDwU;T-0o+1nWP=Y7eZRl0k=mVznsELpA8|Z6r*C z4oc|2Y`F&=%(1qfk|2Gv=N62c-8$YL?rWo9LBx{Ph z1_$;H!Y~@5-R&de!~Jk<91N{>_qN-BhU4M4WiZOt-yUtlWw;B8%^fgh6c%g1$Qz_L z8=WqsI(K&x$+dB^<^-54)_!L~`-^HBuF&#NfH3fvRLerk_)zIN@8&uZoind-msdbF z6+r2i$4UPt)ZD_dUsKS{mrnxG#{$v#daBK6CB7XAy6}RTBrp?Ns-ND3Zn-<9jLXDTUPdj>F#FiQyE2Z$#j^;G8pP& zySU!fm13xbVV?0cHF-1fvL=qQ-!PGs{RSCc^)usg+itdu#T{G@K~pUtUm2RZsRS_x zno8;Q=vl~;sX|ja-@+(g@jymJQzst*a7G-HqHLJoPHL)9@72>;zFg zIn979wKtj8`anee7ho~c8U$ggr*KS_n5%R!mGv@Hp4YQV%E2 z_E*^pO_*i#5wu)N2ypsXaK~7{2{pSUaQd5~wNSu`n@_GP1vsRD6Zdqc3G)G`UqGvJ z4LIS80ys6UgF6CFbXN~>D#Z@IEMBlfEwl8ogBIP)>cbVq-jieTJ;9CTk{fha1ve&b z!>~mc4PVxVc^dn?yM`UD<464q7jUd->#*bWvf};2`Uj?Fv#?Fr%QBSYnj5}Z*k%tk zm;VXaEDS3fX6&rtD79JGI=imD&E+w!-nSaKt!Brt?RK3dxN-2e%#L9xEQ(rK1qleP z>B7AE`oCi%k1AjkZ>`cL<6(i=zYGrHtd}3xDKcJt%X9UR z5QE2Cq?vjgreA6+%A?<48M=c@*}3VzJ@s(<>k>OR{R+wpGwxgvb=)8Ae?6u!$Jzt5 zFhALCIBn(r-qzUg#9h&%*}xGJ8``;vL@DpiO*KVcLMBlh!s5nQ&gE2&=m=m&9QFvB z|IWG=1D6J9rEpwd5VNIn1 za@lvtT)sSPtzBfXb4nH{oL(*OR04K65~c*KGMFHe?ujfF?22?E2Cd1KD>U(iet>CH z*$eV#;;URH#ZOGsE~%DXDldBh5O(He@u5q=>&VOA;wi6yLaCW8H&H7?Na*%Cba}yc zY=)MX<%T*ocxrip-UVh}*4qQlylnPYhgt&4#LY**ii$$=up5FqB4(G`6KO4x$iFAj z`TYZp<_1{w1Cs&RJ{rl<7q}n@pNS1LV96WJR#QvZ6Xmq$re$NR*P$p>=OUEeP6#fL z2w2O4@S&^J{CYblW?IsI0UzbBOknQwlo+CRac?Wl{Tpg$2nk(tqjC5=Esk>Rfb{p+ zjQpA#cS5mkG(KAw%i>xY!FSmmkiJz{bsq-8fswSn15#iQKT@cNNzF{#?A0=-ZO;Cx zncFZi74#7PN&Rlzm;}zz3ZzT3DJ8u@zPsM6EwWr!B+cWON#oK|DdtZUd!jB=I#(Pr~?_>tE*E zOeuG=YH5#UM+9bp@eq>;jln9)=(9pAbU$jD0_)SfLt9YB&Z=Ek)CE}PZ$s1RV@#de7yq+ zmyxdpu_ZcZ%gEj}QgWPFh{AOK4QuEpDr%?>N(0kLJzhN>o}!Zw6aKUjBb8YC2s|z% zkV>XMRFs60Y3$NUWV!%+P*FEG$=o6qAgt!iaUW{Ru5Y5)mw_?4=FQ=YVy4)y@Q&uq z(OnfY#VA}yjgwJMT_6NZc|{;ZQK}h)u=!)OJDtcCHv0#BFhr{#8@HUVJz!?$pc|oI zWgy0-(-HBMfg$tk;wpzBT2mDUuwY2Pnw(-TIntA>;gecUwwovg+`-Y1xjhXaA7)xD z?4+h*9AAQ%V=6{U4@bu#Oa6DjF-{8n2p6rD-Z<77AZIeg%TXwG=_tcT9_@PAqskOeZh>>4Xk>( zjMUV?GR5{}TBzXfwX6XiSQZdH&%Xk8r-Qs1Y){Aet3P0D9AUL6%|;bF4qeZ!4u4?mcu}?NP$Oh_0AXmo zD7De#rQ$=SYP=KjkC4s7c!rq8`(FES{R^!n-UeyTbJ^JdDoPx``$5$E4*Lc#Tu@h4$>h|F7u`&aw+$B-e zV9{DA6vZtlSDOMHQYebMKGTZ%P}JW+t8$?zd{LmN@8cbzD7vc$MU`R)pV}$dp{6tW z*g?agIaVLxdx9H3mE54aD!4IetB;POVXG!hDa9SchtVuD~~4XtAQzMu%e= z@hT&c%hW*PBQRxCo7CD{b>lgU@I=YgjU`n5C2N*7&gpM=`nGijcWi?MXkUAEL%z~j zvStm8&4}z=Q#iG_mzfEh^(^RC8A5Ue4PRt*kcXPf*#s;y!per(Gz&zjMMnGCb?t2` zKeR?-qfk>di;GUQ>ncHwgRf;47p1T!YG4&47&He`#RO}XyGWUHy|PF%iZ3S0Zibm& zSb($KV6QP6S5VqxW*YbuOf%QOpHg&@GC^}=I4?r-4QqjXW%-74iI}yPXg24QeHOg& zoLG^3#H`Rw^)lo7>X{MZt(6gSBww-xb#lkTqo)GHGV&}bb(SW{V$T0S$WS`ZlB|Ql z%84Y)OYsi>OxD5ReH;m^QEbg}30VI}3}B?s3rd?Dvkqo{c2+mEbtxm;qjq0cE=Gxc z?VR{UjzeC76_zC%-qsj%>K*PbBr;dL+=GPmp}5(iTDe_KNaNH+6yd2J0 zz;_#ctzkGlK^*h}!|%Jthq{BKL-242Vo*5i99Pk(GPY_!nqA&gZNv! z+n0D*5u#3`dNT+1G1ehmu^pO~FV$IbMCuS9*L0Iw^O_G=%QKbN{3;SA#ZjgoRM4H* zoE9s3eqJrRRNnJ(AneS0;zMO=xM1hcd*42NuFoh$#xwh?j1@gT0#?xYw?+AvdMw1M=;g&Z z^gXSi@wS#iH?x!n>Q!VWn>}I5avz!k3AK19ILuL*nO5(#i|cKvCM&HoEScv3ai5t3 zJy7I8iI<7RuV*`@&)991DI^DLLsFoh2)0HlQ5V}KHRb9fM9fNo&SGq`GN8s|VeZ8z zOvwJZUQRqxJtsmev|_6x|Cu86(T9;Ga=c-3^Pjy#O#_p)2q>imQj{%Ly%m~PIvYxP zPq7GS|C@nTH0x|W-1Wr3OOKhfWV#uRIO>KVZJwFNdXX=9I}=Z^85{Ug6S-8_J{@*N zJkJcGl?GT}++{_jhT`*rAQhCp$#v+*Os5V@%WSLhpLv;8dMh)21*&OAQ&o^MQVU9~Jz7;g;_cBW|X zp-a%~NYPyDDbMA$b4^OSidq>$LdSTaDVpoC85+hz+bJfcX`@JLZH(RpCdTvjfD_|o ze|1EvkTNUhBVsw8kTlKN!JT1YxwD8w{*718qR5DCizI&8H!|MX+k#V>;aG8;t&Glu zHcHCW+q?nTE3osca~4W-?-o2DA+WYx!H2F=>(Jb{dddq?ySS%ScIGYA$`BH|=0-#C zc|dmN?bwX`nyYt#skz=BaB6P$SEu9@T&BxDvZZwS&fxBG=yHKtsJzV6iq=BqWiWIo znU^`SXf0G;hR0_-GAh6!HK~=y*=CI7o5e{QG+QKRyqn15i((q*ukns1wbES`(>N); zgOQ!YJ~b^3Tm)MPAVl-0sMsd*gy`bWYEDlbte2(s&9Jv0nUmCq<)Y-T%s3pp&Fw23 zhPO-}YQ9}u6TtQid!{e+1#Dln*2=X$)ZenmM?FFVz z>sjI4hC9^Bhi>I=v~?+oVA=Vs)}G8jUHgPw$0|^oZ7L~nH4>(zfRYn$Qox+?^o&uQ zngrW`h{bgc3cxza3??yHhFPXoV`#7=_6!jRJu%x`mzu^Orn z3K?B8gxW$R0_Fy>eL)z%*%QXY7gx(eC2222!eu0l&viFuZOT-rutO=6;9p-+!*m1{ znEQy0xQ?OFwtKQ4uZ72j1W(ECL{Sn-cCqU!kzLDaW@koJ_|J_nw}Ax+tMH#YL{mn6 z;r}~X;fo^t{|eqw_)mA!D*RszNuaHLJKMWkegJT+HAXEztQi6vM&X?-t=aL6 zO3#z8@fb$?oms|z!=96I6PG_n=u!p=JZ2ZyyP~2IX|3fl5I4u8_fzZSjdeKD@33m| ztaoD-4tqw49H7J4_(!{4GN^X2F=X`l2_PS4G1V|>?6lSB^KVNKbBwvBbZhh*WQpvE zNgi_*076Mb1|~|WzwAEC3V$CORwX7{bPF(wFwtpnmtZ1IVG~p&29jl?(neb~ri&o| z2iOZzzk_g*wrwJmDQ4?;$WV%Sm>ZbPx0$}2fo+!6%4K%)A*R}liD2jHtll2X6cEtr zdvzoRh>VQ>fN}3aR*TZyQ{n7JBuwF~5+pD@?#b>Za5|*}BQ7K(G%q&lj0`tonUUix z8osvXz-C+8o2qTQ8eF*^2t!lT2UqZ+OI||;SBN!Sab^pCaes2Fr#zQG$u%rGOsxzd zQ34u79c+d+xPk`G0}S*oFb7w>J>VQ%$^PnSr;IX{^AWN>J#3?_!XyXp2QfLxnk|`9eRu5sd1zOavHP!)PZYcV0q&C6UCC(@x?7@ejc8~b z7op}CkhGNQpvYa@T@ObzQj^(SvvPgGlx|i_uO2t|A>l>L2sP$WmnsRa?$4_23E=A* z^f;DPpful9?0ysyrr2GHQc&!E0?EnXuo&JLgvcHCG@|hh@e7xj%(t1eoK|hCRru5d z!eN;aD||x6l?M8ahxXThZ~3U;H2J+ytIGDb7- zBaV7*s;Gq}AWLs1RZ9mgXxV+BMfAN$3*N{ZbiJoRZrDhql2y)31iBu2Ax2kcP_zq( z=ASUvODa~BMK|SVQ32SXEW+~t9RiY0V}$z2UwM22j9s@utV+n;A00Z2+pzXA-*TL@j=NAx~qa4leX>Q z$yF{FdRWwu02;ZgKctb#<` z=3?W6jP~oha~aQA!0<$oh85o=F}q=AHiNH)GR9DP?cO!?wFs(b2ad zL$e0~`7i)tDUTYOomYaGV`w(JOC~qF6a4{1GGjP4rOr|vEf@a)&?}wNNwx#T%87i= z8WbD+GuaLh@2#wjrnMr!@I@pb4S!J9=45+2z~`E&+I%|$uJ?$%2|IcVwVeUowcr z1y+#sGCYKEB|<1s9>N@aTtS(Yi*{jG>NL;CA9O)Chk|L(>&E(_R;NR2?Dmd~?ZOq? zw40nc?Hx%E!_M&YGnus-QWgJJC5Fi&Cuo+aLcP(SlSg&?*emffwu>!)6&iX$^I&1 zS3Dm9E6fR*Q}F8Gj)>W%W=Es87IGPC)2inet%XW`ag%7MMm?KWt=O>kscN+ESd{ZM|QcFE$A>xS*(Pnrpb{=YVrq&K24gbS*+JlOt9S6*qar;CwdT`c^ z88DRS;cZ;18qVN_h)`3jiPM`kMdUG08g=iQ_nWbg{(3HoG2YRL2HjPW!zYJ;F|w4l zn%2B8->?q6+@-ml+=(71Cn(kIH>i<=WSFfrUB_LjdgZNCjWl6xG<{~8=z z*DkJiZRHLwVNhaDBGbRkThhOsw$m@;-0rs9lEu0Z=k^jHU&Oh+u0XW{oLgM2VCVL> z0@Vs|ZgI89xoN%2WF6me$-3onJl5Ca*;3>?dNCH8h@w@_2t2LQv$>1~IkrzhVU}Z) zh9U85pN6+AzoxZ9__bTHS<-UUnpv;EpX&tpEoXS4*Nd)xk{U z@ik?Yd7oLnr6yK z?ugVfo&IfhTq%|(N`7RDz8(8ehF@IKYw&G1+r{;+sT#N?jZX}T<=N(gXA?_C%lNf% zyDe1$w_AaH5x@3=0@VueYjL%L{n{%ER4c%*#nmFergtwBc6`Yt?3TAF=G9UJJQ~Gf z6JfND3&jf_&QFLRpqiOYB18(e8tnERUwOL3p$qu~E`+)a224A;P0+HL1v> zeH5EQ9_?dzM;?vtrj*}$gGS2I9yA@SBuO9*VBF^i#1*#R`yy9vFJFl5- z-Pq+4u@DFwSBspN>{}+|_=d8!yaJX-DdxFSa82M zT&ZioUKiTM^{%SiaZ$q) zlVN$Tx#+n%?XfbhYn$DUDqYu&K)#6U8Y)n&0M`{)E7*1ID^RTf+!a@gT$k!xCg%8x zOUx~wQp|Uyh<0=X7Mlp7RnB^NTBYwwH4o&xUIQgr&P!N>#CyFKUa`EFR)68WHe!RM zxv0r|@j`_6(rQwX_xius6!Kp0z&r9@bT_TM*UD?xZrOO@n!|+;qop z*e$Bk!F?6T7jbYuC{V2c2Nzc>*unk0K(zuKTwE=3a7GU^smJ$}b>>oUd7ollE=AI# zuVAr>NLuB55S~`)<=n=DT-|{KDXva46N$fD0Pk7;PHTzqcmK#ZT9d!yg$RGA)ubYS zcRVy$_`8L8NB)lPrj@@t9rmzIrgNM7<1w$&kf%~Fb~`+cSj{ePA*9+=c5Pn+ zbH(_9+M68Au_w$7JRSR225H<3)PU($*~Rs4tlIf8HYB#jI;VR7{_T=U<|1_cnYjdA ze@0doe_%Yl%x+|+KkS3)#ol@LJ8=FnEo-_6$cHU?wPxwnq5OXX)PwC@m1F}SR z#pEtO?;YdRr>uU`wO$dT zwGxYz*1+S!?1P$5Qb#I*{xuT2i$`wKQJdOYO%aag`GBd_3t8oInJVAHmEX;Rw&KM5 zNijfzzjv@E0Dq@sz3=N-ElM*|t@nL35~lUOO0qC?zt?fxcVsRgU)I09(M&{#wiAaV zzV{6Fx0O7}6Pi{e*4x@qyq9gF@2i#tYT55QfiSdKIEF@(I|h8H)QdAd|FYk?34;;_ zh|<*0Olv;nDbwNLeOjZI{(hWV8bYGX(%;WuGqk0@XcEN^ecC1+OJ>85655t|102460}M}r&sScW4{^rFS;2#x7-?`8GU^=TMXMfkyVl~RNR<&36uv%%~wt5 zCRTsI6#7K$Xc;$gadlY8GV7%m+Qs#5r~^gCeWoIJb1$zsF*hZjOeAH!V8SWu1+u{M zSH|YE>~_m=+`;CMeZ9^E@|6Lr(@PL@0IQU4k5(c}rV3ac?NYKVT$R!i*^!ocKN^}? zC9b*|Sw^^O0PZYYr7L*?tB!RwG!0d0T_S>!W3fPK9fDBRf&J}H-`L=27xw0sIz}48 zo-i#LX2s<)Mn1o;aMC207{RbztOZjAlU~SbQJRkmCf$LA2_`8~34%$>W2*}XFVPva z3@L3N@7skZ03;{bdT^4ovTWYH{FO=7>#F63LQE4t*om0%p;8^*2l)|GvL_O2X7VFz z<$a#=TplLZAxwWmtqdVi1}*(PHbX;8Xy`m>N$&y^EqQyuiI%dzIwnC&w!E?)@lmo| zMF>`UWpIyJSP2!mBv!h;Xe|_0;?|PuNC6Hhti=76X|a4*=~K|ETv!QT6j;zT#P$?Skf;vFe>pbPTTv9Gj^=fKm2#GSF>MyYw8mL0U=mAxF7nq>R z+XGHemHm|*f=ZKDX3u=IEawsetDY0wCl;(iO)d$mb{4ILf>qpHaxE#qp?l_nw2)ut ze$F&mK3H`hv?>>@!WRXs`X1g9tfISV2dlPj5*r^>0;>{YlMbtrf}7%C^bA;)ye-j! zNcaM*l24c}{}%gL22Na39mcT?tokpzxLRP9Y^;jiEm$S^DH&zKD&x5YtBmIYR>eOu z9v?gy%;OMPH6O@V2CHV5Am)HoDSaNzLYDmRfmKpmGGJ9oQ{1rX=OF7#CEMYKRmm%9uuAI{;ckA()HMiJHTayqt$jP&yIXEhmHj$XsSU`BFtasvkSbw0 zhg54>6Q&AMUC(Nf%l`WqsUX!gNSGj%lBys`wM>{&fK((pY@8~7lxLi3ws=>XdAFG! zu9g)FP(?u438?U)OOitX6*0+ZrQn?Yam}4Li&#q#2g4IrHi9qB1>dvM$ZF(^e!;rkGBV$@F)8#34d%k zW!B3_$#NSZqe)wWd&Gi2sJtcN&zhpOQ1FLaNN$@7a7e))?#oOo<%2&jgjVH(Klq}6 zKkvmmfDixbX>5NTTcArIsPgpR5JjwXVXyaVXvMs4+NT%RE}XF`76`fhp;!p zVvaH(=nHmn)gOW-n=iv|69vsg4oWX$!XWGxv z%8<}MmmuaqLMiU0?ztZx1*DQTA6y zC99T9Ic3(%N5^sMWw_K2GQp}cM`~IvAQ-!;ZWwj{HNrk(PLc)f?1>vq$N}AF} zqtw$p2uw5FEZM02&ID{_wQNyX>@*&}qpiMOtsU)&B)E&)5P#4RA2iel5bz`)d<}}dX(D=<{!26nrwr4A zx{qL`44!@qeSlXu$v@aMRwUvF;zNZVoOW&x?OeG}1@@W&ufYfVN7v$iv!d(7 zf7jEa8|Zo?Tlj?AJE9K#-GwWN!yfqW&S)=OfgiWQf0rG)B-#i6Z;qY~*Qkl5 z{2#dM%^huzE?<25nf(*d?ezS)`1~|{{yez5WbV!v-4)$|Z_XSV83ty&0PgRMUWjj< ziEq6K?(T~IjIJ++D-`$=`r}TxMknJdchTQ3h3lQs-FUzA;>{41^x$@L^fI_Yjb8!( z-98b$QvCNS@!zZIzh=}20*$SL|60+Q_~V82$G0z`C*OhpTI11c-2A5CZ<-3Q&<^SR3b5DZHgLt|B2)Mi-FK>7< zT;770zdI5x@4?GGN5SQdczM^+aCtXgUUdvyUWb?G9t)Qj;$`jeaM^^H#S7tbDqj8* zFTcghho1tMPvGT6C&1+{yj<3R%ND#Gc_Lhn!^`*a@)%y;aS~ka!^^FU;IaoVt51f@ zd3af|7%pevW$r0(IS4P0;^oJ9c}5d1=iueArEobCFF(P{FY$8eX>hp`FJD*&moMYx z(G_s{F*ubIu|b6 z@$zZBJb;&n*1+ZKc)9vKxZHr3^UsINM!fv}TDZIqFPqlEab3 zX(L=_Zi35pyzIcsXYukyyez&DE~nzX?jz{{nV!R1Q4d=f98!^_h*!{uzeybCYy#!KUJxGcuY zfmgugP`vyGFHhj*2Uo)7M|kGbH384s6NaN8PW|94TqxkR5@E;h=d&Pfm75}|m z{Pzy=-`|M;{ucfNlYJll2L=KDi{1^F+hJK19DDg*xCJ`zr~jH!>j3Zr2Y2>$y6xTD zc7waepygE)vA<^f4x1a;%MFRe?8Q|V?i+274Gj+OYIIv;J78DFlXj2vj}Nt%Q;c*{ z115bAk8~mC8EB8Shx^+7E8>M-BCvU6XvU1r_7KPy$3`^$mtv!D0*Sx?Xx31BPa6W8 z{dzOIQ2&YE%!@W}x*WE2O#-7A%qB-UINXMp;%LX@7kIvJK+y%5_Dnz1R`d-GLL`*Q zyI+;(-G7wlUGy`cp*Z(4n{&}Gsg$DJIxB-)qj2sb54L^FW=W^HHZ~_G4)KDpLC1 zY=9?2Z3^Y1v+qU%^e)>w#SA63EoMgAmd|$6C_Z*`K{r;og?sQcN<1TV^;ngXb2(Mirgw- z+|xKCC~hW-k&ENa=tRZxZPdTX29bN=ujo=RPSFmyLuioQ@@NgdPpWes-kpz^wRl;F zm-TSD4}V0lDGWqcG3=y#L?cm%zt$mG@fCF2_zB$5~A>k&{?TgOeaeGgs1#M>EPSUQ#Gq3k|3RiYTRQrG?kNhAli=plRu2CuK<~eWffdOX>1} zUunxuOZ)!ccb0q3T}Jn4>`eN8_0PYnJNKUNJKuJ`^PO|Pb1o3N^}GoUVR@tYrs_`7 zjj5$1-z=WXtgfNYF9A?U>-btx{K;7g#VP{tUW3HH)wG$O)nA?G*^-*2hqpQFLAJ9C z$fP&|`YmT^Bvs{w^7FVtm1&=YP+NbqI}KZEhYL$HH800APvyqqEV7n=Nn-YO{RYO| zq|KkeHq%^#=WG7cxysUU{Hh`U)a(|YXkD3~b{Awa2fdt%QKn`l+*BWTCnlj*KkkfK z8iwD3Kf)-APn!C-8|trm*}A8H@2yrA@0l7O3s}RygFrVI8*17=aTZh3rhQ$kHAM3k zHjW><)0WUUzUPd&?Z(lgjUk$owAbp-ee8_5^k=}TxNf8mU|?MAXKY$P#$qqEX-TzLjioSe9_do{~Y zOoh$iRCl5hnnQ;(=C+%IG3G${#U9sePnm4>u$K>ejayo`jhmc>mDFp*jyalg7&esa z-6>3HC~0TRZ8wx_!+ygwl>Oz!7*ol&ZYo)4aV0gCTUK);F+7Hi<=O5uCN!4&oH4iE zSd0NGwvoYdf&nC2q%KtleS`sS%8_t;9uKdfa*1xylmGXn$90s7YLKm=ui8(FpHtq&0>$Ul#;rKbQ80P zU@dGKce<07&@^s$#@u$(FebCnyUN+$fH_oKH;0O|WRjXg>}0mjPS^xW?&Ksifr2yU zwwr)4AqAO@H5MnbRb@jZ945}L$6J7a!|nS`2>6Y*oPleqf9md6y^ zf#S&@Qv}!wn?%Z;tb``XVD~e58ImzBosekBgnYZ zlh6q6amL(sBQWwHj#djsGUaq7B9-z5ty{zMoMn{M8e;Pxq8JOC#Y66dB{Ykp&Y0V7 z7FYYeAxe6YNtEws-8g>FSyD-j-_NmefVXLmFY$2K%G&z-)(!G+o%NE`ATPBI(&j>H#^0>-HFr7^ zTHaqX=BLEI4oe2$q7sY(^!$rg!J0!PEJC-p5cr+do9aU(~cvs99{=fJj}2v$PMzr~%Hgv!6k8FSl}zr~i=P^N!) z)Y5*jb?whPizTV{15;K}yoA)Bcc&(y`m@fM+phktw#Y_@2ZqL`hAabkZR-ZG;w+e? z1`rsEMspJ~fmgZHlh6cy#Tj$kP2hrn(8dS)r-#Sw2;ifw+rWpMC6m+!u51$0rAHMz zAtU&pJ3$GJ;4x>+Pc{~~v45~_czGv>Cd|9rb6m>kNCPurou zNbCCF=PZ|`9-!$!P%;xTfFXBs5*olBXUuIkfD3H{I5a$V_uVst!;@AoaIAG3XgG@| zsSRA!EEMqh37J9FouY(hP;tiGb~8xXW`M0H)`P%8_S;&whu?CRQBr#dtW8*aq=Srw zC!XKzPFO;-c!M+Mwwp!3JCO7$u%lTw0Ygwcg^l4S?ldJdh95d(Zo4sD7BU90 z9CRRCY6LT*d+RL^9eRM`A<#`At31A&_+PEt!@Hd&l++%Yb`v&RVUu`=J6Q=$;`f{} zx7{QH-2`M8)lGb@bz}HzXW1k*hNj(wVkm3|UveiXp&5L^8FP#otRWG}&t(#MEo(s0 z#$2Xzf}0}ELrpJkv>doz02C)DaDAFRkO}f373}9TZE>e0q4k~1n4b#yOjib^K=V9- zM}Z(@pmi1BrPWbV_0#<9AgY?2q^rRMD$H-K+(pSUVlPM`wU}#D#Rb>Fz;#an3rqRgEL?2jzcm?C{E5eB9KKLW+tru9qz;= zRR5LEnA@)YOTrS{zm&&E5&}kWsC6Sa=q#P2F8t~U7p~kGTeM&)YzouvBqcP3dz~@2 z-4vuJz@Ss_PIrP5n!zK^nA>g!+oGj5RnG>Gg!y{wrtmk; z@=0n6fun)qnF^c3m)(gJWkjE6elNI417Fk zRo=qJai%+M360}4XUuIkj`Oqt62ja4B7X3F7JQ zq$E`R4bGU`u6j9cfV|WxPnmkB+Ji#17wW-3Y$pERUo{a8Zp=4#Zruv@ItwRh^ABv+i{U722m|gEB{YP)oH4iE5Uz|7 zn=xS@u!$qB+eFP-PDyPdknOZOb7AvXawjgKc`Q0(Zo7HN)d=J`#jQsCcI)Qwo6d4c zY7UXB5hgQX^}o@bn1t&84QI@4SHGNEg2bYymj0}D<$uOmDoK?eIkn`o5?1}6x|5Pn z^`CIY+;-JpDtsrOv&o%7$;(HcN&mCfZQ!TQ;z?=)fuy!rp2EiPBX^n-8pHRUF}K|q zG3>2Y@Y#xTJ{w%3yykez1Be|!adHL_k&{bJxeFV}mG0CfG>|KtF~=Cl8d4Vh ztVfX%w+0l6vmT3+i|f|)yl~}tE8WFspR#Vsob{5_O>K*q$?(~b+V$5!9&jflq3IoR#vC%eRgMxq;Y#0# zrGmjZ@Yf9cz%0bKT37WyILjibs?QHK zZ7>j4^EcfINT}woJ7aFUnzumBB9M%6<`+KHazJ@LP@J5AGVtlt5HDfnZ+538q4GC5 zV{W_hH$z|?vf)Umx_2zN3N_fe>ieCAlC-f0_Rt162`l~%cS;f}{x)aKPaVZiVHqO) zncN3kSA5x7C@m^pauQbjVRuRrDt^HkbK4bv4z-g9OVRE9O|7f__0A$ms`kJxCyS4; z(tq8Zj)Y2ojWg!9EB$O*oEIlN1;V*cwXX3`I?E%e#siVN&qP?=A9E)np}IfpjJfUV z-bRw5?_KYy7IKGcXzN}sTKzw6UHw0BmQPak2a?$1nF^c3zq%8Z&>X(&jJfURu$d$$ zqCEcgQ@{mW^>Z!9_gz47a^m|ykQd-2toX~_DM_gKZO)k6uK05?8C&z>7LX@f*ZX*c zOkT6)@{V=%57Wt?IgS53A^v<${P{fpN$LawGqg5GVf~LrP_zmm3H3khjQL5>KhM5z zcnF7H%%_(MOJ2>IdVj97hLdXLY%$TYQ`9LL_2Ha+dEBFcMY4NnFA394VY2#KCq!CsiI0@qo z;c3p8+ink+Sia!E@X*1jnV~Uq3HCR)rdqd#31{gf^$99DE5aw(9EEHl<4#jTTe!y= zbK7kpW!VA}90#gi-YeG&+0x!ZDR_j;3tG2`=Q+zLsYP5HA1j3T3J+in9_hHSuF zT&h&F)#G>PYI_>F!(MQu^-HZA#21|9l++;9xe+l25#lXu9e?3YTSDvjoHOROTgPQV z>o`#Gj@E|CQ6(IO$yL}QI^3yBXc7N$qAX$!DY$+Xub9qQ z0}6kfyGlamiJ!kZW1x0qA~C^9l3Jg=0%q|LiY0#JPDMhq`#xiSD#Q{OnO^pG`pd0b-picTk<{`w zTa)Tcd#E>gseA1S&FmK#^HZTWIgeORXY=`qYGui*)`PnT-`Bbl-|H^MgricGfGE0= zASYqJ@u)i`2^IQIXUrkL@d%@M^7@ZWEHA_l^fwSZd=s>^*lB#-St3cBt{o7XT!c0L zH||s<)cBX3F}Gdg=d!HOu}HZbCNj19y57+Q7d$V{W?*oNqUrseye%nSQHh?|wncPT(q_ zI6318dmTHHmyrIu+^I>Z|I3{*w_X36ZJF(#9JQ3czjftLItwLf^S4*A!;FM9KkiOS zLd}mlV{W_V&kG1_YG~3@{fk;x{qvorl2rBfPMZi$Lb`vhJ1q%yf7}^!+jW1TEwO|B zlSBK)_Xh?5?`quu-tH`#qy}KGG{vzKvV#BVPEbNC_#e)g+inGy+G3L{bhB7|4$LZj zrFBdAqO*9CT7vqrmY7P6Whp$v^q1}=CA5XlJ7aFUEnE^7+-%flinCtWax{24P@J4- zP<<>T&J+YkVM{p0ouY)6u+ABC+btpN6(+K^+EIL~zNb6tsn@y^)Jexz=srInLraLAIb+3fsa1?j$9&g+tDm+inYi*&;*>7%T={ z!Yf-hgI{)*Oj0vwHdi3H30uI++^I=u0WWpN+;$5Hj2cL0wNT#sAGdA-f9Nclq$bd8 z&RDV&wt@G#latT}-s_CH?KZG26ek|cR=tHvBQ$9ER_liF56<#QY6$kO{CJ+i*6>Yt zni5*W*PSuPSi>3?mHl;Tu}HZF6v1`rHK6dR7{l3AjoCGz@TnMK6xrfDPPn3vZ+uFe zh}PtoG$~G^qA^=MgHFb}@6_mTbacnA)2(HvAfGIDHGkJ5HH0$_>c>-)UaeAU)NxvH zYT|f(f&OH3hqLqcs{7MlWRJ!QpcyBy9TtBU#h;4!^C16;ZXm?#a%Z-jTc}ja*+p+< zVN43+5AjAE5_SXXGKX!e*CkQhtIrv`j#0!4wRnXuZTXE9`Nfo@L`4d3wKi9;T~N(h zyp|w)>2e)icG2Z}Tt-eQ-he-2#T#*bxOfv^pU&5taUEG#yoG-}1J~lMxHO8-1tlX} ziVqP%Kc{6gvR2s~BFuaSn~;rf@vAc^#XF->^a}Al2M;2@E93qp8aB+0{S(8m$2qU+ zm28ZyVZwTj#~$J|;`oOF?I9y*p?Tq=1f68-*K zu-Px4G_jwz-4iwMB=I-6=8)(gUaQ=E(Z6J^D1xG2LxZ6<*O+ZApHr{oX3CAl85|>1 zE#Npu>LqTY_T6CTKXOWAc@veXc{voD^{P}vJen)a8;{OKse0A(W(wt8sgXBO!5NbW z!k?X}HQQJ|cMhl3)Mo0HnW{J2D3tO*$?sl)%BkopYs(wwOO;s^VVt#uG1cvY0L4vt;!w(Z1Y~<3Ag!l}df4c6@QRQd%jV3!KZRPl;czUXhN0T+Z0?*|oxK z3Fle%&sL6jEB^02Ua4{vzfUXB5j(iqkoR(>Y&A>$5q_SLujII!7-N4pwtP+jpVu|Z zJiL6?Ol|?}!Dp;Iu(G^yCR?tQ2mB|E+2u1TvqhYhOhPSg0zD(^8p~(p7P94e53xA2 za)$hA7CAFls0%_!Ujh(t@*%5eqxuCQ&(V{{@+rBcB|=&JC@inI1=STlhC5pz#mDhz ztoWyNT|SGMAFqxtf#Xee9K2D&_jo2Cg~b}4oUNYV$XEO>ewsl)!&mAg#)_ZC{lmp4 zaE1Cm$A1u3(D|%B!$l8gPWpTl@035u3?BfsdHgQc=<+GL+;}D~e@K^)AV?|BZNTNw z*|@xiE}a{3d5|uT(`DBtTwY6;51fO`ThGPik2d4-mGf}<#1>rMb3QI_+=|P)F2LnC zF2v>S7vZvUF)q))1eZPAaJl+vxO|T;e{>lxzj!$=V<}uNyaJc6(dB=3;Zog>%WYTU za@|$9oOLxWe@mBVbmMYf4=&%KOXgZ!{GIh-a5-=%F8z1m^6q|I z?%spTx9RemgSf2Qi%X6!AE(RJ`*3-fF5jWc_%JT-q082La5+YozZ${i(otM88C*V0 zms`egc{^RM7{}%830!_emv7vQ%a34$5&nr zq6lj-cRDV&odNvyl^3oopDm8u&GC8KE5-i+-LhcSE_i`iFs+Ybwm|-rK(2>P3*47S zgQRnnrQ_VN&FXGA6R>Z>MZl)xV5=S+g|41H+IG*>_?Sh;2ME=B(1r!7o7_-|)Nc#n zhk>iOe}h7JSqwsK4+*j50jf9*2O?;>A|5nT$$O>YyjAhD$n(5KLth&YeTYs@-hzq`@1koE)TCml z0q6jRqKjoqUGE26@zv;31aOmjNjnzkZv(3M2s$DG+7n;z-hx-k4|;QS5=k!Ai}d;8E&^m(dLi98EMKK2B@_zX5Q?H=+9$z)i$CRj(`^#5!JWpi!^P z%~@F9N&WxB=>J#6qO4L#(`Mv#6hOQl0ffNP6|a;-4EXl{TaK1xQc?UZ{Q+Wu=}YX^w?gj=6@yFM-Zq9SlgUzSR{K6k6OTwQGi!RfG2=$ z723d~!vjNONE$MmdzB*!@eG!m(?A9bx!qjUlRbs7v>OR_*I(sQgV_1m(813CaO0BGgGQ zM*)Ea|9yi0Acook-i~OZ;ioVoW8wHLz>5!Kq%LsSLnQ-89Xprv7AYZAuLG814&!}+ z>S+B0!IC}g%Y@&key-K}c3`!-QK!St8&LlLdvegGE#mxi|c zHUYgo~1ODRS;d8_)55Q0C(l#Gz1?TKO##5Io3(9F)zoeEb}<=efpdTa9t@~6}b_WSi^Rv4a z;8lPr9$N)aeeBdE_Lm6o%No$`Rj5Y&*-xv!Zxh%Z!-`N_j@14{aAd)Zp?L8v8pig= z1Vdxn@Ye?|9FG!?Q!#@n%-$9d;V?c~X91oMnBu$!w5=@gfiP1(M+xo|BdS8{vsq@j zFQAAq*C(w}B=DL?H(NwqG76x_Cl&H;VOe3I(6@KYnnyE0@+dAsB+}d>kcfS;Cg_I< z^y)DM8ef0#dmko}n*m>Zy+$JaNkskjXCh1#j}VG;#}ysd#L59K&Hi43CC(Hu6#q@5 zkzGRsB|sxiq&JD!FahYl$3@6dcJ(pP;p59qR6itCpTn%VKou`n5MrHpZ6f(P&AR`Q zHV)}_1U>4|Vzc}gQM9=8nW|DbVzkQJ2jiN+mHhy|=YRs1-AM>o9;<3X9s*GD=~xXA zyvj~21Q|Ih8KOmmlqT6~H0I%ZmX>#;eDOP2Y7iC5uuxQJ0vSgTTJYB#0{r)JSq&b_ zA&-PV7W}ES%JEfQ|GB2IPS9}@rgZ+D3co+ADwF<75KD#46Rs@4w>|*CA3R$DTB2b< z>PUjMoi+oYCvXw0NoQ`<23|zkvsKqu3G98(QD7GbIr2|8F}ZxZ-$ zUR7?jFuQWO{n!M47T}5>)WB8?vw>;vstNg7g1pgF)mjcd07-ivP0#^A6@OQQT5ZJ! z^|#KM@b4%1r_HIV<;WvSTe7jxrYnnrod7PLi6uQ@k}}|q!yq@dm?T_8%Yon12%3|i zw?mj1PFVnkzrjV2&>VwKqBk-86JdC~pfEI1Jj4)G-xmQ_d~ZCSAN+9W8-hk29d}T>2Eg-!> zF7BRQ%FcQvUa(z0bKb*ZS>8LgQd|N#3uDV0<*IC{lFODnWSPuhZogbZngdoSaDL!1 zT9ZY>$nxo;AQp>(!>eXXE6b-1Gpd)a%)WGG`OL*iUZ4gc$9L*q3uDC^ssf5)1AmK0 za9KWE2rXqIIKAd&tGR`h;tQCv2&fHHTmo5;NP!f!T2%!rUfv?pCIhuKD9y1__T|FD zkP>;xO7S70^XHff{33EBP5AYT^y?+^ol?&7X*l{H86lKpa%R3Eb7cIKj^)i*4u*8* zXVgnxYNu46yYGB>{9EV^*43~qe|ljNtktk4F13Q>PssUP`nnb6+UzeE9vm#>>Ov*2 zSV8_wzQoByE5%;}P0JexD@V(vN;XdrHL1DtD%HY#p`0zvF#4HBwE#+&&!Xg&8O%CS z;?VL2WXa6rD&@L&jI3<=d}KV4I*`r;bD6=4mBc{ERyr?()N)x+z<_JCmlf!cM42)H# zKXeB&4Z5HC*pYSXy1KeLMaM3N)}1?J{&h|-6ly7fE`_`Lf|sK7tQ1juJhfCQlGY#`S^A3DAoh$UIX4#Oc%39vM`WR3F%t2 zc&X9w>cJ5lGwM})Q<>}%VAZeDLXDOd#7~VZL?~A;2iS_kO09Er{O;6lB?*d1M45OOK)sNLta;#GJ@JJ83{YNAj{fiYjQ_NQJM2w?%?n>X3-USY;J32e_ z-drj$81C-r>rCMvrQ~HxDWg{Vv98&E%(VlYpBliZ-xNHrf>bd?!#r?zk1VWFQemx^ zZUc)dDS0$yndam|uNr~5>eU<7a_V}Y-{=X16UjQ{JF|qOBCt}a5lvqCNcRr047P7P zGqj`U+8x*JxOPS>$Pk#4m9!Gg89Wx!FuQlKA&>@ZJ9<;9qMiuG4aotg_?2d8W%HzI z+lrbAJ}gKvdvhWMSC}(xj{FLly0A&2mXB_m93B{%ni&`$8ygy!wnZF%ze89J0RwsX z{qEg6p0y)YsYbs#zQeDZP)HfXPeVy_rm~1c49Wx0qB-#Fr3A5y+rp+9HnMuDI3@Ab zq(x*Z9kGQ;tcGQXR-y1qn+xF&E224SAFFQF7Eb-t1+fOw*fFK5&`Qn}BU(`Dnc|T} z4It-jR|lGhXF8fa-r0#yOZG14{!ePDr&;qiH{IoBH0l*Pt zEZabA<9!qn$x`I$r@Xp&E=;6P)#v36U{MX%fPbb*BGNg$E@oG=|*(WbDL@@Yd}bI3O3(27Kc zTcq06cIWvi-9l=eNWQPtQf#ck{gT0OyeZz8;ie8W5pR0cxopl$9mPVB5qI)xB_d3+ znS3KxPp9A=YV|5^Q`uCGeK46D*OzM4WKlA&d2fGcWe6?5N_Pqy6ebL$wLSy&9J-&n%BfA8d#7tRwJY%a$(_| zvgF$^SzEVdZfQ=oOM zPAcgR;O=GRODF3$XMP%yOVMpt6M&ACuheovDGU5@!Va;+=4#XsA=Wq=Lkeh0AxdL5 ziZ&&{Q&Y~Djw^Wzi6*Nc#73P~7=-&JGwf3#q8*CDtJTHU3md23z4aMEBW&pQ$;#0? zgpVb(rdyWd6jqpQAR*3-4k5yZR^?ln%!%bZfc3=j9&RJrE<^UiZLwF8A{$RH1p%=h zfh+;1byS7EQ#e^bflK++T=Xy7lLjUA(!b;epyE93c9gsDts%lQu}G*Qc5Vbq2?6`O z5&s)&j# zZ%J8>-677Y^-ol4h_Q}fqiLa98xXbhMwT4&Fepz}vQnQyQsL?-rz`brNmlARQxbE4 ze~38nB%RA5m(y_Q1eGt;uxs`><^d=GjuH(x9@K?sxD#^l95<6>L`Z9sh3(cftQgK8 z5<}D2N(NNH8W#-K5{-4R3DrKr?f?-st~!a7B@YRxl7qE$4MB83TCy!E6O^;sBuDj+ zMlietf@=zEb@N`gkKbtVs(h|d#RhB)w+qxLV&p&I7Yd4{SJZ}KsTAKJ20H3q%G_v2 zs@fVl7@Gcwsc?#3cN?_X5+f{2RWFalE-W_0qnXfUY+SloD{>ZV^Vi3t$>1%5PpowH zVsxsM6($K-ZfJ_-hHjr~jC+a6FqSBh$W|it-W^qhn#t6D%&BoqM(Z#p&%I_t!=R5C z=Iae%0?=Cm8Yc;eC?6bgzaKC~65Ubk)~BeTPMwSi)5ES27I@#T-s^jB=)Ls;+XX7Q zv)k+5F;Vg;@`N42H6Ov~F)v4@#;8Ss(BD99n!>Ij#(*x9NOE`Y zPTks!#4bu7NFhE>J=nlN4xI7gT_K+@dFd2~XEdil533?!J{?gzQ80^P@L{?!{)Na4 zdvnq9M=4G(c~$Nlq8RB-T_0vT%3S_G=x|7YA%_?zIn{Kcg=Tn~-T=-XLr;EuN)Ltc zc1?%@2&td8q1LcnA*g#9!P>-XrH99M67w)7cs*~C7mDF6af%w6mF`uQp{25z`4tPx zH0zd5$<{>UIuMkfHugZLij`TKVB@8~RIP$p`X!1Y_?aiXF%r``o`Ef+2LTdB&NhS@ zynt0p&UkT^WWr3*v`i=tWz*$`;)#$H$BKBhU?3V&AKErW?`k3oUe4r44nnmkBP>0P zfGG)udPF__qlo|}jn-ML0FR%VVO^j*4bdJwHfA(-BaI;Y|A&Y$S!|~|EvQ!Q?m{%k zfu1mtKzP@i+MC5Pp_o+lqdvNuTBsbwM0Kt}M-AE{w%ZGBVaQGBcr7m^m?kR?Yh5w zf8FX8sb`S|Qz+PtFz;4swcfEpy(g}#BQkvKJt_2ZAR$>lM~GYQ=PcPUuYM${1e`{a z5c+-5=+bnANNKv#4HKY6#Pq=E{;BDqNi1E{2522xLRbL>6Lz#+!;_~AwV}l&`o3*b zj_BliC^w855%D~Qc@HdU?k#2K!Kg_U?6ki& zjF`!MxPZBFOvWp&GyT&8`)2lz_TNp6+m=lD5k?{?1!6XoX&rS)Z;l|LQl<^U@sg?nDQw3{TGen zLXLsD-6*dqTvqcId}3pB+o4lC2=@$uC(4BdA0vDiB7YX=&HOejPy& zB59N{iO?O;T|gg|2JZ=pRtPgZfO-Cx%v9qJ`3J*?1R(ajirp1dB%|;`_ zWN0W7B{dpT^xB3I9E#YhWQ;_ao$?5&>>Nc2{#?0k!{+)$NRO~0hcS(VwTEg-NAVuP zwjV}I8;p^gztLEX;d03EDCCj&h15+9BWITKYms6%Wh#rD<@{VvGNFowB1*7fC_FaCl5-bYXU5ql_R8;QM}=%|}K5lwL|IGGkwoQw2gCh#!RmIFvEH5aD85%_+XZOP~TKPrV zc=Tc_1>2mZ1@B@krDpRuEfr~Aa*u$fASDu&#Pc9_!Jxn1Ch>M_XkWdi6rxvMHIP~y zBS!%iMK4}kT@+%;P9+^hQ=C{HG_(oGWPtOzBspu6i-o~OHcAGDnZSJ1Q|@sT-?7$0 zmY>*KL}pw?@;`|U1-Jf zc)hd&(ePqbL=AeZk|xuYF(Zc9n1e;T6L>-n%R=90q|lPKjpi-NDXhNqIhiqlgt|0< zbJ~PoQdk7j-n?esbXF-N zL&v5JW|a(>0tF|{#1Navmv)v#6TT>d%b4cP$<*ZgrH9@hdj!!5kqfQ$GkGzRk=CJ$ zonYCl!d(LCM4qX1LPRr$ED=hspvG4~R&=158D_!TuB_IiVNYzciaA1x*^QT#m1VAv z4(jG)Ot?#CgaWz$PCG|@sv{*9iws?LKWp{TEvKEUX6}-8E-6SbDiAS2U}B?L-niJ- zVGqP+iagwqBQx18%UugvRATNXU_uMX*s7&!jin{kMbY3v#{B5m*!n=Sd5#s{wf*8vS8HE;dXc-2vMxDSBmJ zKrgDa#aIAk$dTe%UusfrmEe+;Z;Q}hz+s`c09G;drYJzQJii;XEWrq6cx(glQQ8uE z40AY`vvy}`otS|>s!~gI95rCtOaxFY5=hgiiL@v;EFr|<-Adw2cNvuP=$W<+rvfPT zdy+3jNW?u?KwX)vmv%STD!Brt9`b7Q3J-h=kc`m9m6wc#vH?92VSqQ`*JM-c z8de21H3ExW8X3rDc@3WivkIfsxRAxgd#~lh0zUu?v(iB!qs36RXj6>354MbyaN!~O z3D~Ch)GV>(hkQyl<)ty#+fA>p@1^Svz3H^ya)dl2x(U2C+Kb6N`8s+nJeS^s$$ z2bc#y5o1UFRDqEwrxiwxlNF-?jn;@)V*S8PYv`F+^ymk2^$O09ILbYs?o}|3tTjq? zc*jzSG+E0Y@$zwMRLCG><^>(@$=%uJ{<*wfR zm<6lXXpH6z8#yg<^kE>wP}FQdpvhb+q3k`$MOXu0Taa!fnhUgPom4C|PawiGq;Wf?PyM&n!a2M)?_zpfLXn zFdWB8jF!#fVyfUI>sgLj>uQ@W`97UBg5H5_f!EF)6&=k;fNOYFRZf0~BDs4-?o$m} zJxHHXq}TYvAZo=&j^J166g4pO&ArIU^Qx*}c}nFlcVFoW&AfT84 z`COPUve!`W2*6-2s;^K*At8+cY_r={EgPd%1531sv=gToNH}c@U*WEKx(c(DYPa~B7~$o64qjtRzG9NA+W#Q45a-hl`%i%D~oretg+;8jzYt!Lw=Vi?raQb%!u z0~N~B_5@7x;~W+OAhaUOo3knKgAwy`1wgPEjtPh|5|l8r0s_JVXN8n^3xm!t>q zCqGlf^wUat*%$?AeuZ)ZXkbygKx`wi4BTdDsNS=2Lp#EQUe&R4cMqxCFZs*W#tAD^*;H+jOh$BKsu`)pD?-N~vXt{* z-Z9LD(fCdDa-yl1D{_9{-1^BzF6gzT+$VkHtXDtk!7z5EcQMu1<1fA!TH(HxPO_8p zW+WCV6>1R}eaUqC2N!I@2m1n$*?tcT9`}_!*20W zDQRgmV5W5CSo0DNk3K^sM%&snB3JH1qcnwItPS88uf0LTB(0i@w`wASCY)$^Z%n@w zYnVi&hXHB&l{D$d5c$WCv9)mIKD0=QscPup7i{dH5Z(|n%s_t@Mtp=!inwNfnk-h* zWJiIrL0M_O_Z+7w#Vkh2y|Tx_v4+&3YpLsZU8NezLScRZZ5f&A_`3CR?7u1CE_IYP z3y3D3<#vsV`FtCWXvrHRho~^e-^8YUJo02j>>yn5j;Cr1l}1TSZ#I??I9Q)uqiJev zQm*4HEt+efe{#|(z?d)xdML@kIU@LMTae!qU>l)|6SlGdXGrn2I1R)<5TVS9BGW*! zKkoziZ&gF5PkmKO%}JdJ)4i)k@nTM#b;HI?VXjEZ)6RmD3du8e`<{VMB8kN~KlR#i5)@i7P1)G{8#@Xfih&XS;#}n|XvPm;pq7ps3a z)FQD2t5{`T-slu~UdESUaL!t0ZzPZ zmg%vWR45;&oPct^zntemh4`iBvuKFX%Q=0E*q)tFdG(yY&%Hyq`S{C=NFtfQk;RDJ zd10E`qo9&k)qsljr)nkw9a~MTx^?Z`sit?jsA{C>ak?l@--A$jB*W~>B*4N$JnO0Z z0hPu;$Agj*`ck|KF4WRPiGq3?ts2OSPHdIz0!vrofTC{2)hfcaJRdEx8SGn!yxQPI31&HYkD$aEX~( zX|lAzAM1n_Gy!A$O6gmuAFI_gJH-wY%BwF_D-Ddn+4~VSjE@32E6s`1J8Dx%0NPDn z$>?RphBxj-@Ye5v3Ui#*Mj*5|J^)316v2RFBPAhxT8Av7(Bp)NCG0t88VLomKD#mH zh3&00-67l~C8Ys#k3plVP38UgrF~SvGF?lacQ`}S;l}QCyFTT$lGZ58H>s1li22b% zE{*Rh#8xZZR?d^xzOlH7Q_0G6X$szqD&^)$s87rT zvOme0rwC)l6lUBd%(2HGSc*WW;?#iHJ_VUlNYtW|#&7w(> zeL3zy@_S^JC`Cx&25dkaWATO|dBgQ-eNoc{zlANd-$AMtqAcRaGv!N9M z^gUv&gox2DLWxQS(fWD3Y$#X66p0juFEUJ}neWN=RLZW}G!eIS3R+d)NmN1})D;M_ z#cGx&PzI|?AY5GUg<+2QU~vIO8m52Eg(wul5Na7g^awPuYst^2!rY)DWT@YnB9sk~ zWY;YPMtNBW*r>QhVbfXYpJn=C=^kCO3nC* zjn|-*+G(Kbz+9E>cl<^dXBk#`bt<(s6UCBkDb!J{ZYbP8HM0{ga8k{Ldp&9ZYyxI( zH*9@W#_G*E(HqGOtL?&; zd6085nWCW2ax)82v>HMd#ZRa+QMFj7v8#EOK#sXT(=zS1QZP@ayQMsw_=>p^?3X|r z#!57nt>pqQ&z?}@Jt*=J=rJ1VuuC-s4o=5GsLbR-#!Gk&5zU=7B&MzAo2vF>KcmQ?q(-z;AyyEilOk?I-Pv58L~k&s+42no zstqcTq!!CK`Kc2%kf4TS_47dy5?Az3MaOFKDL}DrPNoRVp~Rd_d*2S55bN%g4$mzY zCbk1{`K$*oLg{W4t5dH9KLXn~rh_?E4~4Ywog*>hZ@7lCN4b(&i(fb%N(rRxjeZEMS_@6oGg74% z7C0U9jY|1G-7lp-L8_>B=e=64THtZ^?j78V-VaA4cg*1vq&0aOvlhJ=VAA}Uz)hcA z$5tFMF)}lcNxP-)9lEryju<=^c=wK-JDDkbv5``5kiVPXP0>}awj*j8=0Dmfx_gJD zmtn;k2q~^s<7u*_HB$uQS}|uEsL)01ieMw4<^z91dv#>4vGVOAwQi2XBaWDG5Cgsj z1R|M7ND?cCn9LR*(jdtivSyLb94_ONzWheCAO^&zQPX*EwlUw`MKCxWRL({5TiGJ% zO(#Br+r4}aE&lMiNg^&@Sw02Stc+YdlERmpFQK>8JMZC1@&Uy1IXU&TQhW@b6&~pt zxd!DrshmV0p7)O2g6HR;&k)Gv=Yz$|TSsm;U&?*K65|~s{dl>NAoUjv<*R{_y?Avx zULhut&-RTB<5?%3$z5Uc`N+s9o^QZ&^`SNSV*khkc(EBTCdiG{0kO zvw(RiQNI7xk=Nq=MdA1R`2aat>UATpN2v=$Dexxtcua~j_hgwjj{LTd31!p<7`xQl zMjk<_3k4?lHTwfQ64g6K{tpUu#S~)lE%LsQ+0X%iiv<9$5OX1%H$Bd~sRZ84rjE=O zD!4tiASDb5#YvE@9hq$eA|;3pykB)JvczQ_nJbMF;5=C3>W)k=l{i;aixSekNet}J2LP-RUPcv(m0Re=J+8dQN-cVu1{ zEnNi>ay{{wl7y+GW1dk@;&Xv(>`G0{02~T1V#Z zsgNOORAy}>kX8O;N9Ma!($7$%krF#2G6X;QTbBQqj?9m#yrJ)?1Q%KQryZGf>rvVk zkRFGLq-I%m{rb#VRMs{&u{tV?Y*?Q;kBVI3^B$8dBLU7|pSgknuJi$-s1?Dxgt>Bk zCQUGgEyPq}f$dtKxrxAx#;sC?B;s4vXKtkuXK7-jU#NG87Z=!baRJ}*to4}^fnR2q zf`M2MWM!50nFf{KX1xq7mB_M3*Jqv|QI?vzztSYjzHoi!VJaJ-6;w>n3V|&3^7WZl zMU(Wf!x2e#@b|GVmRu+8Q`pi2c3W72mEQmlvO@ z?ru0s-QBi9-Mw1hz4UDL?5q0j85`BJH|e_{>APodQg6Sa@BZT)_3WqTs=JQ!)ZGh8N2sk<*;tnS`^iMl(oP2DYAsqXH-O5NRjwYuxx zq3*nHb$4fvx*NVm-Tmsd>h3>!)!n(*sk?2v)ZH1^tGj33pzeNpqq@u9r0zbc@6u0K z&$@0_cfGf$yH7kr-M!^jb@!S+byvAf-3{Na?ylUe?q06%uDC-zyY^0X_j-NzlDpKi zO?%Yc+w|S#1M1la2G!lgd)3`@_1#zX-JSc?+uzc6rwyxT3;OO;`YwHsdiyGM*C^f& zldWS+^AIK;=F_~Vc%}Q9H(ar99S!r1r=2@v|8&jA|MRjTty`Jpf4rA3{!2TN(@KJ5djwHK<@UvOa>gdAyZj5J2`Q30jV{KHNn zh0;Z#wEkQjJ3hrZCp4>xsZLT<7V`n=)Hqh^s4VXd#Vjdjgh5-2*dtZI9!9aT7aL9k zhLN4c@l{BMm9y5k#U80D)@*pi!kS(aOD%NOGiM}Jn#pOt76Tr!P=O78{FkAbR9+>S zEzDDm$9sp%8KnQ=Cb$@*!1ppZ*T+Uh6_XrP=piR}i9oFDaA9MXmlqYdT0@7zq?(va za9M;9P|P`oN{m$rB1Kog3nyHCx1_?Fx1RtCCeBQH7+mHn0(>{ zXP6q~&7iUnNtt;ubt?EkNl~*#5zB+3(8!ReSK!K^yw&ZMX%5L9LE1###mUf+_j3Pq<7HrR9(7*jdVJ zd+?o{6b8?V`CqA|WLqOIcjLoW{ zsS!#8WII+?XyH|AjCJCQE5rkoib7xBq(&rv8Xkufs|P)nZ{jE+y?1;v(?2~kFm=FR zbVO>2#*a^YMdT1O*09r4fk9ejTln3lkDY9ol2-)5(fFy%c6_b?dvDNk4yQ>mY2m}W zLv*JFDv7Ztjl6}tX27nO@zRQe5xJx(7(-F)ocuHbJDx7|sK+~G{eM9|&LzBI- zMyOg04)zr0@1@w7+GeoxqGw_p$JT81SqhGMq0xg-_1b$G;)NMIFg$c{YG!Dxf6wU9 zAUsUh5qz4xHdLlzL|(*@1Cv98Lu1p!{i8E`hewB~5JrmBcyL&KjaU}trU?hV#Wo)O zY$!7^bN9g1%%1%NBSX`>yRh<(fg_sb-MQMHM((gzkIjyvuF>!;B%cIb!k*!~@7+H% z`7FD64QPUiUg^K)aBEaRuFKCXq6X$ealoJwu*sl8ZH+>84yU4*!D|{L{~P3~(k3uYom&gmdJ-0ggfjBiWl} z>uJtk2(~G+0;A8Z_#MlxD!vweLxh2O$&jVb14e62&fY|1+Pp4pOpCTN~XHgA=^ z>#I?8zPbiO6f!N?9}tMxS@h}XJpG& z8%IUr)j_0CA@xo{4erryJ3lL$p>KfpM9kX!@zmJ(L3}=SWXKOX*^@_vN!Xc#&A6Pf zgXSQn2eXA4p3^b*efjjkM?<8tT{NntrY!>Ro3?(u_wAhui$OR{nEk!5TV=Uicnu9- zs2*Qc1hFY|5f2pNK($&1X{l_B*Yhv8wW- z3P&ad5VR<;*lcR|DEU09++|Z%bt#|ZM0{&FpLPAnM-}8=7g3WtjsiHSc!CTxE?W$P zv(rW-DSL*12#hRMO@O|U9!Ns^>;+@0Aa5FA4NX*aU}U@^l4QrIX;PywwJ<^Lz$GqF za3?A(P%^@iVwki(f}`%@XzmE>|UI= z3PM6OOBI+RW4{nt+M2u?9?J}6#%YAb;>88gUpEk8O3dfAaA~sBt8E^X%{))aLrg)^k zR5>dwwtN$P5CWW;$O~sv=t!D;rHHj4WLIAE!&BGsKgxpN$S}$eiBzMJOGciCM5D7! zbn?yRBUjv-PCi&54_hq4?B$RfWu@^TdE z3Zk11O=!sSzdZ74l;0LCZ_aDTlCR;U`LoTElFPD4r`N;sC^p|d@=nxqzFh{iV|*y_ zKRWV0VlG?)!xmZO10#QeA{U2>sK{Ry`_RZIB8yR*pz*jY_V~yXk;PObEsK3_m&bwQX8#OQjBlnS6fvS6D7s(jrhAaVtGnMkpzdCNP~BCZsqUV6NZs9YpSrvLes#D0+3N1b8Fjb)IqL2Q`tE00^{h6h m?w&ob?uHlC-Ax5`cX?6WbskoCKTvm#;w!;=eWlTuP5(cy#SWwZ literal 35314 zcmeHwX^_R{C4-^_hyWK4I6w$e79l|o{od=D?mKVe z>+Zn}Wy-Q8k{G!y(&kfTaV3tOs1jKvr&6g@Dyl3}MRqBc6Q@$PlS*W{k{|KE#QEon zN>09W&b__7Z59GfCB^yC{rc|r+_T+t&b{-6p|Aew<{tiw=KQAX)z=G7ea&k%>NTex zw4<3%gkH6BDV6kY`{d8JUvKB5{dTk2UW#&+MmcCXPQ`1rqeHrlFz~8{V$%-Xs#j`9 zqs41M>ngt5@1o+~g?2RbvhTEfy!}SquHyZgS6^9aN5jpHz-`pq(E&7z{NZAW27o4X zH-0;4zle0dRi+-@vAmme$K45c(w%arC9mA5FMDWgQjf-b4?is#@f5}yYfh`>RU98P z!dRRj`L$gBs2O4zakQ*deQM4 zRe+qj8Y?%N8!d0eMX9N?r_Vld%Hpzx3(o^;7^mC7I*lf2BQ2-u*gkq5I$e08aJn6h zU??>Cw!09`IP2wVSaE1A1E(bbac82jm)x*c@(UHL?pWdCH7szWg#Mf$P-J z;*6e4E2x;HDW@5hie=v~E_+qL{RW1~RWeDFoTO5PChK7hi&|W6v}$(12sq*c7Ch

?M%F!Ckm#U5OYCFnZ_WS@4rJOK2#GN-C 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 diff --git a/python/docs/_build/doctrees/index.doctree b/python/docs/_build/doctrees/index.doctree index 399dbb7c48f3e5bb6443c3e03e9ed775c5602788..aacb0eb1c34e290678cdb7273e51db35a45e424d 100644 GIT binary patch delta 2853 zcmb_e-D@0G6z}Z!N48X0XPlie zS*dP?s06N}z1M;dDn3^VVT&Knr4;oK@Tnj^h=_qe!8gHkXLojXH<@l9e7G}k&$+*I z&hLEO`@_=pm;KlLpMRA6%)c`1DlufChHu8e(A}c zS~Aygw9^#s=XT?(3=hB>f;9qb6xJ~^NB6vQCm9|mp)07msp|O(GqH#xSi)YMfHi?9 z@d=I^-hJbaa1QpLsjSJam?XSa+L*6sat@phX*#MP{cU7np6bM;e|mC4nvQ#?&VIle z+(0Q|N%)$^Lxmv`lScBh{cvX63VndS7#OTM(L3HgTJ#V+2fOC(z^YX$?==|e zC_fU)sU=M{%Tx-_j=9#fgm2O-;c4MldLxW4iTLMc5CZ^tuiGx^H`JV=Bb3_IWlcjm zle-DKd%zVt%XB4@@>?xMNhI}jv#B`AXW>j+_hf@W-b;^3R&1=wA2$`D78l*i!LO+Ox*bf%HjZ+SJx@J$j1 zq`X>^i)E%H=sSHgwR)R(oMO8+p8)9oL!lkyR`Wsmas6m-eI?xRI>3Jr{?XPPR3flN zPsYTWL+}FE;*IJMY;P&UAZyWX@4^%b6;QdG>`c=do_GYZ&p(XqML;^pwnK><*{|AU zx4dg7`xuaSrU!C6*{eX6(s99d^y4_%3E0=u?}%V>Lg^7 za|=1@Oo+V;2?;cCq4sOd+eo>}&-@?7U+qCcXF8%z@qgINhwWT@HpYNmvj=c{Hn{#< zz4g1ZfhTIsCxAWppp3d+5+tx@ZfqcU$OzMXfGa-Eob`0z9oLvm?e`;z$y$-mi{{jm zZA42TwF^d8XRX%?52bssjvhW(`{D_B3e3dEPD{%7+!NOv9x_Ok+pQBk?mCI@1cY?` z+ju_kRAV>;kM}^w{TW2RIWBrn<1_Tm@kC8j?mA>7;H-_`!ABfz$t7(Ar8qBUMJ^z? zikd7FTPT50vV{-1Z^Sm}u|twoQB57L8azpB;+!DT@5DESOnq4TLhwXA_1(m?f-qVC zW8#))X&>(?yWqZZi+_IOpZoAJNtnMrjjDz!)~j}Z$5Pv|RCY`p=TFW(yl9=n53EDV Q?fUOeE(-xjhPgKLA4a~haR2}S delta 2508 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 diff --git a/python/docs/_build/markdown/index.md b/python/docs/_build/markdown/index.md deleted file mode 100644 index d8b455d19..000000000 --- a/python/docs/_build/markdown/index.md +++ /dev/null @@ -1,183 +0,0 @@ - - -# Zingg Entity Resolution Python Package - -Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML -([https://www.zingg.ai](https://www.zingg.ai)) - -#### NOTE -Requires python 3.6+; spark 3.5.0 -Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be executed - -* [Zingg Entity Resolution Package](zingg.md) - * [zingg.client](zingg.md#zingg-client) - * [`Arguments`](zingg.md#zingg.client.Arguments) - * [`Arguments.copyArgs()`](zingg.md#zingg.client.Arguments.copyArgs) - * [`Arguments.createArgumentsFromJSON()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSON) - * [`Arguments.createArgumentsFromJSONString()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSONString) - * [`Arguments.getArgs()`](zingg.md#zingg.client.Arguments.getArgs) - * [`Arguments.getModelId()`](zingg.md#zingg.client.Arguments.getModelId) - * [`Arguments.getZinggBaseModelDir()`](zingg.md#zingg.client.Arguments.getZinggBaseModelDir) - * [`Arguments.getZinggBaseTrainingDataDir()`](zingg.md#zingg.client.Arguments.getZinggBaseTrainingDataDir) - * [`Arguments.getZinggModelDir()`](zingg.md#zingg.client.Arguments.getZinggModelDir) - * [`Arguments.getZinggTrainingDataMarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataMarkedDir) - * [`Arguments.getZinggTrainingDataUnmarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataUnmarkedDir) - * [`Arguments.setArgs()`](zingg.md#zingg.client.Arguments.setArgs) - * [`Arguments.setColumn()`](zingg.md#zingg.client.Arguments.setColumn) - * [`Arguments.setData()`](zingg.md#zingg.client.Arguments.setData) - * [`Arguments.setFieldDefinition()`](zingg.md#zingg.client.Arguments.setFieldDefinition) - * [`Arguments.setLabelDataSampleSize()`](zingg.md#zingg.client.Arguments.setLabelDataSampleSize) - * [`Arguments.setModelId()`](zingg.md#zingg.client.Arguments.setModelId) - * [`Arguments.setNumPartitions()`](zingg.md#zingg.client.Arguments.setNumPartitions) - * [`Arguments.setOutput()`](zingg.md#zingg.client.Arguments.setOutput) - * [`Arguments.setStopWordsCutoff()`](zingg.md#zingg.client.Arguments.setStopWordsCutoff) - * [`Arguments.setTrainingSamples()`](zingg.md#zingg.client.Arguments.setTrainingSamples) - * [`Arguments.setZinggDir()`](zingg.md#zingg.client.Arguments.setZinggDir) - * [`Arguments.writeArgumentsToJSON()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSON) - * [`Arguments.writeArgumentsToJSONString()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSONString) - * [`ClientOptions`](zingg.md#zingg.client.ClientOptions) - * [`ClientOptions.COLUMN`](zingg.md#zingg.client.ClientOptions.COLUMN) - * [`ClientOptions.CONF`](zingg.md#zingg.client.ClientOptions.CONF) - * [`ClientOptions.EMAIL`](zingg.md#zingg.client.ClientOptions.EMAIL) - * [`ClientOptions.LICENSE`](zingg.md#zingg.client.ClientOptions.LICENSE) - * [`ClientOptions.LOCATION`](zingg.md#zingg.client.ClientOptions.LOCATION) - * [`ClientOptions.MODEL_ID`](zingg.md#zingg.client.ClientOptions.MODEL_ID) - * [`ClientOptions.PHASE`](zingg.md#zingg.client.ClientOptions.PHASE) - * [`ClientOptions.REMOTE`](zingg.md#zingg.client.ClientOptions.REMOTE) - * [`ClientOptions.ZINGG_DIR`](zingg.md#zingg.client.ClientOptions.ZINGG_DIR) - * [`ClientOptions.getClientOptions()`](zingg.md#zingg.client.ClientOptions.getClientOptions) - * [`ClientOptions.getConf()`](zingg.md#zingg.client.ClientOptions.getConf) - * [`ClientOptions.getLocation()`](zingg.md#zingg.client.ClientOptions.getLocation) - * [`ClientOptions.getOptionValue()`](zingg.md#zingg.client.ClientOptions.getOptionValue) - * [`ClientOptions.getPhase()`](zingg.md#zingg.client.ClientOptions.getPhase) - * [`ClientOptions.hasLocation()`](zingg.md#zingg.client.ClientOptions.hasLocation) - * [`ClientOptions.setOptionValue()`](zingg.md#zingg.client.ClientOptions.setOptionValue) - * [`ClientOptions.setPhase()`](zingg.md#zingg.client.ClientOptions.setPhase) - * [`FieldDefinition`](zingg.md#zingg.client.FieldDefinition) - * [`FieldDefinition.getFieldDefinition()`](zingg.md#zingg.client.FieldDefinition.getFieldDefinition) - * [`FieldDefinition.setStopWords()`](zingg.md#zingg.client.FieldDefinition.setStopWords) - * [`FieldDefinition.stringify()`](zingg.md#zingg.client.FieldDefinition.stringify) - * [`Zingg`](zingg.md#zingg.client.Zingg) - * [`Zingg.execute()`](zingg.md#zingg.client.Zingg.execute) - * [`Zingg.executeLabel()`](zingg.md#zingg.client.Zingg.executeLabel) - * [`Zingg.executeLabelUpdate()`](zingg.md#zingg.client.Zingg.executeLabelUpdate) - * [`Zingg.getArguments()`](zingg.md#zingg.client.Zingg.getArguments) - * [`Zingg.getMarkedRecords()`](zingg.md#zingg.client.Zingg.getMarkedRecords) - * [`Zingg.getMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMarkedRecordsStat) - * [`Zingg.getMatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMatchedMarkedRecordsStat) - * [`Zingg.getOptions()`](zingg.md#zingg.client.Zingg.getOptions) - * [`Zingg.getUnmarkedRecords()`](zingg.md#zingg.client.Zingg.getUnmarkedRecords) - * [`Zingg.getUnmatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnmatchedMarkedRecordsStat) - * [`Zingg.getUnsureMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnsureMarkedRecordsStat) - * [`Zingg.init()`](zingg.md#zingg.client.Zingg.init) - * [`Zingg.initAndExecute()`](zingg.md#zingg.client.Zingg.initAndExecute) - * [`Zingg.processRecordsCli()`](zingg.md#zingg.client.Zingg.processRecordsCli) - * [`Zingg.processRecordsCliLabelUpdate()`](zingg.md#zingg.client.Zingg.processRecordsCliLabelUpdate) - * [`Zingg.setArguments()`](zingg.md#zingg.client.Zingg.setArguments) - * [`Zingg.setOptions()`](zingg.md#zingg.client.Zingg.setOptions) - * [`Zingg.writeLabelledOutput()`](zingg.md#zingg.client.Zingg.writeLabelledOutput) - * [`Zingg.writeLabelledOutputFromPandas()`](zingg.md#zingg.client.Zingg.writeLabelledOutputFromPandas) - * [`ZinggWithSpark`](zingg.md#zingg.client.ZinggWithSpark) - * [`getDfFromDs()`](zingg.md#zingg.client.getDfFromDs) - * [`getGateway()`](zingg.md#zingg.client.getGateway) - * [`getJVM()`](zingg.md#zingg.client.getJVM) - * [`getPandasDfFromDs()`](zingg.md#zingg.client.getPandasDfFromDs) - * [`getSparkContext()`](zingg.md#zingg.client.getSparkContext) - * [`getSparkSession()`](zingg.md#zingg.client.getSparkSession) - * [`getSqlContext()`](zingg.md#zingg.client.getSqlContext) - * [`initClient()`](zingg.md#zingg.client.initClient) - * [`initDataBricksConectClient()`](zingg.md#zingg.client.initDataBricksConectClient) - * [`initSparkClient()`](zingg.md#zingg.client.initSparkClient) - * [`parseArguments()`](zingg.md#zingg.client.parseArguments) - * [zingg.pipes](zingg.md#zingg-pipes) - * [`BigQueryPipe`](zingg.md#zingg.pipes.BigQueryPipe) - * [`BigQueryPipe.CREDENTIAL_FILE`](zingg.md#zingg.pipes.BigQueryPipe.CREDENTIAL_FILE) - * [`BigQueryPipe.TABLE`](zingg.md#zingg.pipes.BigQueryPipe.TABLE) - * [`BigQueryPipe.TEMP_GCS_BUCKET`](zingg.md#zingg.pipes.BigQueryPipe.TEMP_GCS_BUCKET) - * [`BigQueryPipe.VIEWS_ENABLED`](zingg.md#zingg.pipes.BigQueryPipe.VIEWS_ENABLED) - * [`BigQueryPipe.setCredentialFile()`](zingg.md#zingg.pipes.BigQueryPipe.setCredentialFile) - * [`BigQueryPipe.setTable()`](zingg.md#zingg.pipes.BigQueryPipe.setTable) - * [`BigQueryPipe.setTemporaryGcsBucket()`](zingg.md#zingg.pipes.BigQueryPipe.setTemporaryGcsBucket) - * [`BigQueryPipe.setViewsEnabled()`](zingg.md#zingg.pipes.BigQueryPipe.setViewsEnabled) - * [`CsvPipe`](zingg.md#zingg.pipes.CsvPipe) - * [`CsvPipe.setDelimiter()`](zingg.md#zingg.pipes.CsvPipe.setDelimiter) - * [`CsvPipe.setHeader()`](zingg.md#zingg.pipes.CsvPipe.setHeader) - * [`CsvPipe.setLocation()`](zingg.md#zingg.pipes.CsvPipe.setLocation) - * [`InMemoryPipe`](zingg.md#zingg.pipes.InMemoryPipe) - * [`InMemoryPipe.getDataset()`](zingg.md#zingg.pipes.InMemoryPipe.getDataset) - * [`InMemoryPipe.setDataset()`](zingg.md#zingg.pipes.InMemoryPipe.setDataset) - * [`Pipe`](zingg.md#zingg.pipes.Pipe) - * [`Pipe.addProperty()`](zingg.md#zingg.pipes.Pipe.addProperty) - * [`Pipe.getPipe()`](zingg.md#zingg.pipes.Pipe.getPipe) - * [`Pipe.setSchema()`](zingg.md#zingg.pipes.Pipe.setSchema) - * [`Pipe.toString()`](zingg.md#zingg.pipes.Pipe.toString) - * [`SnowflakePipe`](zingg.md#zingg.pipes.SnowflakePipe) - * [`SnowflakePipe.DATABASE`](zingg.md#zingg.pipes.SnowflakePipe.DATABASE) - * [`SnowflakePipe.DBTABLE`](zingg.md#zingg.pipes.SnowflakePipe.DBTABLE) - * [`SnowflakePipe.PASSWORD`](zingg.md#zingg.pipes.SnowflakePipe.PASSWORD) - * [`SnowflakePipe.SCHEMA`](zingg.md#zingg.pipes.SnowflakePipe.SCHEMA) - * [`SnowflakePipe.URL`](zingg.md#zingg.pipes.SnowflakePipe.URL) - * [`SnowflakePipe.USER`](zingg.md#zingg.pipes.SnowflakePipe.USER) - * [`SnowflakePipe.WAREHOUSE`](zingg.md#zingg.pipes.SnowflakePipe.WAREHOUSE) - * [`SnowflakePipe.setDatabase()`](zingg.md#zingg.pipes.SnowflakePipe.setDatabase) - * [`SnowflakePipe.setDbTable()`](zingg.md#zingg.pipes.SnowflakePipe.setDbTable) - * [`SnowflakePipe.setPassword()`](zingg.md#zingg.pipes.SnowflakePipe.setPassword) - * [`SnowflakePipe.setSFSchema()`](zingg.md#zingg.pipes.SnowflakePipe.setSFSchema) - * [`SnowflakePipe.setURL()`](zingg.md#zingg.pipes.SnowflakePipe.setURL) - * [`SnowflakePipe.setUser()`](zingg.md#zingg.pipes.SnowflakePipe.setUser) - * [`SnowflakePipe.setWarehouse()`](zingg.md#zingg.pipes.SnowflakePipe.setWarehouse) - -# API Reference - -* [Module Index](py-modindex.md) -* [Index](genindex.md) -* [Search Page](search.md) - -# Example API Usage - -```python -from zingg.client import * -from zingg.pipes import * - -#build the arguments for zingg -args = Arguments() -#set field definitions -fname = FieldDefinition("fname", "string", MatchType.FUZZY) -lname = FieldDefinition("lname", "string", MatchType.FUZZY) -stNo = FieldDefinition("stNo", "string", MatchType.FUZZY) -add1 = FieldDefinition("add1","string", MatchType.FUZZY) -add2 = FieldDefinition("add2", "string", MatchType.FUZZY) -city = FieldDefinition("city", "string", MatchType.FUZZY) -areacode = FieldDefinition("areacode", "string", MatchType.FUZZY) -state = FieldDefinition("state", "string", MatchType.FUZZY) -dob = FieldDefinition("dob", "string", MatchType.FUZZY) -ssn = FieldDefinition("ssn", "string", MatchType.FUZZY) - -fieldDefs = [fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] - -args.setFieldDefinition(fieldDefs) -#set the modelid and the zingg dir -args.setModelId("100") -args.setZinggDir("models") -args.setNumPartitions(4) -args.setLabelDataSampleSize(0.5) - -#reading dataset into inputPipe and settint it up in 'args' -#below line should not be required if you are reading from in memory dataset -#in that case, replace df with input df -schema = "id string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" -inputPipe = CsvPipe("testFebrl", "examples/febrl/test.csv", schema) -args.setData(inputPipe) -outputPipe = CsvPipe("resultFebrl", "/tmp/febrlOutput") - -args.setOutput(outputPipe) - -options = ClientOptions([ClientOptions.PHASE,"match"]) - -#Zingg execution for the given phase -zingg = Zingg(args, options) -zingg.initAndExecute() -``` diff --git a/python/docs/_build/markdown/zingg.md b/python/docs/_build/markdown/zingg.md deleted file mode 100644 index 9467c6751..000000000 --- a/python/docs/_build/markdown/zingg.md +++ /dev/null @@ -1,785 +0,0 @@ -# Zingg Entity Resolution Package - -Zingg Python APIs for entity resolution, record linkage, data mastering and deduplication using ML -([https://www.zingg.ai](https://www.zingg.ai)) - -requires python 3.6+; spark 3.5.0 -Otherwise, [`zingg.client.Zingg()`](#zingg.client.Zingg) cannot be executed - - - - - -## zingg.client - -This module is the main entry point of the Zingg Python API - -### *class* zingg.client.Arguments - -Bases: `object` - -This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. - -* **Defining:** - specifying information about data location, fields, and our notion of similarity. -* **Training:** - making Zingg learn the matching rules -* **Matching:** - Running the models on the entire dataset - -#### copyArgs(phase) - -#### *static* createArgumentsFromJSON(fileName, phase) - -Method to create an object of this class from the JSON file and phase parameter value. - -* **Parameters:** - * **fileName** (*String*) – The CONF parameter value of ClientOption object - * **phase** (*String*) – The PHASE parameter value of ClientOption object -* **Returns:** - The pointer containing address of the this class object -* **Return type:** - pointer([Arguments](#zingg.client.Arguments)) - -#### *static* createArgumentsFromJSONString(jsonArgs, phase) - -#### getArgs() - -Method to get pointer address of this class - -* **Returns:** - The pointer containing the address of this class object -* **Return type:** - pointer([Arguments](#zingg.client.Arguments)) - -#### getModelId() - -#### getZinggBaseModelDir() - -#### getZinggBaseTrainingDataDir() - -Method to get the location of the folder where Zingg -saves the training data found by findTrainingData - -#### getZinggModelDir() - -#### getZinggTrainingDataMarkedDir() - -Method to get the location of the folder where Zingg -saves the marked training data labeled by the user - -#### getZinggTrainingDataUnmarkedDir() - -Method to get the location of the folder where Zingg -saves the training data found by findTrainingData - -#### setArgs(argumentsObj) - -Method to set this class object - -* **Parameters:** - **argumentsObj** (*pointer**(*[*Arguments*](#zingg.client.Arguments)*)*) – Argument object to set this object - -#### setColumn(column) - -Method to set stopWordsCutoff parameter value -By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property - -* **Parameters:** - **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file - -#### setData(\*pipes) - -Method to set the file path of the file to be matched. - -* **Parameters:** - **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input data pipes separated by comma e.g. (pipe1,pipe2,..) - -#### setFieldDefinition(fieldDef) - -Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client - -* **Parameters:** - **fieldDef** (*List**(*[*FieldDefinition*](#zingg.client.FieldDefinition)*)*) – python FieldDefinition object list - -#### setLabelDataSampleSize(labelDataSampleSize) - -Method to set labelDataSampleSize parameter value -Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches - -* **Parameters:** - **labelDataSampleSize** (*float*) – value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples - -#### setModelId(id) - -Method to set the output directory where the match output will be saved - -* **Parameters:** - **id** (*String*) – model id value - -#### setNumPartitions(numPartitions) - -Method to set NumPartitions parameter value -Sample size to use for seeding labeled data We don’t want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit - -* **Parameters:** - **numPartitions** (*int*) – number of partitions for given data pipes - -#### setOutput(\*pipes) - -Method to set the output directory where the match result will be saved - -* **Parameters:** - **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – output data pipes separated by comma e.g. (pipe1,pipe2,..) - -#### setStopWordsCutoff(stopWordsCutoff) - -Method to set stopWordsCutoff parameter value -By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property - -* **Parameters:** - **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file - -#### setTrainingSamples(\*pipes) - -Method to set existing training samples to be matched. - -* **Parameters:** - **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input training data pipes separated by comma e.g. (pipe1,pipe2,..) - -#### setZinggDir(f) - -Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. - -* **Parameters:** - **f** (*String*) – Zingg directory name of the models - -#### writeArgumentsToJSON(fileName) - -Method to write JSON file from the object of this class - -* **Parameters:** - **fileName** (*String*) – The CONF parameter value of ClientOption object or file address of json file - -#### writeArgumentsToJSONString() - -Method to create an object of this class from the JSON file and phase parameter value. - -* **Parameters:** - * **fileName** (*String*) – The CONF parameter value of ClientOption object - * **phase** (*String*) – The PHASE parameter value of ClientOption object -* **Returns:** - The pointer containing address of the this class object -* **Return type:** - pointer([Arguments](#zingg.client.Arguments)) - -### *class* zingg.client.ClientOptions(argsSent=None) - -Bases: `object` - -Class that contains Client options for Zingg object -:param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc -:type phase: String -:param args: Parse a list of Zingg command line options parameter values e.g. “–location” etc. optional argument for initializing this class. -:type args: List(String) or None - -#### COLUMN *= * - -Column whose stop words are to be recommended through Zingg - -* **Type:** - COLUMN - -#### CONF *= * - -conf parameter for this class - -* **Type:** - CONF - -#### EMAIL *= * - -e-mail parameter for this class - -* **Type:** - EMAIL - -#### LICENSE *= * - -license parameter for this class - -* **Type:** - LICENSE - -#### LOCATION *= * - -location parameter for this class - -* **Type:** - LOCATION - -#### MODEL_ID *= * - -ZINGG_DIR/MODEL_ID is used to save the model - -* **Type:** - MODEL_ID - -#### PHASE *= * - -phase parameter for this class - -* **Type:** - PHASE - -#### REMOTE *= * - -remote option used internally for running on Databricks - -* **Type:** - REMOTE - -#### ZINGG_DIR *= * - -location where Zingg saves the model, training data etc - -* **Type:** - ZINGG_DIR - -#### getClientOptions() - -Method to get pointer address of this class - -* **Returns:** - The pointer containing address of the this class object -* **Return type:** - pointer([ClientOptions](#zingg.client.ClientOptions)) - -#### getConf() - -Method to get CONF value - -* **Returns:** - The CONF parameter value -* **Return type:** - String - -#### getLocation() - -Method to get LOCATION value - -* **Returns:** - The LOCATION parameter value -* **Return type:** - String - -#### getOptionValue(option) - -Method to get value for the key option - -* **Parameters:** - **option** (*String*) – key to geting the value -* **Returns:** - The value which is mapped for given key -* **Return type:** - String - -#### getPhase() - -Method to get PHASE value - -* **Returns:** - The PHASE parameter value -* **Return type:** - String - -#### hasLocation() - -Method to check if this class has LOCATION parameter set as None or not - -* **Returns:** - The boolean value if LOCATION parameter is present or not -* **Return type:** - Bool - -#### setOptionValue(option, value) - -Method to map option key to the given value - -* **Parameters:** - * **option** (*String*) – key that is mapped with value - * **value** (*String*) – value to be set for given key - -#### setPhase(newValue) - -Method to set PHASE value - -* **Parameters:** - **newValue** (*String*) – name of the phase -* **Returns:** - The pointer containing address of the this class object after seting phase -* **Return type:** - pointer([ClientOptions](#zingg.client.ClientOptions)) - -### *class* zingg.client.FieldDefinition(name, dataType, \*matchType) - -Bases: `object` - -This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. - -* **Parameters:** - * **name** (*String*) – name of the field - * **dataType** (*String*) – type of the data e.g. string, float, etc. - * **matchType** (*MatchType*) – match type of this field e.g. FUSSY, EXACT, etc. - -#### getFieldDefinition() - -Method to get pointer address of this class - -* **Returns:** - The pointer containing the address of this class object -* **Return type:** - pointer([FieldDefinition](#zingg.client.FieldDefinition)) - -#### setStopWords(stopWords) - -Method to add stopwords to this class object - -* **Parameters:** - **stopWords** (*String*) – The stop Words containing csv file’s location - -#### stringify(str) - -Method to stringify’ed the dataType before it is set in FieldDefinition object - -* **Parameters:** - **str** (*String*) – dataType of the FieldDefinition -* **Returns:** - The stringify’ed value of the dataType -* **Return type:** - String - -### *class* zingg.client.Zingg(args, options) - -Bases: `object` - -This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - -* **Parameters:** - * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching - * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object - -#### execute() - -Method to execute this class object - -#### executeLabel() - -Method to run label phase - -#### executeLabelUpdate() - -Method to run label update phase - -#### getArguments() - -Method to get atguments of this class object - -* **Returns:** - The pointer containing address of the Arguments object of this class object -* **Return type:** - pointer([Arguments](#zingg.client.Arguments)) - -#### getMarkedRecords() - -Method to get marked record dataset from the inputpipe - -* **Returns:** - spark dataset containing marked records -* **Return type:** - Dataset - -#### getMarkedRecordsStat(markedRecords, value) - -Method to get No. of records that is marked - -* **Parameters:** - * **markedRecords** (*Dataset*) – spark dataset containing marked records - * **value** (*long*) – flag value to check if markedRecord is initially matched or not -* **Returns:** - The no. of marked records -* **Return type:** - int - -#### getMatchedMarkedRecordsStat() - -Method to get No. of records that are marked and matched - -* **Returns:** - The bo. of matched marked records -* **Return type:** - int - -#### getOptions() - -Method to get client options of this class object - -* **Returns:** - The pointer containing the address of the ClientOptions object of this class object -* **Return type:** - pointer([ClientOptions](#zingg.client.ClientOptions)) - -#### getUnmarkedRecords() - -Method to get unmarked record dataset from the inputpipe - -* **Returns:** - spark dataset containing unmarked records -* **Return type:** - Dataset - -#### getUnmatchedMarkedRecordsStat() - -Method to get No. of records that are marked and unmatched - -* **Returns:** - The no. of unmatched marked records -* **Return type:** - int - -#### getUnsureMarkedRecordsStat() - -Method to get No. of records that are marked and Not Sure if its matched or not - -* **Returns:** - The no. of Not Sure marked records -* **Return type:** - int - -#### init() - -Method to initialize zingg client by reading internal configurations and functions - -#### initAndExecute() - -Method to run both init and execute methods consecutively - -#### processRecordsCli(unmarkedRecords, args) - -Method to get user input on unmarked records - -* **Returns:** - spark dataset containing updated records -* **Return type:** - Dataset - -#### processRecordsCliLabelUpdate(lines, args) - -#### setArguments(args) - -Method to set Arguments - -* **Parameters:** - **args** ([*Arguments*](#zingg.client.Arguments)) – provide arguments for this class object - -#### setOptions(options) - -Method to set atguments of this class object - -* **Parameters:** - **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – provide client options for this class object -* **Returns:** - The pointer containing address of the ClientOptions object of this class object -* **Return type:** - pointer([ClientOptions](#zingg.client.ClientOptions)) - -#### writeLabelledOutput(updatedRecords, args) - -Method to write updated records after user input - -#### writeLabelledOutputFromPandas(candidate_pairs_pd, args) - -Method to write updated records (as pandas df) after user input - -### *class* zingg.client.ZinggWithSpark(args, options) - -Bases: [`Zingg`](#zingg.client.Zingg) - -This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - -* **Parameters:** - * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching - * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object - -### zingg.client.getDfFromDs(data) - -Method to convert spark dataset to dataframe - -* **Parameters:** - **data** (*DataSet*) – provide spark dataset -* **Returns:** - converted spark dataframe -* **Return type:** - DataFrame - -### zingg.client.getGateway() - -### zingg.client.getJVM() - -### zingg.client.getPandasDfFromDs(data) - -Method to convert spark dataset to pandas dataframe - -* **Parameters:** - **data** (*DataSet*) – provide spark dataset -* **Returns:** - converted pandas dataframe -* **Return type:** - DataFrame - -### zingg.client.getSparkContext() - -### zingg.client.getSparkSession() - -### zingg.client.getSqlContext() - -### zingg.client.initClient() - -### zingg.client.initDataBricksConectClient() - -### zingg.client.initSparkClient() - -### zingg.client.parseArguments(argv) - -This method is used for checking mandatory arguments and creating an arguments list from Command line arguments - -* **Parameters:** - **argv** (*List*) – Values that are passed during the calling of the program along with the calling statement. -* **Returns:** - a list containing necessary arguments to run any phase -* **Return type:** - List - - - -## zingg.pipes - -This module is submodule of zingg to work with different types of Pipes. Classes of this module inherit the Pipe class, and use that class to create many different types of pipes. - -### *class* zingg.pipes.BigQueryPipe(name) - -Bases: [`Pipe`](#zingg.pipes.Pipe) - -Pipe Class for working with BigQuery pipeline - -* **Parameters:** - **name** (*String*) – name of the pipe. - -#### CREDENTIAL_FILE *= 'credentialsFile'* - -#### TABLE *= 'table'* - -#### TEMP_GCS_BUCKET *= 'temporaryGcsBucket'* - -#### VIEWS_ENABLED *= 'viewsEnabled'* - -#### setCredentialFile(file) - -Method to set Credential file to the pipe - -* **Parameters:** - **file** (*String*) – credential file name - -#### setTable(table) - -Method to set Table to the pipe - -* **Parameters:** - **table** (*String*) – provide table parameter - -#### setTemporaryGcsBucket(bucket) - -Method to set TemporaryGcsBucket to the pipe - -* **Parameters:** - **bucket** (*String*) – provide bucket parameter - -#### setViewsEnabled(isEnabled) - -Method to set if viewsEnabled parameter is Enabled or not - -* **Parameters:** - **isEnabled** (*Bool*) – provide boolean parameter which defines if viewsEnabled option is enable or not - -### *class* zingg.pipes.CsvPipe(name, location=None, schema=None) - -Bases: [`Pipe`](#zingg.pipes.Pipe) - -Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. - -* **Parameters:** - * **name** (*String*) – name of the pipe. - * **location** (*String* *or* *None*) – (optional) location from where we read data - * **schema** (*Schema* *or* *None*) – (optional) json schema for the pipe - -#### setDelimiter(delimiter) - -This method is used to define delimiter of CsvPipe - -* **Parameters:** - **delimiter** (*String*) – a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams - -#### setHeader(header) - -Method to set header property of pipe - -* **Parameters:** - **header** (*Boolean*) – true if pipe have header, false otherwise - -#### setLocation(location) - -Method to set location of pipe - -* **Parameters:** - **location** (*String*) – location from where we read data - -### *class* zingg.pipes.InMemoryPipe(name, df=None) - -Bases: [`Pipe`](#zingg.pipes.Pipe) - -Pipe Class for working with InMemory pipeline - -* **Parameters:** - * **name** (*String*) – name of the pipe - * **df** (*Dataset* *or* *None*) – provide dataset for this pipe (optional) - -#### getDataset() - -Method to get Dataset from pipe - -* **Returns:** - dataset of the pipe in the format of spark dataset -* **Return type:** - Dataset - -#### setDataset(df) - -Method to set DataFrame of the pipe - -* **Parameters:** - **df** (*DataFrame*) – pandas or spark dataframe for the pipe - -### *class* zingg.pipes.Pipe(name, format) - -Bases: `object` - -Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc - -* **Parameters:** - * **name** (*String*) – name of the pipe - * **format** (*Format*) – formate of pipe e.g. bigquery,InMemory, etc. - -#### addProperty(name, value) - -Method for adding different properties of pipe - -* **Parameters:** - * **name** (*String*) – name of the property - * **value** (*String*) – value you want to set for the property - -#### getPipe() - -Method to get Pipe - -* **Returns:** - pipe parameter values in the format of a list of string -* **Return type:** - [Pipe](#zingg.pipes.Pipe) - -#### setSchema(s) - -Method to set pipe schema value - -* **Parameters:** - **s** (*Schema*) – json schema for the pipe - -#### toString() - -Method to get pipe parameter values - -* **Returns:** - pipe information in list format -* **Return type:** - List[String] - -### *class* zingg.pipes.SnowflakePipe(name) - -Bases: [`Pipe`](#zingg.pipes.Pipe) - -Pipe Class for working with Snowflake pipeline - -* **Parameters:** - **name** (*String*) – name of the pipe - -#### DATABASE *= 'sfDatabase'* - -#### DBTABLE *= 'dbtable'* - -#### PASSWORD *= 'sfPassword'* - -#### SCHEMA *= 'sfSchema'* - -#### URL *= 'sfUrl'* - -#### USER *= 'sfUser'* - -#### WAREHOUSE *= 'sfWarehouse'* - -#### setDatabase(db) - -Method to set Database to the pipe - -* **Parameters:** - **db** (*Database*) – provide Database parameter. - -#### setDbTable(dbtable) - -description - -* **Parameters:** - **dbtable** (*String*) – provide bucket parameter. - -#### setPassword(passwd) - -Method to set Password to the pipe - -* **Parameters:** - **passwd** (*String*) – provide Password parameter. - -#### setSFSchema(schema) - -Method to set Schema to the pipe - -* **Parameters:** - **schema** (*Schema*) – provide schema parameter. - -#### setURL(url) - -Method to set url to the pipe - -* **Parameters:** - **url** (*String*) – provide url for this pipe - -#### setUser(user) - -Method to set User to the pipe - -* **Parameters:** - **user** (*String*) – provide User parameter. - -#### setWarehouse(warehouse) - -Method to set warehouse parameter to the pipe - -* **Parameters:** - **warehouse** (*String*) – provide warehouse parameter. diff --git a/python/docs/conf.py b/python/docs/conf.py index df6be82de..e491980be 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -37,8 +37,7 @@ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', - 'sphinx.ext.coverage', - 'sphinx_markdown_builder' + 'sphinx.ext.coverage' ] # Add any paths that contain templates here, relative to this directory. diff --git a/python/docs/index.rst b/python/docs/index.rst index d04663503..63b396d3e 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -75,3 +75,8 @@ Example API Usage zingg = Zingg(args, options) zingg.initAndExecute() + + +.. meta:: + :description: Zingg Entity Resolution With Python and AI + :keywords: entity resolution, identity resolution, record linkage diff --git a/python/zingg/client.py b/python/zingg/client.py index 58617a296..fd1aeb6c9 100644 --- a/python/zingg/client.py +++ b/python/zingg/client.py @@ -3,759 +3,759 @@ ------------------------ This module is the main entry point of the Zingg Python API """ -if __name__ == '__main__': - import logging - import argparse - import pandas as pd - from pyspark.sql import DataFrame - - from pyspark import SparkConf, SparkContext, SQLContext - - from py4j.java_collections import SetConverter, MapConverter, ListConverter - - from pyspark.sql import SparkSession - import os - LOG = logging.getLogger("zingg") - - _spark_ctxt = None - _sqlContext = None - _spark = None - _zingg_jar = 'zingg-0.4.0.jar' - - def initSparkClient(): - global _spark_ctxt - global _sqlContext - global _spark - _spark_ctxt = SparkContext.getOrCreate() - _sqlContext = SQLContext(_spark_ctxt) - _spark = SparkSession.builder.getOrCreate() - return 1 - def initDataBricksConectClient(): - global _spark_ctxt - global _sqlContext - global _spark - jar_path = os.getenv('ZINGG_HOME')+'/'+_zingg_jar - _spark = SparkSession.builder.config('spark.jars', jar_path).getOrCreate() - _spark_ctxt = _spark.sparkContext - _sqlContext = SQLContext(_spark_ctxt) +import logging +import argparse +import pandas as pd +from pyspark.sql import DataFrame + +from pyspark import SparkConf, SparkContext, SQLContext + +from py4j.java_collections import SetConverter, MapConverter, ListConverter + +from pyspark.sql import SparkSession +import os +LOG = logging.getLogger("zingg") + +_spark_ctxt = None +_sqlContext = None +_spark = None +_zingg_jar = 'zingg-0.4.0.jar' + +def initSparkClient(): + global _spark_ctxt + global _sqlContext + global _spark + _spark_ctxt = SparkContext.getOrCreate() + _sqlContext = SQLContext(_spark_ctxt) + _spark = SparkSession.builder.getOrCreate() + return 1 + +def initDataBricksConectClient(): + global _spark_ctxt + global _sqlContext + global _spark + jar_path = os.getenv('ZINGG_HOME')+'/'+_zingg_jar + _spark = SparkSession.builder.config('spark.jars', jar_path).getOrCreate() + _spark_ctxt = _spark.sparkContext + _sqlContext = SQLContext(_spark_ctxt) + return 1 + +def initClient(): + global _spark_ctxt + global _sqlContext + global _spark + if _spark_ctxt is None: + DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') + if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + return initDataBricksConectClient() + else: + return initSparkClient() + else: return 1 - def initClient(): - global _spark_ctxt - global _sqlContext - global _spark - if _spark_ctxt is None: - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': - return initDataBricksConectClient() +def getSparkContext(): + if _spark_ctxt is None: + initClient() + return _spark_ctxt + +def getSparkSession(): + if _spark is None: + initClient() + return _spark + +def getSqlContext(): + if _sqlContext is None: + initClient() + return _sqlContext + +def getJVM(): + return getSparkContext()._jvm + +def getGateway(): + return getSparkContext()._gateway + +ColName = getJVM().zingg.common.client.util.ColName +MatchType = getJVM().zingg.common.client.MatchType +ClientOptions = getJVM().zingg.common.client.ClientOptions +ZinggOptions = getJVM().zingg.common.client.ZinggOptions +LabelMatchType = getJVM().zingg.common.core.util.LabelMatchType +UpdateLabelMode = 'Overwrite' + +def getDfFromDs(data): + """ Method to convert spark dataset to dataframe + + :param data: provide spark dataset + :type data: DataSet + :return: converted spark dataframe + :rtype: DataFrame + """ + return DataFrame(data.df(), getSqlContext()) + +def getPandasDfFromDs(data): + """ Method to convert spark dataset to pandas dataframe + + :param data: provide spark dataset + :type data: DataSet + :return: converted pandas dataframe + :rtype: DataFrame + """ + df = getDfFromDs(data) + return pd.DataFrame(df.collect(), columns=df.columns) + + +class Zingg: + """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + + :param args: arguments for training and matching + :type args: Arguments + :param options: client option for this class object + :type options: ClientOptions + + """ + + def __init__(self, args, options): + self.inpArgs = args + self.inpOptions = options + self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions()) + + def init(self): + """ Method to initialize zingg client by reading internal configurations and functions """ + self.client.init() + + def execute(self): + """ Method to execute this class object """ + self.client.execute() + + def initAndExecute(self): + """ Method to run both init and execute methods consecutively """ + self.client.init() + DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') + if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + options = self.client.getOptions() + inpPhase = options.get(ClientOptions.PHASE).getValue() + if (inpPhase==ZinggOptions.LABEL.getValue()): + self.executeLabel() + elif (inpPhase==ZinggOptions.UPDATE_LABEL.getValue()): + self.executeLabelUpdate() else: - return initSparkClient() + self.client.execute() else: - return 1 + self.client.execute() - def getSparkContext(): - if _spark_ctxt is None: - initClient() - return _spark_ctxt + def executeLabel(self): + """ Method to run label phase """ + self.client.getTrainingDataModel().setMarkedRecordsStat(self.getMarkedRecords()) + unmarkedRecords = self.getUnmarkedRecords() + updatedRecords = self.processRecordsCli(unmarkedRecords,self.inpArgs) + self.writeLabelledOutput(updatedRecords,self.inpArgs) - def getSparkSession(): - if _spark is None: - initClient() - return _spark + def executeLabelUpdate(self): + """ Method to run label update phase """ + self.processRecordsCliLabelUpdate(self.getMarkedRecords(),self.inpArgs) - def getSqlContext(): - if _sqlContext is None: - initClient() - return _sqlContext + def getMarkedRecords(self): + """ Method to get marked record dataset from the inputpipe - def getJVM(): - return getSparkContext()._jvm + :return: spark dataset containing marked records + :rtype: Dataset + """ + return self.client.getMarkedRecords() - def getGateway(): - return getSparkContext()._gateway + def getUnmarkedRecords(self): + """ Method to get unmarked record dataset from the inputpipe - ColName = getJVM().zingg.common.client.util.ColName - MatchType = getJVM().zingg.common.client.MatchType - ClientOptions = getJVM().zingg.common.client.ClientOptions - ZinggOptions = getJVM().zingg.common.client.ZinggOptions - LabelMatchType = getJVM().zingg.common.core.util.LabelMatchType - UpdateLabelMode = 'Overwrite' + :return: spark dataset containing unmarked records + :rtype: Dataset + """ + return self.client.getUnmarkedRecords() - def getDfFromDs(data): - """ Method to convert spark dataset to dataframe + def processRecordsCli(self,unmarkedRecords,args): + """ Method to get user input on unmarked records - :param data: provide spark dataset - :type data: DataSet - :return: converted spark dataframe - :rtype: DataFrame + :return: spark dataset containing updated records + :rtype: Dataset """ - return DataFrame(data.df(), getSqlContext()) + trainingDataModel = self.client.getTrainingDataModel() + labelDataViewHelper = self.client.getLabelDataViewHelper() + + if unmarkedRecords is not None and unmarkedRecords.count() > 0: + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + unmarkedRecords = unmarkedRecords.cache() + displayCols = labelDataViewHelper.getDisplayColumns(unmarkedRecords, args.getArgs()) + clusterIdZFrame = labelDataViewHelper.getClusterIdsFrame(unmarkedRecords) + clusterIDs = labelDataViewHelper.getClusterIds(clusterIdZFrame) + totalPairs = clusterIDs.size() + updatedRecords = None + for index in range(totalPairs): + currentPair = labelDataViewHelper.getCurrentPair(unmarkedRecords, index, clusterIDs, clusterIdZFrame) + + score = labelDataViewHelper.getScore(currentPair) + prediction = labelDataViewHelper.getPrediction(currentPair) + + msg1 = labelDataViewHelper.getMsg1(index, totalPairs) + msg2 = labelDataViewHelper.getMsg2(prediction, score) + labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), msg1, msg2) + selected_option = input() + while int(selected_option) not in [0,1,2,9]: + print('Please enter valid option') + selected_option = input("Enter choice: ") + if int(selected_option) == 9: + print("User has quit in the middle. Updating the records.") + break + trainingDataModel.updateLabellerStat(int(selected_option), 1) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) + print("Processing finished.") + return updatedRecords + else: + print("It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler.") + return None + + def processRecordsCliLabelUpdate(self,lines,args): + trainingDataModel = self.client.getTrainingDataModel() + labelDataViewHelper = self.client.getLabelDataViewHelper() + if (lines is not None and lines.count() > 0): + trainingDataModel.setMarkedRecordsStat(lines) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + displayCols = labelDataViewHelper.getDSUtil().getFieldDefColumns(lines, args.getArgs(), False, args.getArgs().getShowConcise()) + updatedRecords = None + recordsToUpdate = lines + selectedOption = -1 + + while (str(selectedOption) != '9'): + cluster_id = input("\n\tPlease enter the cluster id (or 9 to exit): ") + if str(cluster_id) == '9': + print("User has exit in the middle. Updating the records.") + break + currentPair = lines.filter(lines.equalTo(ColName.CLUSTER_COLUMN, cluster_id)) + if currentPair.isEmpty(): + print("\tInvalid cluster id. Enter '9' to exit") + continue + + matchFlag = currentPair.getAsInt(currentPair.head(),ColName.MATCH_FLAG_COL) + preMsg = "\n\tThe record pairs belonging to the input cluster id "+cluster_id+" are:" + postMsg = "\tThe above pair is labeled as "+str(matchFlag)+"\n" + labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), preMsg, postMsg) + selectedOption = input() + trainingDataModel.updateLabellerStat(int(selectedOption), 1) + trainingDataModel.updateLabellerStat(matchFlag, -1) + labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + + if (str(selectedOption) == '9'): + print("User has quit in the middle. Updating the records.") + break + + recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + + if (updatedRecords is not None): + updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) - def getPandasDfFromDs(data): - """ Method to convert spark dataset to pandas dataframe + updatedRecords = trainingDataModel.updateRecords(int(selectedOption), currentPair, updatedRecords) - :param data: provide spark dataset - :type data: DataSet - :return: converted pandas dataframe - :rtype: DataFrame + if updatedRecords is not None: + updatedRecords = updatedRecords.union(recordsToUpdate) + + outPipe = trainingDataModel.getOutputPipe(args.getArgs()) + outPipe.setMode(UpdateLabelMode) + + trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs(),outPipe) + print("Processing finished.") + return updatedRecords + else: + print("There is no marked record for updating. Please run findTrainingData/label jobs to generate training data.") + return None + + + def writeLabelledOutput(self,updatedRecords,args): + """ Method to write updated records after user input """ - df = getDfFromDs(data) - return pd.DataFrame(df.collect(), columns=df.columns) + trainingDataModel = self.client.getTrainingDataModel() + if updatedRecords is not None: + trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs()) + def writeLabelledOutputFromPandas(self,candidate_pairs_pd,args): + """ Method to write updated records (as pandas df) after user input + """ + markedRecordsAsDS = (getSparkSession().createDataFrame(candidate_pairs_pd))._jdf + # pands df gives z_isMatch as long so needs to be cast + markedRecordsAsDS = markedRecordsAsDS.withColumn(ColName.MATCH_FLAG_COL,markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int")) + updatedRecords = getJVM().zingg.spark.client.SparkFrame(markedRecordsAsDS) + self.writeLabelledOutput(updatedRecords,args) - class Zingg: - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + def setArguments(self, args): + """ Method to set Arguments - :param args: arguments for training and matching + :param args: provide arguments for this class object :type args: Arguments - :param options: client option for this class object + """ + self.client.setArguments() + + def getArguments(self): + """ Method to get atguments of this class object + + :return: The pointer containing address of the Arguments object of this class object + :rtype: pointer(Arguments) + """ + return self.client.getArguments() + + def getOptions(self): + """ Method to get client options of this class object + + :return: The pointer containing the address of the ClientOptions object of this class object + :rtype: pointer(ClientOptions) + """ + return self.client.getOptions() + + def setOptions(self, options): + """ Method to set atguments of this class object + + :param options: provide client options for this class object :type options: ClientOptions + :return: The pointer containing address of the ClientOptions object of this class object + :rtype: pointer(ClientOptions) + """ + return self.client.setOptions(options) + def getMarkedRecordsStat(self, markedRecords, value): + """ Method to get No. of records that is marked + + :param markedRecords: spark dataset containing marked records + :type markedRecords: Dataset + :param value: flag value to check if markedRecord is initially matched or not + :type value: long + :return: The no. of marked records + :rtype: int """ + return self.client.getMarkedRecordsStat(markedRecords, value) - def __init__(self, args, options): - self.inpArgs = args - self.inpOptions = options - self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions()) - - def init(self): - """ Method to initialize zingg client by reading internal configurations and functions """ - self.client.init() + def getMatchedMarkedRecordsStat(self): + """ Method to get No. of records that are marked and matched - def execute(self): - """ Method to execute this class object """ - self.client.execute() - - def initAndExecute(self): - """ Method to run both init and execute methods consecutively """ - self.client.init() - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': - options = self.client.getOptions() - inpPhase = options.get(ClientOptions.PHASE).getValue() - if (inpPhase==ZinggOptions.LABEL.getValue()): - self.executeLabel() - elif (inpPhase==ZinggOptions.UPDATE_LABEL.getValue()): - self.executeLabelUpdate() - else: - self.client.execute() - else: - self.client.execute() + :return: The bo. of matched marked records + :rtype: int + """ + return self.client.getMatchedMarkedRecordsStat(self.getMarkedRecords()) - def executeLabel(self): - """ Method to run label phase """ - self.client.getTrainingDataModel().setMarkedRecordsStat(self.getMarkedRecords()) - unmarkedRecords = self.getUnmarkedRecords() - updatedRecords = self.processRecordsCli(unmarkedRecords,self.inpArgs) - self.writeLabelledOutput(updatedRecords,self.inpArgs) + def getUnmatchedMarkedRecordsStat(self): + """ Method to get No. of records that are marked and unmatched - def executeLabelUpdate(self): - """ Method to run label update phase """ - self.processRecordsCliLabelUpdate(self.getMarkedRecords(),self.inpArgs) + :return: The no. of unmatched marked records + :rtype: int + """ + return self.client.getUnmatchedMarkedRecordsStat(self.getMarkedRecords()) - def getMarkedRecords(self): - """ Method to get marked record dataset from the inputpipe + def getUnsureMarkedRecordsStat(self): + """ Method to get No. of records that are marked and Not Sure if its matched or not - :return: spark dataset containing marked records - :rtype: Dataset - """ - return self.client.getMarkedRecords() + :return: The no. of Not Sure marked records + :rtype: int + """ + return self.client.getUnsureMarkedRecordsStat(self.getMarkedRecords()) - def getUnmarkedRecords(self): - """ Method to get unmarked record dataset from the inputpipe + - :return: spark dataset containing unmarked records - :rtype: Dataset - """ - return self.client.getUnmarkedRecords() +class ZinggWithSpark(Zingg): - def processRecordsCli(self,unmarkedRecords,args): - """ Method to get user input on unmarked records + """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. - :return: spark dataset containing updated records - :rtype: Dataset - """ - trainingDataModel = self.client.getTrainingDataModel() - labelDataViewHelper = self.client.getLabelDataViewHelper() + :param args: arguments for training and matching + :type args: Arguments + :param options: client option for this class object + :type options: ClientOptions - if unmarkedRecords is not None and unmarkedRecords.count() > 0: - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - unmarkedRecords = unmarkedRecords.cache() - displayCols = labelDataViewHelper.getDisplayColumns(unmarkedRecords, args.getArgs()) - clusterIdZFrame = labelDataViewHelper.getClusterIdsFrame(unmarkedRecords) - clusterIDs = labelDataViewHelper.getClusterIds(clusterIdZFrame) - totalPairs = clusterIDs.size() - updatedRecords = None - for index in range(totalPairs): - currentPair = labelDataViewHelper.getCurrentPair(unmarkedRecords, index, clusterIDs, clusterIdZFrame) - - score = labelDataViewHelper.getScore(currentPair) - prediction = labelDataViewHelper.getPrediction(currentPair) - - msg1 = labelDataViewHelper.getMsg1(index, totalPairs) - msg2 = labelDataViewHelper.getMsg2(prediction, score) - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), msg1, msg2) - selected_option = input() - while int(selected_option) not in [0,1,2,9]: - print('Please enter valid option') - selected_option = input("Enter choice: ") - if int(selected_option) == 9: - print("User has quit in the middle. Updating the records.") - break - trainingDataModel.updateLabellerStat(int(selected_option), 1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) - print("Processing finished.") - return updatedRecords - else: - print("It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler.") - return None - - def processRecordsCliLabelUpdate(self,lines,args): - trainingDataModel = self.client.getTrainingDataModel() - labelDataViewHelper = self.client.getLabelDataViewHelper() - if (lines is not None and lines.count() > 0): - trainingDataModel.setMarkedRecordsStat(lines) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - displayCols = labelDataViewHelper.getDSUtil().getFieldDefColumns(lines, args.getArgs(), False, args.getArgs().getShowConcise()) - updatedRecords = None - recordsToUpdate = lines - selectedOption = -1 - - while (str(selectedOption) != '9'): - cluster_id = input("\n\tPlease enter the cluster id (or 9 to exit): ") - if str(cluster_id) == '9': - print("User has exit in the middle. Updating the records.") - break - currentPair = lines.filter(lines.equalTo(ColName.CLUSTER_COLUMN, cluster_id)) - if currentPair.isEmpty(): - print("\tInvalid cluster id. Enter '9' to exit") - continue - - matchFlag = currentPair.getAsInt(currentPair.head(),ColName.MATCH_FLAG_COL) - preMsg = "\n\tThe record pairs belonging to the input cluster id "+cluster_id+" are:" - postMsg = "\tThe above pair is labeled as "+str(matchFlag)+"\n" - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), preMsg, postMsg) - selectedOption = input() - trainingDataModel.updateLabellerStat(int(selectedOption), 1) - trainingDataModel.updateLabellerStat(matchFlag, -1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - - if (str(selectedOption) == '9'): - print("User has quit in the middle. Updating the records.") - break - - recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) - - if (updatedRecords is not None): - updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) - - updatedRecords = trainingDataModel.updateRecords(int(selectedOption), currentPair, updatedRecords) - - if updatedRecords is not None: - updatedRecords = updatedRecords.union(recordsToUpdate) - - outPipe = trainingDataModel.getOutputPipe(args.getArgs()) - outPipe.setMode(UpdateLabelMode) - - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs(),outPipe) - print("Processing finished.") - return updatedRecords - else: - print("There is no marked record for updating. Please run findTrainingData/label jobs to generate training data.") - return None + """ + def __init__(self, args, options): + self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) + + +class Arguments: + """ This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + :Defining: specifying information about data location, fields, and our notion of similarity. + :training: making Zingg learn the matching rules + :Matching: Running the models on the entire dataset + """ - def writeLabelledOutput(self,updatedRecords,args): - """ Method to write updated records after user input - """ - trainingDataModel = self.client.getTrainingDataModel() - if updatedRecords is not None: - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs()) - - def writeLabelledOutputFromPandas(self,candidate_pairs_pd,args): - """ Method to write updated records (as pandas df) after user input - """ - markedRecordsAsDS = (getSparkSession().createDataFrame(candidate_pairs_pd))._jdf - # pands df gives z_isMatch as long so needs to be cast - markedRecordsAsDS = markedRecordsAsDS.withColumn(ColName.MATCH_FLAG_COL,markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int")) - updatedRecords = getJVM().zingg.spark.client.SparkFrame(markedRecordsAsDS) - self.writeLabelledOutput(updatedRecords,args) - - def setArguments(self, args): - """ Method to set Arguments - - :param args: provide arguments for this class object - :type args: Arguments - """ - self.client.setArguments() - - def getArguments(self): - """ Method to get atguments of this class object - - :return: The pointer containing address of the Arguments object of this class object - :rtype: pointer(Arguments) - """ - return self.client.getArguments() - - def getOptions(self): - """ Method to get client options of this class object - - :return: The pointer containing the address of the ClientOptions object of this class object - :rtype: pointer(ClientOptions) - """ - return self.client.getOptions() - - def setOptions(self, options): - """ Method to set atguments of this class object - - :param options: provide client options for this class object - :type options: ClientOptions - :return: The pointer containing address of the ClientOptions object of this class object - :rtype: pointer(ClientOptions) - """ - return self.client.setOptions(options) - - def getMarkedRecordsStat(self, markedRecords, value): - """ Method to get No. of records that is marked - - :param markedRecords: spark dataset containing marked records - :type markedRecords: Dataset - :param value: flag value to check if markedRecord is initially matched or not - :type value: long - :return: The no. of marked records - :rtype: int - """ - return self.client.getMarkedRecordsStat(markedRecords, value) - - def getMatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and matched - - :return: The bo. of matched marked records - :rtype: int - """ - return self.client.getMatchedMarkedRecordsStat(self.getMarkedRecords()) - - def getUnmatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and unmatched - - :return: The no. of unmatched marked records - :rtype: int - """ - return self.client.getUnmatchedMarkedRecordsStat(self.getMarkedRecords()) - - def getUnsureMarkedRecordsStat(self): - """ Method to get No. of records that are marked and Not Sure if its matched or not - - :return: The no. of Not Sure marked records - :rtype: int - """ - return self.client.getUnsureMarkedRecordsStat(self.getMarkedRecords()) + def __init__(self): + self.args = getJVM().zingg.common.client.Arguments() + + def setFieldDefinition(self, fieldDef): + """ Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + + :param fieldDef: python FieldDefinition object list + :type fieldDef: List(FieldDefinition) + """ + javaFieldDef = [] + for f in fieldDef: + javaFieldDef.append(f.getFieldDefinition()) + self.args.setFieldDefinition(javaFieldDef) + + def getArgs(self): + """ Method to get pointer address of this class + :return: The pointer containing the address of this class object + :rtype: pointer(Arguments) + """ + return self.args - class ZinggWithSpark(Zingg): + def setArgs(self, argumentsObj): + """ Method to set this class object - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + :param argumentsObj: Argument object to set this object + :type argumentsObj: pointer(Arguments) + """ + self.args = argumentsObj - :param args: arguments for training and matching - :type args: Arguments - :param options: client option for this class object - :type options: ClientOptions + def setData(self, *pipes): + """ Method to set the file path of the file to be matched. + :param pipes: input data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] """ - def __init__(self, args, options): - self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) + dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + dataPipe[idx] = pipe.getPipe() + self.args.setData(dataPipe) - - class Arguments: - """ This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. - - :Defining: specifying information about data location, fields, and our notion of similarity. - :training: making Zingg learn the matching rules - :Matching: Running the models on the entire dataset - """ - - def __init__(self): - self.args = getJVM().zingg.common.client.Arguments() - - def setFieldDefinition(self, fieldDef): - """ Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client - - :param fieldDef: python FieldDefinition object list - :type fieldDef: List(FieldDefinition) - """ - javaFieldDef = [] - for f in fieldDef: - javaFieldDef.append(f.getFieldDefinition()) - self.args.setFieldDefinition(javaFieldDef) - - def getArgs(self): - """ Method to get pointer address of this class - - :return: The pointer containing the address of this class object - :rtype: pointer(Arguments) - - """ - return self.args - - def setArgs(self, argumentsObj): - """ Method to set this class object - - :param argumentsObj: Argument object to set this object - :type argumentsObj: pointer(Arguments) - """ - self.args = argumentsObj - - def setData(self, *pipes): - """ Method to set the file path of the file to be matched. - - :param pipes: input data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - dataPipe[idx] = pipe.getPipe() - self.args.setData(dataPipe) - - def setOutput(self, *pipes): - """ Method to set the output directory where the match result will be saved - - :param pipes: output data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - outputPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - outputPipe[idx] = pipe.getPipe() - self.args.setOutput(outputPipe) - - def getZinggBaseModelDir(self): - return self.args.getZinggBaseModelDir() + def setOutput(self, *pipes): + """ Method to set the output directory where the match result will be saved - def getZinggModelDir(self): - return self.args.getZinggModelDir() - - def getZinggBaseTrainingDataDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData - """ - return self.args.getZinggBaseTrainingDataDir() - - def getZinggTrainingDataUnmarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData - """ - return self.args.getZinggTrainingDataUnmarkedDir() - - def getZinggTrainingDataMarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the marked training data labeled by the user - """ - return self.args.getZinggTrainingDataMarkedDir() - - def setTrainingSamples(self, *pipes): - """ Method to set existing training samples to be matched. - - :param pipes: input training data pipes separated by comma e.g. (pipe1,pipe2,..) - :type pipes: Pipe[] - """ - dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) - for idx, pipe in enumerate(pipes): - dataPipe[idx] = pipe.getPipe() - self.args.setTrainingSamples(dataPipe) - - def setModelId(self, id): - """ Method to set the output directory where the match output will be saved - - :param id: model id value - :type id: String - """ - self.args.setModelId(id) - - def getModelId(self): - return self.args.getModelId() + :param pipes: output data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] + """ + outputPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + outputPipe[idx] = pipe.getPipe() + self.args.setOutput(outputPipe) + + def getZinggBaseModelDir(self): + return self.args.getZinggBaseModelDir() + def getZinggModelDir(self): + return self.args.getZinggModelDir() + + def getZinggBaseTrainingDataDir(self): + """ Method to get the location of the folder where Zingg + saves the training data found by findTrainingData + """ + return self.args.getZinggBaseTrainingDataDir() - def setZinggDir(self, f): - """ Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. + def getZinggTrainingDataUnmarkedDir(self): + """ Method to get the location of the folder where Zingg + saves the training data found by findTrainingData + """ + return self.args.getZinggTrainingDataUnmarkedDir() + + def getZinggTrainingDataMarkedDir(self): + """ Method to get the location of the folder where Zingg + saves the marked training data labeled by the user + """ + return self.args.getZinggTrainingDataMarkedDir() + + def setTrainingSamples(self, *pipes): + """ Method to set existing training samples to be matched. - :param f: Zingg directory name of the models - :type f: String - """ - self.args.setZinggDir(f) + :param pipes: input training data pipes separated by comma e.g. (pipe1,pipe2,..) + :type pipes: Pipe[] + """ + dataPipe = getGateway().new_array(getJVM().zingg.common.client.pipe.Pipe, len(pipes)) + for idx, pipe in enumerate(pipes): + dataPipe[idx] = pipe.getPipe() + self.args.setTrainingSamples(dataPipe) - def setNumPartitions(self, numPartitions): - """ Method to set NumPartitions parameter value - Sample size to use for seeding labeled data We don't want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit + def setModelId(self, id): + """ Method to set the output directory where the match output will be saved - :param numPartitions: number of partitions for given data pipes - :type numPartitions: int - """ - self.args.setNumPartitions(numPartitions) + :param id: model id value + :type id: String + """ + self.args.setModelId(id) + + def getModelId(self): + return self.args.getModelId() - def setLabelDataSampleSize(self, labelDataSampleSize): - """ Method to set labelDataSampleSize parameter value - Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches - :param labelDataSampleSize: value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples - :type labelDataSampleSize: float - """ - self.args.setLabelDataSampleSize(labelDataSampleSize) + def setZinggDir(self, f): + """ Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. - def writeArgumentsToJSON(self, fileName): - """ Method to write JSON file from the object of this class + :param f: Zingg directory name of the models + :type f: String + """ + self.args.setZinggDir(f) - :param fileName: The CONF parameter value of ClientOption object or file address of json file - :type fileName: String - """ - getJVM().zingg.common.client.ArgumentsUtil().writeArgumentsToJSON(fileName, self.args) + def setNumPartitions(self, numPartitions): + """ Method to set NumPartitions parameter value + Sample size to use for seeding labeled data We don't want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit - def setStopWordsCutoff(self, stopWordsCutoff): - """ Method to set stopWordsCutoff parameter value - By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + :param numPartitions: number of partitions for given data pipes + :type numPartitions: int + """ + self.args.setNumPartitions(numPartitions) - :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file - :type stopWordsCutoff: float - """ - self.args.setStopWordsCutoff(stopWordsCutoff) - - def setColumn(self, column): - """ Method to set stopWordsCutoff parameter value - By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property - - :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file - :type stopWordsCutoff: float - """ - self.args.setColumn(column) - - @staticmethod - def createArgumentsFromJSON(fileName, phase): - """ Method to create an object of this class from the JSON file and phase parameter value. - - :param fileName: The CONF parameter value of ClientOption object - :type fileName: String - :param phase: The PHASE parameter value of ClientOption object - :type phase: String - :return: The pointer containing address of the this class object - :rtype: pointer(Arguments) - """ - obj = Arguments() - obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSON(fileName, phase) - return obj - - - def writeArgumentsToJSONString(self): - """ Method to create an object of this class from the JSON file and phase parameter value. - - :param fileName: The CONF parameter value of ClientOption object - :type fileName: String - :param phase: The PHASE parameter value of ClientOption object - :type phase: String - :return: The pointer containing address of the this class object - :rtype: pointer(Arguments) - """ - return getJVM().zingg.common.client.ArgumentsUtil().writeArgumentstoJSONString(self.args) - - @staticmethod - def createArgumentsFromJSONString(jsonArgs, phase): - obj = Arguments() - obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSONString(jsonArgs, phase) - return obj - - - def copyArgs(self, phase): - argsString = self.writeArgumentsToJSONString() - return self.createArgumentsFromJSONString(argsString, phase) + def setLabelDataSampleSize(self, labelDataSampleSize): + """ Method to set labelDataSampleSize parameter value + Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches + + :param labelDataSampleSize: value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples + :type labelDataSampleSize: float + """ + self.args.setLabelDataSampleSize(labelDataSampleSize) + + def writeArgumentsToJSON(self, fileName): + """ Method to write JSON file from the object of this class + + :param fileName: The CONF parameter value of ClientOption object or file address of json file + :type fileName: String + """ + getJVM().zingg.common.client.ArgumentsUtil().writeArgumentsToJSON(fileName, self.args) + def setStopWordsCutoff(self, stopWordsCutoff): + """ Method to set stopWordsCutoff parameter value + By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + + :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file + :type stopWordsCutoff: float + """ + self.args.setStopWordsCutoff(stopWordsCutoff) - + def setColumn(self, column): + """ Method to set stopWordsCutoff parameter value + By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file + :type stopWordsCutoff: float + """ + self.args.setColumn(column) - class ClientOptions: - """ Class that contains Client options for Zingg object - :param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc - :type phase: String - :param args: Parse a list of Zingg command line options parameter values e.g. "--location" etc. optional argument for initializing this class. - :type args: List(String) or None - """ - PHASE = getJVM().zingg.common.client.ClientOptions.PHASE - """:PHASE: phase parameter for this class""" - CONF = getJVM().zingg.common.client.ClientOptions.CONF - """:CONF: conf parameter for this class""" - LICENSE = getJVM().zingg.common.client.ClientOptions.LICENSE - """:LICENSE: license parameter for this class""" - EMAIL = getJVM().zingg.common.client.ClientOptions.EMAIL - """:EMAIL: e-mail parameter for this class""" - LOCATION = getJVM().zingg.common.client.ClientOptions.LOCATION - """:LOCATION: location parameter for this class""" - REMOTE = getJVM().zingg.common.client.ClientOptions.REMOTE - """:REMOTE: remote option used internally for running on Databricks""" - ZINGG_DIR = getJVM().zingg.common.client.ClientOptions.ZINGG_DIR - """:ZINGG_DIR: location where Zingg saves the model, training data etc""" - MODEL_ID = getJVM().zingg.common.client.ClientOptions.MODEL_ID - """:MODEL_ID: ZINGG_DIR/MODEL_ID is used to save the model""" - COLUMN = getJVM().zingg.common.client.ClientOptions.COLUMN - """:COLUMN: Column whose stop words are to be recommended through Zingg""" - - def __init__(self, argsSent=None): - print(argsSent) - if(argsSent == None): - args = [] - else: - args = argsSent.copy() - if (not (self.PHASE in args)): - args.append(self.PHASE) - args.append("peekModel") - if (not (self.LICENSE in args)): - args.append(self.LICENSE) - args.append("zinggLic.txt") - if (not (self.EMAIL in args)): - args.append(self.EMAIL) - args.append("zingg@zingg.ai") - if (not (self.CONF in args)): - args.append(self.CONF) - args.append("dummyConf.json") - print("arguments for client options are ", args) - self.co = getJVM().zingg.common.client.ClientOptions(args) + @staticmethod + def createArgumentsFromJSON(fileName, phase): + """ Method to create an object of this class from the JSON file and phase parameter value. + :param fileName: The CONF parameter value of ClientOption object + :type fileName: String + :param phase: The PHASE parameter value of ClientOption object + :type phase: String + :return: The pointer containing address of the this class object + :rtype: pointer(Arguments) + """ + obj = Arguments() + obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSON(fileName, phase) + return obj + + + def writeArgumentsToJSONString(self): + """ Method to create an object of this class from the JSON file and phase parameter value. - def getClientOptions(self): - """ Method to get pointer address of this class - - :return: The pointer containing address of the this class object - :rtype: pointer(ClientOptions) - """ - return self.co - - def getOptionValue(self, option): - """ Method to get value for the key option - - :param option: key to geting the value - :type option: String - :return: The value which is mapped for given key - :rtype: String - """ - return self.co.getOptionValue(option) - - def setOptionValue(self, option, value): - """ Method to map option key to the given value - - :param option: key that is mapped with value - :type option: String - :param value: value to be set for given key - :type value: String - """ - self.co.get(option).setValue(value) - - def getPhase(self): - """ Method to get PHASE value - - :return: The PHASE parameter value - :rtype: String - """ - return self.co.get(ClientOptions.PHASE).getValue() - - def setPhase(self, newValue): - """ Method to set PHASE value - - :param newValue: name of the phase - :type newValue: String - :return: The pointer containing address of the this class object after seting phase - :rtype: pointer(ClientOptions) - """ - self.co.get(ClientOptions.PHASE).setValue(newValue) - - def getConf(self): - """ Method to get CONF value - - :return: The CONF parameter value - :rtype: String - """ - return self.co.get(ClientOptions.CONF).getValue() - - def hasLocation(self): - """ Method to check if this class has LOCATION parameter set as None or not - - :return: The boolean value if LOCATION parameter is present or not - :rtype: Bool - """ - if(self.co.get(ClientOptions.LOCATION)==None): - return False - else: - return True + :param fileName: The CONF parameter value of ClientOption object + :type fileName: String + :param phase: The PHASE parameter value of ClientOption object + :type phase: String + :return: The pointer containing address of the this class object + :rtype: pointer(Arguments) + """ + return getJVM().zingg.common.client.ArgumentsUtil().writeArgumentstoJSONString(self.args) + + @staticmethod + def createArgumentsFromJSONString(jsonArgs, phase): + obj = Arguments() + obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSONString(jsonArgs, phase) + return obj + + + def copyArgs(self, phase): + argsString = self.writeArgumentsToJSONString() + return self.createArgumentsFromJSONString(argsString, phase) + + + + + +class ClientOptions: + """ Class that contains Client options for Zingg object + :param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc + :type phase: String + :param args: Parse a list of Zingg command line options parameter values e.g. "--location" etc. optional argument for initializing this class. + :type args: List(String) or None + """ + PHASE = getJVM().zingg.common.client.ClientOptions.PHASE + """:PHASE: phase parameter for this class""" + CONF = getJVM().zingg.common.client.ClientOptions.CONF + """:CONF: conf parameter for this class""" + LICENSE = getJVM().zingg.common.client.ClientOptions.LICENSE + """:LICENSE: license parameter for this class""" + EMAIL = getJVM().zingg.common.client.ClientOptions.EMAIL + """:EMAIL: e-mail parameter for this class""" + LOCATION = getJVM().zingg.common.client.ClientOptions.LOCATION + """:LOCATION: location parameter for this class""" + REMOTE = getJVM().zingg.common.client.ClientOptions.REMOTE + """:REMOTE: remote option used internally for running on Databricks""" + ZINGG_DIR = getJVM().zingg.common.client.ClientOptions.ZINGG_DIR + """:ZINGG_DIR: location where Zingg saves the model, training data etc""" + MODEL_ID = getJVM().zingg.common.client.ClientOptions.MODEL_ID + """:MODEL_ID: ZINGG_DIR/MODEL_ID is used to save the model""" + COLUMN = getJVM().zingg.common.client.ClientOptions.COLUMN + """:COLUMN: Column whose stop words are to be recommended through Zingg""" + + def __init__(self, argsSent=None): + print(argsSent) + if(argsSent == None): + args = [] + else: + args = argsSent.copy() + if (not (self.PHASE in args)): + args.append(self.PHASE) + args.append("peekModel") + if (not (self.LICENSE in args)): + args.append(self.LICENSE) + args.append("zinggLic.txt") + if (not (self.EMAIL in args)): + args.append(self.EMAIL) + args.append("zingg@zingg.ai") + if (not (self.CONF in args)): + args.append(self.CONF) + args.append("dummyConf.json") + print("arguments for client options are ", args) + self.co = getJVM().zingg.common.client.ClientOptions(args) + + + def getClientOptions(self): + """ Method to get pointer address of this class + + :return: The pointer containing address of the this class object + :rtype: pointer(ClientOptions) + """ + return self.co + + def getOptionValue(self, option): + """ Method to get value for the key option + + :param option: key to geting the value + :type option: String + :return: The value which is mapped for given key + :rtype: String + """ + return self.co.getOptionValue(option) + + def setOptionValue(self, option, value): + """ Method to map option key to the given value + + :param option: key that is mapped with value + :type option: String + :param value: value to be set for given key + :type value: String + """ + self.co.get(option).setValue(value) + + def getPhase(self): + """ Method to get PHASE value + + :return: The PHASE parameter value + :rtype: String + """ + return self.co.get(ClientOptions.PHASE).getValue() - def getLocation(self): - """ Method to get LOCATION value + def setPhase(self, newValue): + """ Method to set PHASE value - :return: The LOCATION parameter value - :rtype: String - """ - return self.co.get(ClientOptions.LOCATION).getValue() + :param newValue: name of the phase + :type newValue: String + :return: The pointer containing address of the this class object after seting phase + :rtype: pointer(ClientOptions) + """ + self.co.get(ClientOptions.PHASE).setValue(newValue) + + def getConf(self): + """ Method to get CONF value + :return: The CONF parameter value + :rtype: String + """ + return self.co.get(ClientOptions.CONF).getValue() - class FieldDefinition: - """ This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. + def hasLocation(self): + """ Method to check if this class has LOCATION parameter set as None or not - :param name: name of the field - :type name: String - :param dataType: type of the data e.g. string, float, etc. - :type dataType: String - :param matchType: match type of this field e.g. FUSSY, EXACT, etc. - :type matchType: MatchType + :return: The boolean value if LOCATION parameter is present or not + :rtype: Bool """ + if(self.co.get(ClientOptions.LOCATION)==None): + return False + else: + return True + + def getLocation(self): + """ Method to get LOCATION value - def __init__(self, name, dataType, *matchType): - self.fd = getJVM().zingg.common.client.FieldDefinition() - self.fd.setFieldName(name) - self.fd.setDataType(self.stringify(dataType)) - self.fd.setMatchType(matchType) - self.fd.setFields(name) + :return: The LOCATION parameter value + :rtype: String + """ + return self.co.get(ClientOptions.LOCATION).getValue() + + +class FieldDefinition: + """ This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. + + :param name: name of the field + :type name: String + :param dataType: type of the data e.g. string, float, etc. + :type dataType: String + :param matchType: match type of this field e.g. FUSSY, EXACT, etc. + :type matchType: MatchType + """ + + def __init__(self, name, dataType, *matchType): + self.fd = getJVM().zingg.common.client.FieldDefinition() + self.fd.setFieldName(name) + self.fd.setDataType(self.stringify(dataType)) + self.fd.setMatchType(matchType) + self.fd.setFields(name) + + def setStopWords(self, stopWords): + """ Method to add stopwords to this class object + + :param stopWords: The stop Words containing csv file's location + :type stopWords: String + """ + self.fd.setStopWords(stopWords) + + def getFieldDefinition(self): + """ Method to get pointer address of this class + + :return: The pointer containing the address of this class object + :rtype: pointer(FieldDefinition) + """ + return self.fd + + # should be stringify'ed before it is set in fd object + def stringify(self, str): + """ Method to stringify'ed the dataType before it is set in FieldDefinition object - def setStopWords(self, stopWords): - """ Method to add stopwords to this class object - - :param stopWords: The stop Words containing csv file's location - :type stopWords: String - """ - self.fd.setStopWords(stopWords) - - def getFieldDefinition(self): - """ Method to get pointer address of this class - - :return: The pointer containing the address of this class object - :rtype: pointer(FieldDefinition) - """ - return self.fd - - # should be stringify'ed before it is set in fd object - def stringify(self, str): - """ Method to stringify'ed the dataType before it is set in FieldDefinition object - - :param str: dataType of the FieldDefinition - :type str: String - :return: The stringify'ed value of the dataType - :rtype: String - """ - - return str - - - def parseArguments(argv): - """ This method is used for checking mandatory arguments and creating an arguments list from Command line arguments - - :param argv: Values that are passed during the calling of the program along with the calling statement. - :type argv: List - :return: a list containing necessary arguments to run any phase - :rtype: List - """ - parser = argparse.ArgumentParser(description='Zingg\'s python APIs') - mandatoryOptions = parser.add_argument_group('mandatory arguments') - mandatoryOptions.add_argument('--phase', required=True, - help='python phase e.g. assessModel') - mandatoryOptions.add_argument('--conf', required=True, - help='JSON configuration with data input output locations and field definitions') - - args, remaining_args = parser.parse_known_args(argv) - LOG.debug("args: ", args) - return args + :param str: dataType of the FieldDefinition + :type str: String + :return: The stringify'ed value of the dataType + :rtype: String + """ + + return str + + +def parseArguments(argv): + """ This method is used for checking mandatory arguments and creating an arguments list from Command line arguments + + :param argv: Values that are passed during the calling of the program along with the calling statement. + :type argv: List + :return: a list containing necessary arguments to run any phase + :rtype: List + """ + parser = argparse.ArgumentParser(description='Zingg\'s python APIs') + mandatoryOptions = parser.add_argument_group('mandatory arguments') + mandatoryOptions.add_argument('--phase', required=True, + help='python phase e.g. assessModel') + mandatoryOptions.add_argument('--conf', required=True, + help='JSON configuration with data input output locations and field definitions') + + args, remaining_args = parser.parse_known_args(argv) + LOG.debug("args: ", args) + return args diff --git a/python/zingg/pipes.py b/python/zingg/pipes.py index bb505d2ec..94db83699 100644 --- a/python/zingg/pipes.py +++ b/python/zingg/pipes.py @@ -4,271 +4,270 @@ This module is submodule of zingg to work with different types of Pipes. Classes of this module inherit the Pipe class, and use that class to create many different types of pipes. """ -if __name__ == '__main__': - import logging - from zingg.client import * +import logging +from zingg.client import * - LOG = logging.getLogger("zingg.pipes") +LOG = logging.getLogger("zingg.pipes") - JPipe = getJVM().zingg.spark.client.pipe.SparkPipe - FilePipe = getJVM().zingg.common.client.pipe.FilePipe - JStructType = getJVM().org.apache.spark.sql.types.StructType +JPipe = getJVM().zingg.spark.client.pipe.SparkPipe +FilePipe = getJVM().zingg.common.client.pipe.FilePipe +JStructType = getJVM().org.apache.spark.sql.types.StructType - class Pipe: - """ Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc +class Pipe: + """ Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc - :param name: name of the pipe - :type name: String - :param format: formate of pipe e.g. bigquery,InMemory, etc. - :type format: Format - """ - - def __init__(self, name, format): - self.pipe = getJVM().zingg.spark.client.pipe.SparkPipe() - self.pipe.setName(name) - self.pipe.setFormat(format) - - def getPipe(self): - """ Method to get Pipe + :param name: name of the pipe + :type name: String + :param format: formate of pipe e.g. bigquery,InMemory, etc. + :type format: Format + """ - :return: pipe parameter values in the format of a list of string - :rtype: Pipe - """ - return self.pipe - - def addProperty(self, name, value): - """ Method for adding different properties of pipe - - :param name: name of the property - :type name: String - :param value: value you want to set for the property - :type value: String - """ - self.pipe.setProp(name, value) - - def setSchema(self, s): - """ Method to set pipe schema value + def __init__(self, name, format): + self.pipe = getJVM().zingg.spark.client.pipe.SparkPipe() + self.pipe.setName(name) + self.pipe.setFormat(format) - :param s: json schema for the pipe - :type s: Schema - """ - self.pipe.setSchema(s) - - def toString(self): - """ Method to get pipe parameter values - - :return: pipe information in list format - :rtype: List[String] - """ - return self.pipe.toString() + def getPipe(self): + """ Method to get Pipe + :return: pipe parameter values in the format of a list of string + :rtype: Pipe + """ + return self.pipe - class CsvPipe(Pipe): - """ Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. + def addProperty(self, name, value): + """ Method for adding different properties of pipe - :param name: name of the pipe. + :param name: name of the property :type name: String - :param location: (optional) location from where we read data - :type location: String or None - :param schema: (optional) json schema for the pipe - :type schema: Schema or None + :param value: value you want to set for the property + :type value: String """ - def __init__(self, name, location = None, schema = None): - Pipe.__init__(self, name, JPipe.FORMAT_CSV) - if(location != None): - Pipe.addProperty(self, FilePipe.LOCATION, location) - if(schema != None): - #df = spark.read.format(JPipe.FORMAT_CSV).schema(schema).load(location) - #s = JStructType.fromDDL(schema) - Pipe.setSchema(self, schema) - print("set schema ") - - def setDelimiter(self, delimiter): - """ This method is used to define delimiter of CsvPipe + self.pipe.setProp(name, value) + + def setSchema(self, s): + """ Method to set pipe schema value - :param delimiter: a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams - :type delimiter: String - """ - Pipe.addProperty(self, "delimiter", delimiter) + :param s: json schema for the pipe + :type s: Schema + """ + self.pipe.setSchema(s) - def setLocation(self, location): - """ Method to set location of pipe + def toString(self): + """ Method to get pipe parameter values - :param location: location from where we read data - :type location: String - """ + :return: pipe information in list format + :rtype: List[String] + """ + return self.pipe.toString() + + +class CsvPipe(Pipe): + """ Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. + + :param name: name of the pipe. + :type name: String + :param location: (optional) location from where we read data + :type location: String or None + :param schema: (optional) json schema for the pipe + :type schema: Schema or None + """ + def __init__(self, name, location = None, schema = None): + Pipe.__init__(self, name, JPipe.FORMAT_CSV) + if(location != None): Pipe.addProperty(self, FilePipe.LOCATION, location) + if(schema != None): + #df = spark.read.format(JPipe.FORMAT_CSV).schema(schema).load(location) + #s = JStructType.fromDDL(schema) + Pipe.setSchema(self, schema) + print("set schema ") + + def setDelimiter(self, delimiter): + """ This method is used to define delimiter of CsvPipe + + :param delimiter: a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams + :type delimiter: String + """ + Pipe.addProperty(self, "delimiter", delimiter) - def setHeader(self, header): - """ Method to set header property of pipe + def setLocation(self, location): + """ Method to set location of pipe - :param header: true if pipe have header, false otherwise - :type header: Boolean - """ - Pipe.addProperty(self, FilePipe.HEADER, header) + :param location: location from where we read data + :type location: String + """ + Pipe.addProperty(self, FilePipe.LOCATION, location) - class BigQueryPipe(Pipe): - """ Pipe Class for working with BigQuery pipeline + def setHeader(self, header): + """ Method to set header property of pipe - :param name: name of the pipe. - :type name: String + :param header: true if pipe have header, false otherwise + :type header: Boolean """ + Pipe.addProperty(self, FilePipe.HEADER, header) - VIEWS_ENABLED = "viewsEnabled" - CREDENTIAL_FILE = "credentialsFile" - TABLE = "table" - TEMP_GCS_BUCKET="temporaryGcsBucket" - - def __init__(self,name): - Pipe.__init__(self, name, JPipe.FORMAT_BIGQUERY) +class BigQueryPipe(Pipe): + """ Pipe Class for working with BigQuery pipeline - def setCredentialFile(self, file): - """ Method to set Credential file to the pipe + :param name: name of the pipe. + :type name: String + """ - :param file: credential file name - :type file: String - """ - Pipe.addProperty(self, "credentialsFile", file) + VIEWS_ENABLED = "viewsEnabled" + CREDENTIAL_FILE = "credentialsFile" + TABLE = "table" + TEMP_GCS_BUCKET="temporaryGcsBucket" - def setTable(self, table): - """ Method to set Table to the pipe + def __init__(self,name): + Pipe.__init__(self, name, JPipe.FORMAT_BIGQUERY) - :param table: provide table parameter - :type table: String - """ - Pipe.addProperty(self, "table", table) + def setCredentialFile(self, file): + """ Method to set Credential file to the pipe - def setTemporaryGcsBucket(self, bucket): - """ Method to set TemporaryGcsBucket to the pipe + :param file: credential file name + :type file: String + """ + Pipe.addProperty(self, "credentialsFile", file) - :param bucket: provide bucket parameter - :type bucket: String - """ - Pipe.addProperty(self, "temporaryGcsBucket", bucket) + def setTable(self, table): + """ Method to set Table to the pipe - def setViewsEnabled(self, isEnabled): - """ Method to set if viewsEnabled parameter is Enabled or not + :param table: provide table parameter + :type table: String + """ + Pipe.addProperty(self, "table", table) - :param isEnabled: provide boolean parameter which defines if viewsEnabled option is enable or not - :type isEnabled: Bool - """ - Pipe.addProperty(self, "viewsEnabled", isEnabled) + def setTemporaryGcsBucket(self, bucket): + """ Method to set TemporaryGcsBucket to the pipe + :param bucket: provide bucket parameter + :type bucket: String + """ + Pipe.addProperty(self, "temporaryGcsBucket", bucket) - class SnowflakePipe(Pipe): - """ Pipe Class for working with Snowflake pipeline + def setViewsEnabled(self, isEnabled): + """ Method to set if viewsEnabled parameter is Enabled or not - :param name: name of the pipe - :type name: String + :param isEnabled: provide boolean parameter which defines if viewsEnabled option is enable or not + :type isEnabled: Bool """ - URL = "sfUrl" - USER = "sfUser" - PASSWORD = "sfPassword" - DATABASE ="sfDatabase" - SCHEMA = "sfSchema" - WAREHOUSE = "sfWarehouse" - DBTABLE = "dbtable" - - def __init__(self,name): - Pipe.__init__(self, name, JPipe.FORMAT_SNOWFLAKE) - Pipe.addProperty(self, "application", "zinggai_zingg") - + Pipe.addProperty(self, "viewsEnabled", isEnabled) + + +class SnowflakePipe(Pipe): + """ Pipe Class for working with Snowflake pipeline + + :param name: name of the pipe + :type name: String + """ + URL = "sfUrl" + USER = "sfUser" + PASSWORD = "sfPassword" + DATABASE ="sfDatabase" + SCHEMA = "sfSchema" + WAREHOUSE = "sfWarehouse" + DBTABLE = "dbtable" + + def __init__(self,name): + Pipe.__init__(self, name, JPipe.FORMAT_SNOWFLAKE) + Pipe.addProperty(self, "application", "zinggai_zingg") + - def setURL(self, url): - """ Method to set url to the pipe + def setURL(self, url): + """ Method to set url to the pipe - :param url: provide url for this pipe - :type url: String - """ - Pipe.addProperty(self, "sfUrl", url) + :param url: provide url for this pipe + :type url: String + """ + Pipe.addProperty(self, "sfUrl", url) - def setUser(self, user): - """ Method to set User to the pipe - - :param user: provide User parameter. - :type user: String - """ - Pipe.addProperty(self, "sfUser", user) + def setUser(self, user): + """ Method to set User to the pipe + + :param user: provide User parameter. + :type user: String + """ + Pipe.addProperty(self, "sfUser", user) - def setPassword(self, passwd): - """ Method to set Password to the pipe - - :param passwd: provide Password parameter. - :type passwd: String - """ - Pipe.addProperty(self, "sfPassword", passwd) + def setPassword(self, passwd): + """ Method to set Password to the pipe + + :param passwd: provide Password parameter. + :type passwd: String + """ + Pipe.addProperty(self, "sfPassword", passwd) - def setDatabase(self, db): - """ Method to set Database to the pipe - - :param db: provide Database parameter. - :type db: Database - """ - Pipe.addProperty(self, "sfDatabase", db) + def setDatabase(self, db): + """ Method to set Database to the pipe + + :param db: provide Database parameter. + :type db: Database + """ + Pipe.addProperty(self, "sfDatabase", db) - def setSFSchema(self, schema): - """ Method to set Schema to the pipe - - :param schema: provide schema parameter. - :type schema: Schema - """ - Pipe.addProperty(self, "sfSchema", schema) + def setSFSchema(self, schema): + """ Method to set Schema to the pipe + + :param schema: provide schema parameter. + :type schema: Schema + """ + Pipe.addProperty(self, "sfSchema", schema) - def setWarehouse(self, warehouse): - """ Method to set warehouse parameter to the pipe - - :param warehouse: provide warehouse parameter. - :type warehouse: String - """ - Pipe.addProperty(self, "sfWarehouse", warehouse) + def setWarehouse(self, warehouse): + """ Method to set warehouse parameter to the pipe + + :param warehouse: provide warehouse parameter. + :type warehouse: String + """ + Pipe.addProperty(self, "sfWarehouse", warehouse) - def setDbTable(self, dbtable): - """ description - - :param dbtable: provide bucket parameter. - :type dbtable: String - """ - Pipe.addProperty(self, "dbtable", dbtable) - + def setDbTable(self, dbtable): + """ description + + :param dbtable: provide bucket parameter. + :type dbtable: String + """ + Pipe.addProperty(self, "dbtable", dbtable) + - class InMemoryPipe(Pipe): - """ Pipe Class for working with InMemory pipeline +class InMemoryPipe(Pipe): + """ Pipe Class for working with InMemory pipeline - :param name: name of the pipe - :type name: String - :param df: provide dataset for this pipe (optional) - :type df: Dataset or None - """ + :param name: name of the pipe + :type name: String + :param df: provide dataset for this pipe (optional) + :type df: Dataset or None + """ - def __init__(self, name, df = None): - Pipe.__init__(self, name, JPipe.FORMAT_INMEMORY) - if (df is not None): - self.setDataset(df) + def __init__(self, name, df = None): + Pipe.__init__(self, name, JPipe.FORMAT_INMEMORY) + if (df is not None): + self.setDataset(df) - def setDataset(self, df): - """ Method to set DataFrame of the pipe - - :param df: pandas or spark dataframe for the pipe - :type df: DataFrame - """ - if (isinstance(df, pd.DataFrame)): - print('schema of pandas df is ' , Pipe.getPipe(self).getSchema()) - if (Pipe.getPipe(self).getSchema() is not None): - ds = getSparkSession().createDataFrame(df, schema=Pipe.getPipe(self).getSchema()) - else: - ds = getSparkSession().createDataFrame(df) - - Pipe.getPipe(self).setDataset(ds._jdf) - elif (isinstance(df, DataFrame)): - Pipe.getPipe(self).setDataset(df._jdf) + def setDataset(self, df): + """ Method to set DataFrame of the pipe + + :param df: pandas or spark dataframe for the pipe + :type df: DataFrame + """ + if (isinstance(df, pd.DataFrame)): + print('schema of pandas df is ' , Pipe.getPipe(self).getSchema()) + if (Pipe.getPipe(self).getSchema() is not None): + ds = getSparkSession().createDataFrame(df, schema=Pipe.getPipe(self).getSchema()) else: - LOG.error(" setDataset(): NUll or Unsupported type: %s", type(df)) - - def getDataset(self): - """ Method to get Dataset from pipe + ds = getSparkSession().createDataFrame(df) - :return: dataset of the pipe in the format of spark dataset - :rtype: Dataset - """ - return Pipe.getPipe(self).getDataset().df() + Pipe.getPipe(self).setDataset(ds._jdf) + elif (isinstance(df, DataFrame)): + Pipe.getPipe(self).setDataset(df._jdf) + else: + LOG.error(" setDataset(): NUll or Unsupported type: %s", type(df)) + + def getDataset(self): + """ Method to get Dataset from pipe + + :return: dataset of the pipe in the format of spark dataset + :rtype: Dataset + """ + return Pipe.getPipe(self).getDataset().df() From af9bef86823b3dee19cbbc2bc1995af0be39183b Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Mon, 8 Jan 2024 19:19:16 +0000 Subject: [PATCH 12/36] GITBOOK-24: No subject --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8a849e159..f5e9c7371 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,8 +8,8 @@ description: Hope you find us useful :-) This is the latest documentation for Zingg. Release wise documentation can be accessed through: -* [v0.4.0 ](https://docs.zingg.ai/zingg0.4.0/) -* [v0.3.4 ](https://docs.zingg.ai/zingg0.3.4/) +* [v0.4.0](https://app.gitbook.com/o/kn0G4kXLdlfPagjso48S/s/a7sgpR3odgfck5L8KMcN/) +* [v0.3.4](https://docs.zingg.ai/zingg0.3.4/) * [v0.3.3](https://docs.zingg.ai/zingg0.3.3/) ## Why? From dfc49d34b0c9fdd472454f2217df9a9abbd25b44 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Thu, 18 Jan 2024 21:56:52 +0530 Subject: [PATCH 13/36] added py docs to docs --- .DS_Store | Bin 6148 -> 6148 bytes docs/SUMMARY.md | 1 + docs/python/doctrees/environment.pickle | Bin 0 -> 634563 bytes .../python}/doctrees/index.doctree | Bin 10386 -> 10040 bytes .../python}/doctrees/zingg.doctree | Bin docs/python/markdown/index.md | 183 ++++ docs/python/markdown/zingg.md | 785 ++++++++++++++++++ .../docs/_build/doctrees/environment.pickle | Bin 533605 -> 0 bytes python/docs/conf.py | 5 +- python/docs/index.rst | 4 - python/docs/zingg.rst | 5 +- 11 files changed, 974 insertions(+), 9 deletions(-) create mode 100644 docs/python/doctrees/environment.pickle rename {python/docs/_build => docs/python}/doctrees/index.doctree (53%) rename {python/docs/_build => docs/python}/doctrees/zingg.doctree (100%) create mode 100644 docs/python/markdown/index.md create mode 100644 docs/python/markdown/zingg.md delete mode 100644 python/docs/_build/doctrees/environment.pickle diff --git a/.DS_Store b/.DS_Store index 0d364ad2053256f736395394b8d051407d045e6f..0993f235461ec76760d51d6d022183640313e781 100644 GIT binary patch delta 173 zcmZoMXfc=|#>B!ku~2NHo}wrx0|Nsi1A_nqLkUB1Qh9MfQcix-=84S9nPovzYz&DE z#Xy*fEDaRjJ~@S{P))qL+R)rsN5P<0N1@u#(7;?r!Q9-mww9AaR9W9TC_XzUH!r_) y@=qpt-Y#UrCMPlrZ{}y>WZulq!OsD74A8>w%#-;=965k)VFD^;*c>6Uh8X}kA1KTK delta 83 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�Q~=T1@1PflE@HB{&OrjoZ7Eeel1BQLH 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ξ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%0D`S>Nh;!U{S_29F12)Ylgta%dSATs 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 VdvwFT?cMku41M>7y}hfQ{|7W?CRqRg literal 0 HcmV?d00001 diff --git a/python/docs/_build/doctrees/index.doctree b/docs/python/doctrees/index.doctree similarity index 53% rename from python/docs/_build/doctrees/index.doctree rename to docs/python/doctrees/index.doctree index aacb0eb1c34e290678cdb7273e51db35a45e424d..399dbb7c48f3e5bb6443c3e03e9ed775c5602788 100644 GIT binary patch delta 2508 zcmbVO?`s=n9N#s`U4C@7=`?F>yCk$Rm)ct#h(F52R$rB3s6&vcWxXVqesiYjamj71 zs8QI&!t=uVJR%$TR$q*Xk~e#^Hwyj(8-s$ceK7_)L>x@P?{i7+u33{7U);mp_r5d8?qp$&Z)}@l^&B z_)OuGz$dlJEJ#BRVldZc2N|;Tj=zPfJ`Y?Tj=`d%hK`FbB6&qjG-I&rkOyifqN$ZF zv%=sFZfFS&Em{SL5+Td3uumCx%4-9aX#-t-6*3@)A-jxWbD!x$@k3#ON>Vi-qgsVV zCFLoPYTfaZ%E9x}MUXITj4hZb#ozhE7%R-Rs5?!tbak_cz;4YpD$puL3)*O8Aw@ zer15HyY#d0tZ<9|7>4)K@I%Mh6Zq#wuO%|l*eo_oO;awJs$pm*Q+t8AzTdbfvDAtv z0lNz6cM+xOsl!>6@wLIQfszoUXS3}p34q9RC&P1H0y)08vXnfhl{IV`?2mS8d#P@f z{py9;X^5G=9kJ(nLN5)!HL=h&41e0D>h3qaKOAp%$Wap9*eq3QC2h-7hyNaE+_o*l zW#X$hN?2xiD!l3*E3-$4%){O+cp)d^Nfaz?78&f4ko~%$R%%R_Xe4^NdDY_-Z^UjX zK8C~^jirQ?{U5Fi0l!$dr zHH+W@xWM`M0sKGko!2iM5=1|MtDTbWI_3p)62W=*5WQY7Ise;7;O_x5Z>?74MoO$5o@k+rBf$)b@&|sj(-|3>c2_1BW9mkEQtT9-DkE zrhhXqPu}stA;}>W*Bl8xfLp(f?TA9OWyIeXlQI1U{={oZpZ!c9B@(`An4we2)O1?E z&Na37UCN`_4VX0XPlie zS*dP?s06N}z1M;dDn3^VVT&Knr4;oK@Tnj^h=_qe!8gHkXLojXH<@l9e7G}k&$+*I z&hLEO`@_=pm;KlLpMRA6%)c`1DlufChHu8e(A}c zS~Aygw9^#s=XT?(3=hB>f;9qb6xJ~^NB6vQCm9|mp)07msp|O(GqH#xSi)YMfHi?9 z@d=I^-hJbaa1QpLsjSJam?XSa+L*6sat@phX*#MP{cU7np6bM;e|mC4nvQ#?&VIle z+(0Q|N%)$^Lxmv`lScBh{cvX63VndS7#OTM(L3HgTJ#V+2fOC(z^YX$?==|e zC_fU)sU=M{%Tx-_j=9#fgm2O-;c4MldLxW4iTLMc5CZ^tuiGx^H`JV=Bb3_IWlcjm zle-DKd%zVt%XB4@@>?xMNhI}jv#B`AXW>j+_hf@W-b;^3R&1=wA2$`D78l*i!LO+Ox*bf%HjZ+SJx@J$j1 zq`X>^i)E%H=sSHgwR)R(oMO8+p8)9oL!lkyR`Wsmas6m-eI?xRI>3Jr{?XPPR3flN zPsYTWL+}FE;*IJMY;P&UAZyWX@4^%b6;QdG>`c=do_GYZ&p(XqML;^pwnK><*{|AU zx4dg7`xuaSrU!C6*{eX6(s99d^y4_%3E0=u?}%V>Lg^7 za|=1@Oo+V;2?;cCq4sOd+eo>}&-@?7U+qCcXF8%z@qgINhwWT@HpYNmvj=c{Hn{#< zz4g1ZfhTIsCxAWppp3d+5+tx@ZfqcU$OzMXfGa-Eob`0z9oLvm?e`;z$y$-mi{{jm zZA42TwF^d8XRX%?52bssjvhW(`{D_B3e3dEPD{%7+!NOv9x_Ok+pQBk?mCI@1cY?` z+ju_kRAV>;kM}^w{TW2RIWBrn<1_Tm@kC8j?mA>7;H-_`!ABfz$t7(Ar8qBUMJ^z? zikd7FTPT50vV{-1Z^Sm}u|twoQB57L8azpB;+!DT@5DESOnq4TLhwXA_1(m?f-qVC zW8#))X&>(?yWqZZi+_IOpZoAJNtnMrjjDz!)~j}Z$5Pv|RCY`p=TFW(yl9=n53EDV Q?fUOeE(-xjhPgKLA4a~haR2}S diff --git a/python/docs/_build/doctrees/zingg.doctree b/docs/python/doctrees/zingg.doctree similarity index 100% rename from python/docs/_build/doctrees/zingg.doctree rename to docs/python/doctrees/zingg.doctree diff --git a/docs/python/markdown/index.md b/docs/python/markdown/index.md new file mode 100644 index 000000000..d8b455d19 --- /dev/null +++ b/docs/python/markdown/index.md @@ -0,0 +1,183 @@ + + +# Zingg Entity Resolution Python Package + +Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML +([https://www.zingg.ai](https://www.zingg.ai)) + +#### NOTE +Requires python 3.6+; spark 3.5.0 +Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be executed + +* [Zingg Entity Resolution Package](zingg.md) + * [zingg.client](zingg.md#zingg-client) + * [`Arguments`](zingg.md#zingg.client.Arguments) + * [`Arguments.copyArgs()`](zingg.md#zingg.client.Arguments.copyArgs) + * [`Arguments.createArgumentsFromJSON()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSON) + * [`Arguments.createArgumentsFromJSONString()`](zingg.md#zingg.client.Arguments.createArgumentsFromJSONString) + * [`Arguments.getArgs()`](zingg.md#zingg.client.Arguments.getArgs) + * [`Arguments.getModelId()`](zingg.md#zingg.client.Arguments.getModelId) + * [`Arguments.getZinggBaseModelDir()`](zingg.md#zingg.client.Arguments.getZinggBaseModelDir) + * [`Arguments.getZinggBaseTrainingDataDir()`](zingg.md#zingg.client.Arguments.getZinggBaseTrainingDataDir) + * [`Arguments.getZinggModelDir()`](zingg.md#zingg.client.Arguments.getZinggModelDir) + * [`Arguments.getZinggTrainingDataMarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataMarkedDir) + * [`Arguments.getZinggTrainingDataUnmarkedDir()`](zingg.md#zingg.client.Arguments.getZinggTrainingDataUnmarkedDir) + * [`Arguments.setArgs()`](zingg.md#zingg.client.Arguments.setArgs) + * [`Arguments.setColumn()`](zingg.md#zingg.client.Arguments.setColumn) + * [`Arguments.setData()`](zingg.md#zingg.client.Arguments.setData) + * [`Arguments.setFieldDefinition()`](zingg.md#zingg.client.Arguments.setFieldDefinition) + * [`Arguments.setLabelDataSampleSize()`](zingg.md#zingg.client.Arguments.setLabelDataSampleSize) + * [`Arguments.setModelId()`](zingg.md#zingg.client.Arguments.setModelId) + * [`Arguments.setNumPartitions()`](zingg.md#zingg.client.Arguments.setNumPartitions) + * [`Arguments.setOutput()`](zingg.md#zingg.client.Arguments.setOutput) + * [`Arguments.setStopWordsCutoff()`](zingg.md#zingg.client.Arguments.setStopWordsCutoff) + * [`Arguments.setTrainingSamples()`](zingg.md#zingg.client.Arguments.setTrainingSamples) + * [`Arguments.setZinggDir()`](zingg.md#zingg.client.Arguments.setZinggDir) + * [`Arguments.writeArgumentsToJSON()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSON) + * [`Arguments.writeArgumentsToJSONString()`](zingg.md#zingg.client.Arguments.writeArgumentsToJSONString) + * [`ClientOptions`](zingg.md#zingg.client.ClientOptions) + * [`ClientOptions.COLUMN`](zingg.md#zingg.client.ClientOptions.COLUMN) + * [`ClientOptions.CONF`](zingg.md#zingg.client.ClientOptions.CONF) + * [`ClientOptions.EMAIL`](zingg.md#zingg.client.ClientOptions.EMAIL) + * [`ClientOptions.LICENSE`](zingg.md#zingg.client.ClientOptions.LICENSE) + * [`ClientOptions.LOCATION`](zingg.md#zingg.client.ClientOptions.LOCATION) + * [`ClientOptions.MODEL_ID`](zingg.md#zingg.client.ClientOptions.MODEL_ID) + * [`ClientOptions.PHASE`](zingg.md#zingg.client.ClientOptions.PHASE) + * [`ClientOptions.REMOTE`](zingg.md#zingg.client.ClientOptions.REMOTE) + * [`ClientOptions.ZINGG_DIR`](zingg.md#zingg.client.ClientOptions.ZINGG_DIR) + * [`ClientOptions.getClientOptions()`](zingg.md#zingg.client.ClientOptions.getClientOptions) + * [`ClientOptions.getConf()`](zingg.md#zingg.client.ClientOptions.getConf) + * [`ClientOptions.getLocation()`](zingg.md#zingg.client.ClientOptions.getLocation) + * [`ClientOptions.getOptionValue()`](zingg.md#zingg.client.ClientOptions.getOptionValue) + * [`ClientOptions.getPhase()`](zingg.md#zingg.client.ClientOptions.getPhase) + * [`ClientOptions.hasLocation()`](zingg.md#zingg.client.ClientOptions.hasLocation) + * [`ClientOptions.setOptionValue()`](zingg.md#zingg.client.ClientOptions.setOptionValue) + * [`ClientOptions.setPhase()`](zingg.md#zingg.client.ClientOptions.setPhase) + * [`FieldDefinition`](zingg.md#zingg.client.FieldDefinition) + * [`FieldDefinition.getFieldDefinition()`](zingg.md#zingg.client.FieldDefinition.getFieldDefinition) + * [`FieldDefinition.setStopWords()`](zingg.md#zingg.client.FieldDefinition.setStopWords) + * [`FieldDefinition.stringify()`](zingg.md#zingg.client.FieldDefinition.stringify) + * [`Zingg`](zingg.md#zingg.client.Zingg) + * [`Zingg.execute()`](zingg.md#zingg.client.Zingg.execute) + * [`Zingg.executeLabel()`](zingg.md#zingg.client.Zingg.executeLabel) + * [`Zingg.executeLabelUpdate()`](zingg.md#zingg.client.Zingg.executeLabelUpdate) + * [`Zingg.getArguments()`](zingg.md#zingg.client.Zingg.getArguments) + * [`Zingg.getMarkedRecords()`](zingg.md#zingg.client.Zingg.getMarkedRecords) + * [`Zingg.getMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMarkedRecordsStat) + * [`Zingg.getMatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getMatchedMarkedRecordsStat) + * [`Zingg.getOptions()`](zingg.md#zingg.client.Zingg.getOptions) + * [`Zingg.getUnmarkedRecords()`](zingg.md#zingg.client.Zingg.getUnmarkedRecords) + * [`Zingg.getUnmatchedMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnmatchedMarkedRecordsStat) + * [`Zingg.getUnsureMarkedRecordsStat()`](zingg.md#zingg.client.Zingg.getUnsureMarkedRecordsStat) + * [`Zingg.init()`](zingg.md#zingg.client.Zingg.init) + * [`Zingg.initAndExecute()`](zingg.md#zingg.client.Zingg.initAndExecute) + * [`Zingg.processRecordsCli()`](zingg.md#zingg.client.Zingg.processRecordsCli) + * [`Zingg.processRecordsCliLabelUpdate()`](zingg.md#zingg.client.Zingg.processRecordsCliLabelUpdate) + * [`Zingg.setArguments()`](zingg.md#zingg.client.Zingg.setArguments) + * [`Zingg.setOptions()`](zingg.md#zingg.client.Zingg.setOptions) + * [`Zingg.writeLabelledOutput()`](zingg.md#zingg.client.Zingg.writeLabelledOutput) + * [`Zingg.writeLabelledOutputFromPandas()`](zingg.md#zingg.client.Zingg.writeLabelledOutputFromPandas) + * [`ZinggWithSpark`](zingg.md#zingg.client.ZinggWithSpark) + * [`getDfFromDs()`](zingg.md#zingg.client.getDfFromDs) + * [`getGateway()`](zingg.md#zingg.client.getGateway) + * [`getJVM()`](zingg.md#zingg.client.getJVM) + * [`getPandasDfFromDs()`](zingg.md#zingg.client.getPandasDfFromDs) + * [`getSparkContext()`](zingg.md#zingg.client.getSparkContext) + * [`getSparkSession()`](zingg.md#zingg.client.getSparkSession) + * [`getSqlContext()`](zingg.md#zingg.client.getSqlContext) + * [`initClient()`](zingg.md#zingg.client.initClient) + * [`initDataBricksConectClient()`](zingg.md#zingg.client.initDataBricksConectClient) + * [`initSparkClient()`](zingg.md#zingg.client.initSparkClient) + * [`parseArguments()`](zingg.md#zingg.client.parseArguments) + * [zingg.pipes](zingg.md#zingg-pipes) + * [`BigQueryPipe`](zingg.md#zingg.pipes.BigQueryPipe) + * [`BigQueryPipe.CREDENTIAL_FILE`](zingg.md#zingg.pipes.BigQueryPipe.CREDENTIAL_FILE) + * [`BigQueryPipe.TABLE`](zingg.md#zingg.pipes.BigQueryPipe.TABLE) + * [`BigQueryPipe.TEMP_GCS_BUCKET`](zingg.md#zingg.pipes.BigQueryPipe.TEMP_GCS_BUCKET) + * [`BigQueryPipe.VIEWS_ENABLED`](zingg.md#zingg.pipes.BigQueryPipe.VIEWS_ENABLED) + * [`BigQueryPipe.setCredentialFile()`](zingg.md#zingg.pipes.BigQueryPipe.setCredentialFile) + * [`BigQueryPipe.setTable()`](zingg.md#zingg.pipes.BigQueryPipe.setTable) + * [`BigQueryPipe.setTemporaryGcsBucket()`](zingg.md#zingg.pipes.BigQueryPipe.setTemporaryGcsBucket) + * [`BigQueryPipe.setViewsEnabled()`](zingg.md#zingg.pipes.BigQueryPipe.setViewsEnabled) + * [`CsvPipe`](zingg.md#zingg.pipes.CsvPipe) + * [`CsvPipe.setDelimiter()`](zingg.md#zingg.pipes.CsvPipe.setDelimiter) + * [`CsvPipe.setHeader()`](zingg.md#zingg.pipes.CsvPipe.setHeader) + * [`CsvPipe.setLocation()`](zingg.md#zingg.pipes.CsvPipe.setLocation) + * [`InMemoryPipe`](zingg.md#zingg.pipes.InMemoryPipe) + * [`InMemoryPipe.getDataset()`](zingg.md#zingg.pipes.InMemoryPipe.getDataset) + * [`InMemoryPipe.setDataset()`](zingg.md#zingg.pipes.InMemoryPipe.setDataset) + * [`Pipe`](zingg.md#zingg.pipes.Pipe) + * [`Pipe.addProperty()`](zingg.md#zingg.pipes.Pipe.addProperty) + * [`Pipe.getPipe()`](zingg.md#zingg.pipes.Pipe.getPipe) + * [`Pipe.setSchema()`](zingg.md#zingg.pipes.Pipe.setSchema) + * [`Pipe.toString()`](zingg.md#zingg.pipes.Pipe.toString) + * [`SnowflakePipe`](zingg.md#zingg.pipes.SnowflakePipe) + * [`SnowflakePipe.DATABASE`](zingg.md#zingg.pipes.SnowflakePipe.DATABASE) + * [`SnowflakePipe.DBTABLE`](zingg.md#zingg.pipes.SnowflakePipe.DBTABLE) + * [`SnowflakePipe.PASSWORD`](zingg.md#zingg.pipes.SnowflakePipe.PASSWORD) + * [`SnowflakePipe.SCHEMA`](zingg.md#zingg.pipes.SnowflakePipe.SCHEMA) + * [`SnowflakePipe.URL`](zingg.md#zingg.pipes.SnowflakePipe.URL) + * [`SnowflakePipe.USER`](zingg.md#zingg.pipes.SnowflakePipe.USER) + * [`SnowflakePipe.WAREHOUSE`](zingg.md#zingg.pipes.SnowflakePipe.WAREHOUSE) + * [`SnowflakePipe.setDatabase()`](zingg.md#zingg.pipes.SnowflakePipe.setDatabase) + * [`SnowflakePipe.setDbTable()`](zingg.md#zingg.pipes.SnowflakePipe.setDbTable) + * [`SnowflakePipe.setPassword()`](zingg.md#zingg.pipes.SnowflakePipe.setPassword) + * [`SnowflakePipe.setSFSchema()`](zingg.md#zingg.pipes.SnowflakePipe.setSFSchema) + * [`SnowflakePipe.setURL()`](zingg.md#zingg.pipes.SnowflakePipe.setURL) + * [`SnowflakePipe.setUser()`](zingg.md#zingg.pipes.SnowflakePipe.setUser) + * [`SnowflakePipe.setWarehouse()`](zingg.md#zingg.pipes.SnowflakePipe.setWarehouse) + +# API Reference + +* [Module Index](py-modindex.md) +* [Index](genindex.md) +* [Search Page](search.md) + +# Example API Usage + +```python +from zingg.client import * +from zingg.pipes import * + +#build the arguments for zingg +args = Arguments() +#set field definitions +fname = FieldDefinition("fname", "string", MatchType.FUZZY) +lname = FieldDefinition("lname", "string", MatchType.FUZZY) +stNo = FieldDefinition("stNo", "string", MatchType.FUZZY) +add1 = FieldDefinition("add1","string", MatchType.FUZZY) +add2 = FieldDefinition("add2", "string", MatchType.FUZZY) +city = FieldDefinition("city", "string", MatchType.FUZZY) +areacode = FieldDefinition("areacode", "string", MatchType.FUZZY) +state = FieldDefinition("state", "string", MatchType.FUZZY) +dob = FieldDefinition("dob", "string", MatchType.FUZZY) +ssn = FieldDefinition("ssn", "string", MatchType.FUZZY) + +fieldDefs = [fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] + +args.setFieldDefinition(fieldDefs) +#set the modelid and the zingg dir +args.setModelId("100") +args.setZinggDir("models") +args.setNumPartitions(4) +args.setLabelDataSampleSize(0.5) + +#reading dataset into inputPipe and settint it up in 'args' +#below line should not be required if you are reading from in memory dataset +#in that case, replace df with input df +schema = "id string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" +inputPipe = CsvPipe("testFebrl", "examples/febrl/test.csv", schema) +args.setData(inputPipe) +outputPipe = CsvPipe("resultFebrl", "/tmp/febrlOutput") + +args.setOutput(outputPipe) + +options = ClientOptions([ClientOptions.PHASE,"match"]) + +#Zingg execution for the given phase +zingg = Zingg(args, options) +zingg.initAndExecute() +``` diff --git a/docs/python/markdown/zingg.md b/docs/python/markdown/zingg.md new file mode 100644 index 000000000..9467c6751 --- /dev/null +++ b/docs/python/markdown/zingg.md @@ -0,0 +1,785 @@ +# Zingg Entity Resolution Package + +Zingg Python APIs for entity resolution, record linkage, data mastering and deduplication using ML +([https://www.zingg.ai](https://www.zingg.ai)) + +requires python 3.6+; spark 3.5.0 +Otherwise, [`zingg.client.Zingg()`](#zingg.client.Zingg) cannot be executed + + + + + +## zingg.client + +This module is the main entry point of the Zingg Python API + +### *class* zingg.client.Arguments + +Bases: `object` + +This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + +* **Defining:** + specifying information about data location, fields, and our notion of similarity. +* **Training:** + making Zingg learn the matching rules +* **Matching:** + Running the models on the entire dataset + +#### copyArgs(phase) + +#### *static* createArgumentsFromJSON(fileName, phase) + +Method to create an object of this class from the JSON file and phase parameter value. + +* **Parameters:** + * **fileName** (*String*) – The CONF parameter value of ClientOption object + * **phase** (*String*) – The PHASE parameter value of ClientOption object +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### *static* createArgumentsFromJSONString(jsonArgs, phase) + +#### getArgs() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing the address of this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### getModelId() + +#### getZinggBaseModelDir() + +#### getZinggBaseTrainingDataDir() + +Method to get the location of the folder where Zingg +saves the training data found by findTrainingData + +#### getZinggModelDir() + +#### getZinggTrainingDataMarkedDir() + +Method to get the location of the folder where Zingg +saves the marked training data labeled by the user + +#### getZinggTrainingDataUnmarkedDir() + +Method to get the location of the folder where Zingg +saves the training data found by findTrainingData + +#### setArgs(argumentsObj) + +Method to set this class object + +* **Parameters:** + **argumentsObj** (*pointer**(*[*Arguments*](#zingg.client.Arguments)*)*) – Argument object to set this object + +#### setColumn(column) + +Method to set stopWordsCutoff parameter value +By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + +* **Parameters:** + **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file + +#### setData(\*pipes) + +Method to set the file path of the file to be matched. + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setFieldDefinition(fieldDef) + +Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + +* **Parameters:** + **fieldDef** (*List**(*[*FieldDefinition*](#zingg.client.FieldDefinition)*)*) – python FieldDefinition object list + +#### setLabelDataSampleSize(labelDataSampleSize) + +Method to set labelDataSampleSize parameter value +Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches + +* **Parameters:** + **labelDataSampleSize** (*float*) – value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples + +#### setModelId(id) + +Method to set the output directory where the match output will be saved + +* **Parameters:** + **id** (*String*) – model id value + +#### setNumPartitions(numPartitions) + +Method to set NumPartitions parameter value +Sample size to use for seeding labeled data We don’t want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit + +* **Parameters:** + **numPartitions** (*int*) – number of partitions for given data pipes + +#### setOutput(\*pipes) + +Method to set the output directory where the match result will be saved + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – output data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setStopWordsCutoff(stopWordsCutoff) + +Method to set stopWordsCutoff parameter value +By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property + +* **Parameters:** + **stopWordsCutoff** (*float*) – The stop words cutoff parameter value of ClientOption object or file address of json file + +#### setTrainingSamples(\*pipes) + +Method to set existing training samples to be matched. + +* **Parameters:** + **pipes** ([*Pipe*](#zingg.pipes.Pipe)*[**]*) – input training data pipes separated by comma e.g. (pipe1,pipe2,..) + +#### setZinggDir(f) + +Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. + +* **Parameters:** + **f** (*String*) – Zingg directory name of the models + +#### writeArgumentsToJSON(fileName) + +Method to write JSON file from the object of this class + +* **Parameters:** + **fileName** (*String*) – The CONF parameter value of ClientOption object or file address of json file + +#### writeArgumentsToJSONString() + +Method to create an object of this class from the JSON file and phase parameter value. + +* **Parameters:** + * **fileName** (*String*) – The CONF parameter value of ClientOption object + * **phase** (*String*) – The PHASE parameter value of ClientOption object +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +### *class* zingg.client.ClientOptions(argsSent=None) + +Bases: `object` + +Class that contains Client options for Zingg object +:param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc +:type phase: String +:param args: Parse a list of Zingg command line options parameter values e.g. “–location” etc. optional argument for initializing this class. +:type args: List(String) or None + +#### COLUMN *= * + +Column whose stop words are to be recommended through Zingg + +* **Type:** + COLUMN + +#### CONF *= * + +conf parameter for this class + +* **Type:** + CONF + +#### EMAIL *= * + +e-mail parameter for this class + +* **Type:** + EMAIL + +#### LICENSE *= * + +license parameter for this class + +* **Type:** + LICENSE + +#### LOCATION *= * + +location parameter for this class + +* **Type:** + LOCATION + +#### MODEL_ID *= * + +ZINGG_DIR/MODEL_ID is used to save the model + +* **Type:** + MODEL_ID + +#### PHASE *= * + +phase parameter for this class + +* **Type:** + PHASE + +#### REMOTE *= * + +remote option used internally for running on Databricks + +* **Type:** + REMOTE + +#### ZINGG_DIR *= * + +location where Zingg saves the model, training data etc + +* **Type:** + ZINGG_DIR + +#### getClientOptions() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing address of the this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### getConf() + +Method to get CONF value + +* **Returns:** + The CONF parameter value +* **Return type:** + String + +#### getLocation() + +Method to get LOCATION value + +* **Returns:** + The LOCATION parameter value +* **Return type:** + String + +#### getOptionValue(option) + +Method to get value for the key option + +* **Parameters:** + **option** (*String*) – key to geting the value +* **Returns:** + The value which is mapped for given key +* **Return type:** + String + +#### getPhase() + +Method to get PHASE value + +* **Returns:** + The PHASE parameter value +* **Return type:** + String + +#### hasLocation() + +Method to check if this class has LOCATION parameter set as None or not + +* **Returns:** + The boolean value if LOCATION parameter is present or not +* **Return type:** + Bool + +#### setOptionValue(option, value) + +Method to map option key to the given value + +* **Parameters:** + * **option** (*String*) – key that is mapped with value + * **value** (*String*) – value to be set for given key + +#### setPhase(newValue) + +Method to set PHASE value + +* **Parameters:** + **newValue** (*String*) – name of the phase +* **Returns:** + The pointer containing address of the this class object after seting phase +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +### *class* zingg.client.FieldDefinition(name, dataType, \*matchType) + +Bases: `object` + +This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. + +* **Parameters:** + * **name** (*String*) – name of the field + * **dataType** (*String*) – type of the data e.g. string, float, etc. + * **matchType** (*MatchType*) – match type of this field e.g. FUSSY, EXACT, etc. + +#### getFieldDefinition() + +Method to get pointer address of this class + +* **Returns:** + The pointer containing the address of this class object +* **Return type:** + pointer([FieldDefinition](#zingg.client.FieldDefinition)) + +#### setStopWords(stopWords) + +Method to add stopwords to this class object + +* **Parameters:** + **stopWords** (*String*) – The stop Words containing csv file’s location + +#### stringify(str) + +Method to stringify’ed the dataType before it is set in FieldDefinition object + +* **Parameters:** + **str** (*String*) – dataType of the FieldDefinition +* **Returns:** + The stringify’ed value of the dataType +* **Return type:** + String + +### *class* zingg.client.Zingg(args, options) + +Bases: `object` + +This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + +* **Parameters:** + * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching + * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object + +#### execute() + +Method to execute this class object + +#### executeLabel() + +Method to run label phase + +#### executeLabelUpdate() + +Method to run label update phase + +#### getArguments() + +Method to get atguments of this class object + +* **Returns:** + The pointer containing address of the Arguments object of this class object +* **Return type:** + pointer([Arguments](#zingg.client.Arguments)) + +#### getMarkedRecords() + +Method to get marked record dataset from the inputpipe + +* **Returns:** + spark dataset containing marked records +* **Return type:** + Dataset + +#### getMarkedRecordsStat(markedRecords, value) + +Method to get No. of records that is marked + +* **Parameters:** + * **markedRecords** (*Dataset*) – spark dataset containing marked records + * **value** (*long*) – flag value to check if markedRecord is initially matched or not +* **Returns:** + The no. of marked records +* **Return type:** + int + +#### getMatchedMarkedRecordsStat() + +Method to get No. of records that are marked and matched + +* **Returns:** + The bo. of matched marked records +* **Return type:** + int + +#### getOptions() + +Method to get client options of this class object + +* **Returns:** + The pointer containing the address of the ClientOptions object of this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### getUnmarkedRecords() + +Method to get unmarked record dataset from the inputpipe + +* **Returns:** + spark dataset containing unmarked records +* **Return type:** + Dataset + +#### getUnmatchedMarkedRecordsStat() + +Method to get No. of records that are marked and unmatched + +* **Returns:** + The no. of unmatched marked records +* **Return type:** + int + +#### getUnsureMarkedRecordsStat() + +Method to get No. of records that are marked and Not Sure if its matched or not + +* **Returns:** + The no. of Not Sure marked records +* **Return type:** + int + +#### init() + +Method to initialize zingg client by reading internal configurations and functions + +#### initAndExecute() + +Method to run both init and execute methods consecutively + +#### processRecordsCli(unmarkedRecords, args) + +Method to get user input on unmarked records + +* **Returns:** + spark dataset containing updated records +* **Return type:** + Dataset + +#### processRecordsCliLabelUpdate(lines, args) + +#### setArguments(args) + +Method to set Arguments + +* **Parameters:** + **args** ([*Arguments*](#zingg.client.Arguments)) – provide arguments for this class object + +#### setOptions(options) + +Method to set atguments of this class object + +* **Parameters:** + **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – provide client options for this class object +* **Returns:** + The pointer containing address of the ClientOptions object of this class object +* **Return type:** + pointer([ClientOptions](#zingg.client.ClientOptions)) + +#### writeLabelledOutput(updatedRecords, args) + +Method to write updated records after user input + +#### writeLabelledOutputFromPandas(candidate_pairs_pd, args) + +Method to write updated records (as pandas df) after user input + +### *class* zingg.client.ZinggWithSpark(args, options) + +Bases: [`Zingg`](#zingg.client.Zingg) + +This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + +* **Parameters:** + * **args** ([*Arguments*](#zingg.client.Arguments)) – arguments for training and matching + * **options** ([*ClientOptions*](#zingg.client.ClientOptions)) – client option for this class object + +### zingg.client.getDfFromDs(data) + +Method to convert spark dataset to dataframe + +* **Parameters:** + **data** (*DataSet*) – provide spark dataset +* **Returns:** + converted spark dataframe +* **Return type:** + DataFrame + +### zingg.client.getGateway() + +### zingg.client.getJVM() + +### zingg.client.getPandasDfFromDs(data) + +Method to convert spark dataset to pandas dataframe + +* **Parameters:** + **data** (*DataSet*) – provide spark dataset +* **Returns:** + converted pandas dataframe +* **Return type:** + DataFrame + +### zingg.client.getSparkContext() + +### zingg.client.getSparkSession() + +### zingg.client.getSqlContext() + +### zingg.client.initClient() + +### zingg.client.initDataBricksConectClient() + +### zingg.client.initSparkClient() + +### zingg.client.parseArguments(argv) + +This method is used for checking mandatory arguments and creating an arguments list from Command line arguments + +* **Parameters:** + **argv** (*List*) – Values that are passed during the calling of the program along with the calling statement. +* **Returns:** + a list containing necessary arguments to run any phase +* **Return type:** + List + + + +## zingg.pipes + +This module is submodule of zingg to work with different types of Pipes. Classes of this module inherit the Pipe class, and use that class to create many different types of pipes. + +### *class* zingg.pipes.BigQueryPipe(name) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with BigQuery pipeline + +* **Parameters:** + **name** (*String*) – name of the pipe. + +#### CREDENTIAL_FILE *= 'credentialsFile'* + +#### TABLE *= 'table'* + +#### TEMP_GCS_BUCKET *= 'temporaryGcsBucket'* + +#### VIEWS_ENABLED *= 'viewsEnabled'* + +#### setCredentialFile(file) + +Method to set Credential file to the pipe + +* **Parameters:** + **file** (*String*) – credential file name + +#### setTable(table) + +Method to set Table to the pipe + +* **Parameters:** + **table** (*String*) – provide table parameter + +#### setTemporaryGcsBucket(bucket) + +Method to set TemporaryGcsBucket to the pipe + +* **Parameters:** + **bucket** (*String*) – provide bucket parameter + +#### setViewsEnabled(isEnabled) + +Method to set if viewsEnabled parameter is Enabled or not + +* **Parameters:** + **isEnabled** (*Bool*) – provide boolean parameter which defines if viewsEnabled option is enable or not + +### *class* zingg.pipes.CsvPipe(name, location=None, schema=None) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Class CsvPipe: used for working with text files which uses a pipe symbol to separate units of text that belong in different columns. + +* **Parameters:** + * **name** (*String*) – name of the pipe. + * **location** (*String* *or* *None*) – (optional) location from where we read data + * **schema** (*Schema* *or* *None*) – (optional) json schema for the pipe + +#### setDelimiter(delimiter) + +This method is used to define delimiter of CsvPipe + +* **Parameters:** + **delimiter** (*String*) – a sequence of one or more characters for specifying the boundary between separate, independent regions in data streams + +#### setHeader(header) + +Method to set header property of pipe + +* **Parameters:** + **header** (*Boolean*) – true if pipe have header, false otherwise + +#### setLocation(location) + +Method to set location of pipe + +* **Parameters:** + **location** (*String*) – location from where we read data + +### *class* zingg.pipes.InMemoryPipe(name, df=None) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with InMemory pipeline + +* **Parameters:** + * **name** (*String*) – name of the pipe + * **df** (*Dataset* *or* *None*) – provide dataset for this pipe (optional) + +#### getDataset() + +Method to get Dataset from pipe + +* **Returns:** + dataset of the pipe in the format of spark dataset +* **Return type:** + Dataset + +#### setDataset(df) + +Method to set DataFrame of the pipe + +* **Parameters:** + **df** (*DataFrame*) – pandas or spark dataframe for the pipe + +### *class* zingg.pipes.Pipe(name, format) + +Bases: `object` + +Pipe class for working with different data-pipelines. Actual pipe def in the args. One pipe can be used at multiple places with different tables, locations, queries, etc + +* **Parameters:** + * **name** (*String*) – name of the pipe + * **format** (*Format*) – formate of pipe e.g. bigquery,InMemory, etc. + +#### addProperty(name, value) + +Method for adding different properties of pipe + +* **Parameters:** + * **name** (*String*) – name of the property + * **value** (*String*) – value you want to set for the property + +#### getPipe() + +Method to get Pipe + +* **Returns:** + pipe parameter values in the format of a list of string +* **Return type:** + [Pipe](#zingg.pipes.Pipe) + +#### setSchema(s) + +Method to set pipe schema value + +* **Parameters:** + **s** (*Schema*) – json schema for the pipe + +#### toString() + +Method to get pipe parameter values + +* **Returns:** + pipe information in list format +* **Return type:** + List[String] + +### *class* zingg.pipes.SnowflakePipe(name) + +Bases: [`Pipe`](#zingg.pipes.Pipe) + +Pipe Class for working with Snowflake pipeline + +* **Parameters:** + **name** (*String*) – name of the pipe + +#### DATABASE *= 'sfDatabase'* + +#### DBTABLE *= 'dbtable'* + +#### PASSWORD *= 'sfPassword'* + +#### SCHEMA *= 'sfSchema'* + +#### URL *= 'sfUrl'* + +#### USER *= 'sfUser'* + +#### WAREHOUSE *= 'sfWarehouse'* + +#### setDatabase(db) + +Method to set Database to the pipe + +* **Parameters:** + **db** (*Database*) – provide Database parameter. + +#### setDbTable(dbtable) + +description + +* **Parameters:** + **dbtable** (*String*) – provide bucket parameter. + +#### setPassword(passwd) + +Method to set Password to the pipe + +* **Parameters:** + **passwd** (*String*) – provide Password parameter. + +#### setSFSchema(schema) + +Method to set Schema to the pipe + +* **Parameters:** + **schema** (*Schema*) – provide schema parameter. + +#### setURL(url) + +Method to set url to the pipe + +* **Parameters:** + **url** (*String*) – provide url for this pipe + +#### setUser(user) + +Method to set User to the pipe + +* **Parameters:** + **user** (*String*) – provide User parameter. + +#### setWarehouse(warehouse) + +Method to set warehouse parameter to the pipe + +* **Parameters:** + **warehouse** (*String*) – provide warehouse parameter. diff --git a/python/docs/_build/doctrees/environment.pickle b/python/docs/_build/doctrees/environment.pickle deleted file mode 100644 index d8e6b105f093f0aa3a3bf2506bdccbef9e112a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533605 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 diff --git a/python/docs/conf.py b/python/docs/conf.py index e491980be..d41a0c10f 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -37,9 +37,12 @@ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', - 'sphinx.ext.coverage' + 'sphinx.ext.coverage', + 'sphinx_markdown_builder' ] + + # Add any paths that contain templates here, relative to this directory. #templates_path = ['_templates'] diff --git a/python/docs/index.rst b/python/docs/index.rst index 63b396d3e..0a34058ae 100644 --- a/python/docs/index.rst +++ b/python/docs/index.rst @@ -76,7 +76,3 @@ Example API Usage zingg.initAndExecute() - -.. meta:: - :description: Zingg Entity Resolution With Python and AI - :keywords: entity resolution, identity resolution, record linkage diff --git a/python/docs/zingg.rst b/python/docs/zingg.rst index bbeef788a..6955d428b 100644 --- a/python/docs/zingg.rst +++ b/python/docs/zingg.rst @@ -24,7 +24,4 @@ Otherwise, :py:func:`zingg.client.Zingg` cannot be executed .. automodule:: zingg.pipes :members: :undoc-members: - :show-inheritance: - - - + :show-inheritance: \ No newline at end of file From 21a0b1a475c12a0883948c906c37579ae94ae1fc Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Fri, 8 Mar 2024 05:32:05 +0000 Subject: [PATCH 14/36] GITBOOK-4: No subject --- docs/running/aws.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/running/aws.md b/docs/running/aws.md index 55801167a..4965bc3df 100644 --- a/docs/running/aws.md +++ b/docs/running/aws.md @@ -1,15 +1,21 @@ --- -layout: default title: Running on AWS parent: Running Zingg on Cloud nav_order: 5 --- -## Running on AWS Elastic Map Reduce -One option is to use the spark-submit option with the Zingg config and phase. +# Running on AWS + +One option is to use the spark-submit option with the Zingg config and phase. Please note that the config.json should be available locally at the driver for Zingg to use it. + +````` +aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-6.2.0 --applications Name=Zingg \ +--ec2-attributes KeyName=myKey --instance-type --instance-count \ +--steps Type=Spark,Name="Zingg",ActionOnFailure=CONTINUE,Args=[--class,zingg.spark.client.SparkClient,,--phase,,--conf,] --use-default-roles```` +````` + +A step by step s provided at the following [link](https://blog.infostrux.com/identity-resolution-with-zingg-ai-snowflake-and-aws-emr-for-the-canadian-football-league-22cf0850ab53). The guide mentions training locally using Zingg docker, but the findTrainingData and label phases can be executed on EMR directly. + - aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-6.2.0 --applications Name=Zingg \ - --ec2-attributes KeyName=myKey --instance-type --instance-count \ - --steps Type=Spark,Name="Zingg",ActionOnFailure=CONTINUE,Args=[--class,zingg.client.Client,,--phase,,--conf,] --use-default-roles```` A second option is to run Zingg Python code in [AWS EMR Notebooks](https://aws.amazon.com/emr/features/notebooks/) From aaa89c23ea74572a3d197837597942adc3c767eb Mon Sep 17 00:00:00 2001 From: SemyonSinchenko Date: Sat, 9 Mar 2024 15:41:15 +0100 Subject: [PATCH 15/36] Make sphinx works A temporary solution, based on the following: - introducing a new env variable ZINGG_DRY_RUN - if the variable is set: + mimic globally used JVM-stuff + otherwise do nothing ++ slightly update ignore and docs/Makefile ++ apply formatting to client.py On branch 762-fix_sphinx_build Changes to be committed: modified: .gitignore modified: python/docs/Makefile new file: python/pyproject.toml modified: python/zingg/client.py --- .gitignore | 7 + python/docs/Makefile | 2 + python/pyproject.toml | 2 + python/zingg/client.py | 450 +++++++++++++++++++++++++---------------- 4 files changed, 286 insertions(+), 175 deletions(-) create mode 100644 python/pyproject.toml diff --git a/.gitignore b/.gitignore index 18b75246c..4a3c2fe76 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,10 @@ python/docs/_build/_doctrees **/python/build/* **/assembly/.classpath **/.DS_Store + +# Python stuff +.env +.venv + +# Sphinx _build +**/_build diff --git a/python/docs/Makefile b/python/docs/Makefile index d4bb2cbb9..9847005dd 100644 --- a/python/docs/Makefile +++ b/python/docs/Makefile @@ -17,4 +17,6 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile + export ZINGG_DRY_RUN=1 @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + unset ZINGG_DRY_RUN diff --git a/python/pyproject.toml b/python/pyproject.toml new file mode 100644 index 000000000..16637529c --- /dev/null +++ b/python/pyproject.toml @@ -0,0 +1,2 @@ +[tool.ruff] +line-length = 150 diff --git a/python/zingg/client.py b/python/zingg/client.py index fd1aeb6c9..a1450beb5 100644 --- a/python/zingg/client.py +++ b/python/zingg/client.py @@ -4,108 +4,183 @@ This module is the main entry point of the Zingg Python API """ -import logging +from __future__ import annotations import argparse -import pandas as pd -from pyspark.sql import DataFrame +import logging +import os +from typing import Any -from pyspark import SparkConf, SparkContext, SQLContext +import pandas as pd +from pyspark import SparkContext, SQLContext +from pyspark.sql import DataFrame, SparkSession -from py4j.java_collections import SetConverter, MapConverter, ListConverter -from pyspark.sql import SparkSession -import os LOG = logging.getLogger("zingg") _spark_ctxt = None _sqlContext = None _spark = None -_zingg_jar = 'zingg-0.4.0.jar' +_zingg_jar = "zingg-0.4.0.jar" + def initSparkClient(): global _spark_ctxt global _sqlContext - global _spark + global _spark _spark_ctxt = SparkContext.getOrCreate() _sqlContext = SQLContext(_spark_ctxt) _spark = SparkSession.builder.getOrCreate() return 1 + def initDataBricksConectClient(): global _spark_ctxt global _sqlContext - global _spark - jar_path = os.getenv('ZINGG_HOME')+'/'+_zingg_jar - _spark = SparkSession.builder.config('spark.jars', jar_path).getOrCreate() + global _spark + jar_path = os.getenv("ZINGG_HOME") + "/" + _zingg_jar + _spark = SparkSession.builder.config("spark.jars", jar_path).getOrCreate() _spark_ctxt = _spark.sparkContext _sqlContext = SQLContext(_spark_ctxt) return 1 + def initClient(): global _spark_ctxt global _sqlContext - global _spark + global _spark if _spark_ctxt is None: - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + DATABRICKS_CONNECT = os.getenv("DATABRICKS_CONNECT") + if DATABRICKS_CONNECT == "Y" or DATABRICKS_CONNECT == "y": return initDataBricksConectClient() else: return initSparkClient() else: return 1 + def getSparkContext(): if _spark_ctxt is None: initClient() return _spark_ctxt + def getSparkSession(): if _spark is None: initClient() return _spark + def getSqlContext(): if _sqlContext is None: initClient() return _sqlContext + def getJVM(): + # TODO: Document this environ variable + is_dry_run = os.environ.get("ZINGG_DRY_RUN", 0) + if is_dry_run: + + class Dummy: + """Dummy class for handling JVM-magick without actual starting of Java""" + + def __init__(self, attrs: dict[str, Any]): + for k, v in attrs.items(): + self.__setattr__(k, v) + + # TODO: replace this magic by Context-like implementation + return Dummy( + { + "org": Dummy({"apache": Dummy({"spark": Dummy({"sql": Dummy({"types": Dummy({"StructType": None})})})})}), + "zingg": Dummy( + { + "common": Dummy( + { + "client": Dummy( + { + "util": Dummy({"ColName": None}), + "MatchType": None, + "ClientOptions": Dummy( + { + "PHASE": None, + "CONF": None, + "LICENSE": None, + "EMAIL": None, + "LOCATION": None, + "REMOTE": None, + "ZINGG_DIR": None, + "MODEL_ID": None, + "COLUMN": None, + } + ), + "ZinggOptions": None, + "pipe": Dummy( + { + "FilePipe": None, + } + ), + } + ), + "core": Dummy({"util": Dummy({"LabelMatchType": None})}), + } + ), + "spark": Dummy( + { + "client": Dummy( + { + "pipe": Dummy( + { + "SparkPipe": None, + } + ) + } + ) + } + ), + } + ), + } + ) return getSparkContext()._jvm + def getGateway(): return getSparkContext()._gateway + ColName = getJVM().zingg.common.client.util.ColName MatchType = getJVM().zingg.common.client.MatchType ClientOptions = getJVM().zingg.common.client.ClientOptions ZinggOptions = getJVM().zingg.common.client.ZinggOptions LabelMatchType = getJVM().zingg.common.core.util.LabelMatchType -UpdateLabelMode = 'Overwrite' +UpdateLabelMode = "Overwrite" + def getDfFromDs(data): - """ Method to convert spark dataset to dataframe + """Method to convert spark dataset to dataframe :param data: provide spark dataset :type data: DataSet :return: converted spark dataframe - :rtype: DataFrame + :rtype: DataFrame """ return DataFrame(data.df(), getSqlContext()) + def getPandasDfFromDs(data): - """ Method to convert spark dataset to pandas dataframe + """Method to convert spark dataset to pandas dataframe :param data: provide spark dataset :type data: DataSet :return: converted pandas dataframe - :rtype: DataFrame + :rtype: DataFrame """ df = getDfFromDs(data) return pd.DataFrame(df.collect(), columns=df.columns) class Zingg: - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + """This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. :param args: arguments for training and matching :type args: Arguments @@ -118,25 +193,25 @@ def __init__(self, args, options): self.inpArgs = args self.inpOptions = options self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions()) - + def init(self): - """ Method to initialize zingg client by reading internal configurations and functions """ + """Method to initialize zingg client by reading internal configurations and functions""" self.client.init() def execute(self): - """ Method to execute this class object """ + """Method to execute this class object""" self.client.execute() - + def initAndExecute(self): - """ Method to run both init and execute methods consecutively """ + """Method to run both init and execute methods consecutively""" self.client.init() - DATABRICKS_CONNECT = os.getenv('DATABRICKS_CONNECT') - if DATABRICKS_CONNECT=='Y' or DATABRICKS_CONNECT=='y': + DATABRICKS_CONNECT = os.getenv("DATABRICKS_CONNECT") + if DATABRICKS_CONNECT == "Y" or DATABRICKS_CONNECT == "y": options = self.client.getOptions() inpPhase = options.get(ClientOptions.PHASE).getValue() - if (inpPhase==ZinggOptions.LABEL.getValue()): + if inpPhase == ZinggOptions.LABEL.getValue(): self.executeLabel() - elif (inpPhase==ZinggOptions.UPDATE_LABEL.getValue()): + elif inpPhase == ZinggOptions.UPDATE_LABEL.getValue(): self.executeLabelUpdate() else: self.client.execute() @@ -144,43 +219,48 @@ def initAndExecute(self): self.client.execute() def executeLabel(self): - """ Method to run label phase """ + """Method to run label phase""" self.client.getTrainingDataModel().setMarkedRecordsStat(self.getMarkedRecords()) unmarkedRecords = self.getUnmarkedRecords() - updatedRecords = self.processRecordsCli(unmarkedRecords,self.inpArgs) - self.writeLabelledOutput(updatedRecords,self.inpArgs) + updatedRecords = self.processRecordsCli(unmarkedRecords, self.inpArgs) + self.writeLabelledOutput(updatedRecords, self.inpArgs) def executeLabelUpdate(self): - """ Method to run label update phase """ - self.processRecordsCliLabelUpdate(self.getMarkedRecords(),self.inpArgs) + """Method to run label update phase""" + self.processRecordsCliLabelUpdate(self.getMarkedRecords(), self.inpArgs) def getMarkedRecords(self): - """ Method to get marked record dataset from the inputpipe + """Method to get marked record dataset from the inputpipe :return: spark dataset containing marked records - :rtype: Dataset + :rtype: Dataset """ return self.client.getMarkedRecords() def getUnmarkedRecords(self): - """ Method to get unmarked record dataset from the inputpipe + """Method to get unmarked record dataset from the inputpipe :return: spark dataset containing unmarked records - :rtype: Dataset + :rtype: Dataset """ return self.client.getUnmarkedRecords() - def processRecordsCli(self,unmarkedRecords,args): - """ Method to get user input on unmarked records + def processRecordsCli(self, unmarkedRecords, args): + """Method to get user input on unmarked records :return: spark dataset containing updated records - :rtype: Dataset + :rtype: Dataset """ trainingDataModel = self.client.getTrainingDataModel() labelDataViewHelper = self.client.getLabelDataViewHelper() if unmarkedRecords is not None and unmarkedRecords.count() > 0: - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + labelDataViewHelper.printMarkedRecordsStat( + trainingDataModel.getPositivePairsCount(), + trainingDataModel.getNegativePairsCount(), + trainingDataModel.getNotSurePairsCount(), + trainingDataModel.getTotalCount(), + ) unmarkedRecords = unmarkedRecords.cache() displayCols = labelDataViewHelper.getDisplayColumns(unmarkedRecords, args.getArgs()) clusterIdZFrame = labelDataViewHelper.getClusterIdsFrame(unmarkedRecords) @@ -195,37 +275,53 @@ def processRecordsCli(self,unmarkedRecords,args): msg1 = labelDataViewHelper.getMsg1(index, totalPairs) msg2 = labelDataViewHelper.getMsg2(prediction, score) - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), msg1, msg2) + labelDataViewHelper.displayRecords( + labelDataViewHelper.getDSUtil().select(currentPair, displayCols), + msg1, + msg2, + ) selected_option = input() - while int(selected_option) not in [0,1,2,9]: - print('Please enter valid option') + while int(selected_option) not in [0, 1, 2, 9]: + print("Please enter valid option") selected_option = input("Enter choice: ") if int(selected_option) == 9: print("User has quit in the middle. Updating the records.") - break + break trainingDataModel.updateLabellerStat(int(selected_option), 1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) + labelDataViewHelper.printMarkedRecordsStat( + trainingDataModel.getPositivePairsCount(), + trainingDataModel.getNegativePairsCount(), + trainingDataModel.getNotSurePairsCount(), + trainingDataModel.getTotalCount(), + ) + updatedRecords = trainingDataModel.updateRecords(int(selected_option), currentPair, updatedRecords) print("Processing finished.") return updatedRecords else: - print("It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler.") + print( + "It seems there are no unmarked records at this moment. Please run findTrainingData job to build some pairs to be labelled and then run this labeler." + ) return None - - def processRecordsCliLabelUpdate(self,lines,args): + + def processRecordsCliLabelUpdate(self, lines, args): trainingDataModel = self.client.getTrainingDataModel() labelDataViewHelper = self.client.getLabelDataViewHelper() - if (lines is not None and lines.count() > 0): + if lines is not None and lines.count() > 0: trainingDataModel.setMarkedRecordsStat(lines) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) + labelDataViewHelper.printMarkedRecordsStat( + trainingDataModel.getPositivePairsCount(), + trainingDataModel.getNegativePairsCount(), + trainingDataModel.getNotSurePairsCount(), + trainingDataModel.getTotalCount(), + ) displayCols = labelDataViewHelper.getDSUtil().getFieldDefColumns(lines, args.getArgs(), False, args.getArgs().getShowConcise()) updatedRecords = None recordsToUpdate = lines selectedOption = -1 - while (str(selectedOption) != '9'): + while str(selectedOption) != "9": cluster_id = input("\n\tPlease enter the cluster id (or 9 to exit): ") - if str(cluster_id) == '9': + if str(cluster_id) == "9": print("User has exit in the middle. Updating the records.") break currentPair = lines.filter(lines.equalTo(ColName.CLUSTER_COLUMN, cluster_id)) @@ -233,23 +329,32 @@ def processRecordsCliLabelUpdate(self,lines,args): print("\tInvalid cluster id. Enter '9' to exit") continue - matchFlag = currentPair.getAsInt(currentPair.head(),ColName.MATCH_FLAG_COL) - preMsg = "\n\tThe record pairs belonging to the input cluster id "+cluster_id+" are:" - postMsg = "\tThe above pair is labeled as "+str(matchFlag)+"\n" - labelDataViewHelper.displayRecords(labelDataViewHelper.getDSUtil().select(currentPair, displayCols), preMsg, postMsg) + matchFlag = currentPair.getAsInt(currentPair.head(), ColName.MATCH_FLAG_COL) + preMsg = "\n\tThe record pairs belonging to the input cluster id " + cluster_id + " are:" + postMsg = "\tThe above pair is labeled as " + str(matchFlag) + "\n" + labelDataViewHelper.displayRecords( + labelDataViewHelper.getDSUtil().select(currentPair, displayCols), + preMsg, + postMsg, + ) selectedOption = input() trainingDataModel.updateLabellerStat(int(selectedOption), 1) trainingDataModel.updateLabellerStat(matchFlag, -1) - labelDataViewHelper.printMarkedRecordsStat(trainingDataModel.getPositivePairsCount(),trainingDataModel.getNegativePairsCount(),trainingDataModel.getNotSurePairsCount(),trainingDataModel.getTotalCount()) - - if (str(selectedOption) == '9'): + labelDataViewHelper.printMarkedRecordsStat( + trainingDataModel.getPositivePairsCount(), + trainingDataModel.getNegativePairsCount(), + trainingDataModel.getNotSurePairsCount(), + trainingDataModel.getTotalCount(), + ) + + if str(selectedOption) == "9": print("User has quit in the middle. Updating the records.") break - recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + recordsToUpdate = recordsToUpdate.filter(recordsToUpdate.notEqual(ColName.CLUSTER_COLUMN, cluster_id)) - if (updatedRecords is not None): - updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN,cluster_id)) + if updatedRecords is not None: + updatedRecords = updatedRecords.filter(updatedRecords.notEqual(ColName.CLUSTER_COLUMN, cluster_id)) updatedRecords = trainingDataModel.updateRecords(int(selectedOption), currentPair, updatedRecords) @@ -259,32 +364,32 @@ def processRecordsCliLabelUpdate(self,lines,args): outPipe = trainingDataModel.getOutputPipe(args.getArgs()) outPipe.setMode(UpdateLabelMode) - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs(),outPipe) + trainingDataModel.writeLabelledOutput(updatedRecords, args.getArgs(), outPipe) print("Processing finished.") return updatedRecords else: print("There is no marked record for updating. Please run findTrainingData/label jobs to generate training data.") return None - - def writeLabelledOutput(self,updatedRecords,args): - """ Method to write updated records after user input - """ + def writeLabelledOutput(self, updatedRecords, args): + """Method to write updated records after user input""" trainingDataModel = self.client.getTrainingDataModel() if updatedRecords is not None: - trainingDataModel.writeLabelledOutput(updatedRecords,args.getArgs()) + trainingDataModel.writeLabelledOutput(updatedRecords, args.getArgs()) - def writeLabelledOutputFromPandas(self,candidate_pairs_pd,args): - """ Method to write updated records (as pandas df) after user input - """ + def writeLabelledOutputFromPandas(self, candidate_pairs_pd, args): + """Method to write updated records (as pandas df) after user input""" markedRecordsAsDS = (getSparkSession().createDataFrame(candidate_pairs_pd))._jdf # pands df gives z_isMatch as long so needs to be cast - markedRecordsAsDS = markedRecordsAsDS.withColumn(ColName.MATCH_FLAG_COL,markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int")) + markedRecordsAsDS = markedRecordsAsDS.withColumn( + ColName.MATCH_FLAG_COL, + markedRecordsAsDS.col(ColName.MATCH_FLAG_COL).cast("int"), + ) updatedRecords = getJVM().zingg.spark.client.SparkFrame(markedRecordsAsDS) - self.writeLabelledOutput(updatedRecords,args) + self.writeLabelledOutput(updatedRecords, args) def setArguments(self, args): - """ Method to set Arguments + """Method to set Arguments :param args: provide arguments for this class object :type args: Arguments @@ -292,7 +397,7 @@ def setArguments(self, args): self.client.setArguments() def getArguments(self): - """ Method to get atguments of this class object + """Method to get atguments of this class object :return: The pointer containing address of the Arguments object of this class object :rtype: pointer(Arguments) @@ -300,7 +405,7 @@ def getArguments(self): return self.client.getArguments() def getOptions(self): - """ Method to get client options of this class object + """Method to get client options of this class object :return: The pointer containing the address of the ClientOptions object of this class object :rtype: pointer(ClientOptions) @@ -308,56 +413,55 @@ def getOptions(self): return self.client.getOptions() def setOptions(self, options): - """ Method to set atguments of this class object + """Method to set atguments of this class object :param options: provide client options for this class object :type options: ClientOptions :return: The pointer containing address of the ClientOptions object of this class object - :rtype: pointer(ClientOptions) + :rtype: pointer(ClientOptions) """ return self.client.setOptions(options) def getMarkedRecordsStat(self, markedRecords, value): - """ Method to get No. of records that is marked + """Method to get No. of records that is marked :param markedRecords: spark dataset containing marked records :type markedRecords: Dataset :param value: flag value to check if markedRecord is initially matched or not :type value: long :return: The no. of marked records - :rtype: int + :rtype: int """ return self.client.getMarkedRecordsStat(markedRecords, value) def getMatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and matched + """Method to get No. of records that are marked and matched :return: The bo. of matched marked records - :rtype: int + :rtype: int """ return self.client.getMatchedMarkedRecordsStat(self.getMarkedRecords()) def getUnmatchedMarkedRecordsStat(self): - """ Method to get No. of records that are marked and unmatched + """Method to get No. of records that are marked and unmatched :return: The no. of unmatched marked records - :rtype: int + :rtype: int """ return self.client.getUnmatchedMarkedRecordsStat(self.getMarkedRecords()) def getUnsureMarkedRecordsStat(self): - """ Method to get No. of records that are marked and Not Sure if its matched or not + """Method to get No. of records that are marked and Not Sure if its matched or not :return: The no. of Not Sure marked records - :rtype: int + :rtype: int """ return self.client.getUnsureMarkedRecordsStat(self.getMarkedRecords()) - class ZinggWithSpark(Zingg): - """ This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. + """This class is the main point of interface with the Zingg matching product. Construct a client to Zingg using provided arguments and spark master. If running locally, set the master to local. :param args: arguments for training and matching :type args: Arguments @@ -368,9 +472,9 @@ class ZinggWithSpark(Zingg): def __init__(self, args, options): self.client = getJVM().zingg.spark.client.SparkClient(args.getArgs(), options.getClientOptions(), getSparkSession()._jsparkSession) - + class Arguments: - """ This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. + """This class helps supply match arguments to Zingg. There are 3 basic steps in any match process. :Defining: specifying information about data location, fields, and our notion of similarity. :training: making Zingg learn the matching rules @@ -381,7 +485,7 @@ def __init__(self): self.args = getJVM().zingg.common.client.Arguments() def setFieldDefinition(self, fieldDef): - """ Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client + """Method convert python objects to java FieldDefinition objects and set the field definitions associated with this client :param fieldDef: python FieldDefinition object list :type fieldDef: List(FieldDefinition) @@ -392,16 +496,16 @@ def setFieldDefinition(self, fieldDef): self.args.setFieldDefinition(javaFieldDef) def getArgs(self): - """ Method to get pointer address of this class + """Method to get pointer address of this class :return: The pointer containing the address of this class object :rtype: pointer(Arguments) - + """ return self.args def setArgs(self, argumentsObj): - """ Method to set this class object + """Method to set this class object :param argumentsObj: Argument object to set this object :type argumentsObj: pointer(Arguments) @@ -409,7 +513,7 @@ def setArgs(self, argumentsObj): self.args = argumentsObj def setData(self, *pipes): - """ Method to set the file path of the file to be matched. + """Method to set the file path of the file to be matched. :param pipes: input data pipes separated by comma e.g. (pipe1,pipe2,..) :type pipes: Pipe[] @@ -420,7 +524,7 @@ def setData(self, *pipes): self.args.setData(dataPipe) def setOutput(self, *pipes): - """ Method to set the output directory where the match result will be saved + """Method to set the output directory where the match result will be saved :param pipes: output data pipes separated by comma e.g. (pipe1,pipe2,..) :type pipes: Pipe[] @@ -429,33 +533,33 @@ def setOutput(self, *pipes): for idx, pipe in enumerate(pipes): outputPipe[idx] = pipe.getPipe() self.args.setOutput(outputPipe) - + def getZinggBaseModelDir(self): return self.args.getZinggBaseModelDir() def getZinggModelDir(self): return self.args.getZinggModelDir() - + def getZinggBaseTrainingDataDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData + """Method to get the location of the folder where Zingg + saves the training data found by findTrainingData """ return self.args.getZinggBaseTrainingDataDir() def getZinggTrainingDataUnmarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the training data found by findTrainingData + """Method to get the location of the folder where Zingg + saves the training data found by findTrainingData """ return self.args.getZinggTrainingDataUnmarkedDir() - + def getZinggTrainingDataMarkedDir(self): - """ Method to get the location of the folder where Zingg - saves the marked training data labeled by the user + """Method to get the location of the folder where Zingg + saves the marked training data labeled by the user """ return self.args.getZinggTrainingDataMarkedDir() - + def setTrainingSamples(self, *pipes): - """ Method to set existing training samples to be matched. + """Method to set existing training samples to be matched. :param pipes: input training data pipes separated by comma e.g. (pipe1,pipe2,..) :type pipes: Pipe[] @@ -466,19 +570,18 @@ def setTrainingSamples(self, *pipes): self.args.setTrainingSamples(dataPipe) def setModelId(self, id): - """ Method to set the output directory where the match output will be saved + """Method to set the output directory where the match output will be saved - :param id: model id value + :param id: model id value :type id: String """ self.args.setModelId(id) - + def getModelId(self): return self.args.getModelId() - def setZinggDir(self, f): - """ Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. + """Method to set the location for Zingg to save its internal computations and models. Please set it to a place where the program has to write access. :param f: Zingg directory name of the models :type f: String @@ -486,7 +589,7 @@ def setZinggDir(self, f): self.args.setZinggDir(f) def setNumPartitions(self, numPartitions): - """ Method to set NumPartitions parameter value + """Method to set NumPartitions parameter value Sample size to use for seeding labeled data We don't want to run over all the data, as we want a quick way to seed some labeled data that we can manually edit :param numPartitions: number of partitions for given data pipes @@ -495,7 +598,7 @@ def setNumPartitions(self, numPartitions): self.args.setNumPartitions(numPartitions) def setLabelDataSampleSize(self, labelDataSampleSize): - """ Method to set labelDataSampleSize parameter value + """Method to set labelDataSampleSize parameter value Set the fraction of data to be used from the complete data set to be used for seeding the labeled data Labelling is costly and we want a fast approximate way of looking at a small sample of the records and identifying expected matches and nonmatches :param labelDataSampleSize: value between 0.0 and 1.0 denoting portion of dataset to use in generating seed samples @@ -504,7 +607,7 @@ def setLabelDataSampleSize(self, labelDataSampleSize): self.args.setLabelDataSampleSize(labelDataSampleSize) def writeArgumentsToJSON(self, fileName): - """ Method to write JSON file from the object of this class + """Method to write JSON file from the object of this class :param fileName: The CONF parameter value of ClientOption object or file address of json file :type fileName: String @@ -512,16 +615,16 @@ def writeArgumentsToJSON(self, fileName): getJVM().zingg.common.client.ArgumentsUtil().writeArgumentsToJSON(fileName, self.args) def setStopWordsCutoff(self, stopWordsCutoff): - """ Method to set stopWordsCutoff parameter value + """Method to set stopWordsCutoff parameter value By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file :type stopWordsCutoff: float """ self.args.setStopWordsCutoff(stopWordsCutoff) - + def setColumn(self, column): - """ Method to set stopWordsCutoff parameter value + """Method to set stopWordsCutoff parameter value By default, Zingg extracts 10% of the high frequency unique words from a dataset. If user wants different selection, they should set up StopWordsCutoff property :param stopWordsCutoff: The stop words cutoff parameter value of ClientOption object or file address of json file @@ -531,8 +634,8 @@ def setColumn(self, column): @staticmethod def createArgumentsFromJSON(fileName, phase): - """ Method to create an object of this class from the JSON file and phase parameter value. - + """Method to create an object of this class from the JSON file and phase parameter value. + :param fileName: The CONF parameter value of ClientOption object :type fileName: String :param phase: The PHASE parameter value of ClientOption object @@ -543,11 +646,10 @@ def createArgumentsFromJSON(fileName, phase): obj = Arguments() obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSON(fileName, phase) return obj - - + def writeArgumentsToJSONString(self): - """ Method to create an object of this class from the JSON file and phase parameter value. - + """Method to create an object of this class from the JSON file and phase parameter value. + :param fileName: The CONF parameter value of ClientOption object :type fileName: String :param phase: The PHASE parameter value of ClientOption object @@ -556,30 +658,27 @@ def writeArgumentsToJSONString(self): :rtype: pointer(Arguments) """ return getJVM().zingg.common.client.ArgumentsUtil().writeArgumentstoJSONString(self.args) - + @staticmethod def createArgumentsFromJSONString(jsonArgs, phase): obj = Arguments() obj.args = getJVM().zingg.common.client.ArgumentsUtil().createArgumentsFromJSONString(jsonArgs, phase) return obj - - + def copyArgs(self, phase): argsString = self.writeArgumentsToJSONString() return self.createArgumentsFromJSONString(argsString, phase) - - - class ClientOptions: - """ Class that contains Client options for Zingg object + """Class that contains Client options for Zingg object :param phase: trainMatch, train, match, link, findAndLabel, findTrainingData, recommend etc :type phase: String :param args: Parse a list of Zingg command line options parameter values e.g. "--location" etc. optional argument for initializing this class. :type args: List(String) or None """ - PHASE = getJVM().zingg.common.client.ClientOptions.PHASE + + PHASE = getJVM().zingg.common.client.ClientOptions.PHASE """:PHASE: phase parameter for this class""" CONF = getJVM().zingg.common.client.ClientOptions.CONF """:CONF: conf parameter for this class""" @@ -600,28 +699,27 @@ class ClientOptions: def __init__(self, argsSent=None): print(argsSent) - if(argsSent == None): + if argsSent == None: args = [] else: args = argsSent.copy() - if (not (self.PHASE in args)): + if self.PHASE not in args: args.append(self.PHASE) args.append("peekModel") - if (not (self.LICENSE in args)): + if self.LICENSE not in args: args.append(self.LICENSE) args.append("zinggLic.txt") - if (not (self.EMAIL in args)): + if self.EMAIL not in args: args.append(self.EMAIL) args.append("zingg@zingg.ai") - if (not (self.CONF in args)): + if self.CONF not in args: args.append(self.CONF) args.append("dummyConf.json") - print("arguments for client options are ", args) + print("arguments for client options are ", args) self.co = getJVM().zingg.common.client.ClientOptions(args) - - + def getClientOptions(self): - """ Method to get pointer address of this class + """Method to get pointer address of this class :return: The pointer containing address of the this class object :rtype: pointer(ClientOptions) @@ -629,17 +727,17 @@ def getClientOptions(self): return self.co def getOptionValue(self, option): - """ Method to get value for the key option + """Method to get value for the key option :param option: key to geting the value :type option: String - :return: The value which is mapped for given key - :rtype: String + :return: The value which is mapped for given key + :rtype: String """ return self.co.getOptionValue(option) def setOptionValue(self, option, value): - """ Method to map option key to the given value + """Method to map option key to the given value :param option: key that is mapped with value :type option: String @@ -649,53 +747,53 @@ def setOptionValue(self, option, value): self.co.get(option).setValue(value) def getPhase(self): - """ Method to get PHASE value + """Method to get PHASE value :return: The PHASE parameter value - :rtype: String + :rtype: String """ return self.co.get(ClientOptions.PHASE).getValue() def setPhase(self, newValue): - """ Method to set PHASE value + """Method to set PHASE value :param newValue: name of the phase :type newValue: String :return: The pointer containing address of the this class object after seting phase - :rtype: pointer(ClientOptions) + :rtype: pointer(ClientOptions) """ self.co.get(ClientOptions.PHASE).setValue(newValue) def getConf(self): - """ Method to get CONF value + """Method to get CONF value :return: The CONF parameter value - :rtype: String + :rtype: String """ return self.co.get(ClientOptions.CONF).getValue() def hasLocation(self): - """ Method to check if this class has LOCATION parameter set as None or not + """Method to check if this class has LOCATION parameter set as None or not :return: The boolean value if LOCATION parameter is present or not - :rtype: Bool + :rtype: Bool """ - if(self.co.get(ClientOptions.LOCATION)==None): + if self.co.get(ClientOptions.LOCATION) == None: return False else: return True def getLocation(self): - """ Method to get LOCATION value + """Method to get LOCATION value :return: The LOCATION parameter value - :rtype: String + :rtype: String """ return self.co.get(ClientOptions.LOCATION).getValue() class FieldDefinition: - """ This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. + """This class defines each field that we use in matching We can use this to configure the properties of each field we use for matching in Zingg. :param name: name of the field :type name: String @@ -711,9 +809,9 @@ def __init__(self, name, dataType, *matchType): self.fd.setDataType(self.stringify(dataType)) self.fd.setMatchType(matchType) self.fd.setFields(name) - + def setStopWords(self, stopWords): - """ Method to add stopwords to this class object + """Method to add stopwords to this class object :param stopWords: The stop Words containing csv file's location :type stopWords: String @@ -721,7 +819,7 @@ def setStopWords(self, stopWords): self.fd.setStopWords(stopWords) def getFieldDefinition(self): - """ Method to get pointer address of this class + """Method to get pointer address of this class :return: The pointer containing the address of this class object :rtype: pointer(FieldDefinition) @@ -730,31 +828,33 @@ def getFieldDefinition(self): # should be stringify'ed before it is set in fd object def stringify(self, str): - """ Method to stringify'ed the dataType before it is set in FieldDefinition object - + """Method to stringify'ed the dataType before it is set in FieldDefinition object + :param str: dataType of the FieldDefinition :type str: String :return: The stringify'ed value of the dataType :rtype: String """ - + return str - + def parseArguments(argv): - """ This method is used for checking mandatory arguments and creating an arguments list from Command line arguments + """This method is used for checking mandatory arguments and creating an arguments list from Command line arguments :param argv: Values that are passed during the calling of the program along with the calling statement. :type argv: List :return: a list containing necessary arguments to run any phase :rtype: List """ - parser = argparse.ArgumentParser(description='Zingg\'s python APIs') - mandatoryOptions = parser.add_argument_group('mandatory arguments') - mandatoryOptions.add_argument('--phase', required=True, - help='python phase e.g. assessModel') - mandatoryOptions.add_argument('--conf', required=True, - help='JSON configuration with data input output locations and field definitions') + parser = argparse.ArgumentParser(description="Zingg's python APIs") + mandatoryOptions = parser.add_argument_group("mandatory arguments") + mandatoryOptions.add_argument("--phase", required=True, help="python phase e.g. assessModel") + mandatoryOptions.add_argument( + "--conf", + required=True, + help="JSON configuration with data input output locations and field definitions", + ) args, remaining_args = parser.parse_known_args(argv) LOG.debug("args: ", args) From c832d1d8a3461ef2c71860bb197a95e7ed354f54 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Mon, 11 Mar 2024 16:55:29 +0530 Subject: [PATCH 16/36] added html theme to build docs in readthedocs --- python/docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/docs/conf.py b/python/docs/conf.py index d41a0c10f..7c79b872d 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -38,7 +38,7 @@ 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', 'sphinx.ext.coverage', - 'sphinx_markdown_builder' + 'sphinx_html_builder' ] From 365bcf6a5680a8d2c719bd3add0749313cee56b8 Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Mon, 11 Mar 2024 16:58:24 +0530 Subject: [PATCH 17/36] removed html builder extension --- python/docs/conf.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/docs/conf.py b/python/docs/conf.py index 7c79b872d..e1b2e255d 100644 --- a/python/docs/conf.py +++ b/python/docs/conf.py @@ -37,8 +37,7 @@ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', - 'sphinx.ext.coverage', - 'sphinx_html_builder' + 'sphinx.ext.coverage' ] From 4d63c0b3f8fe87f4a2edb2598866a6a103b40f1a Mon Sep 17 00:00:00 2001 From: Sonal Date: Mon, 3 Jun 2024 09:46:20 +0530 Subject: [PATCH 18/36] Update faq.md with cdp and mdm information --- docs/faq.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 1663a624f..9f30aaa9e 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -22,11 +22,13 @@ Very much! Zingg uses Spark and ML under the hood so that you don't have to worr ## Is Zingg an MDM? -No, Zingg is not an MDM. An MDM is the system of record, it has its own store where linked and mastered records are saved. Zingg enables MDM but is not a system of record. You can build an MDM in a data store of your choice using Zingg however. +An MDM is the system of record, it has its own store where linked and mastered records are saved. Zingg Community Version is not a complete MDM but it can be sed to build an MDM. You can build an MDM in a data store of your choice using Zingg Community Version. Zingg Enterprise Version is a lakehouse/warehouse native MDM. ## Is Zingg a CDP ? -No, Zingg is not a CDP, as it does not stream events or customer data through different channels. Zingg does overlap with the CDPs identity resolution and building customer 360 views. Here is an [article](https://hightouch.com/blog/warehouse-identity-resolution/) describing how you can build your own CDP on the warehouse with Zingg. +No, Zingg is not a CDP, as it does not stream events or customer data through different channels. However, if you want to base your customer platform off your warehouse or datalake, Zing gis a great fit. You can leverage existing ETL, observability and other tools which are part of your data stack and use Zingg for identity. +Zingg Comminity Version can be used to build a composable CDP by identity resolution natively on the warehouse and datalake and building customer 360 views. Zingg's identity resolution is far more powerful than what is offered by any out of the box CDP. +Zingg Enterprise's probabilistic and deterministic matching take this further beyond. Here is an [article](https://hightouch.com/blog/warehouse-identity-resolution/) describing how you can build your own CDP on the warehouse with Zingg. ## I can do Entity Resolution using a graph database like TigerGraph/Neo4J, why do I need Zingg ? From 201d9c17bbf9f2ef13faae85069dd5236693b7df Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Thu, 20 Jun 2024 15:35:36 +0530 Subject: [PATCH 19/36] docs for enterprise features det match and run incr --- docs/deterministicMatching.md | 29 +++++++++++++++++++++++++++++ docs/runIncremental.md | 24 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 docs/deterministicMatching.md create mode 100644 docs/runIncremental.md diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md new file mode 100644 index 000000000..293d4dde7 --- /dev/null +++ b/docs/deterministicMatching.md @@ -0,0 +1,29 @@ +# Deterministic Matching + +Zingg enterprise offers a new feature of deterministic matching along side already available probabilistic matching. In the entity resolution space, we refer to exact matching on attributes as deterministic matching. When used together this allows cases where user has given some sort of unique id in some rows to match accurately together due to deterministic matching and they will than match with others rows where id is missing via probabilistic matching. + +Example for configuring it in json: + +"deterministicMatching":[ + { + "matchCondition":[ + { + "fieldName":"fname" + }, + { + "fieldName":"stNo" + }, + { + "fieldName":"add1" + } + ] + } +], + + +Python code example: + +dm1 = DeterministicMatching('fname','stNo','add1') +dm2 = DeterministicMatching('fname','dob','ssn') +dm3 = DeterministicMatching('fname','stNo','lname') +args.setDeterministicMatchingCondition(dm1,dm2,dm3) diff --git a/docs/runIncremental.md b/docs/runIncremental.md new file mode 100644 index 000000000..aedaa8d41 --- /dev/null +++ b/docs/runIncremental.md @@ -0,0 +1,24 @@ +# Run Incremental load for newer and incremental datasets + +Zingg enterprise offers a new feature of running incremental load on already matched dataset. As new data arrives there is no need to run the match phase on entire data. Instead we can reuse the models created earlier on newer and incremental datasets. This will assign clusters on new data sets as well as update existing dataset and reassign clusters if needed. + +You can invoke the incremental phase by invoking\ +`./scripts/zingg.sh --phase runIncremental --conf ` + +Example incrementalConf.json: + +{ + "config" : "", + "incrementalData": +} + +runIncremental can also be triggerred using python by invoking\ +`./scripts/zingg.sh --run examples/FebrlExample.py` + +Python code example: + +incrArgs = IncrementalArguments() +incrArgs.setParentArgs(args) +incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) +incrArgs.setIncrementalData(incrPipe) + From 1019a4c325e4626fed9887cc6e16377a3c2a44f4 Mon Sep 17 00:00:00 2001 From: Sonal Date: Thu, 20 Jun 2024 15:47:53 +0530 Subject: [PATCH 20/36] Update deterministicMatching.md --- docs/deterministicMatching.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index 293d4dde7..9ffb2b774 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -1,6 +1,6 @@ -# Deterministic Matching +# Deterministic Matching - Zingg Enterprise Only Feature -Zingg enterprise offers a new feature of deterministic matching along side already available probabilistic matching. In the entity resolution space, we refer to exact matching on attributes as deterministic matching. When used together this allows cases where user has given some sort of unique id in some rows to match accurately together due to deterministic matching and they will than match with others rows where id is missing via probabilistic matching. +Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministcally or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. Example for configuring it in json: From 64363a4b8b5aee3fabbb26e43466b08576d168d4 Mon Sep 17 00:00:00 2001 From: Sonal Date: Thu, 20 Jun 2024 15:56:02 +0530 Subject: [PATCH 21/36] Update runIncremental.md --- docs/runIncremental.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index aedaa8d41..3892f4558 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,8 +1,8 @@ -# Run Incremental load for newer and incremental datasets +# Run Incremental Loads For New and Updated Records - Zingg Enterprise Only Feature -Zingg enterprise offers a new feature of running incremental load on already matched dataset. As new data arrives there is no need to run the match phase on entire data. Instead we can reuse the models created earlier on newer and incremental datasets. This will assign clusters on new data sets as well as update existing dataset and reassign clusters if needed. +Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. -You can invoke the incremental phase by invoking\ +The incremental phase is run as follows\ `./scripts/zingg.sh --phase runIncremental --conf ` Example incrementalConf.json: From 9a1a3f9f17ac38937f2474831243d0380162fbe0 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Thu, 20 Jun 2024 16:05:11 +0530 Subject: [PATCH 22/36] more examples --- docs/deterministicMatching.md | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index 9ffb2b774..b301728ef 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -4,26 +4,23 @@ Zingg Enterprise allows the ability to plug rule based deterministic matching al Example for configuring it in json: -"deterministicMatching":[ - { - "matchCondition":[ - { - "fieldName":"fname" - }, - { - "fieldName":"stNo" - }, - { - "fieldName":"add1" - } - ] - } -], + "deterministicMatching":[ + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"stNo"},{"fieldName":"add1"}] + }, + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"dob"},{"fieldName":"ssn"}] + }, + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"email"}] + } + ] + Python code example: -dm1 = DeterministicMatching('fname','stNo','add1') -dm2 = DeterministicMatching('fname','dob','ssn') -dm3 = DeterministicMatching('fname','stNo','lname') -args.setDeterministicMatchingCondition(dm1,dm2,dm3) +detMatchNameAdd = DeterministicMatching('fname','stNo','add1') +detMatchNameDobSsn = DeterministicMatching('fname','dob','ssn') +detMatchNameEmail = DeterministicMatching('fname','email') +args.setDeterministicMatchingCondition(detMatchNameAdd,detMatchNameDobSsn,detMatchNameEmail) From 9d27399e62a9787821a90fa599afeec1fab2bbc6 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Thu, 20 Jun 2024 16:29:50 +0530 Subject: [PATCH 23/36] detailed example for incremental --- docs/runIncremental.md | 65 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 3892f4558..95c594792 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -8,8 +8,18 @@ The incremental phase is run as follows\ Example incrementalConf.json: { - "config" : "", - "incrementalData": + "config" : "config.json", + "incrementalData": [{ + "name":"customers_incr", + "format":"csv", + "props": { + "location": "test-incr.csv", + "delimiter": ",", + "header":false + }, + "schema": "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, state string, areacode string, dob string, ssn string" + } + ] } runIncremental can also be triggerred using python by invoking\ @@ -17,8 +27,59 @@ runIncremental can also be triggerred using python by invoking\ Python code example: +from zingg.client import * +from zingg.pipes import * +from zinggEC.enterprise.common.ApproverArguments import * +from zinggEC.enterprise.common.IncrementalArguments import * +from zinggEC.enterprise.common.epipes import * +from zinggEC.enterprise.common.EArguments import * +from zinggEC.enterprise.common.EFieldDefinition import EFieldDefinition +from zinggES.enterprise.spark.ESparkClient import EZingg +import os + +#build the arguments for zingg +args = EArguments() +#set field definitions +recId = EFieldDefinition("recId", "string", MatchType.DONT_USE) +recId.setPrimaryKey(True) +fname = EFieldDefinition("fname", "string", MatchType.FUZZY) +lname = EFieldDefinition("lname", "string", MatchType.FUZZY) +stNo = EFieldDefinition("stNo", "string", MatchType.FUZZY) +add1 = EFieldDefinition("add1","string", MatchType.FUZZY) +add2 = EFieldDefinition("add2", "string", MatchType.FUZZY) +city = EFieldDefinition("city", "string", MatchType.FUZZY) +areacode = EFieldDefinition("areacode", "string", MatchType.FUZZY) +state = EFieldDefinition("state", "string", MatchType.FUZZY) +dob = EFieldDefinition("dob", "string", MatchType.FUZZY) +ssn = EFieldDefinition("ssn", "string", MatchType.FUZZY) + +fieldDefs = [recId, fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] +args.setFieldDefinition(fieldDefs) +#set the modelid and the zingg dir +args.setModelId("100") +args.setZinggDir("/tmp/models") +args.setNumPartitions(4) +args.setLabelDataSampleSize(0.5) + +#reading dataset into inputPipe and settint it up in 'args' +schema = "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" +inputPipe = ECsvPipe("testFebrl", "examples/febrl/test.csv", schema) +args.setData(inputPipe) + +outputPipe = ECsvPipe("resultFebrl", "/tmp/febrlOutput") +outputPipe.setHeader("true") + +args.setOutput(outputPipe) + incrArgs = IncrementalArguments() incrArgs.setParentArgs(args) incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) incrArgs.setIncrementalData(incrPipe) +options = ClientOptions([ClientOptions.PHASE,"runIncremental",ClientOptions.LICENSE,]) + +#Zingg execution for the given phase +zingg = EZingg(incrArgs, options) + +zingg.initAndExecute() + From a93bf0c5b0ca27067a0db4e1d472f4d94d6d2ae7 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Thu, 20 Jun 2024 17:29:23 +0530 Subject: [PATCH 24/36] more explanation with all the phases --- docs/runIncremental.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 95c594792..81af4ebdd 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -27,6 +27,8 @@ runIncremental can also be triggerred using python by invoking\ Python code example: +#import the packages + from zingg.client import * from zingg.pipes import * from zinggEC.enterprise.common.ApproverArguments import * @@ -71,15 +73,22 @@ outputPipe.setHeader("true") args.setOutput(outputPipe) +#Run findAndLabel +options = ClientOptions([ClientOptions.PHASE,"findAndLabel",ClientOptions.LICENSE,]) +zingg = EZingg(args, options) +zingg.initAndExecute() + +#Run trainMatch after above completes +options = ClientOptions([ClientOptions.PHASE,"trainMatch",ClientOptions.LICENSE,]) +zingg = EZingg(args, options) +zingg.initAndExecute() + +#Now run incremental on output generated above incrArgs = IncrementalArguments() incrArgs.setParentArgs(args) incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) incrArgs.setIncrementalData(incrPipe) options = ClientOptions([ClientOptions.PHASE,"runIncremental",ClientOptions.LICENSE,]) - -#Zingg execution for the given phase zingg = EZingg(incrArgs, options) - zingg.initAndExecute() - From 73e07690772d9a961fe4cf4c83ea71d404886595 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Thu, 27 Jun 2024 15:18:52 +0530 Subject: [PATCH 25/36] deterministicMatching and run incremental --- docs/SUMMARY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index bc4b78368..f478af1d0 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -23,6 +23,7 @@ * [Input Data](stepbystep/configuration/data-input-and-output/data.md) * [Output](stepbystep/configuration/data-input-and-output/output.md) * [Field Definitions](stepbystep/configuration/field-definitions.md) + * [Deterministic Matching](deterministicMatching.md) * [Model Location](stepbystep/configuration/model-location.md) * [Tuning Label, Match And Link Jobs](stepbystep/configuration/tuning-label-match-and-link-jobs.md) * [Telemetry](stepbystep/configuration/telemetry.md) @@ -33,6 +34,7 @@ * [Using pre-existing training data](setup/training/addOwnTrainingData.md) * [Updating Labeled Pairs](updatingLabels.md) * [Exporting Labeled Data](setup/training/exportLabeledData.md) + * [Add Incremental Data](runIncremental.md) * [Building and saving the model](setup/train.md) * [Finding the matches](setup/match.md) * [Linking across datasets](setup/link.md) From 8bc2d0fc037cdae36e05d12ee7a41e728bc4b00a Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 11:39:57 +0530 Subject: [PATCH 26/36] formatting --- docs/runIncremental.md | 188 ++++++++++++++++++++--------------------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 81af4ebdd..bcb7c9682 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,94 +1,94 @@ -# Run Incremental Loads For New and Updated Records - Zingg Enterprise Only Feature - -Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. - -The incremental phase is run as follows\ -`./scripts/zingg.sh --phase runIncremental --conf ` - -Example incrementalConf.json: - -{ - "config" : "config.json", - "incrementalData": [{ - "name":"customers_incr", - "format":"csv", - "props": { - "location": "test-incr.csv", - "delimiter": ",", - "header":false - }, - "schema": "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, state string, areacode string, dob string, ssn string" - } - ] -} - -runIncremental can also be triggerred using python by invoking\ -`./scripts/zingg.sh --run examples/FebrlExample.py` - -Python code example: - -#import the packages - -from zingg.client import * -from zingg.pipes import * -from zinggEC.enterprise.common.ApproverArguments import * -from zinggEC.enterprise.common.IncrementalArguments import * -from zinggEC.enterprise.common.epipes import * -from zinggEC.enterprise.common.EArguments import * -from zinggEC.enterprise.common.EFieldDefinition import EFieldDefinition -from zinggES.enterprise.spark.ESparkClient import EZingg -import os - -#build the arguments for zingg -args = EArguments() -#set field definitions -recId = EFieldDefinition("recId", "string", MatchType.DONT_USE) -recId.setPrimaryKey(True) -fname = EFieldDefinition("fname", "string", MatchType.FUZZY) -lname = EFieldDefinition("lname", "string", MatchType.FUZZY) -stNo = EFieldDefinition("stNo", "string", MatchType.FUZZY) -add1 = EFieldDefinition("add1","string", MatchType.FUZZY) -add2 = EFieldDefinition("add2", "string", MatchType.FUZZY) -city = EFieldDefinition("city", "string", MatchType.FUZZY) -areacode = EFieldDefinition("areacode", "string", MatchType.FUZZY) -state = EFieldDefinition("state", "string", MatchType.FUZZY) -dob = EFieldDefinition("dob", "string", MatchType.FUZZY) -ssn = EFieldDefinition("ssn", "string", MatchType.FUZZY) - -fieldDefs = [recId, fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] -args.setFieldDefinition(fieldDefs) -#set the modelid and the zingg dir -args.setModelId("100") -args.setZinggDir("/tmp/models") -args.setNumPartitions(4) -args.setLabelDataSampleSize(0.5) - -#reading dataset into inputPipe and settint it up in 'args' -schema = "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" -inputPipe = ECsvPipe("testFebrl", "examples/febrl/test.csv", schema) -args.setData(inputPipe) - -outputPipe = ECsvPipe("resultFebrl", "/tmp/febrlOutput") -outputPipe.setHeader("true") - -args.setOutput(outputPipe) - -#Run findAndLabel -options = ClientOptions([ClientOptions.PHASE,"findAndLabel",ClientOptions.LICENSE,]) -zingg = EZingg(args, options) -zingg.initAndExecute() - -#Run trainMatch after above completes -options = ClientOptions([ClientOptions.PHASE,"trainMatch",ClientOptions.LICENSE,]) -zingg = EZingg(args, options) -zingg.initAndExecute() - -#Now run incremental on output generated above -incrArgs = IncrementalArguments() -incrArgs.setParentArgs(args) -incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) -incrArgs.setIncrementalData(incrPipe) - -options = ClientOptions([ClientOptions.PHASE,"runIncremental",ClientOptions.LICENSE,]) -zingg = EZingg(incrArgs, options) -zingg.initAndExecute() +# Run Incremental Loads For New and Updated Records - Zingg Enterprise Only Feature + +Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. + +The incremental phase is run as follows\ +`./scripts/zingg.sh --phase runIncremental --conf ` + +Example incrementalConf.json: + +{ + "config" : "config.json", + "incrementalData": [{ + "name":"customers_incr", + "format":"csv", + "props": { + "location": "test-incr.csv", + "delimiter": ",", + "header":false + }, + "schema": "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, state string, areacode string, dob string, ssn string" + } + ] +} + +runIncremental can also be triggerred using python by invoking\ +`./scripts/zingg.sh --run examples/FebrlExample.py` + +Python code example: + +#import the packages + +from zingg.client import * +from zingg.pipes import * +from zinggEC.enterprise.common.ApproverArguments import * +from zinggEC.enterprise.common.IncrementalArguments import * +from zinggEC.enterprise.common.epipes import * +from zinggEC.enterprise.common.EArguments import * +from zinggEC.enterprise.common.EFieldDefinition import EFieldDefinition +from zinggES.enterprise.spark.ESparkClient import EZingg +import os + +#build the arguments for zingg +args = EArguments() +#set field definitions +recId = EFieldDefinition("recId", "string", MatchType.DONT_USE) +recId.setPrimaryKey(True) +fname = EFieldDefinition("fname", "string", MatchType.FUZZY) +lname = EFieldDefinition("lname", "string", MatchType.FUZZY) +stNo = EFieldDefinition("stNo", "string", MatchType.FUZZY) +add1 = EFieldDefinition("add1","string", MatchType.FUZZY) +add2 = EFieldDefinition("add2", "string", MatchType.FUZZY) +city = EFieldDefinition("city", "string", MatchType.FUZZY) +areacode = EFieldDefinition("areacode", "string", MatchType.FUZZY) +state = EFieldDefinition("state", "string", MatchType.FUZZY) +dob = EFieldDefinition("dob", "string", MatchType.FUZZY) +ssn = EFieldDefinition("ssn", "string", MatchType.FUZZY) + +fieldDefs = [recId, fname, lname, stNo, add1, add2, city, areacode, state, dob, ssn] +args.setFieldDefinition(fieldDefs) +#set the modelid and the zingg dir +args.setModelId("100") +args.setZinggDir("/tmp/models") +args.setNumPartitions(4) +args.setLabelDataSampleSize(0.5) + +#reading dataset into inputPipe and settint it up in 'args' +schema = "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, areacode string, state string, dob string, ssn string" +inputPipe = ECsvPipe("testFebrl", "examples/febrl/test.csv", schema) +args.setData(inputPipe) + +outputPipe = ECsvPipe("resultFebrl", "/tmp/febrlOutput") +outputPipe.setHeader("true") + +args.setOutput(outputPipe) + +#Run findAndLabel +options = ClientOptions([ClientOptions.PHASE,"findAndLabel",ClientOptions.LICENSE,]) +zingg = EZingg(args, options) +zingg.initAndExecute() + +#Run trainMatch after above completes +options = ClientOptions([ClientOptions.PHASE,"trainMatch",ClientOptions.LICENSE,]) +zingg = EZingg(args, options) +zingg.initAndExecute() + +#Now run incremental on output generated above +incrArgs = IncrementalArguments() +incrArgs.setParentArgs(args) +incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) +incrArgs.setIncrementalData(incrPipe) + +options = ClientOptions([ClientOptions.PHASE,"runIncremental",ClientOptions.LICENSE,]) +zingg = EZingg(incrArgs, options) +zingg.initAndExecute() From 7f35f3199a851bda3bb79f641639b25f46366127 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 11:45:47 +0530 Subject: [PATCH 27/36] code and header corrected --- docs/runIncremental.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index bcb7c9682..11340930b 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,28 +1,28 @@ -# Run Incremental Loads For New and Updated Records - Zingg Enterprise Only Feature +# Run Incremental Loads For New and Updated Records - Zingg Enterprise Feature Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. -The incremental phase is run as follows\ +The incremental phase is run as follows: `./scripts/zingg.sh --phase runIncremental --conf ` Example incrementalConf.json: -{ - "config" : "config.json", - "incrementalData": [{ - "name":"customers_incr", - "format":"csv", - "props": { - "location": "test-incr.csv", - "delimiter": ",", - "header":false - }, - "schema": "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, state string, areacode string, dob string, ssn string" - } - ] +{ + "config" : "config.json", + "incrementalData": [{ + "name":"customers_incr", + "format":"csv", + "props": { + "location": "test-incr.csv", + "delimiter": ",", + "header":false + }, + "schema": "recId string, fname string, lname string, stNo string, add1 string, add2 string, city string, state string, areacode string, dob string, ssn string" + } + ] } -runIncremental can also be triggerred using python by invoking\ +runIncremental can also be triggerred using python by invoking: `./scripts/zingg.sh --run examples/FebrlExample.py` Python code example: @@ -74,12 +74,12 @@ outputPipe.setHeader("true") args.setOutput(outputPipe) #Run findAndLabel -options = ClientOptions([ClientOptions.PHASE,"findAndLabel",ClientOptions.LICENSE,]) +options = ClientOptions([ClientOptions.PHASE,"findAndLabel"]) zingg = EZingg(args, options) zingg.initAndExecute() #Run trainMatch after above completes -options = ClientOptions([ClientOptions.PHASE,"trainMatch",ClientOptions.LICENSE,]) +options = ClientOptions([ClientOptions.PHASE,"trainMatch"]) zingg = EZingg(args, options) zingg.initAndExecute() @@ -89,6 +89,6 @@ incrArgs.setParentArgs(args) incrPipe = ECsvPipe("testFebrlIncr", "examples/febrl/test-incr.csv", schema) incrArgs.setIncrementalData(incrPipe) -options = ClientOptions([ClientOptions.PHASE,"runIncremental",ClientOptions.LICENSE,]) +options = ClientOptions([ClientOptions.PHASE,"runIncremental"]) zingg = EZingg(incrArgs, options) zingg.initAndExecute() From 60332e7b31b98e41d8d46dda3f4b9fac6f3d7839 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 11:51:07 +0530 Subject: [PATCH 28/36] added headers --- docs/runIncremental.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 11340930b..05fce4946 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -2,11 +2,12 @@ Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. -The incremental phase is run as follows: +## The incremental phase is run as follows: `./scripts/zingg.sh --phase runIncremental --conf ` -Example incrementalConf.json: - +## Example incrementalConf.json: + +```json { "config" : "config.json", "incrementalData": [{ @@ -21,11 +22,12 @@ Example incrementalConf.json: } ] } +``` -runIncremental can also be triggerred using python by invoking: +## runIncremental can also be triggerred using python by invoking: `./scripts/zingg.sh --run examples/FebrlExample.py` -Python code example: +### Python code example: #import the packages From 44d559a340b4fe4b124cd283507aaf017bc22810 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 12:01:44 +0530 Subject: [PATCH 29/36] formatting and more explaination --- docs/deterministicMatching.md | 60 ++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index b301728ef..4cadb7eca 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -1,26 +1,36 @@ -# Deterministic Matching - Zingg Enterprise Only Feature +# Deterministic Matching - *Zingg Enterprise Feature* + +Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministcally or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. + +## Example for configuring it in json: +```json + "deterministicMatching":[ + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"stNo"},{"fieldName":"add1"}] + }, + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"dob"},{"fieldName":"ssn"}] + }, + { + "matchCondition":[{"fieldName":"fname"},{"fieldName":"email"}] + } + ] +``` + +### Python code example: + +detMatchNameAdd = DeterministicMatching('fname','stNo','add1') +detMatchNameDobSsn = DeterministicMatching('fname','dob','ssn') +detMatchNameEmail = DeterministicMatching('fname','email') +args.setDeterministicMatchingCondition(detMatchNameAdd,detMatchNameDobSsn,detMatchNameEmail) + +### How will it work: + +Above conditions would translate into following: + +1. Those rows which have exactly same fname, stNo and add1 => exact match with max score 1 +OR +2. Those rows which have exactly same fname, dob and ssn => exact match with max score 1 +OR +3. Those rows which have exactly same fname and email => exact match with max score 1 -Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministcally or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. - -Example for configuring it in json: - - "deterministicMatching":[ - { - "matchCondition":[{"fieldName":"fname"},{"fieldName":"stNo"},{"fieldName":"add1"}] - }, - { - "matchCondition":[{"fieldName":"fname"},{"fieldName":"dob"},{"fieldName":"ssn"}] - }, - { - "matchCondition":[{"fieldName":"fname"},{"fieldName":"email"}] - } - ] - - - -Python code example: - -detMatchNameAdd = DeterministicMatching('fname','stNo','add1') -detMatchNameDobSsn = DeterministicMatching('fname','dob','ssn') -detMatchNameEmail = DeterministicMatching('fname','email') -args.setDeterministicMatchingCondition(detMatchNameAdd,detMatchNameDobSsn,detMatchNameEmail) From c575b9de3b06e37c3a21e8b8d0c5d79561660261 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 12:02:34 +0530 Subject: [PATCH 30/36] header formatting --- docs/runIncremental.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 05fce4946..2640ec168 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,4 +1,4 @@ -# Run Incremental Loads For New and Updated Records - Zingg Enterprise Feature +# Run Incremental Loads For New and Updated Records - *Zingg Enterprise Feature* Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. From caaedc13ca4b7f02e17202070bee4a84a4102b24 Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 12:05:13 +0530 Subject: [PATCH 31/36] marked python example --- docs/deterministicMatching.md | 2 ++ docs/runIncremental.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index 4cadb7eca..98871f125 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -19,10 +19,12 @@ Zingg Enterprise allows the ability to plug rule based deterministic matching al ### Python code example: +```{python} detMatchNameAdd = DeterministicMatching('fname','stNo','add1') detMatchNameDobSsn = DeterministicMatching('fname','dob','ssn') detMatchNameEmail = DeterministicMatching('fname','email') args.setDeterministicMatchingCondition(detMatchNameAdd,detMatchNameDobSsn,detMatchNameEmail) +``` ### How will it work: diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 2640ec168..56a85de48 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -29,6 +29,7 @@ Rerunning matching on entire datasets is wasteful, and we lose the lineage of ma ### Python code example: +```{python} #import the packages from zingg.client import * @@ -94,3 +95,4 @@ incrArgs.setIncrementalData(incrPipe) options = ClientOptions([ClientOptions.PHASE,"runIncremental"]) zingg = EZingg(incrArgs, options) zingg.initAndExecute() +``` From 6692bcaebcf6e2d262303af9ec734d833acfb22c Mon Sep 17 00:00:00 2001 From: Vikas Gupta Date: Tue, 2 Jul 2024 12:52:52 +0530 Subject: [PATCH 32/36] spelling corrected and added header2 --- docs/deterministicMatching.md | 5 +++-- docs/runIncremental.md | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index 98871f125..ae77fe64f 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -1,6 +1,7 @@ -# Deterministic Matching - *Zingg Enterprise Feature* + +## Deterministic Matching - *Zingg Enterprise Feature* -Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministcally or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. +Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministically or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. ## Example for configuring it in json: ```json diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 56a85de48..8986ef89e 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,6 +1,7 @@ -# Run Incremental Loads For New and Updated Records - *Zingg Enterprise Feature* + +## Run Incremental Loads For New and Updated Records - *Zingg Enterprise Feature* -Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Entperirse also takes care of human feedback on previously matched data to ensure that it doesnt override the approved records. +Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Enterprise also takes care of human feedback on previously matched data to ensure that it does not override the approved records. ## The incremental phase is run as follows: `./scripts/zingg.sh --phase runIncremental --conf ` @@ -24,7 +25,7 @@ Rerunning matching on entire datasets is wasteful, and we lose the lineage of ma } ``` -## runIncremental can also be triggerred using python by invoking: +## runIncremental can also be triggered using python by invoking: `./scripts/zingg.sh --run examples/FebrlExample.py` ### Python code example: From 2522a94a0d79276cb22f327227dbd3afb5a6af3d Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 31 Jul 2024 05:25:08 +0000 Subject: [PATCH 33/36] GITBOOK-5: No subject From b071e1c6c2f8103ab5fe2803eb2c76a27d113c60 Mon Sep 17 00:00:00 2001 From: surya Date: Wed, 31 Jul 2024 12:12:43 +0000 Subject: [PATCH 34/36] GITBOOK-25: Surya's Jul 31 changes --- docs/README.md | 4 +- docs/SUMMARY.md | 34 +++---- docs/accuracy/definingOwn.md | 22 ++--- docs/accuracy/stopWordsRemoval.md | 11 +-- docs/connectors/jdbc/mysql.md | 4 +- docs/connectors/jdbc/postgres.md | 4 +- docs/dataSourcesAndSinks/bigquery.md | 10 +- docs/dataSourcesAndSinks/connectors.md | 7 +- docs/dataSourcesAndSinks/databricks.md | 4 +- docs/dataSourcesAndSinks/exasol.md | 38 ++++---- docs/dataSourcesAndSinks/jdbc.md | 7 +- docs/dataSourcesAndSinks/pipes.md | 8 +- docs/dataSourcesAndSinks/snowflake.md | 4 +- docs/deterministicMatching.md | 43 +++++---- docs/generatingdocumentation.md | 5 +- docs/python/markdown/index.md | 30 +++--- docs/runIncremental.md | 33 ++++--- docs/running/aws.md | 8 +- docs/scoring.md | 14 +-- docs/settingUpZingg.md | 92 ++++++++++--------- docs/setup/hardwareSizing.md | 10 +- docs/setup/installation.md | 5 +- docs/setup/link.md | 8 +- docs/setup/match.md | 12 +-- docs/setup/train.md | 12 ++- docs/setup/training/addOwnTrainingData.md | 12 +-- docs/setup/training/createTrainingData.md | 4 +- docs/setup/training/findAndLabel.md | 4 +- docs/setup/training/findTrainingData.md | 6 +- docs/setup/training/label.md | 6 +- docs/stepByStep.md | 10 +- docs/stepbystep/configuration/README.md | 5 +- ...nfiguring-through-environment-variables.md | 4 +- .../configuration/field-definitions.md | 24 ++--- .../configuration/model-location.md | 4 +- docs/stepbystep/configuration/telemetry.md | 2 +- .../tuning-label-match-and-link-jobs.md | 2 +- .../installation/compiling-from-source.md | 8 +- docs/stepbystep/installation/docker/README.md | 4 +- ...copying-files-to-and-from-the-container.md | 7 +- .../docker/file-read-write-permissions.md | 4 +- .../installation/docker/shared-locations.md | 8 +- .../sharing-custom-data-and-config-files.md | 4 +- .../installing-from-release/README.md | 7 +- .../installing-zingg.md | 10 +- .../single-machine-setup.md | 14 +-- .../spark-cluster-checklist.md | 6 +- .../installing-from-release/verification.md | 2 +- docs/stepbystep/zingg-command-line.md | 4 +- docs/stepbystep/zingg-runtime-properties.md | 6 +- docs/updatingLabels.md | 6 +- docs/working-with-python.md | 12 +-- docs/zModels.md | 4 +- 53 files changed, 307 insertions(+), 311 deletions(-) diff --git a/docs/README.md b/docs/README.md index f5e9c7371..2b8b0f879 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,7 +2,7 @@ description: Hope you find us useful :-) --- -# Welcome to Zingg +# Welcome To Zingg ![](https://static.scarf.sh/a.png?x-pxid=d6dda06e-06c7-4e4a-99c9-ed9f6364dfeb) @@ -24,4 +24,4 @@ Zingg is a quick and scalable way to build a single source of truth for core bus ## Book Office Hours -If you want to schedule a 30-min call with our team to help you get set up, please select some time directly [here](https://calendly.com/sonalgoyal/30min). +If you want to schedule a 30-min call with our team to help you get set up, please select a slot directly [here](https://calendly.com/sonalgoyal/30min). diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index f478af1d0..9aaefcb51 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,13 +1,13 @@ # Table of contents -* [Welcome to Zingg](README.md) +* [Welcome To Zingg](README.md) * [Step-By-Step Guide](stepByStep.md) * [Installation](setup/installation.md) * [Docker](stepbystep/installation/docker/README.md) - * [Sharing custom data and config files](stepbystep/installation/docker/sharing-custom-data-and-config-files.md) - * [Shared locations](stepbystep/installation/docker/shared-locations.md) - * [File read/write permissions](stepbystep/installation/docker/file-read-write-permissions.md) - * [Copying Files To and From the Container](stepbystep/installation/docker/copying-files-to-and-from-the-container.md) + * [Sharing Custom Data And Config Files](stepbystep/installation/docker/sharing-custom-data-and-config-files.md) + * [Shared Locations](stepbystep/installation/docker/shared-locations.md) + * [File Read/Write Permissions](stepbystep/installation/docker/file-read-write-permissions.md) + * [Copying Files To And From The Container](stepbystep/installation/docker/copying-files-to-and-from-the-container.md) * [Installing From Release](stepbystep/installation/installing-from-release/README.md) * [Single Machine Setup](stepbystep/installation/installing-from-release/single-machine-setup.md) * [Spark Cluster Checklist](stepbystep/installation/installing-from-release/spark-cluster-checklist.md) @@ -19,7 +19,7 @@ * [Zingg Command Line](stepbystep/zingg-command-line.md) * [Configuration](stepbystep/configuration/README.md) * [Configuring Through Environment Variables](stepbystep/configuration/configuring-through-environment-variables.md) - * [Data Input and Output](stepbystep/configuration/data-input-and-output/README.md) + * [Data Input And Output](stepbystep/configuration/data-input-and-output/README.md) * [Input Data](stepbystep/configuration/data-input-and-output/data.md) * [Output](stepbystep/configuration/data-input-and-output/output.md) * [Field Definitions](stepbystep/configuration/field-definitions.md) @@ -31,13 +31,13 @@ * [Finding Records For Training Set Creation](setup/training/findTrainingData.md) * [Labeling Records](setup/training/label.md) * [Find And Label](setup/training/findAndLabel.md) - * [Using pre-existing training data](setup/training/addOwnTrainingData.md) + * [Using Pre-existing Training Data](setup/training/addOwnTrainingData.md) * [Updating Labeled Pairs](updatingLabels.md) * [Exporting Labeled Data](setup/training/exportLabeledData.md) * [Add Incremental Data](runIncremental.md) - * [Building and saving the model](setup/train.md) - * [Finding the matches](setup/match.md) - * [Linking across datasets](setup/link.md) + * [Building And Saving The Model](setup/train.md) + * [Finding The Matches](setup/match.md) + * [Linking Across Datasets](setup/link.md) * [Data Sources and Sinks](dataSourcesAndSinks/connectors.md) * [Zingg Pipes](dataSourcesAndSinks/pipes.md) * [Databricks](dataSourcesAndSinks/databricks.md) @@ -54,19 +54,19 @@ * [Exasol](dataSourcesAndSinks/exasol.md) * [Working With Python](working-with-python.md) * [Python API](python/markdown/index.md) -* [Running Zingg on Cloud](running/running.md) - * [Running on AWS](running/aws.md) - * [Running on Azure](running/azure.md) - * [Running on Databricks](running/databricks.md) +* [Running Zingg On Cloud](running/running.md) + * [Running On AWS](running/aws.md) + * [Running On Azure](running/azure.md) + * [Running On Databricks](running/databricks.md) * [Zingg Models](zModels.md) - * [Pre-trained models](pretrainedModels.md) + * [Pre-Trained Models](pretrainedModels.md) * [Improving Accuracy](improving-accuracy/README.md) * [Ignoring Commonly Occuring Words While Matching](accuracy/stopWordsRemoval.md) * [Defining Domain Specific Blocking And Similarity Functions](accuracy/definingOwn.md) * [Documenting The Model](generatingdocumentation.md) * [Interpreting Output Scores](scoring.md) -* [Reporting bugs and contributing](contributing.md) - * [Setting Zingg Development Environment](settingUpZingg.md) +* [Reporting Bugs And Contributing](contributing.md) + * [Setting Up Zingg Development Environment](settingUpZingg.md) * [Community](community.md) * [Frequently Asked Questions](faq.md) * [Reading Material](reading.md) diff --git a/docs/accuracy/definingOwn.md b/docs/accuracy/definingOwn.md index dccc195ef..9e5ad0dcd 100644 --- a/docs/accuracy/definingOwn.md +++ b/docs/accuracy/definingOwn.md @@ -3,27 +3,27 @@ nav_order: 6 description: To add blocking functions and how they work --- -# Defining Own Functions +# Defining Domain Specific Blocking And Similarity Functions You can add your own [blocking functions](https://github.com/zinggAI/zingg/tree/main/common/core/src/main/java/zingg/common/core/hash) which will be evaluated by Zingg to build the [blocking tree.](../zModels.md) -The blocking tree works on the matched records provided by the user as part of the training. At every node, it selects the hash function and the field on which it should be applied so that there is the least elimination of the matching pairs. Say we have data like this: +The blocking tree works on the matched records provided by the user as part of the training. At every node, it selects the hash function and the field on which it should be applied so that there is the least elimination of the matching pairs. \ +\ +Say we have data like this: | Pair 1 | firstname | lastname | | :------: | :-------: | :------: | | Record A | john | doe | | Record B | johnh | d oe | -**** +*** | Pair 2 | firstname | lastname | | :-------: | :-------: | :------: | | Rrecord A | mary | ann | | Record B | marry | | - - -Let us assume we have hash function first1char and we want to check if it is a good function to apply to firstname: +Let us assume we have hash function **first1char** and we want to check if it is a good function to apply to **firstname**: | Pair | Record | Output | | :--: | :------: | ------ | @@ -34,9 +34,7 @@ Let us assume we have hash function first1char and we want to check if it is a g There is no elimination in the pairs above, hence it is a good function. - - -Now let us try last1char on firstname +Now let us try **last1char** on **firstname:** | Pair | Record | Output | | :--: | :------: | ------ | @@ -45,12 +43,12 @@ Now let us try last1char on firstname | 2 | Record A | y | | 2 | Record B | y | -Pair 1 is getting eliminated above, hence last1char is not a good function. +Pair 1 is getting eliminated above, hence **last1char** is not a good function. -So, first1char(firstname) will be chosen. This brings near similar records together - in a way, clusters them to break the cartesian join. +So, **first1char**(**firstname**) will be chosen. This brings near similar records together - in a way, clusters them to break the cartesian join. These business-specific blocking functions go into [Hash Functions](https://github.com/zinggAI/zingg/tree/main/common/core/src/main/java/zingg/common/core/hash) and must be added to [HashFunctionRegistry](../../common/core/src/main/java/zingg/common/core/hash/HashFunctionRegistry.java) and [hash functions config](../../common/core/src/main/resources/hashFunctions.json). -Also, for similarity, you can define your own measures. Each dataType has predefined features, for example, [String](../../common/core/src/main/java/zingg/common/core/feature/StringFeature.java) fuzzy type is configured for Affine and Jaro. +Also, for similarity, you can define your own measures. Each **dataType** has predefined features, for example, [String](../../common/core/src/main/java/zingg/common/core/feature/StringFeature.java) fuzzy type is configured for Affine and Jaro. You can define your own [comparisons](https://github.com/zinggAI/zingg/tree/main/common/core/src/main/java/zingg/common/core/similarity/function) and use them. diff --git a/docs/accuracy/stopWordsRemoval.md b/docs/accuracy/stopWordsRemoval.md index 752f7bb22..5ca5ef32f 100644 --- a/docs/accuracy/stopWordsRemoval.md +++ b/docs/accuracy/stopWordsRemoval.md @@ -1,12 +1,10 @@ # Ignoring Commonly Occuring Words While Matching -Common words like Mr, Pvt, Av, St, Street etc do not add differential signal and confuse matching. These words are called stopwords and matching is more accurate when stopwrods are ignored. +Common words like Mr, Pvt, Av, St, Street etc. do not add differential signals and confuse matching. These words are called **stopwords** and matching is more accurate when stopwords are ignored. -In order to remove stopwords from a field, configure +The stopwords can be recommended by Zingg by invoking: -The stopwords can be recommended by Zingg by invoking - -`./scripts/zingg.sh --phase recommend --conf --columns ` +`./scripts/zingg.sh --phase recommend --conf --columns ` By default, Zingg extracts 10% of the high-frequency unique words from a dataset. If the user wants a different selection, they should set up the following property in the config file: @@ -14,7 +12,7 @@ By default, Zingg extracts 10% of the high-frequency unique words from a dataset stopWordsCutoff: ``` -Once you have verified the above stop words, you can configure them in the JSON variable **stopWords** with the path to the CSV file containing them. Please ensure while editing the CSV or building it manually that it should contain one word per row. +Once you have verified the above stop words, you can configure them in the JSON variable **stopWords** with the path to the CSV file containing them. Please ensure while editing the CSV or building it manually that it should contain _one word per row_. ``` "fieldDefinition":[ @@ -26,4 +24,3 @@ Once you have verified the above stop words, you can configure them in the JSON "stopWords": "models/100/stopWords/fname.csv" }, ``` - diff --git a/docs/connectors/jdbc/mysql.md b/docs/connectors/jdbc/mysql.md index c17ddd89c..e92de17db 100644 --- a/docs/connectors/jdbc/mysql.md +++ b/docs/connectors/jdbc/mysql.md @@ -1,6 +1,6 @@ # MySQL -## Reading from MySQL database: +## Reading From MySQL Database: ```json "data" : [{ @@ -16,4 +16,4 @@ }], ``` -Please replace \ with the name of the database in addition to other props. For more details, refer to the [spark documentation](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html). +Please replace `` with the _name_ of the database in addition to other props. For more details, refer to the [Spark documentation](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html). diff --git a/docs/connectors/jdbc/postgres.md b/docs/connectors/jdbc/postgres.md index 52670b197..54f560e91 100644 --- a/docs/connectors/jdbc/postgres.md +++ b/docs/connectors/jdbc/postgres.md @@ -1,6 +1,6 @@ # Postgres -## JSON Settings for reading data from Postgres database: +## JSON Settings For Reading Data From Postgres Database: ```json "data" : [{ @@ -16,4 +16,4 @@ }], ``` -Please replace \ with the name of the database in addition to other props. For more details, refer to the [spark documentation](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html). +Replace `` with the _name_ of the database in addition to other props. For more details, refer to the [Spark documentation](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html). diff --git a/docs/dataSourcesAndSinks/bigquery.md b/docs/dataSourcesAndSinks/bigquery.md index f14201d0e..b66230896 100644 --- a/docs/dataSourcesAndSinks/bigquery.md +++ b/docs/dataSourcesAndSinks/bigquery.md @@ -14,7 +14,7 @@ In addition, the following property needs to be set spark.hadoop.fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem ``` -If Zingg is run from outside the Google cloud, it requires authentication, please set the following env variable to the location of the file containing the service account key. A service account key can be created and downloaded in JSON format from the [Google Cloud console](https://cloud.google.com/docs/authentication/getting-started). +If Zingg is run from outside the Google cloud, it requires authentication, please set the following _environment variable_ to the location of the file containing the _service account key_. A service account key can be created and downloaded in JSON format from the [Google Cloud console](https://cloud.google.com/docs/authentication/getting-started). ```bash export GOOGLE_APPLICATION_CREDENTIALS=path to google service account key file @@ -24,7 +24,7 @@ Connection properties for BigQuery as a data source and data sink are given belo ## Properties for reading data from BigQuery: -The property **"credentialsFile"** should point to the google service account key file location. This is the same path that is used to set variable **GOOGLE\_APPLICATION\_CREDENTIALS**. The **"table"** property should point to a BigQuery table that contains source data. The property **"viewsEnabled"** must be set to true only. +The property `credentialsFile` should point to the Google service account key file location. This is the same path that is used to set variable `GOOGLE_APPLICATION_CREDENTIALS`. The `table` property should point to a BigQuery table that contains source data. The property `viewsEnabled` must be set to **true** only. ```json "data" : [{ @@ -38,9 +38,9 @@ The property **"credentialsFile"** should point to the google service account ke }], ``` -## Properties for writing data to BigQuery: +## Properties For Writing Data To BigQuery: -To write to BigQuery, a bucket needs to be created and assigned to the **"temporaryGcsBucket"** property. +To write to BigQuery, a bucket needs to be created and assigned to the `temporaryGcsBucket` property. ```json "output" : [{ @@ -57,7 +57,7 @@ To write to BigQuery, a bucket needs to be created and assigned to the **"tempor ## Notes: * The library **"gcs-connector-hadoop2-latest.jar"** can be downloaded from [Google](https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-hadoop2-latest.jar) and the library **"spark-bigquery-with-dependencies\_2.12-0.24.2"** from the [maven repo](https://repo1.maven.org/maven2/com/google/cloud/spark/spark-bigquery-with-dependencies\_2.12/0.24.2/spark-bigquery-with-dependencies\_2.12-0.24.2.jar). -* A typical service account key file looks like the below. The format of the file is JSON. +* A typical service account key file looks like below (JSON). ```json { diff --git a/docs/dataSourcesAndSinks/connectors.md b/docs/dataSourcesAndSinks/connectors.md index 90ea98923..5de25d90a 100644 --- a/docs/dataSourcesAndSinks/connectors.md +++ b/docs/dataSourcesAndSinks/connectors.md @@ -6,9 +6,10 @@ has_children: true # Data Sources and Sinks -Zingg connects, reads, and writes to most on-premise and cloud data sources. - -Zingg can read and write to Databricks, Snowflake, Cassandra, S3, Azure, Elastic, Exasol, major RDBMS, and any Spark-supported data sources. Zingg also works with all major file formats like Parquet, Avro, JSON, XLSX, CSV, TSV, etc. This is done through the Zingg [pipe](pipes.md) abstraction. +Zingg _connects, reads,_ and _writes_ to most on-premise and cloud data sources. +Zingg can read and write to **Databricks, Snowflake, Cassandra, S3, Azure, Elastic, Exasol**, major **RDBMS**, and any **Spark**-supported data sources. \ +\ +Zingg also works with all major file formats like Parquet, Avro, JSON, XLSX, CSV, TSV, etc. This is done through the Zingg [Pipe](pipes.md) abstraction. ![](../../assets/zinggOSS.png) diff --git a/docs/dataSourcesAndSinks/databricks.md b/docs/dataSourcesAndSinks/databricks.md index 2062ad842..d5d406d90 100644 --- a/docs/dataSourcesAndSinks/databricks.md +++ b/docs/dataSourcesAndSinks/databricks.md @@ -1,5 +1,5 @@ # Databricks -As a Spark based application, Zingg Open Source works seamlessly on Databricks. Zingg leverages Databricks Spark environment, and can access all the supported data sources like parquet and the delta file format. +As a Spark-based application, Zingg Open Source works seamlessly on Databricks. Zingg leverages Databricks' Spark environment, and can access all the supported data sources like parquet and the delta file format. -Please check the various ways in which you can run Zingg On Databricks [here](../running/databricks.md) +Please check the various ways in which you can run Zingg on Databricks [here](../running/databricks.md) diff --git a/docs/dataSourcesAndSinks/exasol.md b/docs/dataSourcesAndSinks/exasol.md index f1d471ef4..215b540ff 100644 --- a/docs/dataSourcesAndSinks/exasol.md +++ b/docs/dataSourcesAndSinks/exasol.md @@ -26,7 +26,7 @@ For example: spark.jars=spark-connector_2.12-1.3.0-spark-3.3.2-assembly.jar ``` -If there are more than one jar files, please use comma as separator. Additionally, please change the version accordingly so that it matches your Zingg and Spark versions. +If there are more than one jar files, please use _comma_ as separator. Additionally, please change the version accordingly so that it matches your Zingg and Spark versions. ## Connector Settings @@ -52,28 +52,28 @@ For example: ... ``` - Similarly, for output: +Similarly, for output: - ```json - ... +```json +... "output": [ - { - "name": "output", - "format": "com.exasol.spark", - "props": { - "host": "10.11.0.2", - "port": "8563", - "username": "sys", - "password": "exasol", - "create_table": "true", - "table": "DB_SCHEMA.ENTITY_RESOLUTION", - }, - "mode": "Append" - } + { + "name": "output", + "format": "com.exasol.spark", + "props": { + "host": "10.11.0.2", + "port": "8563", + "username": "sys", + "password": "exasol", + "create_table": "true", + "table": "DB_SCHEMA.ENTITY_RESOLUTION", + }, + "mode": "Append" + } ], ... ``` -Please note that, the `host` parameter should be the first internal node's IPv4 address. +Please note that, the `host` parameter should be the first internal node's **IPv4** **address**. -As Zingg uses [Exasol Spark connector](https://github.com/exasol/spark-connector) underneath, please also check out the [user guide](https://github.com/exasol/spark-connector/blob/main/doc/user_guide/user_guide.md) and [configuration options](https://github.com/exasol/spark-connector/blob/main/doc/user_guide/user_guide.md#configuration-options) for more information. +As Zingg uses [Exasol Spark connector](https://github.com/exasol/spark-connector) underneath, please also check out the [user guide](https://github.com/exasol/spark-connector/blob/main/doc/user\_guide/user\_guide.md) and [configuration options](https://github.com/exasol/spark-connector/blob/main/doc/user\_guide/user\_guide.md#configuration-options) for more information. diff --git a/docs/dataSourcesAndSinks/jdbc.md b/docs/dataSourcesAndSinks/jdbc.md index cbd25c220..d86f21449 100644 --- a/docs/dataSourcesAndSinks/jdbc.md +++ b/docs/dataSourcesAndSinks/jdbc.md @@ -1,6 +1,6 @@ -# Jdbc +# JDBC -Zingg can connect to various databases such as Mysql, DB2, MariaDB, MS SQL, Oracle, PostgreSQL, etc. using JDBC. One just needs to download the appropriate driver and made it accessible to the application. +Zingg can connect to various databases such as MySQL, DB2, MariaDB, MS SQL, Oracle, PostgreSQL, etc. using JDBC. One just needs to download the appropriate driver and made it accessible to the application. To include the JDBC driver for your particular database on the Spark classpath, please add the property **spark.jars** in [Zingg's runtime properties.](../stepbystep/zingg-runtime-properties.md) @@ -8,5 +8,4 @@ To include the JDBC driver for your particular database on the Spark classpath, spark.jars= ``` -Connection details are given in the following sections for a few common JDBC sources. - +Connection details are given in the following sections for a few common JDBC sources. diff --git a/docs/dataSourcesAndSinks/pipes.md b/docs/dataSourcesAndSinks/pipes.md index c928c01f0..a786b639d 100644 --- a/docs/dataSourcesAndSinks/pipes.md +++ b/docs/dataSourcesAndSinks/pipes.md @@ -6,9 +6,9 @@ nav_order: 4 # Zingg Pipes -Zingg Pipes are an abstraction for a data source from which Zingg fetches data for matching or to which Zingg writes its output. This lets users connect to literally any datastore that has a Spark connector. +Zingg Pipes are an _abstraction_ for a data source from which Zingg fetches data for matching or to which Zingg writes its output. This lets users connect to literally any datastore that has a Spark connector. -The pipe is an easy way to specify properties and formats for the Spark connector of the relevant data source. Zingg pipes can be configured through the config [JSON](../stepbystep/configuration/) passed to the program by outlining the datastore connection properties. +The pipe is an easy way to specify _properties_ and _formats_ for the Spark connector of the relevant data source. Zingg pipes can be configured through the config [JSON](../stepbystep/configuration/) passed to the program by outlining the datastore connection properties. Pipes can be configured for the data or the output attributes on the [JSON](../stepbystep/configuration/). @@ -20,10 +20,10 @@ A unique name to identify the data store. ## format -One of the Spark-supported connector formats. jdbc/avro/parquet etc. +One of the Spark-supported connector formats - jdbc/avro/parquet etc. ## options -Properties to be passed to spark.read and spark.write. +Properties to be passed to **spark.read** and **spark.write.** Let us look at some common data sources and their configurations. diff --git a/docs/dataSourcesAndSinks/snowflake.md b/docs/dataSourcesAndSinks/snowflake.md index e5de99940..0bad2c0ac 100644 --- a/docs/dataSourcesAndSinks/snowflake.md +++ b/docs/dataSourcesAndSinks/snowflake.md @@ -28,7 +28,7 @@ The config value for the data and output attributes of the JSON is: } ] ``` -One must include Snowflake JDBC driver and Spark dependency on the classpath. The jars can be downloaded from the maven repository ([1](https://mvnrepository.com/artifact/net.snowflake/snowflake-jdbc), [2](https://mvnrepository.com/artifact/net.snowflake/spark-snowflake)). +One must include Snowflake JDBC driver and Spark dependency on the classpath. The jars can be downloaded from the **maven** repository ([1](https://mvnrepository.com/artifact/net.snowflake/snowflake-jdbc), [2](https://mvnrepository.com/artifact/net.snowflake/spark-snowflake)). ``` spark.jars=snowflake-jdbc-3.13.18.jar,spark-snowflake_2.12-2.10.0-spark_3.1.jar @@ -36,4 +36,4 @@ spark.jars=snowflake-jdbc-3.13.18.jar,spark-snowflake_2.12-2.10.0-spark_3.1.jar For Zingg to discover the Snowflake jars, please add the property **spark.jars** in [Zingg's runtime properties.](../stepbystep/zingg-runtime-properties.md) -If you are looking for a native-run on Snowflake without using Spark, check [Zingg Enterprise Snowflake](https://www.zingg.ai/company/zingg-enterprise-snowflake). +If you are looking for a native-run on Snowflake without using Spark, check [Zingg Enterprise Snowflake](https://www.zingg.ai/company/zingg-enterprise-snowflake). diff --git a/docs/deterministicMatching.md b/docs/deterministicMatching.md index ae77fe64f..a0cba2906 100644 --- a/docs/deterministicMatching.md +++ b/docs/deterministicMatching.md @@ -1,10 +1,14 @@ +# Deterministic Matching -## Deterministic Matching - *Zingg Enterprise Feature* - -Zingg Enterprise allows the ability to plug rule based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains sure identifiers like emails, SSNs, passport ids etc, we can use these attributes to resolve records. The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministically or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. - -## Example for configuring it in json: -```json +### Deterministic Matching - _Zingg Enterprise Feature_ + +Zingg Enterprise allows the ability to plug rule-based deterministic matching along with already Zingg AI's probabilistic matching. If the data contains _sure_ identifiers like emails, SSNs, passport-ids etc, we can use these attributes to resolve records.\ +\ +The deterministic matching flow is weaved into Zingg's flow to ensure that each record which has a match finds one, probabilistically, deterministically or both. If the data has known identifiers, Zingg Enterprise's deterministic matching highly improves both matching accuracy and performance. + +### Example For Configuring In JSON: + +```json "deterministicMatching":[ { "matchCondition":[{"fieldName":"fname"},{"fieldName":"stNo"},{"fieldName":"add1"}] @@ -16,24 +20,23 @@ Zingg Enterprise allows the ability to plug rule based deterministic matching al "matchCondition":[{"fieldName":"fname"},{"fieldName":"email"}] } ] -``` - -### Python code example: - +``` + +#### Python Code Example: + ```{python} detMatchNameAdd = DeterministicMatching('fname','stNo','add1') detMatchNameDobSsn = DeterministicMatching('fname','dob','ssn') detMatchNameEmail = DeterministicMatching('fname','email') args.setDeterministicMatchingCondition(detMatchNameAdd,detMatchNameDobSsn,detMatchNameEmail) ``` - -### How will it work: - -Above conditions would translate into following: - -1. Those rows which have exactly same fname, stNo and add1 => exact match with max score 1 -OR -2. Those rows which have exactly same fname, dob and ssn => exact match with max score 1 -OR -3. Those rows which have exactly same fname and email => exact match with max score 1 +#### How Will It Work: + +The above conditions would translate into the following: + +1. Those rows which have **exactly** same `fname`, `stNo` and `add1` => exact match with max score 1\ + _OR_ +2. Those rows which have **exactly** same `fname`, `dob` and `ssn` => exact match with max score 1\ + _OR_ +3. Those rows which have **exactly** same `fname` and `email` => exact match with max score 1 diff --git a/docs/generatingdocumentation.md b/docs/generatingdocumentation.md index 11fb09921..c01307313 100644 --- a/docs/generatingdocumentation.md +++ b/docs/generatingdocumentation.md @@ -1,12 +1,11 @@ # Documenting The Model -Zingg generates readable documentation about the training data, including those marked as matches, as well as non-matches. The documentation is written to the zinggDir/modelId folder and can be built using the following +Zingg generates readable documentation about the training data, including those marked as matches, as well as non-matches. The documentation is written to the **zinggDir/modelId** folder and can be built using the following ``` ./scripts/zingg.sh --phase generateDocs --conf ``` -The generated documentation file can be viewed in a browser and looks like as below. +The generated documentation file can be viewed in a browser and looks like as below: ![Training Data](../assets/documentation1.png) - diff --git a/docs/python/markdown/index.md b/docs/python/markdown/index.md index d8b455d19..9f14d1aaa 100644 --- a/docs/python/markdown/index.md +++ b/docs/python/markdown/index.md @@ -1,16 +1,12 @@ - +# Python API -# Zingg Entity Resolution Python Package +## Zingg Entity Resolution Python Package -Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML -([https://www.zingg.ai](https://www.zingg.ai)) +Zingg Python APIs for entity resolution, identity resolution, record linkage, data mastering and deduplication using ML ([https://www.zingg.ai](https://www.zingg.ai)) -#### NOTE -Requires python 3.6+; spark 3.5.0 -Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be executed +**NOTE** + +Requires **python 3.6+**; **spark 3.5.0.** Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be executed * [Zingg Entity Resolution Package](zingg.md) * [zingg.client](zingg.md#zingg-client) @@ -44,10 +40,10 @@ Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be execu * [`ClientOptions.EMAIL`](zingg.md#zingg.client.ClientOptions.EMAIL) * [`ClientOptions.LICENSE`](zingg.md#zingg.client.ClientOptions.LICENSE) * [`ClientOptions.LOCATION`](zingg.md#zingg.client.ClientOptions.LOCATION) - * [`ClientOptions.MODEL_ID`](zingg.md#zingg.client.ClientOptions.MODEL_ID) + * [`ClientOptions.MODEL_ID`](zingg.md#zingg.client.ClientOptions.MODEL\_ID) * [`ClientOptions.PHASE`](zingg.md#zingg.client.ClientOptions.PHASE) * [`ClientOptions.REMOTE`](zingg.md#zingg.client.ClientOptions.REMOTE) - * [`ClientOptions.ZINGG_DIR`](zingg.md#zingg.client.ClientOptions.ZINGG_DIR) + * [`ClientOptions.ZINGG_DIR`](zingg.md#zingg.client.ClientOptions.ZINGG\_DIR) * [`ClientOptions.getClientOptions()`](zingg.md#zingg.client.ClientOptions.getClientOptions) * [`ClientOptions.getConf()`](zingg.md#zingg.client.ClientOptions.getConf) * [`ClientOptions.getLocation()`](zingg.md#zingg.client.ClientOptions.getLocation) @@ -94,10 +90,10 @@ Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be execu * [`parseArguments()`](zingg.md#zingg.client.parseArguments) * [zingg.pipes](zingg.md#zingg-pipes) * [`BigQueryPipe`](zingg.md#zingg.pipes.BigQueryPipe) - * [`BigQueryPipe.CREDENTIAL_FILE`](zingg.md#zingg.pipes.BigQueryPipe.CREDENTIAL_FILE) + * [`BigQueryPipe.CREDENTIAL_FILE`](zingg.md#zingg.pipes.BigQueryPipe.CREDENTIAL\_FILE) * [`BigQueryPipe.TABLE`](zingg.md#zingg.pipes.BigQueryPipe.TABLE) - * [`BigQueryPipe.TEMP_GCS_BUCKET`](zingg.md#zingg.pipes.BigQueryPipe.TEMP_GCS_BUCKET) - * [`BigQueryPipe.VIEWS_ENABLED`](zingg.md#zingg.pipes.BigQueryPipe.VIEWS_ENABLED) + * [`BigQueryPipe.TEMP_GCS_BUCKET`](zingg.md#zingg.pipes.BigQueryPipe.TEMP\_GCS\_BUCKET) + * [`BigQueryPipe.VIEWS_ENABLED`](zingg.md#zingg.pipes.BigQueryPipe.VIEWS\_ENABLED) * [`BigQueryPipe.setCredentialFile()`](zingg.md#zingg.pipes.BigQueryPipe.setCredentialFile) * [`BigQueryPipe.setTable()`](zingg.md#zingg.pipes.BigQueryPipe.setTable) * [`BigQueryPipe.setTemporaryGcsBucket()`](zingg.md#zingg.pipes.BigQueryPipe.setTemporaryGcsBucket) @@ -130,13 +126,13 @@ Otherwise, [`zingg.client.Zingg()`](zingg.md#zingg.client.Zingg) cannot be execu * [`SnowflakePipe.setUser()`](zingg.md#zingg.pipes.SnowflakePipe.setUser) * [`SnowflakePipe.setWarehouse()`](zingg.md#zingg.pipes.SnowflakePipe.setWarehouse) -# API Reference +## API Reference * [Module Index](py-modindex.md) * [Index](genindex.md) * [Search Page](search.md) -# Example API Usage +## Example API Usage ```python from zingg.client import * diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 8986ef89e..2a1597fab 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,14 +1,16 @@ +# Add Incremental Data -## Run Incremental Loads For New and Updated Records - *Zingg Enterprise Feature* - -Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre resolved entities. The new and updated records are matched to existing clusters, and new persistent ZINGG_IDs generated for records which do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge and unmerge happens automatically in the flow. Zingg Enterprise also takes care of human feedback on previously matched data to ensure that it does not override the approved records. - -## The incremental phase is run as follows: -`./scripts/zingg.sh --phase runIncremental --conf ` - -## Example incrementalConf.json: +### Run Incremental Loads For New and Updated Records - _Zingg Enterprise Feature_ + +Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre-resolved entities. The new and updated records are matched to existing clusters, and new persistent **ZINGG\_IDs** are generated for records that do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge, and unmerge happens automatically in the flow. Zingg Enterprise also takes care of human feedback on previously matched data to ensure that it does not override the approved records. + +### The incremental phase is run as follows: + +`./scripts/zingg.sh --phase runIncremental --conf ` + +### Example incrementalConf.json: -```json +```json { "config" : "config.json", "incrementalData": [{ @@ -24,12 +26,13 @@ Rerunning matching on entire datasets is wasteful, and we lose the lineage of ma ] } ``` - -## runIncremental can also be triggered using python by invoking: -`./scripts/zingg.sh --run examples/FebrlExample.py` - -### Python code example: - + +### runIncremental can also be triggered using Python by invoking: + +`./scripts/zingg.sh --run examples/FebrlExample.py` + +#### Python Code Example: + ```{python} #import the packages diff --git a/docs/running/aws.md b/docs/running/aws.md index 4965bc3df..358a53574 100644 --- a/docs/running/aws.md +++ b/docs/running/aws.md @@ -4,9 +4,9 @@ parent: Running Zingg on Cloud nav_order: 5 --- -# Running on AWS +# Running On AWS -One option is to use the spark-submit option with the Zingg config and phase. Please note that the config.json should be available locally at the driver for Zingg to use it. +One option is to use the `spark-submit` option with the Zingg config and phase. Please note that the **config.json** should be available locally at the driver for Zingg to use it. ````` aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-6.2.0 --applications Name=Zingg \ @@ -14,8 +14,6 @@ aws emr create-cluster --name "Add Spark Step Cluster" --release-label emr-6.2.0 --steps Type=Spark,Name="Zingg",ActionOnFailure=CONTINUE,Args=[--class,zingg.spark.client.SparkClient,,--phase,,--conf,] --use-default-roles```` ````` -A step by step s provided at the following [link](https://blog.infostrux.com/identity-resolution-with-zingg-ai-snowflake-and-aws-emr-for-the-canadian-football-league-22cf0850ab53). The guide mentions training locally using Zingg docker, but the findTrainingData and label phases can be executed on EMR directly. - - +A step-by-step is provided [here](https://blog.infostrux.com/identity-resolution-with-zingg-ai-snowflake-and-aws-emr-for-the-canadian-football-league-22cf0850ab53). The guide mentions training locally using Zingg Docker, but the **findTrainingData** and **label** phases can be executed on EMR directly. A second option is to run Zingg Python code in [AWS EMR Notebooks](https://aws.amazon.com/emr/features/notebooks/) diff --git a/docs/scoring.md b/docs/scoring.md index aa52a8764..b3bc8790a 100644 --- a/docs/scoring.md +++ b/docs/scoring.md @@ -2,13 +2,13 @@ nav_order: 6 --- -# Output Scores +# Interpreting Output Scores -For each field(FNAME, NAME, EMAIL..), Zingg computes multiple features and feeds them to a classifier. These features are typically different ways to compare strings. We consider string lengths and their differences, character differences, and which characters actually differed. +For each field(**FNAME, NAME, EMAIL** ..), Zingg computes multiple features and feeds them to a classifier. These features are typically different ways to compare strings. We consider string lengths and their differences, character differences, and which characters _actually_ differed. -* The shorter string pair ABCD and ABCE will be less similar than ABCDEF and ABCEEF. +* The shorter string pair ABCD and ABCE will be _less similar_ than ABCDEF and ABCEEF. * Common typos, for e.g. m instead of n, are penalized less severely and will be scored higher than a word with a replaced by non-obvious character b. -* The more changes you need to make to the strings to make them match, the less similar they will be. +* The _more changes_ you need to make to the strings to make them match, the less similar they will be. * Differences in the middle are penalized more than prefixes and suffixes. No individual feature is perfect, but the whole is greater than the sum of its parts. That's where the strength of Zingg matching and the accuracy comes from. @@ -19,6 +19,6 @@ The threshold is automatically chosen so that you can pick up most of the result A few things to keep in mind while interpreting the scores: -* Matching is transitive, so if record A matches Record B and Record B matches C, we put records A, B, and C in the same cluster. That is how different records in a cluster get matched at various confidence levels to the rest and all these records showed up together. -* Our recommendation is to keep a threshold below x% of the max score as suspect records - manual review/ to be visited later/flow through but will less confidence. x will depend on how accurate you find the results and how much you want to control the outcome. -* Keep cluster size above 4 or 5 for inspection. You could keep it irrespective of the score, or look at only those clusters whose z\_minScore is 0. This will depend on what the results look like to you. +* Matching is _transitive_, so if record A matches Record B and Record B matches C, we put records A, B, and C in the same cluster. That is how different records in a cluster get matched at various confidence levels to the rest and all these records showed up together. +* Our recommendation is to keep a threshold below **x**% of the max score as suspect records - manual review/to be visited later/flow through but will lessen confidence. **x** will depend on how accurate you find the results and how much you want to control the outcome. +* Keep cluster size above 4 or 5 for inspection. You could keep it irrespective of the score, or look at only those clusters whose **z\_minScore** is 0. This will depend on what the results look like to you. diff --git a/docs/settingUpZingg.md b/docs/settingUpZingg.md index 9f1f3982a..a16ca1897 100644 --- a/docs/settingUpZingg.md +++ b/docs/settingUpZingg.md @@ -1,59 +1,65 @@ -# Setting Zingg Development Environment +# Setting Up Zingg Development Environment -The following steps will help you set up the Zingg Development Environment. While the steps remain the same across different OS, we have provided detailed instructions for Ubuntu OS. Below examples have been created using Ubuntu 22.04.2 LTS +The following steps will help you set up the Zingg Development Environment. While the steps remain the same across different OS, we have provided detailed instructions for Ubuntu OS. \ +\ +The below steps have been created using Ubuntu 22.04.2 LTS -Make sure to update your ubutu installation +Make sure to update your Ubuntu installation: -sudo apt update +`sudo apt update` + +*** -**** +**Step 0: Install Ubuntu on WSL2 on Windows** -_**Step 0 : Install Ubuntu on WSL2 on Windows**_ +* Install **wsl**: Type the following command in **Windows PowerShell**. -* Install wsl: Type the following command in **Windows PowerShell**. ``` wsl --install ``` + * Download Ubuntu from **Microsoft Store**, **Ubuntu 20.04 LTS** * Configure Ubuntu with a **username** and **password** * Open **Ubuntu 20.04 LTS** and start working + ``` sudo apt update ``` + * Follow this [tutorial](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#1-overview) for more information. -**** +*** -_**Step 1 : Clone the Zingg Repository**_ +**Step 1: Clone The Zingg Repository** * Install and SetUp Git: **sudo apt install git** * Verify : **git --version** * Set up Git by following the [tutorial](https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-20-04). * Clone the Zingg Repository: **git clone https://github.com/zinggAI/zingg.git** -_**Note :-**_ It is suggested to fork the repository to your account and then clone the repository. - -**** +**Note:** It is suggested to fork the repository to your account and then clone the repository. -_**Step 2 : Install JDK 1.8 (Java Development Kit)**_ +*** -* Follow this [tutorial](https://linuxize.com/post/install-java-on-ubuntu-20-04/) to install Java8 JDK1.8 in Ubuntu. +**Step 2: Install JDK 1.8 (Java Development Kit)** +* Follow this [tutorial](https://linuxize.com/post/install-java-on-ubuntu-20-04/) to install Java8 JDK1.8 in Ubuntu. * For example: + ``` sudo apt install openjdk-8-jdk openjdk-8-jre javac -version java -version ``` -**** +*** -_**Step 3 : Install Apache Spark -**_ +**Step 3: Install Apache Spark** * Download Apache Spark - from the [Apache Spark Official Website](https://spark.apache.org/downloads.html). * Install downloaded Apache Spark - on your Ubuntu by following [this tutorial](https://computingforgeeks.com/how-to-install-apache-spark-on-ubuntu-debian/). - * For example for 3.5.0: + ``` wget https://www.apache.org/dyn/closer.lua/spark/spark-3.5.0/spark-3.5.0-bin-hadoop3.tgz tar -xvf spark-3.5.0-bin-hadoop3.tgz @@ -61,17 +67,17 @@ rm -rf spark-3.5.0-bin-hadoop3.tgz sudo mv spark-3.5.0-bin-hadoop3 /opt/spark ``` -Make sure that spark version you have installed is compatible with java you have installed, and Zingg is supporting those versions. - -_**Note :-**_ Zingg supports Spark 3.5 and the corresponding Java version. +Make sure that Spark version you have installed is compatible with Java you have installed, and Zingg is supporting those versions. -**** +**Note**: Zingg supports Spark 3.5 and the corresponding Java version. -_**Step 4 : Install Apache Maven**_ +*** -* Install the latest maven package. +**Step 4: Install Apache Maven** +* Install the latest **maven** package. * For example for 3.8.8: + ``` wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz tar -xvf apache-maven-3.8.8-bin.tar.gz @@ -81,11 +87,12 @@ cd bin ./mvn --version ``` -**** +*** + +**Step 5: Update Environment Variables** -_**Step 5 : Update Env Variables**_ +Open `.bashrc` and add env variables at the end of the file. -Open .bashrc and add env variables at end of file ``` vim ~/.bashrc @@ -105,15 +112,16 @@ echo $PATH mvn --version ``` -where \ will be a directory where you clone the repository of the Zingg. Similarly, if you have installed spark on a different directory you can set **SPARK\_HOME** accordingly. +where `` will be a directory where you clone the repository of the Zingg. Similarly, if you have installed spark on a different directory you can set **SPARK\_HOME** accordingly. + +**Note:** If you have already set up **JAVA\_HOME** and **SPARK\_HOME** in the steps before you don't need to do this again. -_**Note :-**_ If you have already set up **JAVA\_HOME** and **SPARK\_HOME** in the steps before you don't need to do this again. +*** -**** +**Step 6: Compile The Zingg Repository** -_**Step 6 : Compile the Zingg Repository**_ +* Run the following to compile the Zingg Repository - -* Run the following to Compile the Zingg Repository - ``` git branch (Ensure you are on main branch) @@ -122,23 +130,25 @@ mvn initialize * **mvn clean compile package -Dspark=sparkVer** ``` -_**Note :-**_ Replace the **sparkVer** with the version of spark you installed, For example, **-Dspark=3.5** and if still facing error, include **-Dmaven.test.skip=true** with the above command. +**Note:** Replace the `sparkVer` with the version of Spark you installed. \ +\ +For example, **-Dspark=3.5** you still face an error, include **-Dmaven.test.skip=true** with the above command. +**Note:** Substitute 3.3 with the **profile** of the Spark version you have installed. This is based on profiles specified in **pom.xml** -_**Note :-**_ substitute 3.3 with profile of the spark version you have installed. This is based on profiles specified in pom.xml -**** +*** -_**Step 7 : If had any issue with 'SPARK\_LOCAL\_IP'**_ +**Step 7: If you have any issue with 'SPARK\_LOCAL\_IP'** * Install **net-tools** using **sudo apt-get install -y net-tools** -* Run command in the terminal **ifconfig**, find the **IP address** and paste the same in **/opt/hosts** IP address of your Pc-Name +* Run `ifconfig` in the terminal, find the **IP address** and paste the same in **/opt/hosts** IP address of your Pc-Name -**** +*** -_**Step 8 : Run Zingg to Find Training Data**_ +**Step 8: Run Zingg To Find Training Data** -* Run this Script in terminal opened in zingg clones directory - **./scripts/zingg.sh --phase findTrainingData --conf examples/febrl/config.json** +* Run this script in the terminal opened in Zingg clones directory `./scripts/zingg.sh --phase findTrainingData --conf examples/febrl/config.json` -**** +*** -**If everything is right, it should show Zingg Icon.** +**If everything is right, it should show Zingg icon.** diff --git a/docs/setup/hardwareSizing.md b/docs/setup/hardwareSizing.md index 3e69e6244..d13df4d86 100644 --- a/docs/setup/hardwareSizing.md +++ b/docs/setup/hardwareSizing.md @@ -9,15 +9,15 @@ description: Hardware required for different sizes of data Zingg has been built to scale. Performance is dependent on: -* The number of records to be matched. -* The number of fields to be compared against each other. -* The actual number of duplicates. +* The **number of records** to be matched. +* The **number of fields** to be compared against each other. +* The **actual number** of duplicates. Here are some performance numbers you can use to determine the appropriate hardware for your data. -* 120k records of examples/febrl120k/test.csv take 5 minutes to run on a 4 core, 10 GB RAM local Spark cluster. +* 120k records of **examples/febrl120k/test.csv** take 5 minutes to run on a 4 core, 10 GB RAM local Spark cluster. * 5m records of [North Carolina Voters](https://github.com/zinggAI/zingg/tree/main/examples/ncVoters5M) take \~4 hours on a 4 core, 10 GB RAM local Spark cluster. * 9m records with 3 fields - first name, last name, email take 45 minutes to run on AWS m5.24xlarge instance with 96 cores, 384 GB RAM -* 80m records with 8-10 fields took less than 2 hours on 1 driver(128 GB RAM, 32 cores), 8 workers(224 GB RAM, 64 cores). This is a user-reported stat without any optimization. +* 80m records with 8-10 fields took less than 2 hours on 1 driver (128 GB RAM, 32 cores), 8 workers (224 GB RAM, 64 cores). This is a user-reported stat without any optimization. If you have up to a few million records, it may be easier to run Zingg on a single machine in Spark local mode. diff --git a/docs/setup/installation.md b/docs/setup/installation.md index ce5976b77..6fbcd35cc 100644 --- a/docs/setup/installation.md +++ b/docs/setup/installation.md @@ -7,7 +7,6 @@ description: From the pre-built release hosted on GitHub # Installation -Zingg runs on [Spark](https://spark.apache.org) and can be used on all major Spark distributions. Zingg can run on all major Linux flavors. - -Zingg can be installed from the [release on github](../stepbystep/installation/installing-from-release/), [built from sources](../stepbystep/installation/compiling-from-source.md) or used [directly through Docker](../stepbystep/installation/docker/). The next sections describe each option in more detail. +Zingg runs on [Spark](https://spark.apache.org) and can be used on all major Spark distributions. Zingg can run on all major Linux flavors. +Zingg can be installed from the [release on GitHub](../stepbystep/installation/installing-from-release/), [built from sources](../stepbystep/installation/compiling-from-source.md) or used [directly through Docker](../stepbystep/installation/docker/). The next sections describe each option in more detail. diff --git a/docs/setup/link.md b/docs/setup/link.md index 88140984a..760ca30f6 100644 --- a/docs/setup/link.md +++ b/docs/setup/link.md @@ -1,11 +1,11 @@ -# Linking across datasets +# Linking Across Datasets -In many cases like reference data mastering, enrichment, etc, two individual datasets are duplicates free but they need to be matched against each other. The link phase is used for such scenarios. +In many cases like reference data mastering, enrichment, etc, two individual datasets are duplicate-free but they need to be matched against each other. The link phase is used for such scenarios. `./zingg.sh --phase link --conf config.json` Sample configuration file [configLink.json](../../examples/febrl/configLink.json) is defined at [examples/febrl](https://github.com/zinggAI/zingg/tree/main/examples/febrl). In this option, each record from the first source is matched with all the records from the remaining sources. -The sample output is given in the image below. The linked records are given the same z\_cluster id. The last column (z\_source) in the output tells the source dataset of that record. +The sample output is given in the image below. The linked records are given the same **z\_cluster** id. The last column (**z\_source**) in the output tells the source dataset of that record. -![Link results](../../assets/link.png) +![Link Results](../../assets/link.png) diff --git a/docs/setup/match.md b/docs/setup/match.md index 050d95fa4..c4fdc1f93 100644 --- a/docs/setup/match.md +++ b/docs/setup/match.md @@ -1,17 +1,17 @@ --- -layout: default title: Find the matches parent: Step By Step Guide nav_order: 8 --- -### match -Finds the records which match with each other. +# Finding The Matches + +## Finds the records that match with each other. `./zingg.sh --phase match --conf config.json` -As can be seen in the image below, matching records are given the same z_cluster id. Each record also gets a z_minScore and z_maxScore which shows the least/greatest it matched with other records in the same cluster. +As can be seen in the image below, matching records are given the same **z\_cluster** id. Each record also gets a **z\_minScore** and **z\_maxScore** which shows the _least/greatest_ it matched with other records in the same cluster. -![Match results](/assets/match.gif) +![Match results](../../assets/match.gif) -If records across multiple sources have to be matched, the [link phase](./link.md) should be used. \ No newline at end of file +If records across multiple sources have to be matched, the [link phase](link.md) should be used. diff --git a/docs/setup/train.md b/docs/setup/train.md index 413e50aae..f40cc508b 100644 --- a/docs/setup/train.md +++ b/docs/setup/train.md @@ -1,10 +1,14 @@ --- -layout: default title: Build and save the model parent: Step By Step Guide nav_order: 7 --- -### train - training and saving the models -Builds up the Zingg models using the training data from the above phases and writes them to the folder zinggDir/modelId as specified in the config. - ./zingg.sh --phase train --conf config.json +# Building And Saving The Model + +Builds up the Zingg models using the training data from the above phases and writes them to the folder **zinggDir/modelId** as specified in the config. + +``` +./zingg.sh --phase train --conf config.json +``` + diff --git a/docs/setup/training/addOwnTrainingData.md b/docs/setup/training/addOwnTrainingData.md index e05fec60e..9ad57e86f 100644 --- a/docs/setup/training/addOwnTrainingData.md +++ b/docs/setup/training/addOwnTrainingData.md @@ -5,18 +5,18 @@ title: Using preexisting training data grand_parent: Step By Step Guide --- -# Using pre-existing training data +# Using Pre-existing Training Data -## Supplementing Zingg with existing training data +## Supplementing Zingg With Existing Training Data -If you already have some training data that you want to start with, you can use that as well with Zingg. Add an attribute trainingSamples to the config and define the training pairs. +If you already have some training data that you want to start with, you can use that as well with Zingg. Add an attribute **trainingSamples** to the config and define the training pairs. -The training data supplied to Zingg should have a z\_cluster column that groups the records together. The z\_cluster uniquely identies the group. We also need to add the z\_isMatch column which is 1 if the pairs match or 0 if they do not match. The z\_isMatch value has to be same for all the records in the z\_cluster group. They either match with each other or they dont. +The training data supplied to Zingg should have a **z\_cluster** column that groups the records together. The **z\_cluster** uniquely identifies the group. We also need to add the **z\_isMatch** column which is **1** if the pairs _match_ or **0** if they do _not_ match. The **z\_isMatch** value has to be the same for all the records in the **z\_cluster** group. They either match with each other or they don't. -An example is provided in [Github training data](../../../examples/febrl/training.csv). +An example is provided in [GitHub training data](../../../examples/febrl/training.csv). The above training data can be specified using [trainingSamples attribute in the configuration.](../../../examples/febrl/configWithTrainingSamples.json) In addition, labeled data of one model can also be exported and used as training data for another model. For details, check out [exporting labeled data](exportLabeledData.md). -Please note: It is advisable to still run [findTrainingData](findTrainingData.md) and [label](label.md) a few rounds to tune Zingg with the supplied training data as well as patterns it needs to learn independently. +**Note**: It is advisable to still run [findTrainingData](findTrainingData.md) and [label](label.md) a few rounds to tune Zingg with the supplied training data as well as patterns it needs to learn independently. diff --git a/docs/setup/training/createTrainingData.md b/docs/setup/training/createTrainingData.md index 0246ae013..b016c466f 100644 --- a/docs/setup/training/createTrainingData.md +++ b/docs/setup/training/createTrainingData.md @@ -5,6 +5,6 @@ title: Creating training data has_children: true --- -# Training data +# Working With Training Data -Zingg builds models to predict similarity. Training data is needed to build these models. The next sections describe how you can use the Zingg Interactive Labeler to create the training data. +Zingg builds models to predict _similarity_. Training data is needed to build these models. The next sections describe how you can use the **Zingg Interactive Labeler** to create the training data. diff --git a/docs/setup/training/findAndLabel.md b/docs/setup/training/findAndLabel.md index 152a6b66e..152d78fc3 100644 --- a/docs/setup/training/findAndLabel.md +++ b/docs/setup/training/findAndLabel.md @@ -7,8 +7,8 @@ nav_order: 2 # Find And Label -This phase is composed of two phases namely [findTrainingData](findTrainingData.md) and [label](label.md). This will help experienced users to quicken the process of creating Training data. +This phase is composed of two phases namely [findTrainingData](findTrainingData.md) and [label](label.md). This will help experienced users to quicken the process of creating training data. `./zingg.sh --phase findAndLabel --conf config.json` -As this is phase runs findTrainingData and label together, it should be run only for small datasets where findTrainingData takes a short time to run, else the the user will have to wait long for the console for labeling. +As this is phase runs **findTrainingData** and **label** together, it should be run only for small datasets where **findTrainingData** takes a short time to run, else the the user will have to wait long for the console to label. diff --git a/docs/setup/training/findTrainingData.md b/docs/setup/training/findTrainingData.md index 5430b50b9..e3e04437f 100644 --- a/docs/setup/training/findTrainingData.md +++ b/docs/setup/training/findTrainingData.md @@ -7,10 +7,10 @@ description: pairs of records that could be similar to train Zingg # Finding Records For Training Set Creation -The findTrainingData phase prompts Zingg to search for edge cases in the data which can be labeled by the user and used for learning. During this phase, Zingg combs through the data samples and judiciously selects limited representative pairs which can be marked by the user. Zingg is very frugal about the training so that user effort is minimized and models can be built and deployed quickly. +The **findTrainingData** phase prompts Zingg to search for edge cases in the data which can be labeled by the user and used for learning. During this phase, Zingg combs through the data samples and judiciously selects limited representative pairs that can be marked by the user. Zingg is very frugal about the training so that user effort is minimized and models can be built and deployed quickly. -This findTrainingData job writes the edge cases to the folder configured through zinggDir/modelId in the config. +This **findTrainingData** job writes the edge cases to the folder configured through `zinggDir/modelId` in the config: `./zingg.sh --phase findTrainingData --conf config.json` -The findTrainingData phase is run first and then the label phase is run and this cycle is repeated so that the Zingg models get smarter from user feedback. +The **findTrainingData** phase is run first and then the label phase is run and this cycle is repeated so that the Zingg models get smarter from user feedback. diff --git a/docs/setup/training/label.md b/docs/setup/training/label.md index 4081f08b5..77dbf1123 100644 --- a/docs/setup/training/label.md +++ b/docs/setup/training/label.md @@ -7,12 +7,12 @@ description: Providing user feedback on the training pairs # Labeling Records -The label phase opens an interactive learner where the user can mark the pairs found by findTrainingData phase as matches or non-matches. The findTrainingData phase generates edge cases for labeling and the label phase helps the user mark them. +The label phase opens an _interactive_ learner where the user can mark the pairs found by **findTrainingData** phase as matches or non-matches. The **findTrainingData** phase generates edge cases for labeling and the label phase helps the user mark them. `./zingg.sh --phase label --conf config.json ` ![Shows records and asks user to mark yes, no, can't say on the cli.](../../../assets/label.gif) -Proceed running findTrainingData followed by label phases till you have at least 30-40 positives, or when you see the predictions by Zingg converging with the output you want. At each stage, the user will get different variations of attributes across the records. Zingg performs pretty well with even a small number of training, as the samples to be labeled are chosen by the algorithm itself. +Proceed running **findTrainingData** followed by label phases till you have at least 30-40 positives, or when you see the predictions by Zingg converging with the output you want. At each stage, the user will get different variations of attributes across the records. Zingg performs pretty well with even a small number of training, as the samples to be labeled are chosen by the algorithm itself. -The showConcise flag when passed to the Zingg command line only shows fields which are NOT DONT\_USE +The **showConcise** flag when passed to the Zingg command line only shows fields which are **NOT DONT\_USE** diff --git a/docs/stepByStep.md b/docs/stepByStep.md index f64352dc2..d11f06d04 100644 --- a/docs/stepByStep.md +++ b/docs/stepByStep.md @@ -8,23 +8,23 @@ description: Instructions on how to install and use Zingg Installation instructions for docker, as well as GitHub release, are [here](setup/installation.md). If you need to build from the sources or compile for a different flavor of Spark, check [compiling](setup/installation.md#compiling-from-sources). -## Step 2: Plan for Hardware +## Step 2: Plan For Hardware Decide your hardware based on the [performance numbers](setup/hardwareSizing.md). -## Step 3: Build the config for your data +## Step 3: Build The Config For Your Data Zingg needs a configuration file that defines the data and what kind of matching is needed. You can create the configuration file by following the instructions [here](stepbystep/configuration/). -## Step 4: Create the training data +## Step 4: Create Training Data Zingg builds a new set of models(blocking and similarity) for every new schema definition(columns and match types). This means running the _findTrainingData_ and _label_ phases multiple times to build the training dataset from which Zingg will learn. You can read more [here](setup/training/createTrainingData.md). -## Step 5: Build and save the model +## Step 5: Build & Save The Model The training data in Step 4 above is used to train Zingg and build and save the models. This is done by running the _train_ phase. Read more [here](setup/train.md). -## Step 6: Voila, let's match! +## Step 6: Voila, Let's Match! It's now time to apply the model to our data. This is done by running the _match_ or the _link_ phases depending on whether you are matching within a single source or linking multiple sources respectively. You can read more about [matching](setup/match.md) and [linking](setup/link.md). diff --git a/docs/stepbystep/configuration/README.md b/docs/stepbystep/configuration/README.md index 23417002c..28a1ee262 100644 --- a/docs/stepbystep/configuration/README.md +++ b/docs/stepbystep/configuration/README.md @@ -4,11 +4,8 @@ description: JSON configuration file required to work with Zingg # Configuration -Zingg comes with a command-line script that invokes spark-submit. This script needs a JSON configuration file to define the input data and match types, location of training data, models, and output. +Zingg comes with a command-line script that invokes `spark-submit`. This script needs a **JSON configuration** file to define the input data and match types, location of training data, models, and output. Sample configuration files are defined at [examples/febrl](https://github.com/zinggAI/zingg/tree/main/examples/febrl) and [examples/febrl120k](https://github.com/zinggAI/zingg/tree/main/examples/febrl120k). The following sections describe the different JSON attributes of the configuration to get Zingg to work with your data. - - - diff --git a/docs/stepbystep/configuration/configuring-through-environment-variables.md b/docs/stepbystep/configuration/configuring-through-environment-variables.md index 540f15385..444806dc8 100644 --- a/docs/stepbystep/configuration/configuring-through-environment-variables.md +++ b/docs/stepbystep/configuration/configuring-through-environment-variables.md @@ -4,7 +4,7 @@ description: Passing Configuration value through the system environment variable # Configuring Through Environment Variables -If a user does not want to pass the value of any JSON parameter through the config file for security reasons or otherwise, they can configure that value through the system environment variable. The system variable name needs to be put in the config file in place of its JSON value. At runtime, the config file gets updated with the value of the environment variable. +If a user does not want to pass the value of any JSON parameter through the config file for security reasons or otherwise, they can configure that value through the _system environment variable_. The system variable name needs to be put in the config file in place of its JSON value. At runtime, the config file gets updated with the value of the environment variable. Below is the config file snippet that references a few environment variables. @@ -27,4 +27,4 @@ Below is the config file snippet that references a few environment variables. "collectMetrics": $collectMetrics$ ``` -Environment variables must be enclosed within dollar signs **$var$** to take effect. Also, the config file name must be suffixed with \***.env**. As usual, String variables need to be put within quotes **"$var$"**, Boolean and Numeric values should be put without quotes **$var$**. +Environment variables must be enclosed within dollar signs **$var$** to take effect. Also, the config file name must be _suffixed_ with \***.env**. As usual, `String`variables need to be put _within_ quotes **"$var$"**, `Boolean` and `Numeric` values should be put _without_ quotes **$var$**. diff --git a/docs/stepbystep/configuration/field-definitions.md b/docs/stepbystep/configuration/field-definitions.md index d2bd5c291..f5058006c 100644 --- a/docs/stepbystep/configuration/field-definitions.md +++ b/docs/stepbystep/configuration/field-definitions.md @@ -10,38 +10,38 @@ description: >- This is a JSON array representing the fields from the source data to be used for matching, and the kind of matching they need. -Each field denotes a column from the input. Fields have the following JSON attributes: +Each field denotes a **column** from the input. Fields have the following JSON attributes: **fieldName** -The name of the field from the input data schema +The **name** of the field from the input data schema **fields** -To be defined later. For now, please keep this as the fieldName +To be defined later. For now, please keep this as the `fieldName` **dataType** -Type of the column - string, integer, double, etc. +Type of the column - `string, integer, double`, etc. **matchType** - The way to match the given field. Multiple match types, separated by commas, can also be used. For example FUZZY,NUMERIC. Here are the different types supported. +The way to match the given field. Multiple match types, separated by commas, can also be used. For example **FUZZY**, **NUMERIC**. Here are the different types supported: #### showConcise -| Match Type | Description | Can be applied to | +| Match Type | Description | Applicable To | | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | FUZZY | Broad matches with typos, abbreviations, and other variations. | string, integer, double, date | | EXACT | No tolerance with variations, Preferable for country codes, pin codes, and other categorical variables where you expect no variations. | string | | DONT\_USE | Appears in the output but no computation is done on these. Helpful for fields like ids that are required in the output. DONT\_USE fields are not shown to the user while labeling, if [showConcise](field-definitions.md#showconcise) is set to true. | any | | EMAIL | Matches only the id part of the email before the @ character | any | | PINCODE | Matches pin codes like xxxxx-xxxx with xxxxx | string | -| NULL\_OR\_BLANK | By default Zingg treats nulls as matches, but if we add this to a field which has other match type like FUZZY, Zingg will build a feature for null values and learn | string | -| TEXT | Compares words overlap between two strings. Good for descriptive fields without much typos | string | -| NUMERIC | extracts numbers from strings and compares how many of them are same across both strings, for example apartment numbers. | string | -| NUMERIC\_WITH\_UNITS | extracts product codes or numbers with units, for example 16gb from strings and compares how many are same across both strings | string | -| ONLY\_ALPHABETS\_EXACT | only looks at the alphabetical characters and compares if they are exactly the same. when the numbers inside strings do not matter, for example if you are looking at buildings but want to ignore flat numbers | string | -| ONLY\_ALPHABETS\_FUZZY | ignores any numbers in the strings and then does a fuzzy comparison, useful for fields like addresses with typos where you want to look at street number separately using NUMERIC | string | +| NULL\_OR\_BLANK | By default Zingg treats nulls as matches, but if we add this to a field which has other match type like FUZZY, Zingg will build a feature for null values and learn | string | +| TEXT | Compares words overlap between two strings. Good for descriptive fields without much typos | string | +| NUMERIC | Extracts numbers from strings and compares how many of them are same across both strings, for example apartment numbers. | string | +| NUMERIC\_WITH\_UNITS | Extracts product codes or numbers with units, for example 16gb from strings and compares how many are same across both strings | string | +| ONLY\_ALPHABETS\_EXACT | Only looks at the alphabetical characters and compares if they are exactly the same. When the numbers inside strings do not matter, for example if you are looking at buildings but want to ignore flat numbers | string | +| ONLY\_ALPHABETS\_FUZZY | Ignores any numbers in the strings and then does a fuzzy comparison, useful for fields like addresses with typos where you want to look at street number separately using NUMERIC | string | #### diff --git a/docs/stepbystep/configuration/model-location.md b/docs/stepbystep/configuration/model-location.md index b5a5ae0cf..7aa86e685 100644 --- a/docs/stepbystep/configuration/model-location.md +++ b/docs/stepbystep/configuration/model-location.md @@ -2,8 +2,8 @@ #### zinggDir -The location where trained models will be saved. Defaults to /tmp/zingg +The **location** where trained models will be saved. Defaults to `/tmp/zingg` #### modelId -An identifier for the model. You can train multiple models - say, one for customers matching names, age, and other personal details and one for households matching addresses. Each model gets saved under zinggDir/modelId +An **identifier** for the model. You can train multiple models - say, one for **customers** matching _names_, _age_, and other personal details and one for **households** matching _addresses_. Each model gets saved under `zinggDir/modelId` diff --git a/docs/stepbystep/configuration/telemetry.md b/docs/stepbystep/configuration/telemetry.md index 486714f5a..71d3ac25a 100644 --- a/docs/stepbystep/configuration/telemetry.md +++ b/docs/stepbystep/configuration/telemetry.md @@ -10,4 +10,4 @@ Application captures a few measurements for runtime metrics such as _no. of data **Zingg does not capture any user data or input data and will never do so.** -This feature may be disabled by setting this flag to false. The default value is true. For details, refer to [Security And Privacy](../../security.md). +This feature may be disabled by setting this flag to **false**. The default value is **true**. For details, refer to [Security And Privacy](../../security.md). diff --git a/docs/stepbystep/configuration/tuning-label-match-and-link-jobs.md b/docs/stepbystep/configuration/tuning-label-match-and-link-jobs.md index e4553f543..4ca6ea578 100644 --- a/docs/stepbystep/configuration/tuning-label-match-and-link-jobs.md +++ b/docs/stepbystep/configuration/tuning-label-match-and-link-jobs.md @@ -6,4 +6,4 @@ The number of Spark partitions over which the input data is distributed. Keep it #### labelDataSampleSize -Fraction of the data to be used for training the models. Adjust it between 0.0001 and 0.1 to keep the sample size small enough so that it finds enough edge cases fast. If the size is bigger, the findTrainingData job will spend more time combing through samples. If the size is too small, Zingg may not find the right edge cases. +Fraction of the data to be used for training the models. Adjust it between 0.0001 and 0.1 to keep the sample size small enough so that it finds enough edge cases fast. If the size is bigger, the `findTrainingData` job will spend more time combing through samples. If the size is too small, Zingg may not find the right edge cases. diff --git a/docs/stepbystep/installation/compiling-from-source.md b/docs/stepbystep/installation/compiling-from-source.md index 1de4f32fa..8181bddfb 100644 --- a/docs/stepbystep/installation/compiling-from-source.md +++ b/docs/stepbystep/installation/compiling-from-source.md @@ -6,9 +6,7 @@ description: For a different Spark version or compiling latest code If you need to compile the latest code or build for a different Spark version, you can clone this repo and -* Install maven -* Install JDK 1.8 -* Set JAVA\_HOME to JDK base directory +* Install **maven** +* Install **JDK 1.8** +* Set `JAVA_HOME` to JDK base directory * Run the following: `mvn initialize` and then `mvn clean compile package` - - diff --git a/docs/stepbystep/installation/docker/README.md b/docs/stepbystep/installation/docker/README.md index 13a9f1b30..d1282f112 100644 --- a/docs/stepbystep/installation/docker/README.md +++ b/docs/stepbystep/installation/docker/README.md @@ -4,7 +4,7 @@ description: From pre-built Docker image with all dependencies included # Docker -## Running from Docker image from Docker hub +## Running From Docker Image From Docker Hub The easiest way to get started is to pull the Docker image with the last release of Zingg. @@ -13,6 +13,6 @@ docker pull zingg/zingg:0.4.0 docker run -it zingg/zingg:0.4.0 bash ``` -To know more about Docker, please refer to the official [docker documentation](https://docs.docker.com/). +To know more about Docker, please refer to the official [Docker documentation](https://docs.docker.com/). ## diff --git a/docs/stepbystep/installation/docker/copying-files-to-and-from-the-container.md b/docs/stepbystep/installation/docker/copying-files-to-and-from-the-container.md index 57d5cd355..60f70e0a2 100644 --- a/docs/stepbystep/installation/docker/copying-files-to-and-from-the-container.md +++ b/docs/stepbystep/installation/docker/copying-files-to-and-from-the-container.md @@ -2,9 +2,9 @@ description: Alternative to volume/bind mount --- -# Copying Files To and From the Container +# Copying Files To And From The Container -A quick alternative to **Volume/bind Mount** is to just copy necessary files to and forth between the host and the container. +A quick alternative to **Volume/Bind Mount** is to just copy necessary files to and forth between the host and the container. One specific file/directory can be copied TO and FROM the container. e.g. @@ -13,9 +13,8 @@ $ docker cp foo.txt :/foo.txt $ docker cp :/foo.txt foo.txt ``` -The container id of the running instance can be found using the below command. +The _container id_ of the running instance can be found using the below command: ``` $ docker ps ``` - diff --git a/docs/stepbystep/installation/docker/file-read-write-permissions.md b/docs/stepbystep/installation/docker/file-read-write-permissions.md index 0c5ec43f0..1026469c1 100644 --- a/docs/stepbystep/installation/docker/file-read-write-permissions.md +++ b/docs/stepbystep/installation/docker/file-read-write-permissions.md @@ -2,9 +2,9 @@ description: To enable user to have create/read/write files in shared location --- -# File read/write permissions +# File Read/Write Permissions -A docker image is preferred to run with a non-root user. By default, the Zingg container runs with uid '1001'. A valid 'uid' can be passed through the command line in order to run the container with that user id. This will enable the user to have requisite permissions to create/read/write files in the shared location. +A docker image is preferred to run with a non-root user. By default, the Zingg container runs with **uid '1001'**. A valid '_uid_' can be passed through the command line in order to run the container with that user id. This will enable the user to have requisite permissions to create/read/write files in the shared location. ``` $ id diff --git a/docs/stepbystep/installation/docker/shared-locations.md b/docs/stepbystep/installation/docker/shared-locations.md index e580b84de..ecf9f7c4b 100644 --- a/docs/stepbystep/installation/docker/shared-locations.md +++ b/docs/stepbystep/installation/docker/shared-locations.md @@ -2,14 +2,14 @@ description: Shared location used to store Zingg configurations --- -# Shared locations +# Shared Locations -## Zingg configurations using shared location +## Zingg Configurations Using Shared Location -The **zinggDir** location where model information is stored may use a shared location. In fact, any oft-editable file such as config.json should be kept in this location only. +The **zinggDir** location where model information is stored may use a shared location. In fact, any _oft-editable_ file such as **config.json** should be kept in this location only. ``` zingg.sh --phase label --conf config.json --zinggDir /location ``` -Similarly, the output and data dir [configurations](../../../stepbystep/configuration) inside config.json can be made using a shared location. Please ensure that the running user has access permissions for this location. +Similarly, the output and data dir [configurations](../../configuration/) inside **config.json** can be made using a shared location. Please ensure that the running user has access permissions for this location. diff --git a/docs/stepbystep/installation/docker/sharing-custom-data-and-config-files.md b/docs/stepbystep/installation/docker/sharing-custom-data-and-config-files.md index c85a615a7..edeb11450 100644 --- a/docs/stepbystep/installation/docker/sharing-custom-data-and-config-files.md +++ b/docs/stepbystep/installation/docker/sharing-custom-data-and-config-files.md @@ -2,9 +2,9 @@ description: Using custom data to save data files on host machine --- -# Sharing custom data and config files +# Sharing Custom Data And Config Files -However, note that once the docker container is stopped, all the work done in that session is lost. If we want to use custom data or persist the generated model or data files, we have to use **Volumes** or **Bind mount** to share files between the two. +However, note that once the docker container is stopped, all the work done in that session is lost. If we want to use custom data or persist the generated model or data files, we have to use **Volumes** or **Bind Mount** to share files between the two. ``` docker run -v : -it zingg/zingg:0.4.0 bash diff --git a/docs/stepbystep/installation/installing-from-release/README.md b/docs/stepbystep/installation/installing-from-release/README.md index 66180845a..e246576f5 100644 --- a/docs/stepbystep/installation/installing-from-release/README.md +++ b/docs/stepbystep/installation/installing-from-release/README.md @@ -4,7 +4,7 @@ description: From the pre-built release hosted on GitHub # Installing From Release -Zingg is prebuilt for common Spark versions so that you can use those directly. The following document assumes that we are installing Zingg 0.3 on Spark 3.1.2, but you can follow the same process for other versions too. +Zingg is prebuilt for common Spark versions so that you can use those directly. The following document assumes that we are installing **Zingg 0.3** on **Spark 3.1.2**, but you can follow the same process for other versions too. ## Prerequisites @@ -12,9 +12,6 @@ A) Java JDK - version "1.8.0\_131" B) Apache Spark - version spark-3.5.0-bin-hadoop3 -**** - - +*** #### - diff --git a/docs/stepbystep/installation/installing-from-release/installing-zingg.md b/docs/stepbystep/installation/installing-from-release/installing-zingg.md index 79bf1fc70..e39f05e70 100644 --- a/docs/stepbystep/installation/installing-from-release/installing-zingg.md +++ b/docs/stepbystep/installation/installing-from-release/installing-zingg.md @@ -6,14 +6,14 @@ description: Downloading and setting things up Download the tar zingg-version.tar.gz from the [Zingg releases page](https://github.com/zinggAI/zingg/releases) to a folder of your choice and run the following: -> gzip -d zingg-0.4.0.tar.gz ; tar xvf zingg-0.4.0.tar +> `gzip -d zingg-0.4.0.tar.gz ; tar xvf zingg-0.4.0.tar` -This will create a folder zingg-0.4.0 under the chosen folder. +This will create a folder _zingg-0.4.0_ under the chosen folder. Move the above folder to zingg. -> mv zingg-0.4.0 \~/zingg +> `mv zingg-0.4.0 ~/zingg` -> export ZINGG\_HOME=path to zingg +> `export ZINGG_HOME=path to zingg` -> export PATH=$PATH:$JAVA\_HOME/bin:$SPARK\_HOME/bin:$SPARK\_HOME/sbin:ZINGG\_HOME/scripts +> `export PATH=$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:ZINGG_HOME/scripts` diff --git a/docs/stepbystep/installation/installing-from-release/single-machine-setup.md b/docs/stepbystep/installation/installing-from-release/single-machine-setup.md index 629dfbfb1..d0503db6b 100644 --- a/docs/stepbystep/installation/installing-from-release/single-machine-setup.md +++ b/docs/stepbystep/installation/installing-from-release/single-machine-setup.md @@ -8,18 +8,18 @@ Zingg can be easily run on a single machine to process up to a few million recor To prepare your machine, please do the following steps: -A) Install the specified JDK version +A) Install the specified **JDK** version B) Apache Spark - Download the specified version from spark.apache.org and unzip it in a folder under home -Please add the following entries to \~/.bash\_aliases +Please add the following entries to `~/.bash_aliases` -> export JAVA\_HOME=path to jdk +> `export JAVA_HOME=path to jdk` -> export SPARK\_HOME=path to location of Apache Spark +> `export SPARK_HOME=path to location of Apache Spark` -> export SPARK\_MASTER=local\[\*] +> `export SPARK_MASTER=local[*]` -C) Correct entry of host under /etc/hosts +C) Correct entry of host under `/etc/hosts` -Run ifconfig to find the IP of the machine and make sure it is added to the /etc/hosts for localhost. +Run `ifconfig` to find the IP of the machine and make sure it is added to the `/etc/hosts` for localhost. diff --git a/docs/stepbystep/installation/installing-from-release/spark-cluster-checklist.md b/docs/stepbystep/installation/installing-from-release/spark-cluster-checklist.md index 555a6f44c..af2e8b3d9 100644 --- a/docs/stepbystep/installation/installing-from-release/spark-cluster-checklist.md +++ b/docs/stepbystep/installation/installing-from-release/spark-cluster-checklist.md @@ -6,8 +6,8 @@ description: To configure Zingg in a Spark cluster If you have a ready Spark cluster, you can run Zingg by configuring the following environment on your driver machine: -> export JAVA\_HOME=path to jdk +> `export JAVA_HOME=path to jdk` -> export SPARK\_HOME=path to Apache Spark +> `export SPARK_HOME=path to Apache Spark` -> export SPARK\_MASTER=spark://master-host:master-port +> `export SPARK_MASTER=spark://master-host:master-port` diff --git a/docs/stepbystep/installation/installing-from-release/verification.md b/docs/stepbystep/installation/installing-from-release/verification.md index 8b94c9ac1..5b1adc941 100644 --- a/docs/stepbystep/installation/installing-from-release/verification.md +++ b/docs/stepbystep/installation/installing-from-release/verification.md @@ -22,6 +22,6 @@ Let us now run a sample program to ensure that our installation is correct. > `./scripts/zingg.sh --phase trainMatch --conf examples/febrl/config.json` -The above will build Zingg models and use that to find duplicates in the examples/febl/test.csv file. You will see Zingg logs on the console and once the job finishes, you will see some files under /tmp/zinggOutput with matching records sharing the same cluster id. +The above will build Zingg models and use that to find duplicates in the **examples/febl/test.csv** file. You will see Zingg logs on the console and once the job finishes, you will see some files under **/tmp/zinggOutput** with matching records sharing the same _cluster id_. Congratulations, Zingg has been installed! diff --git a/docs/stepbystep/zingg-command-line.md b/docs/stepbystep/zingg-command-line.md index 59dfc70d3..54bdd9c61 100644 --- a/docs/stepbystep/zingg-command-line.md +++ b/docs/stepbystep/zingg-command-line.md @@ -4,12 +4,12 @@ description: Using Zingg command line to interact with Zingg # Zingg Command Line -The Zingg command line interface is the way to interact with Zingg to fire labeling, training, and matching jobs and perform other Zingg functions. +The Zingg command line interface is the way to interact with Zingg to fire _labeling, training,_ and _matching_ jobs and perform other Zingg functions. #### To invoke the command line and pass a JSON configuration : `./scripts/zingg.sh --phase --conf ` -#### To invoke the command line and run python programs : +#### To invoke the command line and run Python programs : `./scripts/zingg.sh --run ` diff --git a/docs/stepbystep/zingg-runtime-properties.md b/docs/stepbystep/zingg-runtime-properties.md index 20b04a062..f686fb35d 100644 --- a/docs/stepbystep/zingg-runtime-properties.md +++ b/docs/stepbystep/zingg-runtime-properties.md @@ -4,8 +4,8 @@ description: Memory, external jars and other runtime properties # Zingg Runtime Properties -Zingg jobs can be passed JVM and other settings through a properties file. A sample file exists at [config/zingg.conf](https://github.com/zinggAI/zingg/blob/main/config/zingg.conf). The properties can be passed by invoking +Zingg jobs can be passed JVM and other settings through a _properties_ file. A sample file exists at [config/zingg.conf](https://github.com/zinggAI/zingg/blob/main/config/zingg.conf). The properties can be passed by invoking -`./scripts/zingg.sh --properties-file --conf conf.json` +`./scripts/zingg.sh --properties-file --conf conf.json` -To include jars for Snowflake/BigQuery/MySQL etc, please download them and add them to the spark.jars property. +To include jars for Snowflake/BigQuery/MySQL etc, please download them and add them to the `spark.jars` property. diff --git a/docs/updatingLabels.md b/docs/updatingLabels.md index af81222dd..0bb1a8695 100644 --- a/docs/updatingLabels.md +++ b/docs/updatingLabels.md @@ -1,12 +1,12 @@ # Updating Labeled Pairs -**Please note: This is an experimental feature. Please keep a backup copy of your model folder in a separate place before running this** +N**ote: This is an experimental feature. Please keep a backup copy of your model folder in a separate place before running this** As our understanding of our data changes, we may need to revisit the previously marked pairs and update them. To do this, please [generate the documentation of the model.](generatingdocumentation.md) You can then invoke the updater by invoking\ `./scripts/zingg.sh --phase updateLabel --conf ` -This brings up the console labeler which accepts the cluster id of the pairs you want to update. +This brings up the console labeler which accepts the **cluster id** of the pairs you want to update. -![Shows records and asks user to update yes, no, cant say on the cli.](../assets/update.gif) +![Shows records and asks user to update yes, no, can't say on the CLI.](../assets/update.gif) diff --git a/docs/working-with-python.md b/docs/working-with-python.md index 5c6f6e2fc..b19857fbe 100644 --- a/docs/working-with-python.md +++ b/docs/working-with-python.md @@ -4,17 +4,15 @@ description: A whole new way to work with Zingg! # Working With Python -Instead of configuring Zingg using the JSON, we can now use Python to build and run Zingg entity and identity resolution programs. This is handy when you want to run Zingg on an existing Spark cluster. To run on local machine, please do the installation of the release before running Zingg python programs. +Instead of configuring Zingg using JSON, we can now use Python to build and run Zingg entity and identity resolution programs. This is handy when you want to run Zingg on an existing Spark cluster. To run on a local machine, please install from the release before running Zingg Python programs. -The Zingg Python package can be installed by invoking +The Zingg Python package can be installed by invoking: `python -m pip install zingg` -Detailed documentation of the python api is available at [https://readthedocs.org/projects/zingg/](https://readthedocs.org/projects/zingg/) +Detailed documentation of the Python API is available at:[https://readthedocs.org/projects/zingg/](https://readthedocs.org/projects/zingg/) -Example programs for python exist under examples. Please check examples/febrl/FebrlExample.py to get started. +Example programs for Python exist under [examples](https://github.com/zinggAI/zingg/tree/main/examples/febrl). Please check [examples/febrl/FebrlExample.py](https://github.com/zinggAI/zingg/blob/main/examples/febrl/FebrlExample.py) to get started. -Please refer to the [command line guide](stepbystep/zingg-command-line.md) for running python programs. Please note that Zingg Python programs are PySpark programs and hence need the Zingg cli to execute. - -`` +Please refer to the [command line guide](stepbystep/zingg-command-line.md) for running Python programs. Please note that Zingg Python programs are PySpark programs and hence need the Zingg CLI to execute. diff --git a/docs/zModels.md b/docs/zModels.md index f377583d0..5f0d66764 100644 --- a/docs/zModels.md +++ b/docs/zModels.md @@ -10,11 +10,11 @@ Zingg learns two models from the data. ## 1. Blocking Model -One fundamental problem with scaling data mastering is that the number of comparisons increases quadratically as the number of input records increases. +One fundamental problem with scaling data mastering is that the number of comparisons increases **quadratically** as the number of input records increases. ![Data Mastering At Scale](../assets/fuzzymatchingcomparisons.jpg) -Zingg learns a clustering/blocking model which indexes near similar records. This means that Zingg does not compare every record with every other record. Typical Zingg comparisons are 0.05-1% of the possible problem space. +Zingg learns a clustering/blocking model which indexes near similar records. This means that Zingg does not compare every record with every other record. Typical Zingg comparisons are **0.05-1%** of the possible problem space. ## 2. Similarity Model From 00fcc321b88a5a73953b5129a835942be31d0790 Mon Sep 17 00:00:00 2001 From: Sonal Date: Thu, 22 Aug 2024 14:55:36 +0530 Subject: [PATCH 35/36] Update SUMMARY.md --- docs/SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 9aaefcb51..30f01b9c4 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -34,9 +34,9 @@ * [Using Pre-existing Training Data](setup/training/addOwnTrainingData.md) * [Updating Labeled Pairs](updatingLabels.md) * [Exporting Labeled Data](setup/training/exportLabeledData.md) - * [Add Incremental Data](runIncremental.md) * [Building And Saving The Model](setup/train.md) * [Finding The Matches](setup/match.md) + * [Add Incremental Data](runIncremental.md) * [Linking Across Datasets](setup/link.md) * [Data Sources and Sinks](dataSourcesAndSinks/connectors.md) * [Zingg Pipes](dataSourcesAndSinks/pipes.md) From 3be49c428fca63d0855265fa44f947eac938651a Mon Sep 17 00:00:00 2001 From: Sonal Goyal Date: Wed, 28 Aug 2024 05:01:27 +0000 Subject: [PATCH 36/36] GITBOOK-26: No subject --- docs/SUMMARY.md | 2 +- docs/runIncremental.md | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 30f01b9c4..6608c8212 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -36,7 +36,7 @@ * [Exporting Labeled Data](setup/training/exportLabeledData.md) * [Building And Saving The Model](setup/train.md) * [Finding The Matches](setup/match.md) - * [Add Incremental Data](runIncremental.md) + * [Adding Incremental Data](runIncremental.md) * [Linking Across Datasets](setup/link.md) * [Data Sources and Sinks](dataSourcesAndSinks/connectors.md) * [Zingg Pipes](dataSourcesAndSinks/pipes.md) diff --git a/docs/runIncremental.md b/docs/runIncremental.md index 2a1597fab..cc7391d0b 100644 --- a/docs/runIncremental.md +++ b/docs/runIncremental.md @@ -1,8 +1,14 @@ -# Add Incremental Data +--- +description: >- + Building a continuosly updated identity graph with new, updated and deleted + records +--- -### Run Incremental Loads For New and Updated Records - _Zingg Enterprise Feature_ +# Adding Incremental Data -Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using Zingg Enterprise, incremental loads can be run to match existing pre-resolved entities. The new and updated records are matched to existing clusters, and new persistent **ZINGG\_IDs** are generated for records that do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge, and unmerge happens automatically in the flow. Zingg Enterprise also takes care of human feedback on previously matched data to ensure that it does not override the approved records. +[Zingg Enterprise Feature](#user-content-fn-1)[^1] + +Rerunning matching on entire datasets is wasteful, and we lose the lineage of matched records against a persistent identifier. Using the[ incremental flow](https://www.learningfromdata.zingg.ai/p/zingg-incremental-flow) feature in [Zingg Enterprise](https://www.zingg.ai/company/zingg-enterprise), incremental loads can be run to match existing pre-resolved entities. The new and updated records are matched to existing clusters, and new persistent [**ZINGG\_IDs**](https://www.learningfromdata.zingg.ai/p/hello-zingg-id) are generated for records that do not find a match. If a record gets updated and Zingg Enterprise discovers that it is a more suitable match with another cluster, it will be reassigned. Cluster assignment, merge, and unmerge happens automatically in the flow. Zingg Enterprise also takes care of human feedback on previously matched data to ensure that it does not override the approved records. ### The incremental phase is run as follows: @@ -100,3 +106,5 @@ options = ClientOptions([ClientOptions.PHASE,"runIncremental"]) zingg = EZingg(incrArgs, options) zingg.initAndExecute() ``` + +[^1]: Zingg Enterprise is an advance version of Zingg Community with production grade features