From d6dd7bd4c5637ef1d1e6810e23156da22b281277 Mon Sep 17 00:00:00 2001 From: Robert Betts Date: Sun, 1 Oct 2023 20:28:33 +0100 Subject: [PATCH 1/5] More documentation --- README.md | 3 +- docs/source/index.md | 29 +++++++++- docs/source/nuropb_diagram.png | Bin 0 -> 199261 bytes docs/utils/nuropb_diagram.py | 36 ++++++++++++ docs/utils/nuropb_domain_service.py | 28 ++++++++++ poetry.lock | 84 +++++++++++++++++++++++++++- pyproject.toml | 4 +- src/nuropb/encodings/README.md | 60 ++++++++++---------- 8 files changed, 210 insertions(+), 34 deletions(-) create mode 100644 docs/source/nuropb_diagram.png create mode 100644 docs/utils/nuropb_diagram.py create mode 100644 docs/utils/nuropb_domain_service.py diff --git a/README.md b/README.md index effd99b..3ab0cc7 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,7 @@ If you have code that you want to easily scale, communicate with other services **If any of these are of interest to you, NuroPb is worth considering.** - - +Diagram of an example NuroPb enabled Application or Domain Service NuroPb is available under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html), this web site including all documentation is licensed under [Creative diff --git a/docs/source/index.md b/docs/source/index.md index 9dd6965..d66e3d1 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -1,6 +1,31 @@ +# NuroPb -```{include} ../../README.md -``` +## Plumbing, routing and communications for Distributed, Asynchronous, Event Driven, Services + +[![codecov](https://codecov.io/gh/robertbetts/nuropb/branch/main/graph/badge.svg?token=DVSBZY794D)](https://codecov.io/gh/robertbetts/nuropb) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![CodeFactor](https://www.codefactor.io/repository/github/robertbetts/nuropb/badge)](https://www.codefactor.io/repository/github/robertbetts/nuropb) +[![License: Apache 2.0](https://img.shields.io/pypi/l/giteo)](https://www.apache.org/licenses/LICENSE-2.0.txt) +[![Documentation Status](https://readthedocs.org/projects/nuropb/badge/?version=latest)](https://nuropb.readthedocs.io/en/latest/?badge=latest) + + +If you have code that you want to easily scale, communicate with other services or provide access to consumers, or: +* You'd like to scale a service horizontally, many times over at an unknown scale. +* Your service needs to communicate with other services +* Implement event driven processes and flows +* A need for websocket endpoints that integrate seamlessly to backend services and events +* A proxy for REST Consumers to interact with asynchronous services +* A growing team of Ml-Ops and Datascience engineers who'd like to deploy their models as services +* Require service gateway that bridges cloud VPNs and on-premise networks +* Wrap an existing or legacy service to benefit from any of the above + +**If any of these are of interest to you, NuroPb is worth considering.** + +![Diagram of an example NuroPb enabled Application or Domain Service](nuropb_diagram.png) + +NuroPb is available under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html), +this web site including all documentation is licensed under [Creative +Commons 3.0](https://creativecommons.org/licenses/by/3.0/). ```{toctree} :hidden: diff --git a/docs/source/nuropb_diagram.png b/docs/source/nuropb_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..addfcaae6222ee989acfcd4f4a2c68047b93b5de GIT binary patch literal 199261 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

0du>@Yh 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ⅇ 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 }ES?o{Q_)KBGdHKtb>>i|vAW z2rDFroroa>7+D_0Ir`9;pAmkF$?nTq`##I>EX=PNH}1mu)&fhgw%xt^NVC zjW58vX!8H_)9E;Ha0*R2VpOI}cg8#h1iMAV32YTIhc5zE8+R|E56nsi?iRe_AAO`G z%B~*$+&Aoouq^p=pWkvU6}38{1pmW90HT08r$ku`0GZK8iHX|m<*mYMKV&}#f?4T8 z(*`DOnqs0GqE9(PPP#Iwft}wG3%XaDUPma07se{0S7W1p)OZ^DSi7hrb;+D4K&S^b zN@<%cJ9TAVaI%Ar$rjRR8zNXhXWq@rx-srGD&%b+6`6^vB8G7*ezHjgU#rJ7gPWW< zuopnS{j`^DVN&$Y6)oues(!?b3gm{BWT7gv7v32S*$67k`KTv_H3ZeAsc;XfO^+Mj zSpj;&``ct^=blm}2NlLOKUVf2*laxGQnu_zh^LKbQ(XUP8$_TWy2XRKNm}EaE)1oD zSoo_X(sDW4_dUKKP0UxUGl=t4@=r$Y9N0T)*^uwi?{Sx5n$Z+LMzZMS**gMTMN80) z_R}>rRAyR!3f}icis0$fRQ5)Kw$``+gfeis#uQ9k>uJShppKoH{8=d?#!QwOf@l2e?=xmEIbij#-za5ukxKkqU=pVYI#gun2?6o$%g)ixL zr_)qTos2sx1YmvCVN=Z173m`OCN96i&%fKdHlPBWlcZTRwoKmnC<6;RnMyebU#M)u z7F}Jc(d8fmg9lT{bhXCU{z#zz_w1!xKnv;x16kNO+VJ$yq87>lBF1c7zcZI%>KI+j z%b{}fZ(o@DW zGb1G6WsH9hxbff~qK$l#BqI@7gwbZv)_~%_0D9kEh8x12Gg^lXV9zqtmdUyr?nKzS z>4kSYm*x647euoZ*76|<&qX+ZPX^UL`$%*lsdD`lw!B-T1!Fg;xp_r{a^>kNHTULz_YdH0q=4I9va2 zbbGyd6KlT};6ZsuvHtfifRZk~6Xs?(^%`WOwdw45B9TwOqDA~9@L*vUO9qt)QDMoz z3NnbV9aUM{mpat+nMeDjJf0_Bi<5uYhn|mF3=GVB(eVt*@1-qzY1#1b$G|RRNB=}1 zDs(4W?__2~TuOX{**!+Z2)$b~GhTYB3VsX0xiy7jYg<)wf%vs{LxG_KcN9VSYX-VOmjszf;*hklo~<1`ZTYRHNzan zTg>}sRkX*}ys*z9+ytFI&CINLwjrl$;mBx`aOlfD53~_CH=F-)-=8vVzbt~17l$bI zCA8>yCKCfI0;W>OL)>6`4anXRy|Yp17hdz#^^-7IfbZlEhVaLyrcw5Q5URncm3{FpI^ zoR94NMj1;a^d)Tw&P(P~sl@P7y2sPhppSZPXn_aeu~x0gWEwWk>|;gdF~>bgGcUOp#pd!IPnjF$ zQblfjf~7mZ$HD_6(NE$TbsgRneAomZCRS_V2iKQ74S-Rz5t1!QMGED^I!7Gdm{kt zECngTH>Tnkesm2b7p8DEV;AP?MDU($!P}FO1qE`^V(X3wmBr=~`p4;L1bm?jlyxIq zvv5&|Ef|CT;gh&Di2XO*7DBR$c-U|h^J)U9+-{*jYLZ_gr?Rg^SOEEsu{QhEhQLuU z^-f?}v{t9vM87T9zG3v^hLpE%XLcJ`CDd;q(s*OhleK)Z1l( zg<-E=%*gL5Kwvy`x$Lik;$OiBVDr+H!<9K!-kn&$%%i4x@-FV zI}-I4C2qsouHsw1rO1!HZE4?=#av%-5Ba3?cmWxZJf{_3=w%yj@dZ_d>Mp8IUH4z8 zGC|r)F`N*8?*?_a%FVW066xGlmiVS@nX5{eKlRmZ_xTh?yDMqK4MWIMa4U$e(F`8pBWpN>>S|yc5GlYABmUpcdQtYviey0dk zzlBvrL8g&o}x3cr9w4GDZ z7{@kVnnRNM_D%&w3~Mk&-lK$yK4AMl^?8CG5_xx^Lf;a#eoTpJI$?DnCn7<`c*f;? zcZHb;^n~d-Ka2oKtWY5tn~*D#=1-O$*2|XV;doFy?}jk(kpaXO-e5s!`iRkDDN|*o zD%&ovas7;YtB>*Q2xXJ5cmrC122wuKh>13VX}78iP_*4>sCVFiI}tkI8dV=>>w~kL zMR~6a;ncjC;gp^oN}@h0j1nY3k{=t9RzF<@5MJAr20W!43-$zvv{Y&^$$Zcv=vb80 zioS*g)CvdpS)D_7iM&U7U((zH*Xyk83F)iD44#3=NZ)W)VfM8gVylv0_n_qrU0M-f z<#zp&WJuxKp5>ul8>>@pm~(%kuGb5asq~tpjdFH;#@W-OqHiLo9hKnyectcNp^I%& zoi%?H2}R*q`GxiisBOFi!Z+yS{A% z5d<>d7puJCAdOJ<(>A@>FA9ly8$&>ALyuSZx0b-^s!X&`LwMZ-VKJ5;56+^2)=w-72&06)khy@tG#V_LY$nCv!j3ZA;CG&HG$mDdlOhzBqT*m$ zSuq=Y1t&2Oj1r~CR4 zD9E7~WC-hB`uC~0{+2kmGgQ*l=2r93Mag#1$3><=TO>Nb%JkMFBpwego6TS2n9L^d zz25Z;tXdp7ZH$eL4dl^km>7DWgdv(Aj9MU%f75a%{;Tj~k(eOAO3ry6FMiQzdOUyE z1dby7zU*R9D4p}qTIFj!$bT6R_Crr?QS;Devpm1EcS$phr}?P##-0V}cXectWrT;rSKUdhQFGL{Nk{xFBi_wZu6`Y085hz2}l7?C$( zbMFu{!h+`f(qhWiL!VLo*O@eh(TV@*+^;z9?QM?=WI1cdR(pC)7w0_NTJ; zUZ7H9K0zml2QPHt;m3K5Fe_YCjil_behuli*Q9gP1`{EbwFX;ns-2Laxc+>%7HM6klHT~O*V1pRAm`uIk+rHzo?i@GHq?mDi^MO?fBh0#5amm9{y81+ zhGq%G>uuL4Wg7z)B0+zhq}Mo5_yGB5aJ5;NYHxqZ*o^d)C7mz=IPr?^5@2hWL7ry~ znQR=e-{GsOc5iohGGY_IqRI_vuj zUC*~)s;kdGskL1)I#&{H3Yf=*Fg;Gw4p$*8`+C%fPxF)Spf#O5VRD=u*y%HbcKyY& z(`#*8NutIK3_b*|d*y}>;v0|9eh+VrK8JgjY=inpn#kBLk|ai7JAO*oDm5TfZ6^P9 zDZA(OFXaA;uM9L?>~j{F!ts0~36g-S>ioc}oHT-JBO30K7+)2?uC&aS#o|g@d)0({BP|$$bzLXTjL4$0^#~v81}p`{tZv zjmu-@CyBqpshC`lU(`_gGcG^P9{IU(G|zwkgM1Y8Aw1i<;uSy|31|{8*Nk{2X8uo! zOCZ^%qDQVDgd9SpT1YQ4N!c)G&rTCg^C^o~G`Mao1@U#={UOG)m@cu!TVhDkd@MOv zFpA;UICvhEWpSx49|O0CSiMKlps|4r42US)3L&7NC5CiB|iM=c(N(bd6J{Yw0eqTfszs)}_s~Go(wkQ>|>t z2dp$}p48#@7iW>7HS5Q}=Sz%+hha7OFXbhjgm12Ca!5S-wggx{1~(cUW7G)Ge^0ki z*$AGsE<_SjVHxKgt}Fdc2ubs5(oKdCk1PMHg}_`vaWSY`i5Is%IHHNONtbrLxj(Fa4?)RA}4b2mK? zs~{!)FY%yec-~#pj9w^l~aAU>4Q)oU-h1i7JSGGUCtLt#GUc8f#EYMB1&N00Sd?_V|rV zpTm993X@st6TrK&eS8*wZF&rATshS%!LYp$g z1HuV&LM8mwKi$SuP+5k!%rjvb5GzuZcMds8je2Gvd3?U3Z=Nde*VO7sM#!<#RhIA} zY3YPL(?uPJQg>QqFB0Xvv*Jl`im|VIGtt54gF}395nXXMa$r253=Bjx$bpMiRQsov z>Oq$z0U34DgqFQ4=7bbakss!3dc0ACr_;RzpC=v@@r;!6s62k0WV2VpCoZA^R62Bz z3wZcB1edq8Wj(?-$0L@rb)O^9+fP&Rxa-xl8paX=Yo4{?3+^>hoXOpTx}L8Y!OMg) zgH}oz1&%CDEccBm7FdUH8Y%+`ai3#9y#sSMHN@E%HV_FS{vZobGQTR*S{O4et#S0p zt9;!5I0<>ObULGv4`@{0wm5?C6m7@$%JD62=Q5>8>GN`vWPG)mBm?&;6yF6T@~)!H zE%WcoDYk7;k0WlA@rWjZAc4@QKLs>mKcVdbkq(-Q0rFcK*}_{|sy`ov-{X=GXrgMR zjg{-q68{EenzmcM76VnLrP5i>?wRmy5ZcRcI!b-B5**<7CI&7magsCb;0 zsTua)(=Hj~*>>~HY+Y^}TJH}u8CmUSXjnKSE!ly?k(XHuSX`;QnW=rWS3VlTe6@DZ z6o9V&yA;RJ&OFp5T^1`c#Dhh(uM`2z6O@6Hy0{ck;-6YHDh-HFrnc4R@h=~7Kh=jWLpIMok#0Ntl9k?+KyM`fiI-$;++4% zA!fA@6WnWDY-3sYunH7Zw>VGIJosI4wEh!isrs$5 z_&nrMa^~xXbSJulht|?#5GAp%bf%@mCvRn_I09af8t1&QTm! zv;BoVWVA0(WV>mgY9abSKhZEuP{A41K`+RFNpeeI+%bWs!ZPbA91P+oirfgfB_88q6kEsd(Khv?D z_}2!Qa?q@MV$mx8-qDoRuD@aZ)lBAGw017{3#1>51Z~Hc%aGHnp6{D}11WBHeiENu zZa~92w(9l*wJoW(I@$m;2)9#*ejTlw|A8cf58Xb{?}9{t7q;C9g1P)Untr^0cti*h z+IW{H?2)DGNvHTQmC+r$koqn9+)VdEL|7}>)6~nn*HYt03T0S_0^ts@!bnwlRl~-a zt9n&TNvC^79c`KrzvDP0Y*krAe=+7fD2Qs~<(1pA#!Nb_Bm>K8jD~s&K_S}r4|gC~ z6{`}UHWkxF>$)Rg!L{B~e4O6Rw&+ZFe{DG}0IV$viS9*>Mq?s2msjw^VL`4VdI3ce zj5YJk5C29|>^Bz&cBtH7lzsMTnvu{xY`o)8%9-#e7%MvRh+mlQ&ACHe3X`R%yT5z7 zBhk@_mofAA$D*Q)U3s|$0+q)?u^Kl9R8m?(+G@&^0^v7kZ>sg)|I^PBl6V08yU;Pl zH)?12e>39S5A#75OfW@c?5C1^ns+#%ab^$S04A?3w$c*HJF(uP3Uz{@AN$a5mFU8KtSMD$VPL zmIjGPSmMEf%1KI=aSr-p*g{xpRibd*=p|)K<^@&XS9Wd2%nZ47rNoIZg%`A_26oV= zbzVr0)YSLDaB!x#+gIs6x-A2>FPy;i9wEZ!x9%3!IMou0Fv@NZlC;Z#XTn-i7F zFLo#&UAP>Y8qAQ0q|#3VlT-_=4=z2${#m^iuJQ4UMB~<1z1Ok7U%35rLV^S+6rrLS z=ZzE&c%*iZ(Y*Tv2fg+u<}q{GCKLMDzkHc%smMzH%z~bhBnXTh&>VmCXU;`3{Jrnc zIoOxXDL7kbpI~xo(Tdrm$hBu zg%U{G741@-H;~GDR!zWoJfA_bhvPr9xg5>L)%TskZ8H%%ctz#)UQ-eBeRA z7*j)P<=NJUMUMS8N-M{(4xu3&c;Qa;QcQeYnpm9qx%F#63U-y`uOO`*ouZzECFLb7 zwe%BVdH0IGZ*IHxw!Il15zcQsjuwkF7O`x#LoN~sBnajX1>lymR%HfpU&04*6Gc|tU5irnt@Z;P zy0K#<4_veaW#J245-*cIXlfQv=*yI(L~xWf(ML?=xL14PU9{=({t@KSCye!9ra@be zWvJ!ob9tC;W@PJXH!02Uaq~~caaVWPxF0xJG4y1oA6s1@tPX969(G5Adp@TdKe;8D zJ?LdfY|cUrcuKoJ?`9mC%BA?1EK3Epn?l=c6kyOT#!{p6d5m&h7w{G$G*Ehi?PLaD z;w>fZOpF!!c=r*&<2vHF%MO_4xc3&RVQGaT6|wh`u}lmDs*6WN)=EuJ_TDC|*S z7dMMARR$h%I`7~AsF+ZgOi*a*Z)$)ZpZzJcEn&rUKk%xiXpPEwUG}s6Vd4NeZpa-} z(tF(e$N89)EnxL3ny=0zj;O%Y=34!b)k?*MwwbW#!d4{izTOe9$-^ICU-b1m(1mzN z_g50B%}Omc%QMT8IbJ>avuUC$1bqy(P?-G*v$kH3Ygxdb&#o*HkKbPN24W%`L#=uk z83gSnrlZ5@L#_NE=%=4aDlufZ?D>3AwBzjbbSu_@9$xr8gVTJE15y*Gj{kD~BC)++ z9nnLN0inPWGs?O8`&4RqC7bXEJ6Bkw1uqV+B%)NCz(~zgemgb;jaWWeQVMl z%6BzJDZ&ZKWj)sv6SpPL);BOERXKpUCvv3TdL>J$o#3L!Z6I)sEkIvrT@M0VV@p1p zko^j+Uh!0yi+NrI-Ogn|D1+*S zJ!p+E%%xNSM&p%xR#n7*zPCNl-Mfw&Oca3jzlx8F?&cN|kk~*ZdVhGr>|c@Gp7$yrhV4Ies0mgBYMJgLfYC&K={Zz42>@4pH4J!2Rg z9A1x|z}hi{LAfOp##|$;NER|W zvlY%x(s-%0x1vTUiV{utm6FR|AFgx0)BhMp60~AnRedtC2F7;|n^(oegg^P5d;MNj zWu)PXm8z?$NML<7g*Do5oz8akV8>EcUrOq}Km*@$oE}FAG%I=qi7B%AG^P^BTRcXE zv;S@KTzvx;i~q+i<{`swLiUuHFfprpfIm3Bqw%9$_wX?jicLW>Zi(Jhb6AGiPa=7IJqa*8Q8(7jx z{9*1^n8BOMsHks#2&X^Jxt)U7S};wOm;*ln#5%_G(Ypv=N~k=azWiuA%gzs3ia&ot zHZb&s!aJYwY+?tygF0T4=c|L%_=WCD3R+&Dr1Il{f`}I7Px?2@j z3=~5Z&$46bp{pr=p^{gIYG1{G2Vc3Xu1&PmP1iQ+*M7|kWR!v5flx+~P=~{AuJ^Aq zr^~Z(TVB{X{!Qf_A!ux91|S(VZ^97J^|1#c?)43>f$p^=In$G}clX z{wT+E8WRagLRzPyddgNruM|X8?^+eOr4f)CPc^#A9{ z(B9VI&$mI6q0R|ZqxCKZX-SyjrR!u?$mbVd3#PDJUv~xQNX@1zFg%eO)>rz?^>f)* zIT0G8!K~x|JCLEP_^{=~0V&bRYLQjz^ui^yOZ!=b(Fp@)OWC=y7T~2H>&IBF;0vD> zPZGAK`aw?ST|O1!R~1C02Q4hsygsy`9HxNbq=B&vm*j`lFxm!@Qy1&c&Fzk@%&6Oc z7<@?Ki&$4GCwnFq1j(xCCx4-I+A_R?$&cns8F^BrP#b>d?3Smogk2Wz&jwv6%_k4D z8`O)rWY*>ia=6&P65{gkWTIok);-cR2RX<>9iB)M870oFhX3ey9eDkg>5<*`)vgiaQmcbt-=}o= zt%|p6DYoH(bCo-S_a8d{kQ)-9&b!QTvu*F>QsZV^4{|m5v0qd~DbKu^3FRrM{Brjy zk>fbiU$>-u3aDz_$8XOJPf@m#J$%Mza+;i952i^K{x{lZHJ#KvMZNEPA=kHleBsct z(V>A=GQ`=AudmmXgU$5z2AQJE1U`)JrUHXhG-{?8yJ~n>Bg%%gb!rMNVrk2av98S< zS+WJ{c|;aFUKZO`mYVX(B3K+T%Gyj(9nad2ZFu) zly+U}q$7Th)|`^PvS<-k%KKYMMln7>ZrAbOc9DL85Q9mQVK~O3x_E?28RDft`d=^;i|28>ugTpT&>pIWw4L@6{fcPt!0CEP4xTy?$BTdjRz%Ft{S#+thDm{ zPRaO7%@7$Sxvn4Art*2CS9}}yuEP};ve|`zV-dF9=xao?^m-w=QNh`TY^P5oF;Hkl>!6vbjV_I@^xu*0Ofk`Q34y zLh00+Y83R1D&a!_pam|xVc(2H-Q`}=*V|MXp@~$5-p+Gs$y;cotbt(5i&ee8Ewr*v zw`j^FrE7}%uX#RgK04M&DtlyQ{=K0PRsJ9;KK44eBNW(XY1Z*DH7j9DO3M62cx0QN zq9PKNic+5P3#rwZ)A4a60fCu3vTLb?q-_3^gw9)m`}Yh2>OlI^oiHQg#S0Pgp_b*9aChKde)FuPar$AJHyJ)3*zutq2M-qfZXcubtpu)6(`RL`?Sv z-qvio#36!G7u{dm9vpO8?Hdi4%yoSoFcudG9HL@0-UL--CXA!DSKDU-%P0FCmnNTzQ;>c+YR#n@lH8g*u3b(nO zO(GHxs?F~P;FA0O8cb+EhR=;Gn#~{|Q&QlWYj%n&Gc@izK*YecLU2TOBbHbqYE6yB zX&qj%{HrYhx85alK8W3OJvTI^>se5h#d!N?fc2B2M&zp`%A=h1_}3oaDEq=MH^_Si z=tlRv&YlDcF2mALB#nLnQOx4>vbc|vbMAB5M<{n;=4o=Z6ux_@u;Vp23SDQB;S@ zi}JLLm1A-TM0DP5NXcaD3@4VaiV)ikg9uVe=B+2z(Qpe=zo&C#gFYlsFlkcL??|Co zKk&#gYaPU%<~dzE)+&bpE;nv!hF0<<)HA@{+&Tsa_=1H@{nlp0N==Ftg}xRHI6Feo zrxJXE?_{Pu;q0utiJV)D;P7)>YLeH3rpQWJL11Zvf1jFYEZ~<_k-T_uJ;Pr+aM)1i zS6WaZT6+dG`B^aiW904>7W{b49UV6oc=Jcb53A9s#;q}_SbmEc=?+Cns+~Qo1hn}Xm2VS^sG#!AEnhv+U8ZD0&s(O#E zPcUEs+c&OjZ91asG@LipY~$ zJ-;r^<0aSqqUOD<9r_L>P6ShdJ3~RG!+n|k{e%qsGcG{D3wddZ^^5y^-(L)^o-1s& zOR=K0Ue4QY=s5v)Q^xz18IKidKMI0TD9qBMewa$j(dPUMYekum2E5&`@N&Q#H zB8B8m_=wld2^rO431J?l`mwdzFDP~T48>+zF9{tl88OBwT~2ciRpQwtAk>ZP6=7QR zT6SWs29{+u`XaD>6Bj=9rmGTe6~D}yY-mgBD4k>p`HTDIPg(9O?_gm8j_m_{U|Kgh zoZ_rDpFWxbrSwZUj7C#+rc5mX<5%b>E@q3+2vB6Ab^Cefyv0C0nv)xJ_9An zWr6XkbVOkjNkvX%(a>)Xfvw@UpSw80M>m|JQZZ?Yb(bzIe9^l^Ay^Gb7Tjj5>TcIu zg)Fm%);aYM#)o=U8@ZYdFCY}F%!r`JE8UVl`!7=s_kS?NQ5DigH$|vEQJM8vnU~(y z&)2EMvW?=;EteM0WWc$-GR3{h#dz-d+){WUU7?Klc9wd>?l<85mUnjSdG2`v;*rOeAJV znS^J*G_~aX9A?7rIQn)vs5-xWY$}E8i@h`^{G@f+XE)it{H^O*oYuk{+TM=f^JLz% z#o=3GslO$vKrhFUnbIn!z@V-A=Z`D(1h*<}3y@p8Whwa(6xUg0i?-}<+>E-;d?pDE zTIP51<=<=Q^W5X+%Zs#IIs8frQ2R1~*9=Q>u$T<+g{Vrtu<~}O|jE@m(sxK?(u-zK&E?{z+ZlGtDRhLB@5ZN8g*^B}nG?cBKUp;)xhOYEzypCN_ z7jj5Sm!xYyJ17{kjwnb4s)aTINyIiL%G6I8`3o%polaEd#7xt1BMd2g6I=+FEddoLUd>ITr6HND4J%M@qMi#H(hbFa z0D_d3r|8`*cs|#U<+hGTLwCtj--g4v42c0VcEb(JSi z^)SZOBN~{nGl*vrxT5KLDB|h3Il)(P4a@~CzrHFM`8r3Y>!CuM}M_L@|j5rcJ{ob#q~d|N~P z+;O3aM#@hyhd@_Vx?M-7xlg5Xn)3ro(gb zK&b;^++_NeUC5X0|2oS9j!FFSS>?iMKU{zT)RPixXaU7$eM6e1)e(#Dr-?dd$+~QN7U60T>TtZUtp6g>n zlye29ui!x~2o+AhMcw|6IN0PZ8t*8b_>EMdhgr(b8tqXZ*2V`N;&W9sD?wG1fng2D ztk{=GP2E@=Y{*tk%&1HzEegg2hL*`4ZRhnN=!;_(a3C^_Pd9&cLx5rEEB!2w^XY1*Pw>+z z$n@n~t8}=9x`~A4Nqh2eE?+YIM;m9&km$5<{b10+e)i(KY|R&#aSy{JtsmZ^)EO(1 z^mhmiAFM4Ts32N6^csN!8{60rud~l^Q;kG+<8uQe-}fD7$TkZ~Vfy0#DiRsrNWlnf zysyn7Mu(*=&ND<^@AJDeoOZ?JIFn#zqLv?#r~z7QdZmNv%38gWI{!QR>L2iFTDp5s ziCTmae6$rBQb?Gzc=15G+R>K8o?Xf3eVF$73-2=#`s_s%r3 z>(xIok1g{bVv@?KF&2?$PbU8q&X=Jm$YS7IU+N-!f{K?Bm#+NBM5&~MYei%;Phd~h ziG<{zh`qVJH2Dhh!?AD0(fqK9U{2+9BEAwMU_*J_PAh=KYU9*2$#!5B@CZNTn z4S7kS8P6AIKj~3Eh5{*I;o=-|_7M&D2_@!y?5BsMZ77+48;RYjv)CPavvWDT2BU!O z3V@l3Zlnl7gzRng7tC}X*}F*I+3~M1Awecst_LY=20mP`G$NFrV}n`Ct}G|}4kd;g zLYCf;a7}7fm48PcbUod(&HL#?8OE&{-e{JtJxSF*MwfWCOPOGQ9pRJ275kWnH@k+R zdbCC5_P1IFB-l_xNu%YF6HSXt-=63wto|G+rQ@RfFNPQGO=G@6!smDyO^^-#1$WKM)>5tr|N9?2R>-43j`K7e`&Sa`J#jWP?2G3YyG~y3N zkq)>~+NhMqTC{I{vFHFIVP+P9c*V$czEPTb56{I9gGTtJg`S;kdYvJNUrC4fX7xE)|SpRqKFVGeTz$(?{h^&%=uk;TLYu7T5c9r7AUujUg!I zKF|K;{>MVS%5CC0fE#bE;xCqM&6-caX+6(nT%GH!GU_ZDaP&^vdSmiaLe@m4OtbG> zQM1Ro#4ueg(u5XbgFzEvfj|JT;ncQu5c(luNw%1yro{(uFnRQZNQCupWGpEIbA|ga z4N$TR?^Vv_G~b?EI^(}y7I+A~e)F5}SqI45Pt68bGqy)j=L_CNd4Dp;PRfkX{*Sk} zj)`l1qlJsKK=D$bxE7bxE zlkDtlndg0<_1IcBSSsK(Mpq!OuL!AW+wjqm5=)s=+U~8IYir#p?ZFX<-5d;b3!ywm(3|#%~}>` zvJpU=)3V>8;SD;~sGN{s(Hpj2G8^vMI7)%t`r;c1A0l%IeCo#({L`_1IbOj2th)3s#%$;Vo)z zzsUWwT`Rq$T)s?)vt}5)JswXdj2J`_k>d=g@(8?aV#Dy8XA*H)&`C)Ds;i|eSmIw3 z;@IrM8XNg{GZ7Slw0Dao#K=Zg)QMg~v^PEk*oSqa|JZ;n4&DMRO3To~Z zf)j>c1wn>K_z2)rjpPzFrZk!#g8U*E;{h;GzjZ?4cMROs^i@V1(7`tmwQm!w@4^FT zP)-sap1ub9;0|R92H0aBOm)=D8g9%jfIBp>hHY9(dT~95Mw!*r9Fu~;UBzUIYVNp) zu;$*#Mkz2~+&{m}aWW+=gj19XBrN=JzK8TpYzW}!%#BzYa{MUb#4?8v=zPa%{2gz6 z2Em3M>?vV}xT|6ElQLJ}cEn^Q9iB0_RL65zxSsjV<{#f5q_v2eG$2jn#D0p}e|q?M zp!IDAWqeLJ%#%2l4{ivIIrmrI?d!VdCmo?`I;spfSfRQ)*OGvr2<4-T)3wbTYD|;J zwR!5brtmrsATUu3@1vHTH~MZ8H(4};dWIOss$$uE68G{V_x$KheKccvkjmPqV{;~= z{;8$q8Zo4gLSDQky7A%*Z&XbYa{IGJqqX?abTWs9x+s;sQKmba&T!LV^+Wq4kipn>`O7 z9dy99K~2)HJ<*`+g54q~+B6LbQYX3&;F;UC`az3ZX2dvKSHHvvU!V>*wxWhz9$> zfbyQ26;T-M{|G5ipg8n5xx)_@;UhBcQ=P4#pO>#mF3$s8l`}NK{hK43-C_%rJdfn|jYU&gZNBj4?rvvTiU%W$76n)WLgx<$lD7To!|Qq%KbLB*WJ zz%)g(skey?rGO)_)!D8$UsfHgDv_P9k8W8WY5_a_@VgAKiF9|3sH#IJ$|zVLp{>@m znul9WSXJJ@{v1(DG!$Lh>z*&1>AWv9U->cs+z4WD{nCYm?%QW8&y`b?#!=OM7STK3 z=7>&k2a8q+S38-g?e5xlnjAnSN?Ti)qW5FRcl@3U?SuFX0jPwg+ouItQ^nny{>qG= zCZ7;2Uv^MZV&OLueQak(R(YnI!2|ZG^`Td%w7EqVku>?bg2+p{v=6eS)7ihr{l&e3 zC%DeYIGkHy58si3PmTTWAiS90KJ;CLST^<+r(2BNxbpgFDWoH;|FLoD#f!(<2bdHs zpi36;0|eXlfDv&R&3Kj2r|zM*aP0H4BOVrsxjtEs@9a=70Y_{i+LfOa^#K_SmKNDXGOJ_(o0v+M zVPKEos>N!IU%O9Ci~gUk8{0E~LyS|ZuQ3(SxBv+tTGlj|=CmAY(3zrC-d2vF!i zd?y4Xi|g5x@kAijnc_2@mi58DBfM(5tk4`-*Dy{r-IuX#1PO0*R7{K8FkvU1Sm_tI zcrHK5_nOWAcG1%;@OB?Z){6qn9N~rH43gYVPaR+_JUsQWw1b`dWY+(y74@U|t0e%| z$*%o#RP|$~S!saN-!U1x{0}!1A!Z14Wion7EUb(r#Pe}ozqc24imAe~pQKrk4f)EXa4kV7 z7hDS?K(VaGypjE0Q9X5gEWl3DT$cymk#l6OMBokk`d;fNahQ(+;VDA#2EjdMTFgOP z3tJ|}otY8prYv-BKfZ)oJ;l1=;i0r#)2(W~zUh5H>RQrvDOQAgFuCN_{h*mB|6_Tf z8OvyHDKtGZxZ}Tm#zo?vO<4o!6;1OY2WKlN({SC64Xtd_zZJ@^*Q={@b-naa8`SIZ0%F0?cIHIg_)>SSg9>56JBstOu7{xwl-0PD9}i9%iQo4^E;`m9o+b^W$&r2MTy4qMJHs*d&N($4cO0)J3|Xt5S$1 z5@JDAF!Wo0=BnWX1Uc)Ds)~;e28H?e%?v+bF7=yB>sa5~oD~ZA?7u;-qm9WPO)i=p z@@pne;bopvC{L> zhARHeKu&nkn|Z{xrRu94HmxsM01grSBCF4o21+rCu=l;@R0>v{75z*$Bqn;snXFsEB^kkcOK+i143 z)eXLl^5RO9G~WNX08Xb|fk7wI~$+DchDIPr$o8 zJ^Ey(0GDM1w8XB|*Lv{I>X#NW%x|q>cnIm8pya3(5p5R|N%8Dfm7=of`ES?oI-toTgq0 z^Rwk>>nPzE+U^ILAAY&U6dTHoQMlBz#oKOZNje)I!@p(kD~xa4?7)BMu@;|kU%=v$ zu)uB#Xx(oIG@Rm`>aQ}0E)gnBudvDZKL0@Xcsdhf@nCYzh)Dr+^wxQdr-f#lms%dH zB@{_Jc^%@YXcK6-CzoTY8!yLY52ZXtS`@rLHN7@04^`L%YV_uj*<#|c?Rff=#lF4U z7?am&>rqIR?~5r|zjs6{q44BK9(AQdoX^Ka!HiZMvs8bqfm*JyX0Th>ZH+8AiCUy! zam{K?-|sa04K-wWk57_XInfFqYczi7=vJI1eOQB^-N zELm7C01)E}l5Du}$BG)hd_v*MWc}lz$KZVogX9ptg7hfiTG(v%hEoc&pO@yYU z-l~|56ju|WW}av(YbWP;xeq_|ErwJW`9eE*LM1wQbH;D`=NK^@qd7B!rnf#X!da?I zG1L1?Gs3xfU{+1*n8W=#9O6{6QdsXel4|{nn0r`>b1`rd77w%sXOTZ4h23^7OKv<) zv$ySSOPf8XE!xPsic3KnE{%_w(cB@@Ks+JlD`Jo|h65$R@{Fu@r7&x+W07?bGR6s~ z8@l6Th1a-f`J6fCeBPx_Wm%dV)6q@|Yh?3C^;1dIi;rhiT{5#0NBP0d^x&!AyN7_T z)pKdoW+2tTf>-fZYt6oI)Rwrq7vK1q3G ze4!fYx5T8c=e)jbYc8*}SF=4Iq)$u|tROjhOkd1(^vTywrPCHfg~kH^ZMoQqfaicJ zMbq1lPX`+jokH&KkNOH1_*rFSVT6@2a0>(ORRh?n#NWLuLx62^G!qfULJ_hddQmTT z$z(Q++ujfQD3S%=)0ie{Orhn3C@3`sEvfA98v*%oF=5PA6I*=LpWu8;1_b1hSiEI2 z<@z800}2!z6PPQZ00}sdSn<_I^_ckiq1@Aa4TsC=0(n=tj&)$Q>U(pg#FSj25(D+O z*H2~9dqQe#!YIx93{&H>(DpLLNM4>r=xCty&d%#!wnvb1sK^9|d%h)z-zdrWd}USE z)$8R==jm0Fa|;?#hXc=BkgV&r-4p1`JDSbmB&@J28Y+o>U(F74 z1=w7ADpM`pD1B(P;1Nx2wid_cn0RHJiThqYeA)aui1}OH>2p)~NKpC51dvP%Tm4%$ zgn*y?9kWd4Lg4k=x)p^+XR}aTzc@4i99{fhHc~M(yKk&nEnK6yfQn%t`%eYjADW93 z@{PR~%l>|%?oPK!1Il&%q!liDkU@7nwi}9q+qOX_&97YP=Y!oGb1D_0#;OMN`uuZ4 z;}zh|rxRh7rLQZ>1o^t_PH3Lx$#al6Tekc(e0%PYK)0;WQ%L0)*VEFfpnTsOxrhaUI8# zoqwAhE6ALJ)-yr#u{pWzLsjpyH63HBv~XHv6{2nbcCPZ8fQZbyPDMx_hdv~tLU*f- z8pr4hj`O(3T$1FKxjIwRE2mR>sKv^g@R6@L-?5&<)~AknL?6N&HPdd>4#FuaSj82`|Rr z5XVst!&C>iD+TNxwBwtvmB(l((zM%L99k$-6oi{@j@ zz^asDD|n07w$z;C*=)Dc_6SyQDqJz=iv=&lJmd?CL4!dyMY58 z`~iGsV_V|-Yn$N#9I8z*8t)7F#9LTFMRPW1@(#lvtxveB;-NtQz!&dNBJq`ZI@G8( zbps;_8Fp8jI-XbgU)y{Z&@EtRuB28UF%~KIn{TYIB~PwKA!#|Am!_tum!)OCGu!~L z*lk7?x#+?=xe7{6r}l^5jp1OwDWQsqr2jZp9pS%x-hM@9*vU2XXe~ej7>cV9G|3zt z?BN{2|wA#FPc*v_Eu)>aHYu1psX8gfhURoBI+DZ!sh zZ(RqH8J2NZK3gi)p2~h+d#=>rzSlq{mlaS4z{H{o^#lt-BT=36+hR64-OfN5{pgLr z!4p=z_(iagnNL*dqej+`s=RoBOsp&jSEHVZj|MWdc?PPrX`?WO9nPYNd!4zgMmT9X z(T1wD@NL@U=h%^-Q%4%+Ocl+lKZ5RZ;O(ya(y_K0t9-)lLY`%eNwVHV92qImtOiI6 z4&Qn9D;anJg$~pcM#z}dPYbjDx)ncvzkH))YLu&#s4qwT6AHn>wV%r?(&Wac1=>$; zzc-w1EEm0$)w`Gsy_K*K3Ln^S=x~vG?B}wac`vp@T&^WbRK#z>VmtgPqyhysYL?}W zL&;G#lymq)b@^`K7gUoi?#9Q*!^RSx8o8#N;I9S5jrPj+PVXyucp}2F;bbDLxJePZ zZz7DZS2AkFk9D$TDt}O8I(w_N6xUU8c2$g(rPveTFE4bZFMxms#66^tSVhA}n9oC%%-SbED;O>>GRlf*aakDe zbzTaOVZ0czit&r2jfM(z=LL+Y(*ixXf8KzH`KYcxwBnMJ906Jf-pBw4Hvt^p;nem# zW34=ggWc%g=Hz_%U9e;UH_HrMlZXzhE(h4e@N!yd}MI(uZJ0v zew?Zz7VfByy=p;Iw8$&(%v7!OKQPXhUk2_bwdo0UHUeiB9xNL8KC>k8!>H<0q$^22 zL8k=>|1M&WHbGj0Rtuq({7coKXM&!pZ3H#}8>-b2}4serkyw4N`n%PSU3uC=esB(Lf7XHasf0R#k4OF9hFjG|IZI40)cVSDe?q9~ z)QFL9(N~X(H9l#Nm5NRJfe~Y(tQZNF_TeAi!l`VshV}&k=!~3*nmqB(P3gbqXAMSc z-`X-y%3f!1gfaw2)axFJ)al>ZhncXlCu@6BL+pJ zjzg|^W(pt$EZ*L#r!M=xf6hE*w|0=`LZ|xf`Df@^*H~W-eyp>vRwW_-ww=p4?b>yW zF6%TnhXG*I^VDM3dt6uRYRQ9qExR$#mVSFl4ev(QW2v%0KU#9W=Jw8-Z&e1h(%FR< zZ_u#3&xnpPIK#O2X=#{FiGBX)y6@}a{uO(eZz$KuOg%A!EW)%Z7B+gd>h7ryMMf%} z53)nDuug*_duW61QOFA8IpY5;q8NR8i425RXQ73d6`wKPLe*w7!YW^GQUHISD2Bt8 z%x1VBk+tYhqUm`LIEU$lG+w7yC@eo2!DYGGqtI)Y@VQ~pzb8&r_Cq;8m}{+USB+gY z(@;T%hg1?n-}saFYjgRi=RGV$oT6H;c$DRJraaV~(8VW4-u^!PApsn0nEa;o*?Fkb zpDcZ#fe4+y^B;c2O+LRcgPsttiyR-ZMBg_hecE?(b_>st0?tujkV8H-GUAqif{x(6 zNr`Mjne8)D?1l)MBcmn5trq2=^nVQ}<0N_)co9$V>TFd*{Ubn6ymZ-^26Q-uE!K6P zN-c5iw_1rQFJOxg00!L#3II9)0GD*)AE%7N4`J{75O4CqUzzTa8^|gBoFU0av33U{ zAf#MtWQ|0IZgO*}J=9~6BB@B`iF%84K_dYO#*;E4Q{j!sFvV9$ZeX)5>-#> z0^>pn7*aVgD@frPCGKfPcJ*^HT$X7#uW=v-7t^XT{o4>9Irn=v*;LVY>I;})C$#gQ z@dIV2n4Wni)w1PXq>LQhQP1>@C}+M(UO5X>2rVLesl{LRQ5|sIB^_j6tkFY@6?k@c zEgOLFl@(e|U295A(klH7v$aIe5~j#Jr=2LGY0-LWEbC*(aUV0~*tx2oJ2c$=4R6NE z^!=C~%ng(DMUl|*UY9Qg1ri#(Ng(@Ex`&Y0?QtxRiFWZ=UVT(zo^memU;_-XSJPj! zl^?3l8!Ff?)M%&zwN;S6+?ano`8w4G4+8ILO(uL4`T5b=czlq_2`2l8fXJZ+S}F?-x~O) zL62VW3U;Ba2^m?546DPmpYr!HAHr^G;H9rlm?T|-`hSGoECGHlAubq1^8+fuh9u>< z6f|h@2(oVROEG@pVp8u~WhCkZt}UX#`Fj?&ycU z_k0y3{?Zl^A95@A_^tiJ`uE0K;{#Q~a6_oBD>>W>xhf{*JPo%5ZS^2bvafgBG?DyBuNVgB)Zla{D9$qDP_oV z*B&cz{K8_A$6>}%Ih*P<)&UdG2D8K}Vr(zjiTK@JY|!Fa4MD# zoZVQsSYsE3i@c0m(FvN<)1F|EaT=Kk1j;MDsBwLkrpGooYimStxOrelNLP{5Z!5m9 zL++V*heJOF_@|UGN-K0p0#Ek|77gI(WVigfY3}}mm=^;EGv7j(4-Nag9gZ3f%_86} zOZuUE?8MzE|5rw565OA#Zylc(JRT1D+AV8{ET>>KA60FK*!en8z_j+cMSiKuoj>Co z{@9B_jGs@$d{@O|qw{f7(gl*CvHig?l{SGfRoWMQkZ5!qMzO6pK~cJF&dBuy*(Wl% zPR;?K)IZFRW?#YW7rkl%LscNlso~(Ec+F^)AM%rJ_4R6GECfsC)#_m574lMUjhqL` z&LoNr8pj5qLGR#?;Bx1r?AjLAh+^ zIZ4900BghCKP^TtKF7#awq!90Y}1Dje!=cC+pEag;~7>frq>-H+`GPPmiJ2N$~4ya z6_IU!>39DSKwX=XpGr^V(gs*@9U@I?0_-5q_Ljg{D!MY7ANGICTn**U*s>s^t_x&t z8iashoXjqU;^7hwNK%edw=r)&2ixGDG}Dn&Y9$J{ezqcT9-F}pNl@w_m#~~_2(@q> zLL*o=e{0NaS0kx6(HAcx+ohrep0NPRTURXS!DyAY*(-MaWj;yxLtx9ke)M^&mTr`gH%!dI-At<3-0mLXS)QlBc9tPRZV6*~@eH1OBnjZ@P@lW*II9y@4~*(YhO} zNs1H2_}JEJ zH_NXOIDa01e1J^h5K@3>vodx{!N9 z(}b~zjmWkXrKoynBha&2Jz0lpJcQ}9K#gwQRv z8yU*aNhF(HWtaTJ#nXNZnr1l|vP1=4IPE`cHM=}wfFaX5MWLe3yi~h?J1yq?-Vi2U zn|?kW^RRn(JZfr!Ax)QoEX^CjaWO=viH=HZ`Yo4&p&9 zF*x4^@l46pewRW=GoOWqf`*Nc)p?n^nw&hbny{*qbgA#YOPCn%xSG`Ls%PQpcF(zU zCwLhANEt?u(Q(v}cXa%5h{*?0%rn{M_dSiKlnQ_aT*7DUIX(n1vItX_6tmZ`7VtL5 z3mekqL;92i$-mKUWdnTpe;K@^6PQ)!ZJbzg{iujOl?DtM)sDIb^X!5w&I`feb=U_D zUue+LYJn*+5J6KxN({SIBc9gWU*m*d!A|SOtH$m~p#2peYzy&|z)R?0VsGG_BQyl7ZEm}*)s|TwPt**xhsmI#8l8>~ zsV*tP0oasw$wxQp`1bl5ohMZ=i}NGzRcIJ1OJYn@6dV)KB?q?S5934NW(!#yOI=?% zUqlcYOKWI$i$>8awvSWN?j*Y*yuAf>D{efo&~tMwJ$P}S zq$RE9HFgKcRXv0@s5XQ{Amc98rA-%-{EoD@GxfYaP9t3!7T3E{3(DB&{t4=t>)QPS z;k7f@3s9YhI_#&K%?KJa_p9C9MZ#fCu>aK z**b#qVv5(PyNAthgVW^ZCYpn{#FaeBYn zsziewivR3s{UgCPTK;ST4Uui0e-_iTs|pVNQ_FXae#iV)_S>t^Ll&M5ueZqioRWR* z1IINxd2o%pv_yO)5Sj&OegxK~_obvqq!tY~u7%sumHzJ(D^K;LtbMY#G<IiqnDQq)QPS|Dgyuw9?+u3P!aEn0_=YLXSm}${29Z&NACYgM|Isdm zR7yNj)iCper*}3=RIn@t+0PRQcZMXQ>k*x}*4M>p$~El9hSJrtUTwH4U&_Me zS~z1KkmVhYxxn=)#@ezhl`pmF{GR4K)*EWolF~O%M~Zm5qzQ9lWK4LZz}NWd5Z=ywr*x(Xk?UR=}f-{|3N}XELRE2drU<#PZ#bNI)dL5qT zpy_^N;O~K-L2l>;#N3kjBQ2UG-4n~`0_nFOTjLe+R9OoxD|U)e!(3{yHYDKlJhtV< zV#|IP1JT?T#wb&5>I0Sef%gIMJxRKo!r-yuO019?w%QbR;8 z;@EX}X=kQKQge3Y}+FJwhvRmx=i zVYag^!AMT5a&sO~egNhydws_|m9J{AytIhHO&=LRqT&ovd-oX%-G#n#UPRB8t!L1t zl}uBXu+>|+UySX^>ePEw%-Qj@BE**H=6#Ab8c=7lfm8fJTkO5|n4#Ed_F-q?wE%a9 zr-iL4%f>JFE3a@`R1b;{xqRi+U0w3DWl zO9hF)%E;4cu=rVK6zB!m@U^238LgbtW-Hu8>cF*P*!bR#ve{+PBJ^{0Bi!~I!%Wf! z7NX;$8z?&-lUnR7?wmkfr@C+>Pzu2}q7?0?>SAR<&q4RhG1&I`2ibWZ2o znI>ocx*hMy__$`7!^Xnfk76BH=nqhXHqNn@{L4Bw8xjXxM4pWeqg?ETz-Uf&$I0>9 zg<)OMO(J+FYJU|MMh#QEfsKVpBL0QA-~o2VlEr!B%%D3&3ZOIX=Z5iJ*7d>F%TO&% z?sG`0h27NuXPls&Zv?MOt0h^1daj(Qy?QT2bxiVEp(vOQbP%Gddl*H4R?TI~9p*_6 z*FWF{9MU>OI2$t_W@RtgE1V5ENxJWD2bx)HcjnwQ&3rm5>WsdM)7cQbqj5b|7cu{5 z%b#{c2-TaZFx&B$_S9pZKjDe8cBevAug)x8eLuPGT-J&&t{*9Wac0yYmlX@rTai z+240bDAQky#6@SO13z&yu_Q(B{8nW7q6>`vDE&u!_$zceEHY6oP}=^n>|5K4By%0- zjR zPtK-jaanj6vPyFW<_;Pk05yV`d2MmWot=4-2rA~9AMWt6?c}Xq-73$*@b@2tH?mFz zm;U)<-$1X!2WF_TAxfD**8<1=tmzuGjXIhck+y_#6A%^?f0bKvMZVog$ z9_>(-@zS(bpsO$*l|0{4W~?k?^9PcZIE#<+v!cIHNy2~XXUGgdFgLzk5W774P>or*UNu0VtrS35#(^50a zIPTndptJnN*zy0_&9%do%&$3h432OKf>SY$kLy6}AYZce zpzOmpN*2%G98qWtC9~55xQHeaYuCMDHLR>gu$`Iis?LUz4s;Ov1QlXyE5PVVWfYfG zlOLFAzG-#t!t|~W6BGU`X#YJ`@T(M3RBCLch1mhVcH1ZP!EkR>$`CbUtnmSVu@&|l z%f^*NLB&*#QxG8W|K8K^ZKNt~IR`{*3L<}q7na8VLWTYAFNjz)n_U`_*kYMCeRgV_ z_YoM*8{nxVzjurxR;GRN{QcYM`%x;Ge{TU=1|r_}^D~@L8$1?uKZB`EuQ=l}`YyS9 zgW(C!+ASx_Z2jg3PKYo$paeN-l3Gs6PSs=CUM_^&+HF#N)IrK*IhG7$v(MQ*cAJXY zJj|sDNDXJ+($+Y=RTLasDUNoBIoE4BQ{8Hl<9^F@vWf0&iBrKRo3lPm3 z{eGip5&9{g_w=3YE}gQ-c;PnkO6j`i# zszd?B?(}!m=1^ut%i5!NY~%eFiYlzg{2xrZZ8l&;V9}xQ8W(3v2VG#nOM{9s$GG8^ zzx`9n-Dy(a`%Hj_oxvwCZ6&kpT~UL-SlK$&zG2sM5=`;+41m5~LJz-usPLr0YAX6# z8hlzN-uGA7-2>V`K>ko#df%#~&Ei%KXU_nDWE-Ue;A+(;R~f?3k*mFkp; zGO%5gq%phmMa>1yHzXv#32`HZ2crr2m-7DsFK^&KB1sn658dPiou@D(g#vCWEM7FI z$R|51`HZu{PVc(4@|uhV?84?uaWy0IG(mgFc6IeNUctXz3>swQ?6F8ZghH_?!H{ ziqgM?e!4Co<-udoZge-NDG5~s2jJM52+?J6lI6rR|N42lJ=;?iOPL!*VEs9pEOp<6 z?fZ+3m@Y1l3~kk;RREv^^r&pzJ!Ndybnf9=f&BQ&yM1|cP7+P|BzhKSYxpxMai zCamcw6SLJO9=|xZ=r|)%%|$fFGzhHi{rs!VP-$iUs&1&9)dQdLIh%h_lfP>;`BE7y zlVmBsM0mA{#bsLlUP(c$L%RGw;CVuwqvLIGSeW(}t?WB86eK|*{=x6tX$ z(Ha2UsjO@nW)B5q#Y{8T&iR*7y

57X(ZW=d%zV%7+~uNV3)FLpld?htT~FZDV+f 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 literal 0 HcmV?d00001 diff --git a/docs/utils/nuropb_diagram.py b/docs/utils/nuropb_diagram.py new file mode 100644 index 0000000..d1ead25 --- /dev/null +++ b/docs/utils/nuropb_diagram.py @@ -0,0 +1,36 @@ +from diagrams import Diagram, Cluster, Edge +from diagrams.onprem.queue import RabbitMQ +from diagrams.programming.language import Python +from diagrams.programming.framework import Spring +from diagrams.programming.framework import React + +from diagrams.aws.compute import EC2 +from diagrams.aws.network import ELB + +with (Diagram(direction="LR")): + + with Cluster("Application or Domain Service", direction="LR"): + + with Cluster("Micro-Service A"): + service_a = [EC2("Worker"), EC2("Worker")] + + with Cluster("Micro-Service B"): + service_b = [EC2("Worker"), EC2("Worker")] + + with Cluster("Service C"): + service_c = [EC2("Worker")] + + broker = RabbitMQ("NuroPb Broker") + gw = ELB("NuroPb Gateway") + service_a >> broker << service_b + gw >> Edge(color="darkgreen") << broker << service_c + + with Cluster("Application Consumers", direction="TB"): + [Python("AI/ML/Jupyter"), Spring("Applications"), React("End Users")] >> gw + + with Cluster("Direct Broker Consumers", direction="TB"): + broker << Python("NuroPb Consumer") + + with Cluster("Larger Mesh or Integrations", direction="TB"): + enterprise_mesh = ELB("Enterprise Mesh") + gw >> Edge(color="darkgreen") << enterprise_mesh diff --git a/docs/utils/nuropb_domain_service.py b/docs/utils/nuropb_domain_service.py new file mode 100644 index 0000000..ed28524 --- /dev/null +++ b/docs/utils/nuropb_domain_service.py @@ -0,0 +1,28 @@ +from diagrams import Diagram, Cluster +from diagrams.onprem.queue import RabbitMQ +from diagrams.programming.language import Python +from diagrams.programming.framework import Spring +from diagrams.programming.framework import React + +from diagrams.aws.compute import EC2 +from diagrams.aws.network import ELB + +with Diagram("Logical Assembly", direction="LR"): + + with Cluster("Application or Domain Service"): + + gateway = ELB("NuroPb Gateway") + + with Cluster("Microservices", direction="LR"): + broker = RabbitMQ("NuroPb Broker") + EC2("Worker A") >> broker << EC2("Worker B") + EC2("Worker C") >> broker << EC2("Worker D") + + gateway >> broker + + enterprise_mesh = ELB("Enterprise Mesh") + + [Python("AI/ML"), Spring("Application"), React("End Users")] >> gateway + gateway >> enterprise_mesh + + diff --git a/poetry.lock b/poetry.lock index c3b508f..cb2f9ba 100644 --- a/poetry.lock +++ b/poetry.lock @@ -763,6 +763,22 @@ files = [ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] +[[package]] +name = "diagrams" +version = "0.23.3" +description = "Diagram as Code" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "diagrams-0.23.3-py3-none-any.whl", hash = "sha256:c497094f9d3600a94bdcfb62b6daf331d2eb7f9b355246e548dae7a4b5c97be0"}, + {file = "diagrams-0.23.3.tar.gz", hash = "sha256:543c707c36a2c896dfdf8f23e993a9c7ae48bb1a667f6baf19151eb98e57a134"}, +] + +[package.dependencies] +graphviz = ">=0.13.2,<0.21.0" +jinja2 = ">=2.10,<4.0" +typed-ast = ">=1.5.4,<2.0.0" + [[package]] name = "distlib" version = "0.3.7" @@ -1058,6 +1074,22 @@ files = [ {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, ] +[[package]] +name = "graphviz" +version = "0.20.1" +description = "Simple Python interface for Graphviz" +optional = false +python-versions = ">=3.7" +files = [ + {file = "graphviz-0.20.1-py3-none-any.whl", hash = "sha256:587c58a223b51611c0cf461132da386edd896a029524ca61a1462b880bf97977"}, + {file = "graphviz-0.20.1.zip", hash = "sha256:8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"}, +] + +[package.extras] +dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"] +docs = ["sphinx (>=5)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] +test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>=3)"] + [[package]] name = "idna" version = "3.4" @@ -3287,6 +3319,56 @@ files = [ {file = "trove_classifiers-2023.9.19-py3-none-any.whl", hash = "sha256:55460364fe248294386d4dfa5d16544ec930493ecc6bd1db07a0d50afb37018e"}, ] +[[package]] +name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" +optional = false +python-versions = ">=3.6" +files = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] + [[package]] name = "types-requests" version = "2.31.0.6" @@ -3647,4 +3729,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "7ab5eee5b4d6cc77b88a0b1ce2d2112d34b927b7a7c7876d925a8c086590e2c7" +content-hash = "7390c872d724e62baa443df1744adad0d44fc8d49be03929fc525411b64bfe8e" diff --git a/pyproject.toml b/pyproject.toml index 78d826b..15ab427 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ pika = "^1.3.2" requests = {extras = ["security"], version = "^2.31.0"} types-requests = "^2.31.0.2" tornado = "^6.3.3" -etcd3-py = "^0.1.6" +etcd3-py = { version = "^0.1.6", optional = true } [tool.poetry.group.dev.dependencies] poetry = "^1.5.1" @@ -58,6 +58,8 @@ sphinxcontrib-spelling = "^8.0.0" sphinx-copybutton = "^0.5.2" sphinx-autodoc2 = "^0.4.2" astroid = "<=2.15.8" +graphviz = "^0.20.1" +diagrams = "^0.23.3" [build-system] requires = ["poetry-core"] diff --git a/src/nuropb/encodings/README.md b/src/nuropb/encodings/README.md index 5f3c1a7..1551663 100644 --- a/src/nuropb/encodings/README.md +++ b/src/nuropb/encodings/README.md @@ -1,49 +1,53 @@ # Serialization and Encryption -Out of the box NuroPb transmits JSON encoded messages payloads over the AMQP protocol. There are plans to -support other encodings such as Protocol Buffers and m a y b e Avro. +Out of the box NuroPb transmits JSON encoded message payloads over the AMQP protocol. There are plans to +support other encodings such as Protocol Buffers and m.a.y.b.e Avro. ## JSON -The JSON encoding is the default encoding for NuroPb. It a handy human-readable encoding and is the -easiest to debug. It is also a verbose encoding and is not the most efficient. Take a look -[nuropb/interface.py](#nuropb.interface) for information on the structure of messages as this translates -directly to the JSON encoding. +JSON encoding is the default encoding for NuroPb. It's a handy human-readable encoding and is +easy to debug, however it's also relatively verbose compares to other binary approaches such as ProtoBuf, +pickle etc. Take a look [nuropb/interface.py](#nuropb.interface) for type specifications on message +structure as this is describes what is being encoded. ## Encrypted Payloads -This is the first extension to the NuroPb payload serialisation ahead of the introduction of Protocol Buffers -other serialisation formats. After the JSON or other serialised payload produces a byte stream, this byte stream -is then encrypted. +This is the first extension to the NuroPb payload serialisation, and ahead of Protocol Buffers other +serialisation formats. After a serialised payload produces a byte stream, it can then be encrypted. -It is good practice to transmit any network data over TLS, however this only ensures a level of data protection -over the network. As the payload is passed through Gateways, Message Brokers and other network infrastructure, -it is possible for the payload to be intercepted, read or modifies, but most commonly it can be logged. This -is entirely out of the control of the NuroPb protocol and the application owner or developer. +It is good practice to transmit any network traffic over TLS, however this only ensures a level of protection +over the network between point a and point b. As the payload is passed through Gateways, Message Brokers and +other network and application infrastructure, it is possible for the payload to be inspected or modified, but +most commonly it can be logged. This is entirely out of the control of the NuroPb protocol and the application +owner or developer. In exceeding the requirements of Data Privacy and Data Protection, it is important to ensure that the -visibility and integrity of data payload can be accounted for at all times. This is the primary purpose of the -Encrypted Payload Extension. +visibility and integrity of data be accounted for at all times. This is the primary purpose of the encrypted +payload capability. + +NuroPb uses hybrid asymmetric and symmetric key approach to encrypt request and response payloads. -The Encrypted Payload Extension encrypts the payload uses hybrid asymmetric and symmetric keys to produce -encryption level data obfuscation of the payload in transit. ### High Level Overview -When a Nuropb service is started, it retrieves or generates a public and private key pair. The public key is then -shared with all other services on the service mesh. A message sender will encrypy the message payload with a -Fernet symmetric key. The symmetric key is then encrypted with the public key of the receiver and is sent with -the message payload. The message receiver will then decrypt the symmetric key with its private key and then decrypt -the message payload with the decrypted symmetric key. +Where Nuropb enabled service, requires encryption for one or any of its methods is started, it instantiates +a cryptographic private key. The public key is shared with all other services and service mesh consumers. A +message sender will encrypy the message payload with a Fernet symmetric key. The symmetric key is then +encrypted with the public key of the receiver and is sent as part of the encrypted payload. The message +receiver will then decrypt the symmetric key with its private key in order to decrypt the payload. -A response message is then encrypted with the same symmetric key and sent back to the sender. On receipt of the -response, the original sender will then decrypt the response message with the symmetric key used to encrypt the -original message payload. +A response message is encrypted with the symmetric key from the request and the encrypted payload sent back +to the sender. On receipt of the response, the original sender will decrypt the response message with the +symmetric key used to encrypt the original message payload and continue processing the response. ### Encryption Algorithms -The encryption algorithm uses RSA 2048 bit private and public keys. The RSA algorithm is used to encrypt the symmetric -key after it was used to encrypt the message payload. The Fernet algorithm is used for the symmetric key generation -and payload encryption. The recipe for this approach is prompted by an article from Igor Filatov on Medium.com. The +* The encryption algorithm uses RSA private and public keys. The RSA algorithm is used to encrypt the symmetric +key after it was used to encrypt the message payload. +* The Fernet algorithm is used for the symmetric key generation and payload encryption. + +```{note} +The recipe for this approach is prompted by an article from Igor Filatov on Medium.com. The article can be found here: https://medium.com/@igorfilatov/hybrid-encryption-in-python-3e408c73970c +``` From 1c3cd2738cd4de2e329cb18f8fc316a1ef1f85c3 Mon Sep 17 00:00:00 2001 From: Robert Betts Date: Sun, 1 Oct 2023 20:31:02 +0100 Subject: [PATCH 2/5] Corrected Documentation version --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 1e8755e..5a3bdd3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,7 +23,7 @@ project = 'nuropb' author = 'Robert Betts' copyright = f'{year}, {author}' -release = '0.1.6' +release = '0.1.7' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration From c102a79bc1dd82dc94aca9ca7594ae491b261a7b Mon Sep 17 00:00:00 2001 From: Robert Betts Date: Sun, 1 Oct 2023 20:48:07 +0100 Subject: [PATCH 3/5] Quickstart tweaks --- docs/source/quickstart.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/source/quickstart.md b/docs/source/quickstart.md index cc9a63d..93b96cf 100644 --- a/docs/source/quickstart.md +++ b/docs/source/quickstart.md @@ -1,8 +1,7 @@ # Quickstart -The best way to get started is to look at the examples and the `examples/README.md` file. - -These quick fire steps are the minimum to get going.: +The best way to get started is to look through the [examples](#examples). These quick fire steps are the +minimum to get going.: * Install Python >= 3.10 * An accessible RabbitMQ >= 3.8.0 + Management Plugin * Install the nuropb package, `pip install nuropb` From e183c66b5f0b4b77eaaafe58fee57f60613640c4 Mon Sep 17 00:00:00 2001 From: Robert Betts Date: Thu, 5 Oct 2023 19:37:48 +0100 Subject: [PATCH 4/5] package update, to fix security vulnerability with urllib3 --- docs/utils/{nuropb_diagram.py => nuropb_gw_diagram.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/utils/{nuropb_diagram.py => nuropb_gw_diagram.py} (100%) diff --git a/docs/utils/nuropb_diagram.py b/docs/utils/nuropb_gw_diagram.py similarity index 100% rename from docs/utils/nuropb_diagram.py rename to docs/utils/nuropb_gw_diagram.py From 9fe4699f0bfc4d9f5eacb3e753f814cf798d3ade Mon Sep 17 00:00:00 2001 From: Robert Betts Date: Thu, 5 Oct 2023 19:45:26 +0100 Subject: [PATCH 5/5] Urllib version update --- .github/workflows/poetry-pytest-coverage.yml | 4 +- docs/source/requirements.txt | 2 +- docs/utils/nuropb_gw_diagram.py | 15 +- poetry.lock | 186 +++++++++---------- pyproject.toml | 1 + 5 files changed, 96 insertions(+), 112 deletions(-) diff --git a/.github/workflows/poetry-pytest-coverage.yml b/.github/workflows/poetry-pytest-coverage.yml index 81eb243..03f0677 100644 --- a/.github/workflows/poetry-pytest-coverage.yml +++ b/.github/workflows/poetry-pytest-coverage.yml @@ -70,12 +70,12 @@ jobs: #---------------------------------------------- - name: Install dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction --no-root + run: poetry install --all-extras --no-interaction --no-root #---------------------------------------------- # install your root project, if required #---------------------------------------------- - name: Install library - run: poetry install --no-interaction + run: poetry install --all-extras --no-interaction #---------------------------------------------- # run test suite and output coverage file #---------------------------------------------- diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 48f6c6c..208dcf0 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -220,7 +220,7 @@ traitlets==5.10.1 # nbsphinx typing-extensions==4.8.0 # via sphinx-autodoc2 -urllib3==2.0.5 +urllib3==2.0.6 # via requests webencodings==0.5.1 # via diff --git a/docs/utils/nuropb_gw_diagram.py b/docs/utils/nuropb_gw_diagram.py index d1ead25..e195481 100644 --- a/docs/utils/nuropb_gw_diagram.py +++ b/docs/utils/nuropb_gw_diagram.py @@ -11,15 +11,9 @@ with Cluster("Application or Domain Service", direction="LR"): - with Cluster("Micro-Service A"): - service_a = [EC2("Worker"), EC2("Worker")] - - with Cluster("Micro-Service B"): - service_b = [EC2("Worker"), EC2("Worker")] - - with Cluster("Service C"): - service_c = [EC2("Worker")] - + service_a = EC2("Service A") + service_b = EC2("Service B") + service_c = EC2("Service C") broker = RabbitMQ("NuroPb Broker") gw = ELB("NuroPb Gateway") service_a >> broker << service_b @@ -31,6 +25,3 @@ with Cluster("Direct Broker Consumers", direction="TB"): broker << Python("NuroPb Consumer") - with Cluster("Larger Mesh or Integrations", direction="TB"): - enterprise_mesh = ELB("Enterprise Mesh") - gw >> Edge(color="darkgreen") << enterprise_mesh diff --git a/poetry.lock b/poetry.lock index cb2f9ba..d8581e5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "aiohttp" @@ -194,15 +194,18 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte [[package]] name = "babel" -version = "2.12.1" +version = "2.13.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.13.0-py3-none-any.whl", hash = "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"}, + {file = "Babel-2.13.0.tar.gz", hash = "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210"}, ] +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "beautifulsoup4" version = "4.12.2" @@ -616,63 +619,63 @@ test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "coverage" -version = "7.3.1" +version = "7.3.2" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, ] [package.dependencies] @@ -911,13 +914,13 @@ test = ["pytest (>=6)"] [[package]] name = "fastjsonschema" -version = "2.18.0" +version = "2.18.1" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.18.0-py3-none-any.whl", hash = "sha256:128039912a11a807068a7c87d0da36660afbfd7202780db26c4aa7153cfdc799"}, - {file = "fastjsonschema-2.18.0.tar.gz", hash = "sha256:e820349dd16f806e4bd1467a138dced9def4bc7d6213a34295272a6cac95b5bd"}, + {file = "fastjsonschema-2.18.1-py3-none-any.whl", hash = "sha256:aec6a19e9f66e9810ab371cc913ad5f4e9e479b63a7072a2cd060a9369e329a8"}, + {file = "fastjsonschema-2.18.1.tar.gz", hash = "sha256:06dc8680d937628e993fa0cd278f196d20449a1adc087640710846b324d422ea"}, ] [package.extras] @@ -1930,13 +1933,13 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= [[package]] name = "nbconvert" -version = "7.8.0" +version = "7.9.2" description = "Converting Jupyter Notebooks" optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.8.0-py3-none-any.whl", hash = "sha256:aec605e051fa682ccc7934ccc338ba1e8b626cfadbab0db592106b630f63f0f2"}, - {file = "nbconvert-7.8.0.tar.gz", hash = "sha256:f5bc15a1247e14dd41ceef0c0a3bc70020e016576eb0578da62f1c5b4f950479"}, + {file = "nbconvert-7.9.2-py3-none-any.whl", hash = "sha256:39fe4b8bdd1b0104fdd86fc8a43a9077ba64c720bda4c6132690d917a0a154ee"}, + {file = "nbconvert-7.9.2.tar.gz", hash = "sha256:e56cc7588acc4f93e2bb5a34ec69028e4941797b2bfaf6462f18a41d1cc258c9"}, ] [package.dependencies] @@ -1963,7 +1966,7 @@ docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sp qtpdf = ["nbconvert[qtpng]"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pytest", "pytest-dependency"] +test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pytest", "pytest-dependency"] webpdf = ["playwright"] [[package]] @@ -2049,13 +2052,13 @@ files = [ [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -2193,13 +2196,13 @@ testing = ["pytest", "pytest-cov"] [[package]] name = "platformdirs" -version = "3.10.0" +version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, ] [package.extras] @@ -2884,25 +2887,25 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar [[package]] name = "setuptools-scm" -version = "8.0.3" +version = "8.0.4" description = "the blessed package to manage your versions by scm tags" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-scm-8.0.3.tar.gz", hash = "sha256:0169fd70197efda2f8c4d0b2a7a3d614431b488116f37b79d031e9e7ec884d8c"}, - {file = "setuptools_scm-8.0.3-py3-none-any.whl", hash = "sha256:813822234453438a13c78d05c8af29918fbc06f88efb33d38f065340bbb48c39"}, + {file = "setuptools-scm-8.0.4.tar.gz", hash = "sha256:b5f43ff6800669595193fd09891564ee9d1d7dcb196cab4b2506d53a2e1c95c7"}, + {file = "setuptools_scm-8.0.4-py3-none-any.whl", hash = "sha256:b47844cd2a84b83b3187a5782c71128c28b4c94cad8bfb871da2784a5cb54c4f"}, ] [package.dependencies] packaging = ">=20" setuptools = "*" tomli = {version = ">=1", markers = "python_version < \"3.11\""} -typing-extensions = {version = "*", markers = "python_version < \"3.11\""} +typing-extensions = "*" [package.extras] docs = ["entangled-cli[rich]", "mkdocs", "mkdocs-entangled-plugin", "mkdocs-material", "mkdocstrings[python]", "pygments"] rich = ["rich"] -test = ["pytest", "rich", "virtualenv (>20)"] +test = ["build", "pytest", "rich", "wheel"] [[package]] name = "shellingham" @@ -3295,13 +3298,13 @@ files = [ [[package]] name = "traitlets" -version = "5.10.1" +version = "5.11.2" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.10.1-py3-none-any.whl", hash = "sha256:07ab9c5bf8a0499fd7b088ba51be899c90ffc936ffc797d7b6907fc516bcd116"}, - {file = "traitlets-5.10.1.tar.gz", hash = "sha256:db9c4aa58139c3ba850101913915c042bdba86f7c8a0dda1c6f7f92c5da8e542"}, + {file = "traitlets-5.11.2-py3-none-any.whl", hash = "sha256:98277f247f18b2c5cabaf4af369187754f4fb0e85911d473f72329db8a7f4fae"}, + {file = "traitlets-5.11.2.tar.gz", hash = "sha256:7564b5bf8d38c40fa45498072bf4dc5e8346eb087bbf1e2ae2d8774f6a0f078e"}, ] [package.extras] @@ -3371,28 +3374,17 @@ files = [ [[package]] name = "types-requests" -version = "2.31.0.6" +version = "2.31.0.8" description = "Typing stubs for requests" optional = false python-versions = ">=3.7" files = [ - {file = "types-requests-2.31.0.6.tar.gz", hash = "sha256:cd74ce3b53c461f1228a9b783929ac73a666658f223e28ed29753771477b3bd0"}, - {file = "types_requests-2.31.0.6-py3-none-any.whl", hash = "sha256:a2db9cb228a81da8348b49ad6db3f5519452dd20a9c1e1a868c83c5fe88fd1a9"}, + {file = "types-requests-2.31.0.8.tar.gz", hash = "sha256:e1b325c687b3494a2f528ab06e411d7092cc546cc9245c000bacc2fca5ae96d4"}, + {file = "types_requests-2.31.0.8-py3-none-any.whl", hash = "sha256:39894cbca3fb3d032ed8bdd02275b4273471aa5668564617cc1734b0a65ffdf8"}, ] [package.dependencies] -types-urllib3 = "*" - -[[package]] -name = "types-urllib3" -version = "1.26.25.14" -description = "Typing stubs for urllib3" -optional = false -python-versions = "*" -files = [ - {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, - {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, -] +urllib3 = ">=2" [[package]] name = "typing-extensions" @@ -3407,13 +3399,13 @@ files = [ [[package]] name = "urllib3" -version = "2.0.5" +version = "2.0.6" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.5-py3-none-any.whl", hash = "sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"}, - {file = "urllib3-2.0.5.tar.gz", hash = "sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"}, + {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, + {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, ] [package.extras] @@ -3729,4 +3721,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "7390c872d724e62baa443df1744adad0d44fc8d49be03929fc525411b64bfe8e" +content-hash = "07e41c2f66c37b647a6d4c45158259f24b249c60c4d489dc28f98408800707e0" diff --git a/pyproject.toml b/pyproject.toml index 15ab427..3043008 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,6 +41,7 @@ black = "^23.3.0" mypy = "^1.4.1" pytest-asyncio = "^0.21.1" setuptools = "^68.2.2" +etcd3-py = "^0.1.6" [tool.poetry.group.docs] optional = true