From 47ca48904eaa0661d90ba4ae7818769c75df250e Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sun, 10 Mar 2024 00:32:14 -0500 Subject: [PATCH 01/10] update logo --- .gitignore | 1 + README.md | 6 +++-- docs/mkdocs.yml | 35 ++++++++++++++++--------- docs/src/img/dbt-linreg-logo-dark.png | Bin 0 -> 28215 bytes docs/src/img/dbt-linreg-logo-light.png | Bin 0 -> 26403 bytes 5 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 docs/src/img/dbt-linreg-logo-dark.png create mode 100644 docs/src/img/dbt-linreg-logo-light.png diff --git a/.gitignore b/.gitignore index 0ce0028..6dae1fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +integration_tests/package-lock.yml dbt.duckdb dbt.duckdb.wal .user.yml diff --git a/README.md b/README.md index 5889d0e..bad8926 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ - <p align="center"> - <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner.png" alt="dbt_linreg logo"> + <picture> + <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-dark.png"> + <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-light.png" alt="dbt_linreg logo"> + </picture> </p> <p align="center"> <em>Linear regression in any SQL dialect, powered by dbt.</em> diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index d227886..860aa94 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -10,9 +10,20 @@ nav: theme: name: material palette: - scheme: default - primary: white - accent: light blue + - media: "(prefers-color-scheme: dark)" + scheme: default + primary: black + accent: light blue + toggle: + icon: material/lightbulb-outline + name: Switch to light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: white + accent: light blue + toggle: + icon: material/lightbulb + name: Switch to dark mode logo: img/dbt-linreg-logo.png favicon: img/dbt-linreg-favicon.png font: @@ -21,15 +32,15 @@ theme: plugins: - macros markdown_extensions: -- admonition -- pymdownx.tabbed -- pymdownx.keys -- pymdownx.details -- pymdownx.inlinehilite -- pymdownx.superfences -- markdown_include.include: - base_path: docs -- sane_lists + - admonition + - pymdownx.tabbed + - pymdownx.keys + - pymdownx.details + - pymdownx.inlinehilite + - pymdownx.superfences + - markdown_include.include: + base_path: docs + - sane_lists extra: social: - icon: fontawesome/brands/github diff --git a/docs/src/img/dbt-linreg-logo-dark.png b/docs/src/img/dbt-linreg-logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..55a971bd5c4de7e40d1b9c55e7301900ec8f3215 GIT binary patch literal 28215 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 CbbrMF literal 0 HcmV?d00001 diff --git a/docs/src/img/dbt-linreg-logo-light.png b/docs/src/img/dbt-linreg-logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..be61b9d8264dfe71ebaef59489302f0630f0b10b GIT binary patch literal 26403 zcmeFZXH-*N_b(biKon4lV5llZQ9u)V_mLW!2nYxQ8hWpxS4Db}o=`;~5RfLlN9i4; z_b6iMz1Oqj^S=LcKHhOZojb-IgaKo-%A9k}y7v4LrlGD#b&cs72n3>nDamPqKvx7n zAY$&TWWW>kvu_v>h$zTPR#pQhD|^S$*}>e()(ixC5bGN!rPT8DcJMqpNf{$L@lWer zS;W_faM7`c^jXjHZ|NhR)b8C#5#;3IkA7$K?OSGB!TX5vV(Q{|caBJYt>JQ(?s54g z)9bf-IL@?qA2#_M&JsN<Y!@tiOkr7PXFkjWG1j})QgZd)yPE-bQLoz5IL&YpO&c`0 zRl|1{$C;-tl=<=zL`1QoU6jMzb9XW(E2#QUTOm5JFMqlGqKLo7>G!+t*ETc$YY*{2 zB&v2z(kW7p_ptOw%NMwH>u{^n%V8elPVX<ybHBcfGJVmy-~6^Bzl7H%{m+9Rdabma zp&ElvZwXB(4Hm@1@2Z^guwRC*CU@q3EWD-=O*)eGkJ~xUVXMAc$IAMLN;o=TFk-<c zlIW-5r&-suO_L6*OwczAobu+$D&L!f_&syo2zH|P)7UnIuGT?759^zwu8(SyiSGnI zXi|8{WLrEO)U6@CXJa%kek$q<avmw{rE+w<8kx-FJ&T_^Z}dGqRL%33Il1NR=1Hm{ z1sn?*Tt!h1bV>O7)R-3!JfUz@dgTHFU8f^_6M<6FZUYa=U14hS<Vz&iNa+}&_%nxr zM_^ZZJy%%=J3BLbSCFi;*;`jL(>v}~u9kNcVQLz>fz*s3&>av=?jLQBskK@6Gp?7u zN0;Na^SS(*xw`*o$VE=vya`c`WD<g$j3TXJaKV%_TD2h`p<}cjJd8=jt6YTAtqjDV zokB`v^}~DKa3X!4-9=YsZ4Twq@3T?sZoaX4?9of|Vb*1{VH1UNnRB_O6vqks|3Ck) zB(UgqO+$UF#_W!hnB{jTp1^UvSx(rG3SP*Szsq5stD66nZjKQIb@#83z1mEJ|B8F% zRy_FMLAw9<3`#T$ehLu9T5)4b4hO?>VSA{;IIRT!Qo8ak5nHC+6>*>V#_O&5IU5g7 z*mYFzM}XfiES=94jnhD1Ae?bIx48uX{sj370~d~$mm=N+3t*`JF3`P9bSCKO#8TS* zQ7Mk0=dT>NF(AK;Om+6j0pJ;T-@nhSxV9iIcVOLCVRwP$0eXDlP}#q-+7Iud{42(h zM}N2BglU!_2{ZtIZT!D+(AVCZN^v=CuSg|tdfarpS;}52;@CV?##ah={X(*FWkY{! zKq7#hL}uz&4ebM}5>D9p8-Ue{+oYw8TLCXRoFC&ZvQ79(IZ8=Nne?Q^lZcrEy%||j zB~b35Y7!C9cx3dW!0UnR#N*(d+H%${51a=Mf{o1<r#IPO3U!j$62d*g>IRm?tmJaS zR_*}DkV8)n>L9*B63vF-9k1}Y;PoL}zkPgY4{D<DArUnhS*~ailawGHxROCCnPi<H zZ$C|RKZ-iQJD@z^2Ix{PQ7@h#?0u|Tw)$c-C|QfDW%EZ_;ELKwrY4t8m1}p9%w|&H zSuwfU5ucGj;3i`2fm3Od$^M!VP5`^BINmzQGWE@-zNbUcSCC*Cv*k=4!dtKcA@Y-v zt{N7P>syuuJWsd<PGWmS!ACmJS0?PR#>5h+-Y0+U$LfHZe2!v9{3CV8E$k?_fOvYZ z2g|5ymh@Q3T`nP2b3hkz=A3MFU_TZD28i(_kFQj*cY3aqu5AoV!^lZ8Nu+N`e$B&| zvTi-ZY2wVPFr2Uye)fhq!RBc4Cdm~I={ZNsYu9jx0p)>o<j(5TL=MDFazel4<2cm< z0nJO1Atz=hYf`GjeHNrTB{2rgsn)YP)@?wrVptVSoNyc`4+kJ)L75~He=;A&Bhr>E z9xvii%g6<CzYLpzW^!qz%8$jIu<lks(fdL|Ko&%ojCxk0g7VF<N`d|Z7uWvhc}yR^ zM#waC!aNDg{Pd;(&hT6CGc9e6^@DBuH<K(GmmC2C7zT+%P8gjzpe(^Q%s5%BfumqB zdUIX7-nX}$1XGnEHL`LC_QMn~(44nZ?jvDdby<Uy4P+j%Z$WP?aN2Kf$lith`2BYa z&#POAG@Z|r9z<K#EspG`M3*X+QH6kHKm=ZRV~EsA+yv-TzRF^%xP0rgZm-_e9&Sov zz6Oh97y$U7>L|nJ1+r3pFvq>po{r-eqOVjZzG#1<6j$K^7^&6m=&Y#==cufY;_GJE z0WcXb%>s27I421Ze!=Dl&^#)i>or$v;I1>2Gg9K$3Swc?F~uRX0UQD3d`I|jaHb+r z1Ea?s$9NflsC5F#e$xy`w@bAYn+9gFudp`)*@+lqE<7JO;@_FjjZP6gVmNbAe6zmv zdW_gxi_7|eoSOJx8=vurYwIPBzTk!8eAJoucuaJkbR*8+;knSmU(49|{Hn(pA7%qY zh?`dicmWN!nxn^tD5f{PVm&0zB)z!mLGL;5wFzAby&&CED+ubW7&uG{97%s~{@NiW znmK<gQS^xmWfjrI%^LGyyw_{Rm6j~l;v0sN(kly!fSy}#4p>YeFS$o&E@v$~F1(4G zucui+O>TBY8Ym#VriOEMNSb9%&a5(btHFOx%nG5cD^hbiT(G#D3vXyS7`0`E8)A*@ zpwJ$sQ8nKaKyAxta{!s315Q9d^bnu=AM@yY&l*sOp80tqxwXaC`p2U{NCFtmfpVhT z8i{WEQyoa975Pn`(t+w<j~-XG)6e5pVNd3lZL!UhkEWWjgJutRMQ%nnDKe%%DL9Sp z|Bu-bv-RzvlheN2j<@Q4X$e$OGk1lewz=w>6SqhLd(g-U2<q)$7tNG&D_ea)P+Zqv zUg&$)CU;|Wa93m-yD?~N?}7TbIuC!0$lsCl4uEgZnLCm#sBRN0BFP|WupSBg$i1AZ z9Wg#P8o%jHGwOzQSN&P;H?TqooK}`@cP__bR|De77(^7!BSj)&!O5WdeL<t=_b&H} zy_XLwia)RbKBBun792Nn<1v^^(7Be}gL~_hY!T(yi*<cxyXVc97;Gxkzg-hot8<GG zGGxp697&Gnt~wC=IejW~F>Uu4W<zcNB5JiIb#(h9nlAA1WU-SHrs)<9DBZ@X9nKHj zbIFV&34Vq0A@=A1^_!54c7{cPWfs0+zv+Nsao>SZu323~W|UEORzmD=j!f)g#conA z`Sg>|r5+1p*jL7K^7H~mgP3;dthW3Wg?+5WC;4D;3y-};BAGWWkaVeC7{v*D3m6V& zIwP}eO_x}g32x>L*{UMS7_Y>x0wWyX6pbpz<(L!3)E|(r#bef7I%QrP?XHh%*Z-y* znhvNJNNl7R9a`alX%bF)#BhKlT-EGSdX%4AlX{-y!W)Zsr`y^D_xLxw1j5t5D`li& zW}Xup3pR8wMN!JUI!KB%lbL!5MA*MesKtP&yR;8dDNCSr)JHL5q63?n>tqQnKWprP zd?t#(w}=#n3HjP?ur9cfSx@FZ{^XnLA_Eqp18DII!4KJY3t3$71?!;BS6R|m$pfKU zlZpm_7b~y;RHx3u0@q2oIM?q(c{#q8M)6uy5%0~lRjF#mZia~C#AE>OcO|1E)`Btq zl5_(K5GjM-N_*a=T};Rbm<V2Bqf4mmHwUo3uMhRWaSy6{mR-*z5zrk;f()eYn?G=o z8ttUyNiGk3^k=J~nP?_GYv!Gg1QRT7#G4>Yg9B3PPK^zG{#frv=i{}sj6<@WqEsj3 zsB&D+_TQ706x6D<?<ko0<0+LiERg73`oI6g5{sD;pejn}s|7Y5A5@ML{7Z5Yxf!tS zmYwV)GZ!PYvl@^OYPS#+KqWdBJpVam{4r0=^*{u;TL@5IO+unH!uqI7K=FbSm{Cb{ zWEAYY>0rqPV<Na(M8{j~SIWf<2g}?w{(g-=Om8G)AHjZ%5omK~$-vB92MCzW1qhf0 z2&fSHyPCJf!^4nZo$igVs*4-ez*18w1X)H)K@&U$9N%Xpeys<%vY{&Cgc%3`M9ju= zpnlTRS&0{SYHvgb>%`?05l(NTGq$&8q*PhUN$X!W1cU!B!_pPGN>wO$t2PcSaa$i2 zS4D_PbpVSa#_mL`(1iM_{~?8Hn#2a0U;~v+$zaJA7`v_W-_dXLR2NfvKcewflxE_< z^c=`vefqsp3Y;t2LN*wx3;v(McXdM+sbwFj^+|!dUt8<_m!IH7RJS1@7)%!gN)Ry2 zgrF1lokCC(fJbyY;gJ?0MXbB43vG!7|JX~Y8U=zJHT%c75h}pIPab!;mPG}>{13nO zjsOe(j{qT+yiMe^vLPr4vvXg>yy?GtEU>ja{Ez5GelsaI%?v7Q#haKCgc8?IaGSG0 zCb!be!XdCB_$7|hj*#0TWQ&*Ya0}!tze>;Qou&f9*}oG1X!D@9i_%K`+M7JU1m6D7 z83iK%p3H##CMfihvSy|!|L2Sxb<xi5f)zis*WxfU%>T!8_rHfT9Qz36)R^_Z>0Z|Z zs7Z-76i5Wb|3C6gVQd})$S(6nJC_Jm{FlfUK2&#OCLpt4A1Td%Y|He2(^KDBF14Bw ztdkNB9D5HXz`(*^-KY_hMR|jDtRAv`%u)rkj&t;{1e^?mp{%I8i`B#v_hoBkpuiSU ze~q1^<C#Ao@*Rn*dMQ~m>;%1O|F7<qao7($Ts$aMUG$s(A2W(BgeH0;0bTXd{y&YV zV-ZC#oW(>S#z`I1rU9AhU#p{z2Wwv1-eAednsERFi~sdM8=aL@*<F-8nI_Q6ynX^P zqks2wdVzLkx3|o-Rqxl{7$?}l{$GQd`6okcr(VO3RV+qFzbIkyvFQUBx~-Rh#c4_r zEQ^oP^x<Kw%SmMFUJ~lVOYQ3{RBNeOGcExJlt3ciM<oT*bpJgSzWu`Gb`M7YYmsL6 z(lV-Bst;gl<Zle<5kqzRp0Tv=41v2{O@kT6K3JGPJk@RiHu&pv`78j_y|ZJ>K4~VC ziXnMKBuOO7DO>9fGKMx7yfVM~ZvmELFLq-BiCN3*d%>a`Yas}fNOlL_sP1##(r;V# zgmQCP`mghvp-M}|ta&P%r-5u2T(nRuS0s6~CfT74CcqhTPCkgwiI(8ds=YzN_T)aq zCuu;<Y)^A1@<;9UqY2QjavoXKwB9-=Ot>3}O#PjD2N8en_)UWbwrVk|)Wk*~F>B8? zicmxDhk%=vD9qsOQb2Jc4EozHGj4og^Ek_(uw4cAY+%!i#jN>*l_G^9$3x(0gZ=-k zSbU`^6SG!{EhlGdPClB^=DrVl-lu)Qh0P<UFZAYqJy)zF1B;7-!d99F%y>^<Vs`@D z*X3|ak&E@IU1$2F4O}M2o5bBjZI2Y8EvwJt_UH%(n|dK)GD%L{EHqeiK145Vf*Ez; zZ=?{tr#0zLv<cR07<*pRuqY}{C@xnTZefeG9jskgbV+Q;7|QRPMvi|sX#>F#8o@OU z=GgHC0fBLh$c-oFjAo(3*@W^%*o9!z!(_OT$i+?S2Ct{v`qvuXhG*s;JKgkDRGSfK ztCLU@v3Rh1voQPLDtg3lv*+~%J17RM^u<WMi3en$Z$6sF>`jzO>ehJ#-X!H`f3xPy zDZpl%m;lsSbq=JC9G)T7#;Q$rs(Fi7->?p&;F`n|)Sv9d`Z#SF3k*LvkL5}PN|AY8 zdie)?_>OkG12$45gaf-fmrIc(`N4ySh~xmffJ<T>^=$!G6vPM6=y)&7KLef|qbEYL zu4=*17&09LDJ~eH@~qo1)H;f^Ao3q?nV`q|gKnhk;Q6cdsi)pz#{;vW{{4&COJ+xw zl1`034{=ut^EoL9sx_WYl_vdRz>{?AM@HKpHSDnYRxP(c@ai@ejJ?o0`jV_+*Cno9 zJ4WPLH>ypLb%-(CYxSRog8LB99(t3ni%vMuN`j5~%(ye|QgfXb8YRB>Q>?~8>Ymn` zeRhfwH;}Ah7Lq_RX>f~k_T`O(>_QAWDM3Jzn)PXVcWm#`wXFcQ_FoThX*^?@HUa5) zTvMe=`|XRs7*fJac0b>4)`Ni;b}Exx<iztRr+e9^CpNBoT&Neshs2l9DmUcD*NGYu zt+QsW#xgTgvroq=QE(5E-PoG|v2k7wV8?F>5{A{Ffz8g^OQKQXBs2186IF9L);yvC zw0HgUwQCJTHQr<hyaRr%X&)6?c6POV@`DxMR=sxE=y@!#2K`<I7%?Y9D(ORpHvkQQ z`d5``O?J0M<H4|wbZr|s$r}@P3ix_Tk84|Z-<(IT^x>B`_KIE`Ws0HwWpa1*qzh!& zL1TPJXY<=-gaW+n_&cS<b|zVL`ggI7s|_CCVUgaL;KODoVl$~W)ArBN*8>hg%|w!v zdhyFFhr}7z8<Ks7S>Z7e$N?*wfs|*qm&_BwE$+q&mGyn~7<6Ui>Du!XAQhbCp$z2Q z@4kzz#dd@JLR9jDJ^X{LnS0de9=JH*D6sJgu#lH@7yS-dQ(gzRaW)aWt76&I+Vk;X zMz`Pfw#0sdC(_A8$;7&m;vYqbMP97GDSP{^3_cP#YrZ#NsEBvH>G;Hvb9NH(#|!r& zJE*;3GRpef@JunWky@qbR-L@x{6fI}m<?G8(u=d%Y?*Ru*pCrHgt<7T!y#CY`9-wW zuQ*AMDur*xT+FU#Q!lM&Tl76FsH6i*z3Axo3hDhJpi}d+=;RlCQ=Sr|{ZB+9n-mQm zfATT_;@;hAlKaH-X$!Y~7(H<Gn~HfLV;0|y-0agquYxNR-9x^X7Qjz7ZHiyAiicUk z_1kHbY1S{30eOE<BF-BwLU7i3&0Lo>k2vxLRezA|tcyLbiL#b!Z}9HH`s1sQ=~RB$ z60ZJ6B$zR1@frAocNfG*D-4$#0uj6}x-A6(27&iA)ml>A+1ZYc)7PF8>daiRz{&OA z!H@;n$V~OxfqOmY<3uB@isrv1{8WXCV2SUnsS@s9{s}n|Q2DVZ23Y9HY6P|<ifOp6 z#DS<;lP<L<ke&bY+AL*>bsD*(^WO89$~b>Azv$@xk2zpM5I#RJ*1rC3C9mnZQ0rxX zuuM4;!_6%q*ngT&3)a0IUepk8?KPuuo+d-ktC9Xe#>ogN{!ddpT)***+hE-rpPEGb zOr1N#afgkhq~`+xt5~u(68><4U8T#U@2W4lhZ?83Ourz{>BHN8p0XY@4es#7zHi)@ z6LWT5r>x{Zd-w0sbGr;fu+80Vt2ZI7dg)c60}@~G`=+<H+Qo_<#fy%Sl#u9n^}u$b ziN?d+Pj{68%Zu0*EwD4d=b9XIzp;uCZM3Gz6iXnzqy}ApYdWsT?`?a|G=44uN?tPk z$HjYipp=MXaBwIXx+c4!Jx3|&LId%dxF>z;POf8okjsRDJcpGEYbn28a@uB-!Tp|; zJ@X_K*j-0_xGEwyCUs^6meGX5(YI&7f8ptB4-;-Ya9GXg?6)YR2lWO>1ooK8($F(e z2FMTM1jSB4d6YTjj@P%IeL`y3PHmJruCR=xk_5_-_h+_TY3Ih3W8?4Zjk_9`uxR+! z+PX^DAC(h$ig%~nYL;5(ol&X8&TY^|ca<!h9o-Hg_E!~xn=Ayx-_|AeSE-zi*je3u z*Tx+19P~VQHbsiyhG@?z&%u~7nxi|89%#L_%FxZK;k2>L^gs)eOX4$+I~0-b#2pLT zaj!fcI0~PG%UrleQ^X`rhk=uVl{<m9^00>z6IM01JS2uaWiJ|&=C?%)Z-P#v;+P#s z`#+yXNX$|D1Y7%(FxsvKn_=0BMBGZ7zGO2E9o)lRToAmrX0;@}2g%lZup84DNhWcI zO6ASPiU!Q$p>Noz`4=JJa@Z!df#!(Q@$RU0men{$BA|ri@@m6vQKq~ru9L#pM*%9x zb<5K7d^EF^(_T7o&HVc_P+jn?Q%ahD+tzsF89XqlR5`l{){fxwvmZGgc~bOAU)z=a z%{X85tirxM^P5GaNn3ul=fKj$(@K>AJMC-_dr&bOs|=anmDg8Zn@xDH-o`No-X{t% zvo5#)teoa!^UY~2UmX@F-Va1-9@EKu5-(8c<&tQCb?3ftwn^VRlhOQ^+6?Q^gD7le z_5v;L-H;QtW8Tk1`cjfDN8Ez~E45Q%ZxS2D!?e-t)Bg4$UyGKdO!ue_nQ<+yhGKGl za(*_}<j9LO;C%kS_<_?0Kh=yWB336;CypjNAg^Mdowg_EC+R0@y6VGH)AsQ%TRE>L z$UKA`IW!d5R)Mf`3YPx+cw==fh}x~!sp)QGj0r~Jbww0@7RyeeLJ8b8$BjH!7wF3I z*^UpFZ*LAga_6~}*=vpnx*XdZ;JfsDu{*zdVfbSAP;c;<m)PH}tRs%E`}L2l`RbF) z`~JW8L^8el>`v7R_@(RySW7NCwb+iwvj<*%ZL{Dv+?rHjJgeq1@M+F9IGg3`DLCC! zVMwTV1ujju{2v$bIQ*PvJ-l4KSo^+k-^>qRXP_gwkl^s8#`L^hzGJ^HMij{?bp+Dk zrTQb-O))Rf!?4JECb7scZ?@}iaI{%{7CC5<WN_Aq{@U&vGT0n*oR)Aja*lHDb!T(u z&uY%xkq}B`*D~szhhYRD%|b%+sHajkCzoZ-R229z?Qt#t)RE>)uk@<p+3uuml`sem z!mn)Hc4a^A#JB2f4ehM}cH+-E3fed>+Yjj!H<FWdSy|bEXGoag*o;+=>aI!+=O6n% zYZjwucBk2%*X*`>=-wm#^tS`j`SMNdcq@F96f<sUD@7^QV{&1?loE5iS&{!ZB5Id& zDhxAFFoL%n-WOlCFxomjG5?Aei^pDOj^WXBlwn`C;y2{bX~wVOXDGNnI-g%fz|eIe zi#40f-s*_UCYJc$leSuYm~kmkcnbMxT-~P6MN~DP_nKmpaI72|R;AhPZprz{jfqmH z;hM~1Tcz%{k@2+g>6)WNq03@Q!A@DkL$rDl%|1^8lCMLup*y&yU7EM&={sRpJB?jK zhKoyhuY*S9ak=~*2Kn!YRHO0Gt$~SYouRE%MjEOW4O#D*^DJA-3VN!;di18I!dP?F zKr_@)ElFr#_1@<hjfS3Jafa#1N9`k-U$dy`V-HF6jq2rF&Usv8UiGSchHgs>7x&ZF zh;&rEzqVpbU3tu()%wq@`vYci#;j8q_`!YGrbVQ`F<EiqNS!XNdT)#bK7lc0A%lu% zpaVMC&(AdFRd!g6bUUqad2p}f^4?Z@cradNXwZ$)H+iB-sr#I7k2#TMU>1pg-hF<b z8#SVBoH|9VHW2XnXA^iDeYFzYjhr7gRj7`miC^2QI^SKqCu5;$hECGr7Jm9{K6l@f z{`e70IatPZf!D@ffve9UMEL%b6{ge?*Ohju+dWvd#MMos=HH~5=Lg*q!fFR`p0i@f z+h_;lR`ge1X7S3!E5#8B?LJG@_r8{CR9H3$A?z7kN_a?EL!79PpYLKm#syFcQTL>@ zJBy+JF}xC|eC5Ju^5(d3SP1kc{xf&6yxjdtz2EB(bGN5PMEUNC-&Q-UyZ3qf_QS&E z>M+k1mfiMdD^qRNA4OLM<swpS8Y4Z((A?jywiYfQ54)<ND^fKteQ1VI*L?>jg1u7Z zV74J5Begcu3brSa(2tbY8i(vxK*>UfmG?eJY0AyrH`#ar;jrxvQh%kYSg%wgGTJ6` z;KywJm?3uDd1>l;<>@m-S!AfUE%AfgWkZFtey)9v!TYga0{$>IW}PrjXHZ66iN?gp z-x;Fwo__@2SmzcnFGOz74{URbCA^JfeKv7W-jmf<aoayWjJ1|F+==EG^bj-98f=e+ zOrANVhZDasd9|}5(A@l|H+8cgDvpmCs6%Q!ZmhaJ?D&9ATo$ok8X5Y0=@8TNuKHLS z5tTh5_jKtrgbfWj3`K8h$&K_)ct2aqM?=5vG7Zz%Dj$rhl|<BL3Jd8)gsuvVXnZ({ zCC}Q7_o{zHw~+^F_MH6qI}G!FP!js-lk`6l#c9xAKJATByd+()Q2$edK}k-js%+yy z$rNt43BTUdjk;J#HP%VAoZ0Z^3x%_dg$oIqu>6r|<(1S$jZ@BpS7QmE!h9ba{kIpu z(qQu$>ne2X>=6n6Sxe?4juOlSwePIMONF`VlqpJ{VQ_e`II}l9|2_Z12`C&*W9vE3 zOOn2c-sPj+RN=`!fv<SbI5pdx%tOvU-}`lVbu=DLQ)t#IAcd9=`jzH9s~EHK1QnYt z!d`8pP~7@YCY@lsl6|lET}@T7euP6)H<qd}aw-3VeG?DWAoSiOL|ANhztBPdIQn{V zzgLOZ5Po2Bs(vgHL6ImgDF~N%%=2n@;%!%!47<SN2L8Y?LE8I&?p7h+CPMa$BSpst zr`I*`Lavv}>BV%ZPf|=NJEFMnZhPl(=4p;~1Z<`LoY=Kl(XKq7O<^)tGwX;xdBhy| zvdrO6cc}QSlo&QI1%^O5Swj;s^A$=Oe9B1!|Gmu^yD4L}aSh9&=)t8Q=pnhX!yF{u zVNLvA8AtNU#$%pw8$(IJ)zeeKq9>^Jd(XM{xSRR2UVl9JT%fA7)>`2n5h_EsTP6L+ zNb_(l$}^09xGLP!uT_;)W!WW>CNnv1FAN+8KCS;CEy5Kh7qR)0bB3`y^kDn>MSWK! zOJlElT8cQOvkvS73+txyJ3Q(nxcJUyXJkJ08#KGn$PmA^c*=skty&8%oMFE*R4JNX zD5@HLlyqqSFhay1|M_KY$t3%HdF-L#)<Ru%7G&E};C|imw^XR2sQGQ<;g7Qut!hKR z#H~-H<@*l9Vei_wZ)(on7VZ<dA@oCeYQW<D4hx*gw9F~I@i38UzL9eyN_XjXcc{&S zgOo2SgY<#Hj^IgDOygX4=W0slseQh{=m^b24)M1Lhgq#Lt?=`Dv(`$w)WK_wv8;z{ zk*J3^UCsd?`(Z*@T~)DZ`9k}nG;y&SdChW)m3}FN>mO~h;#v*o!oE6t`QPVI!LK<y zXgg!!n@T}#eupDDPiIq4kd+B3zYMEF`C`{okf)BSic*5a*_;>hx55xMGmVgnt5BM* zPr~ze(e}~a{Ry#%#|IzYF5FuLZVd|41~XB6_&gu;wO_h+3R<n^^{M<gXMOPJAO-oA zD89V|DfA05dq{KL+g?b$8NK$Z6FuXcbH~o1vEQ)vhSuZrsSh(>FES>`UGjf2)!#N+ z>a*&8mzY(}g>jMBn!DL5`9+gC7Lxwq-cKfKp`FyR_NzkZh)x^GpD5Q<p)k!0qwaI4 zx#gpv_z5-EC@0x>vSHCkaU|3it(5N|Z`z=#sM{vIHq9xm$ruuGTqH}egWSC?WG;LC zdoa2+Xe^LIjfXPoA?2(|cxb=B?H7|cDMb1V@`IBs2d&BKTN)4PHqIQaDL+KB|E!dI z8HWp;(T8gG`qUgpc&9k+t^q^ff%2^795P2y^+#FX_09x2$Kez^1EZEQSV-Oe;<M}> z%~M5r_^c{QS?kIMxt&7%m|BQcJxaFMvOn_)3SuBO-isXVjD+2oRJEedEmq3h;TCrb z9Ga<(M9SyD|JV-?PN>ZC^Nonwu3Q;A-%tVd*Ipzo4maExX#6?m#5$nC@kBdW({1s= zy?Bc(u{ArUKtaJLaPbAR*7=zAEA5eTVXxL8f_9(ny>zVcfkEnqmeSU#tcvgr3bWs0 zL9}*|s1an263tRTyKB-LCx=fa1C=~ZdYnEXNFjPSLrsL;L`Yl~Pgso;RWDNhw(LAt z)o_Ns46Nn?KK4D}&xgCIW6v$U-p^IgJ=4k)aMRXS?hrL&O+@3hm8UE2*t^2IM+W$e z`*T#&!(ZW`W^X&7zZ#T(Feuu3&9zqD)hv#hz~rbQY9lRID<-43N5(MTL&EmeX@kG^ zF|fuu=kTX_jeUEW3F$H2@)-szmhpp1NyyC~6Vg!Bkb_yzWzxx(@tS)$s`{nsQvEHu zaN{Mij{?Dv8!JflXWx9Q#iP1_a>P`(I@DB)JkN@KGoMth*`sY=OU*pZca{&rigThW ztwKQe+C|-ndM5gb0?BO*Ng6lYi&QuTh3ZViBeJMBb2dn`_&VAR4<TAq-JM=+CsHOM z_Q4y?@e{e6dkhXUnGvt9b0a?NB1zAlvBnP4S5Fj0P75+jyNR2){R}H&giOZ<D?H&t zf15U+ZW=kYU4us~#FZ`-&rd8vvX1|l$-cX{*p!%pRjnn{+5oF%FT&@G$G8wC3h}`k zuMn$JAL581>C;FIUsjOf+Jp2FVe6$fUD(vQsCl@oA^f2rRMd?s9XePXX=QLT78lM6 zW*$~xujW?oWiqlG)4Hx!OR@fJq)O%ox+wAMoT4KYaNFKJx@<4O#8Cx73H&qc#&wa_ z6_rq%XZGoz^eN;Q@2l-!?ojnf2#*Lks|1w1_8k6Ur8Bqr+TTX`eHIeCDQqulyY_k& zSskWUUmhf$s+N9&{6J~q_EBk4lP@<q_`(n7F=sJ6w~V;X)Xw|SfP3r)QkA1RwB~+7 z(D-djecp=YKKtRc?LmHutZ3I%gkTEo3(S6@QvRX5EIFzZIf|&z97BaqW*{Kz0rv*Q z>;*dNY?V^l-1y;D>b6tip0D$ALYIyzP|uR$_6k!qkzb?W)*-bR0p@s1TkA(RmDX;> zj@zsylp}?ruC0uNB4%^5isPBR_>*WZr4US3Ye^fNGmqdI-iY-~bd_2!ee=W>2g?ye zzOTOA#U&c=plqBUDmj2Qm7f(ChQQVmcpgEnw?8}kl|lNG>V~R$@5GmCn)H3KTdd(` zwx04Ka29>ra?B9x)U}7^Y&N~`bh60242Au>>Y|vBFANV=g-Yj(70d;N=AOC8rp|Td ztr5)${^I@<rJc`9OqJ5+N}R%`196yPh;OjfKYBcJY#aX4FfTXs3tn*KunIq0Q6;x> zkcnuv>UBIGF*Q&PA^WAkC?te5aeEt3QSAT;i$s37ZL(1h;kffmHpoOGm}lNbb6_gL z^As_Vj(qVHGt8eV{!wk1@s52CyxXmkXS$-jDb#Xhi_ViTry-1w<Zx00UcuwZG(*LA zGx^@Hx~Nx65QJh5x=QcCq@mp0=Cg6P+0Yyfa%n{0d*sQax!Q+&zfRu9?z_(Hv(=Tf zp1H|Ktn%y`v=+M$o39t%yIDObZpE|SjWpfT8E*!ntyJGp(X0F0ReTm9eh{hz=U6=I z>&|XYJY~djBs?4vz5IJ{@Fp(@Q;_^8r!lt*RV}xgD|-H$Xv}<Of1|H#{?M@bZD9(3 z5m&xE%A$0+ue@frEx_Ab6r=O^vf}AdRjsT`1?>hH^*u_hqJ4Tvr2epU2a(yUs!|A= z%Q{7arL;9Kbp%H+b}3D_cDZE)pTW!gr5ER3%W+cPZ?xB;@$^li7{AtPCo%0BV_9H= zVO@mxR?>JC3n4V&_@9h?n`LDVlR((euqa=yen0|CuQK>N##NB2FxcwnX3GpU|F(j( z@tf&v(;zP_?yc%NxmVUmQ|FheKq<Hm9XG$`Vfp**63esf-<p}(Ww0bPr+%+gS_)p1 zMzlkCx`81uM=w<<r2DA^CiF-mOU`v=)A-89BZE<gc(9mP%C<qddY#sE?hBGK*7B-! zTpH{HvNok$nYOK!tK!LgjfiSlR5zalRE0SGm8H>ZtDl*(6<aQ2yvE}DqB8LH6{Hu# zX+ZR>cfI}o!9;B)Pm9+o6IB)|lZm*e+G$&!EtNjE5ed&>a-E?Hd@cn&HxDoQprIPx zc|vo_kYhV(sbYr>S~2N9xp~tF$8S!aFcECoE%3m+@)DWz(l)!A(#JmbW9d}{G_`mE z$?Dmil#WjjR#=-kySHP+P*9##yInT!y5?K7A#Uf@6m!}S=_(xj9ECWHK-yH;d#U$& zkwRRSdP4o@&4XawQzB-j=PJuMA;iOJ*Dn#F^MWHok!q!_(RHC<poTh1*Nl70lYI`~ z*n~*%wE-5aXqYR#o1$P@HEC3BtK{0=UU0SIrS&uew}A8Bp9Mv8-l}pPx1|ck`tokh zc$)ZdwUzI=q{rjEp;0e-B{z`Jb|HpTrl)NThsns``I=UxGM}!v9U2?m=atcyz4kUH zY{6wzpOETrwOXKv4U7EkBxs3n0wo2PExcOJRzO$4b+!_g(N0~+DkAmJyvcFs^Dgu7 z9e$GZO5|}LWc6o4g-UDAS@mFT5G}hw(>E&tH7@RNV}klcR%HtbK}N$~LJPsXd7RGS zNr#maB1Z^=g7!6Y+ByYzoUWN^V|e4^*53Ee*Kd#es^>#8e{6^OroMKcFHSAYsH;-6 zJpY6ol9&HpsYh0fLeJ;Cak3H2ol(@J{ghRtCJWmgWLSi(G6pGBjBs7mWcWkX#)Zfl zO`!JgF4l&umyVqN)BC-!Oe+&!(&vO|w%wloFlC-Kq*W%dIU4<40H`c<W$I(Wi}x-s z;Bi+MgDx)M;+yf|%Wwt=AM|33=Q>MnYtAyCifTvURmm?VRY<0K{WB-;^#-Su@eNtG z*}EfGU-xQkBS*_+9W*r=0;azX(WTfwm6d(u_TdnjxSqNpW%enHxja`d_UKO3F_rAF zrRGLCWViy(a4q7MYw4%iXO)QTnoqM=E59!84^?enaf%pkr=E@hf1o{;1PnjHTXpz* zcNxVu^b1BFEwdGdPmzYn*~_SL`hkfnDz+B)-O|I6b_G41-k#IyPg>Pzu5np%L)sv@ zTHyK`JIjs=jgIC!(vyZ)HmEQh9Pnv<2!~`U8c#oRqb;Py@Gg8KPt705A0OL|A+C*P zkL*lW&71rhPY6<bwItvw6MY;d3;Txtpdm}qp>eM?v>~KjT85cU1t@yc4)uP|8`~;+ zjTw}q{SKifyt3(`Bg}@;HSN^Q(RRNpmPI31Innn2)aG(&YpGUwot{oexo50g`*dT{ ztOHrpkwQyb)?$$w++Jm9TXM%&)I)iplyanN@Z*m`opLpbAY}jB-j*lYeySXgD~GTC zw7b#sl+{X^sj5*|h>Dfk?wCbFlcVC7XYWBj1{PmOrmsp|)ORl;Yv8KT$uri5HvSsM zRIDoN<Y2<qH7*;?v9{24-b4z7jBpp-RNYsr2mWjNkTTdU+6@`VK;{H1Of#OitgCk9 z?J;D%QseWzy)<Q%{>}0SmfiYtY81P5`$3v$#~{Dc32#qj=zU=d#^JgAQwjOL^Uxr# z*b}_0?*|P{Zu7F$gyiZh9(f3dba<!t>y?PO5ovi#)BXt;D3Acl&h+J29?$nsryJy# zfloj7qDCyeG=j&9uckZDERBo^`DrRf+fJhNJY=V@Y~c*uCY}_rpIf-SZu@ySEj{uR z2DYDbr7QN%W~!rx>uyDZ5u@f0yikrsgM%;Z%8Q>qD29xy<$t@mtMe%LE|4o2TE-TR zn9AF7JX&Nisp5)8&AqrOqMsjmbZB-*jAo^Rk)qjQa;N%g6m2+07BcQ<dp~=<;4)(U zN|a3v+SO=kZU7EsIA`|2rMW$(1=|xEt)r?b{)cTY0mMVQ>I%5}^|(RT&&YJS6|{L( z`o_&u-p8~X<ymrXW_KlAsqGk;p1+!q_){zYeV@6W!Eo|dot3_*q*>rv+(EXTtliGU zerI>kZq)ItY`vIJR7EK2JCj#Zd$b16)sku9;^sx-Pp`aEho}2;A}Ero>IH+CtcR7h zB2&9#otwBk^H4XB2P0ThZq>ihq^VhM739`r9wF6Ot6X1+Dv|KI^v-*+ZG0ZuqF3t* zn{DV5j&K-ld`nGrYPj~Rwk(37UGO1Xd`|7UP+L=$vQ-1EB`yRlT)BQnNGJ);1muV1 zbP~oAX3|c*(=8Js-D*)sgI6P<Tg+{|O3dZRx3faGhOw!w_AepVliOXXftm}>P#it` z6}osP8#RYM%2P$zmba@eU5Zde*fSN$eTtn$8{U$D-bGxWL!0_o=KG{B1HouuuqSR% zxI-;09eP&*(p8N<&;oD!uB>R%pm0{@WU|WlMa}Q$pz*4zQg#I@JY8KH1_c`#703^r zJ=oo5d#7!rg?6v@8Z;|yf=7<jX*k}bJ3QT)_S6=p|G3XoA=(JPH`cqfGxkMpPD%C# zE<sNfKBcbu9<x3j$x;@5-lP_>)JnZfZT6~Ty~9xMtjbIlpY3x&a@Z*0ekZf~l0U6t zpt$V%SextZXE#m<OMgyy)<I7DI^4d)nWEIRsJlC<9aSxAF@X%>vcqsQ$l-vngSH7i zL>SR&qUa$s+B2Bih*WsqOaFBQb6ZV<H?h^>I%|9{&%I5FvP`;o$4AT?z)g&S!fSG# z>={kw<t$E<e7YZdzAC?r9fRhM+8QjCmMcD>2iiExWwri+OMFILZxTizO~yB@^lR!d z4Z;I7w43!j>tB$wvF)>3a0%zKaSAF}$)HrphB)6nAh`UhoHD<ElemkBiPpDlRVI<D z`9;3KJi6S-9k`rLTE5xrVW#CRW=4*hps|gZB!!~wp0*qdR-VH1w31`bQ%_slP1|kN z#E%Dai(XAr##_^+e*O7tfTm|~%yt+s=DzT=te+9`&+uM7myJ9>iN-5RPJO%QZKg+= zWln-P%GE?Xal$>vg^KL`;khdCKX|mQN=k}k1S`c4!Jw*~^P6oNicj`#Uhl*36Gx>X zUtE=!%d>zK4&?#)-1tHcZFZK`9krI~um_n*{`}nEX!XrxDvHcgG2~{ls&K``pp94v zt5ZIEExiD~ws>1tp_SW>9EtSSN}cC0Q;e!&4gZ=|PG85Jnqh^IP1i!#BvKu=BG;d% zir1>8?^PL$CsQmk@)c)loKx`ayb?aEMYrl(PIxPS{u+6fZo=q5Jv!v%aA6{z#ItJF zR$&Yu_YL)Yr4=VEbx+tydz>NMv%PZptU5hB?#HH;@&ksj#XNrEj5-~I;oX8e_P^D^ zNA*$HM^k${hgKsq&7rHmm7+IMbq?Oj9g=1q7Gk*`47DcuRW^4b>$im)XCIK<_&yju zsYdm!F4(S@IF$>lMcr^&S1q;jG3>dBnCU)LdhfT%giZY@q%4wk$N1)DK$z8+V5VDT z4kpi7e-8?mK%!!tU<F7Iv}&W3*Qe@Pb>2Vv_VrI3mjs@<tjWqAYPlD`Qg!A=)cEA9 zckq8qj&r@XzN4v|+#O79VcGZzX_NAl_`Vy`ji$yN{)?r&=c#gt2s)6(%Rc8zho(C} zgz9`m{IxFQGY*?)tP++YjrR~tw!OY@XtiFL7}wBKb%iD%tl$hnyd0a&h_08k8(dke zKJdIX`XEKAwz2FHujehhRx>VQuIE8+b5`-%RCW^c6`~Gef0R6lXixY$qVAx63${<- z?Pgtb>xNJZwC}QL-asT`gQhgO_OsnPqz>VkbaC9cwUkuz=>;FzYgi_nFJ0tnB6b_- z4J5qeiwD;>66-a0BK=q<CN&5zb>p-lsMz^Atc22Y>oj7??k&RmvGYG^bXGh4WYKAF zJm*QHpL{V{zmj$}?FtL&8dUrmP66kI1Nv|S2Z(fUL;t={tNH`<8Uqu%J7-n@zD)eT z9NY5$2ygQj03*KQho!+1Vg0gAMBd~Lm64PZ>rwEM3lpzaiP{qv6BQe64O|b{4P>U; z#_^J~U1K3-A!Cs&5U3}bCMs00%d8KOQ0(Z#-olz;7qM*s*djMrU{W7Plx^bhW?;xk z=1s>?S>KYoJ~c0?Fld#LMTBJhv1l>VId^J|0aZC?7x3~I^GFADgFKpqja2eVjXxZ$ zqQIK7e(&;3NE;Sa9`G2H7b9M~k~|w=e490fXiV-b-A=K?TruWYKtzj62tX*19zkC^ zt0t}ongp5zguLL2b+dWVUoccQITtA7-?HR>+`n`r{PNw`z5C#x^Z*jY4kIiZb^}|i zO|iDF*kSFLLT?~_axOxg8sLqgHA#)1A^>=*iK-)42C1~WzCKdyhzYczY6frz=~7<# z>MNr2AFV&Rk@}Gw9X$xs=s(hvSt)ID9tqW{mLl_z8BIO68i`TMK0TdR<W>z{vcy$l z#}!%IzjAaSu>M5N%3ieE<z-hyX@TB`qBFr)qCH-&<c|DXZ*d50IYxn;e;*&mNdVQ9 z>E)@3R>`ngrcvw5sro(MbvK}vBsnte5SKMzV-9>yH1L^8=yTh6QL_4y1PiH;c`#zZ z{1Y;J{>%}#nUDUNASKoWS>be8<(dYQj)vCDu+17ctiSNBi?{wgw;GtIsg@c?kbf6t zJeYOW(eJ^q`&6uTYm1PSHP&95pD07Xf^~ugv6>xmwl<pG-})u~O=imbd7zW5;f3a> zwQT^xWRLr1R3}hI?{T&yQd5UVSoOTn2YT3Pj?CUL`dh=|2ulNr^8C*RzwhY>tO3nA zDTOnKWNWXmCTivt(er8*^YV7=I0IG;c?o!Hv!3keGM{0V7p#NdmBBF3>G*|^IG|H5 zwEDl5g;}pBHG{bvSo-e6pa4#x#k8GLJZ&-mZk=9FV6xWwZD@tUsxhS5C7;otI@)?0 z)#3g{Yp<2)qPPcxMjE!1N~ALfRR0tVWJv-wU-dz#)81C=u*06_E9|XXj(!9r{;?}^ z86j%i&^aIzXnl3#BXeQii=t8oD95^o=P&#@x8w7UxK}ph2dUCTN8i#A!X;!GYa9r8 zSm``5zhD^TpeDpRD$_WR3G?8;j6>Z-FY^}h_BYOk(-5K5K&|EKBMIOp>=GoGemGp5 z6P+hXyjTZ82Uz<KZ#E~EZxn+3x;Pbnlto+TCD0W~6Z{#sfU5cLWk;jgUjolR8P~I_ zLbIGgyCRns7=DfQc~Fl=Lk&+GFFo%xFLY5l7)Dlgv}sQ}Je-Tgg2&QPe8Id{rUay( z-P^+;YA>QQimg`#@=SP$jxh^j=T;TTPlQ0mwKD_7=?BKEo@dFLMaRz9N<&6z@)<~_ zOcHP}%KId)rISkja8ybmbgbt%!QIv;0D#Yy_#gLwR0B@6`oiYAtmzhmf-et1xOs`! znf+@{GwxTU)hgw`PE*d0yJ<W0_z!7}h=*G%X6b@@C_{4i39U~|_?l4av*f@`5pB@g z^U8~W^w!b^n~QT{Y{=3E6PY_`e%-3~kW{^+_Czg-<dRBqR>OAD3_Ff$7JA2tNCP^# ze~7AeMfSCPje)8jZkJ~(G^eok9K|wj!lBc|_#L$ZgyhMeCj~TIH!4<0`Er$&*&H4O zSnGE+lQ?`<K2Xxk16t5Iqsm1_E#LF8Qu>6gsFhS5==P4k`($T(L((<E|FBRy!q4p$ z`*@FNn)Of9@s7~yIP0Ln3m3MKbVUTdR)+#+Xa+QWX<PIl1P-o9ldqXsS{D(|S>Jxg zP@L){Qy@=TU+l1I#-ds&x?ZePZ7T7iD67m%eZXI)zzTMw`k~Salps>^>v<`*Mv{)~ zEwp=AUaN5aJ|ew5-OQ(DG91r~1=q(Ej~jlmE|R)^G%Y5%NfJ<kyD9*aBJ_i5<7-F< z!Y{L?SHZ4*tB#OC?heiM&@H_J9&W=!4%|sbs~gwoSmCKbAH%wPK>VL2pTk_HzJ(<T zSR-x>fK7;#gJQCo%(lw4PI?UjT>xAiJ4iP=+9t4Gu|vFInPoaMx)K|hy>JIN)ay5T zPOh~czIC^7NN<{WGh1IG`vxpiI;#7~8@B}Z523B`aOKM+e_e*tZ}N1da%f7@1=-}I zUDuuoo!B@O*m?Prd2}v$Wqu&`xbN7ybV@xLt!<zxaiXs2KsX1XW1l}eo4NX?8^hTP z4V}&I<4ZMcHS|aQ441wl1#-RRf$`vGZv}h*fUZbx-znnq$6b*YB#%>uEc_i@sr<=~ z9**i%LB^t}^W#`8Vyp_KX+4;>v<q?;1zAB2*N)1Gj3ZPq3iAjv>n>L9dh+v+4|&|S zm!$of0a#l0rztZtv6q^*-UT_m(b}*LDU1SYO{_p9gjm93HIWlDH>vHA%Z*5LQ1bs( zLD6y0K@v6m4_&lY^nwrWR(6i8{UN!Ln$U{L6y7ruVPoBKm|qop=8NOeHXz@WUcuRJ zY^}-d|2cLn;2hs1b^u*4)?{U^h3w<1JwcAA2_}AATR{IzMiO0M%nQ4CiK5+x)VI$Y zJ<cObX1x`|N@a5NT?O$yV^aBO>T{kgih`gc0N<7^jOT<ATm!Oq$v9-!1{-fdpKKWD zu2xI8XTPd5wos_eL35BXc+9F=d23OIWSn=YlYjGQ^XoNH_wKGv3xQOc=c%k@Y2s}z zew$A-83)pT?w_u|*m0@`XZZgkG`pUNP0ri%Az13a&Q>8N4xFsf$hY~94mCGjGo3%S zUuv(mF>&>bc~qRNRzmCsxnDMUbC0nq&p|SAvr_e#m>9Swd^wU$^y6DGuY@nD2SR7^ zRdXlxj}CHD?s*6UE#UuQ0J&<~u2ArH$wr(Z+c$q~5~)Dx*HtG}w$P)c1mEks&|3O9 zCo6O-t1ztA5Y_)6%AZA}@m0U8;%)*K%&HEL+||Rq$8r;p4gY$}UR~&db%DHSy|qOF ztCn-e&-1Y&d3NT2<b|Z21s_3|wGt59(0fsOtc+=No4C0I7d-C5G<<wB9oysOb3R7^ z%b5~jDqWGsF!Qv@c!kTkY_E?34DK356%Mo3?lV_eHrE}#WcIO~4rtjW`;>SS{kIoj z>V8QdOS}x*(?&7mvfAV0YopOmd<meN|12m5GxxcoH=FH|-uXL(#=$eqa@HF0TCs9B zw5lqtfg?g%?vPQsXg4F$sTOHp1pd*^nCE)lRNaB-1k$Acgld<h-Xn_>v4o>_)WVMY zSkdnVbKJMN1M73^_6h%hhG~;ORqw2Q6JKw8YR8!D+NfF-<;buMR{kGU1l||8h`Q(x zn~QFcNb_l_OKfmyh0X0)-@<yL;FpUT_o2emG1f)FED$f*=O$lSY9x0n>nS|uu*D(( zc0;lDV-lwot@N{fw1*ae+XHZ|Lcg8qTc$n>RqGOG3Q<;O$YmHB7H3WQ;^&B3mo#yY z1rpEqGTMLZV#X-Cm)!&W4`~6j%49*s4p@moIoc}}&C}!$tBmYSm<xoMoZFVKtm=$7 zF*Vsz920xa<+F>FiWY(V5-=HTGv#``J+~wJI@qc9ynqh>kr%=YKrgBj-_|bHkVG_D z0>kj7XE94B`4bh^;m16U^su9#C#}il6(6gB{be;&x8Lgl`1b2JmywH?B3mLx8FA>p z31|`R(JkBxQTp&7!<){c-4E&Z4zcpVSwlSp99GMOvum0^Q~G=k>wNZYUQ(mPva{=f zj9ymCDZ&H?UNr~uF@J-1g^X5x5M!}Qv~nfi8V4p@<E+5lzEqAaPfgtJZ<PSQd&I!E z=y%j2Ufqz4u%5jOOL<6`FU(JTVfzVxaG|=$w&qejRNuKv=Bt!JX)Ey)>HwOP+N$xr zBa0#jNgVt>%LHJD&16jrxja@3w%V|`DGx}g{U^MeGTK=;&b{AjzOm)zm2>A{==`-A zU}8GOYgE>Z^q2SL0*=n;uO(M5#(Fe=d?C2p+>-}ewM3coiNC#vJxWI{z6?7RMSfg| zx+-syUAzS@*NEABG&bH!i5^;z^Z*B_99(u(o|6FuJc2UN=o$~844+#(bT=*>)MFRC z^3QWp9krU?=OB@O*jZCtR<AVYeSa>k+IixO7GOtS0*WQ~=rPXQ#WBOe^r1UDFfEVi z-6spv2fH%(2YzD3%kRbg`a_6s^k^Tfc2)1jbIKF`EraqlnS^u%9BN{tOTu_N_>K4a z5k<16z!pX<{O2Mz=KgE*@p0^NuIi!@sZVE*rY0j>G|+&5MC{m~mbMy&y&;fLUq5R3 z$O8QC69?+7ADjsi?tR75EcJ8eVCm>MBLOqx4m$LBrTlMplR&m6*%ezeIci;zxJ&uZ zpcA<JY=)(M`#VK)b&_@RXZ|S$QEu5<<^cb_xP%c>f(wJ#XL-d-Ja5X(>Ye?fY_Lt` zpcif0j>kWV-W8l$5#3pX?~vlW9>ZXUgpf_Y(1JY?lfVNAt@JO-%G#g~^ZaSuzPG$C zoC0HRd#~9uF*7k9Fy)nN1jV?m+xt@tuVl_ku49m%fV+zGqvPM*6N_401b5FgW#hfz z!B7z*_I-esTLfB|Hh%yx!Z((QcRI#WEC#H2T~uS10NF7Xa8Bf;Q@_S@@n9YSn2<QZ zxgsnp0oIsBf1_99PXo7ry~WP(V$~|nlTA%X%Ib&o`r-qO3Sp@BW;cNQ>yzW*PVaqy z%H&JxK<xp*9#+W?a<hkrl#dl*hJ;!($BSD)&?a8p{IzlhjiRs9a8OTbvT1uGR-}Q2 z3lT;D-mMs>67Xl?m1Gm{-_4Amc*yLNpF2s2Ef#?JexeP6NVy1X6u8>}ph6}cdGW}u z5?{y3v<}xFHs-wR6UTh4qp2{L@UWbIf^KLw0%FV!ei`fRs{A;87pd-L+AhT^(Jb2; z|3qrM=Y{4tLC-Np(Wb!zMr~6vvZ&}@<QFPn1P3(nRF*(`IpJSGX!pc|Q*vho5{@5d z%f=5?nzlCqAUkZPzUKIm8-Tl5cGLDbcsOPs{Dyy%CZbF+80x?=0Pl=5eGep2s?NP3 zk0}f9t=nG}->i!E&1C8NU+sN&R8vdWHzZW0C?JS5B|)TmrFT#eNGK7)MVf%pr3%t( zKq=BB5KyYLASy^n=p~8*(n1rEAVfh!k#gz9z;}@QeBbl^`TqZ|#mZWonb~`0@7a51 zpPAo2EM?F17lE}1z_2xUopFsdbbdG^C2*jzL%j7<<ggFjbnMKJacr)cxz5Akih;il z=FUHVkf&K&B7JOL#|XA;j69((ws50KK?b5HGaC}=47=k9$QfE58X!-XSD)aO+&956 zA*~Hyd7%D4oCRE#U$OKA`k-R(5Z6W=_=CMGPd`>6)SoD>Js5o3AK(LzYIKe*F+OGk zz-}d2uT$=PtzJ!+pbd!A#GkMSo?n)2dg~66^%ap-*hLyF3LlRJ_SHeA_&_=*U8Qy! z5Dm|<MZ*>a$NT2n5-BAEN;2A}qW?bA0|uO`vK<bz2Vmd-w-dfVCyv3|y#I3FIUjA@ z%-T@xFym&4^)-m}g5AL#>jUa<Tv<rn0ei``#Nfn`jVT=HQ5et=V3%+6iDmrz`O4(~ zZ+NMnSW0^^eHH*X(?9J*6rV7CRSqgPJI><c0Onlf*vZ38cYscok2#44VhS;%H;<<p zx=9oOoTe=Je9bGL!pEBbXIS~xvY6)dLV-8UGRL6I|BNhuNe0vWx==t85XjFz=}t;k zzG&qS@iw2IeAgs}{4ZsAH7RI62X0JBjE|P&u~z&?v_{I<Yyh*-;Kiumd?oOzwnTa2 ziHeW_<oMvi*!5-+?dJyo`u1OK=lCY|DSfD7o7@6So>T?@k1ihGjFs5|nezc`6_9z= z#Ea#AE!Th-RQ@CMygiapF)YjWKhF2p@=uHm!WS=`=<nfmtZ&|Z8JpXH;W7c7-A_1= zJf8cK_uW-n)#5gQne_Ru0tWIh%MXqBgKT2}l+)ia_QdP}$hsx~F(c9#ur6P`lUZ&9 zP*>^tBjCUv`pzEil!sNoVm-z9O<D=9@(0^%8W=8$Z0x!)dA*6YK}@?*A}Ws0_QY`j zFnMDla5D_(F!e8F<Hj=@5_qChT*N>9M3GGyY9voV_Fwivj0*?Pd-A#*JDJTz%bQR7 zZk;m3+lxvEI+6z<<n_R>e@bR{S?86koJ=uKV5!+zhz)o;@X2gNfxroridy}@Qswdf ziT*XV0cGCa{4%<Um?-cYW7EKsNnE!|Qx9l}eht*2s-#HE<05`QK{@$xbd_0RO1zG- zspwHpApJz2+4gD5OFtFFK%d!)F@ZP$V=1^Rk8b*tF2{5yTnX72I_bt&A}gCoCHb9c zkE7AEO8yUl@G?*!Kp1b<oa3t0mQnpnROUAx8qpyR^)EOXe)H*FLu?H@HruP{+pe^a zQRiVtA|rn@fEjc+hi(FJ=cD0|f$%=f`xP^x08HZhetqvoXN?`xFSWsjRvHWUt+bO$ zY*Y-CHZ1A>BVD#;nj_*F_MS4C%vOOlQLv{Uwe4@cMMhv}w^Jbl<VJe6Y<UE6*lTC~ zoqJa>31PbYD7`lk70$?A%L59v_AiM5f&%{;V;~uk-1=DGk0Z{i*LMXU<wU)8mW&ix zs|P<Bw<2GCqhJ~dc;6;(K70J#r%+l7xXej1^7gACA>#-9vFwi0M_IaEXIi-JF8;|4 zv=~PPux)O0QqOxenRi`mqC%La*{9O?WT)AFO>ZdW>C5-SO;Z7am#=pH9@PfG&2DqE z1gGbkvqv=ExwQ=%Y4>kuU1~(NoJN7B*mo7}EfEel?({&@tAI8ydxrx!N`*J*lC)$) z7q6q<sBt1J^q-q%up&+SASCOw>SLl3bC4dpLv7N1@sz{}xH{l!vs-}GW%ig8Dw2L6 z?>(gjw98brtTo%9{`qAz5DReD2&@gG@@B;dKajh*GbND_>qFFiU~v)zCZEytSKgj5 z0BWrdL(?eGM#_~ELr#6JJb%C{8H->T0O!|#Y>#CA+tlHT0%$dN*o8{JR;C^gyN>A& zLe+DWw*%8VJrEfylLaOM;O`Q84f-%Ic!B@i%h@9|El!9XtZ_|cn|EVo9Mmpb)wIq= zt`iF%b4LXZeU+CxJlbAS7|VPuN#2djn+AP6Mep$rP7m)jK)w2A<a+kH8Qs}<*E5_& zau?6sOysy}NW=OvKK{u+U>#v51_!Qq3oYAMpvO#R`)u4-HtDV4lLl^AfB3GhcTBR@ zQwH8_y-}`3>}XJq3<6H=<g11{_h&0_sMU_udLb;MC!!06vjOAiUwtLwx%08XEFZcs zW_yFTv|1nq`=(_5EIC8o<Mn|FmXeF$#SHD|g?0&yA}U=%-L2Gkg4kcz_k3bLen<Mf zLfa}50ORk4JHbe;iX_Dn3p7sfFl*V)f6gQ$M8LZ=$=AX^wRDu)a6U-EM~6Ja-#d^K z4W#N|CGCc5(%Uepxznep)3(>m*Qc)4U0P;2CMM<A*pdZC)F+6*;(~ZdNS4i8dbhBe zwpx~~-_s<<F3+$7xh?2&S=Bt>`>g`@Pr6Q>b0@gh?WwMwYDum!?JKVzdT<2wVJr3O zzBVmgk_QBda_y%x8<y1xs!?_p@9R>F`_3LB5rxnSj5oNw&)0n9iJE~1cvs0s49IG9 zsoq5OH_e)Gk6g6G6^OZD!^dUnBHNP0TWef@K<FtauA%0rIPZ>~uMZv=h4BYzzRvPU zhq{S~kaM(b*C_%7_4=v;J&-0mxOm3|j^ALhseA7ky4~j)^pR~jMpUY>z4cy}EfHaT z!&;-G&1uF8EnELB5V5&oNj3t&zA+X9r*X|-P4?gPYcTlo)5g@<({H>k^_J(ifvB@L z$e%OBgxs*RDk(ChKcq75l?C6_T-`Jm>32vqy4WubE}#``om<_zNiHWaig~MOFx#-& z)CRe#Jz01DK0x><L(#D7YIGW-iTH?+eAQRZE0{L#Z8P|=Rj~S+4!k0oG)d(ykmWv# zyjr^UGfN@7lEJG;(mkR#vYmbkW$Lq;NmP$Y=V|XSE=p=>SXJQf3cupLdlbRAl^$7Y zc(B_@@)0t&46}tlKV0YS=^i_cGKgBbvZd~|S8}tU0qlf-KFd>ZV2XX4+cYoqi4+AG z@bFle4<DLW63vFN3j0}89i-IIJ#q!+E&?XfX;d@)GXIo^8sRDM-!O$&kHo0He5;mf z+PyV#ZX(M8B`T?b9zBQC&z?CL3p+xra{&WsN--@UtK{5M*l}qsi(_rP5X2@zdl}{q z>@9HoLX4GnW~rKAkN|_FS_1LbqN1DNRR@aE-Cad8yBfY&W{rWoq3{@&4On*XgD4rO z{~f?Jm27P@_b?@gD}0nRzJsF}Z`>!Zs<p-(GVQX$S=nI{z)lgT=4~?@t_UnRORFC6 zYlE#oUE4bC)TO-)E4%&5+Nj%;EW`H!o0B4bOtgz#>dxjx<7C6=g80||&beo>4T`MQ zPW9AuN+9{E_tS)>)kODS&$(gc2^hqW{Z@IZQxM2$PZl=3ugVj2-ig_J>)_1V8M2h> z?)e>%CR><&R>9KSTZ{b`TDPsh$8A(nw{jD+uk-?l$$(f1R2PkRo!I+rS{Ktymew#H z{#C^*2CYXO(&{s}O*m8v@Jj|u?|?ysxqy!9V-GyPvcM)S+iqH>Y&^HnEB<*=WWi5n zEhJ!kz4QRUN=DZ74(wqvbUG=&4u|)Fbw+ANk%v7+vEoZa4j`<&1%V7V&eb|Gwhdcy zoEWS?BG8S`kz7hh7b`v&&~!v=?4WL^25Sa#sJMlOUD&l8b5Br9jDimj_$#lO!M}A~ zU0$#2CLBa{As0n*y?1~Y)+om6X@may-%>tJ<59SLKsh8zN5-ShCN7LGu%%fJI|5A! z1u-|jo&T1cXur)xPDq>?X~HjwjTq-Qb$|}NX^0?OrZCcoWQAxt@9_5i8339XEkAJ^ z*c9PZr&wCJ8`#$l2=c1GgNTd~d<_)gXRRNk2RBzf`n}tT>K)rvVlzEeJHx)Khj@*f zK4!nV0kC(E0!uWdD$=h0V+I?ptl`;pAWswgP>AIh4$bF-M4Y%f%Lz+YirKj8g@R^< z&#tMF6W!~MgusHdxwJOR3mId;_F<v!A1QJmDvoy5E-k!=pof|%X{iWlD}$i}O2Y{` z-0j7Jr+$n0e7wLgEd)M%if&P&526<-FRZ9v<`cu?^R+DZoG`b$_Sk#mibf_ZnN?tD z^Y;rG!Mz7Ou*b{$HZV)XAqzPO5d(G80SU6UJgM35KzSa9f8OV}pnDamEA~AYSLR{; zl{ScBjYz;t3<^nuY}s;^I;!*JH`-c9R)qU^5@ExO4UB6B88-@3X;X56tMcpS%fe(E za(ZH1Td#*NY?v;P9yk_6%RD@a<8JS$>)6VeL{dx^?WWde_|&8%IPKJ)t{45peT+od ztOrKWDlzUdIRWUb0&fkP-yf1lp*(AH%?WbEe%)aJ<ss9uQ%HzG3DFr_sA&n}clk@W zyhwWGHzK9h<a^Mec33mP_6*ahU%EMFXq-;hEv#QIZa3T?(etvsS?X{_njnB8nV`2q zuRu6<Ot5w<s&kQc>^Asao5o$>_iMmoqt;BKoT%xOKEeGx4RR<q_4^<(EwQaS@}Jz= zz#-ALw)xYyZ`}{DF$^}T?b{bUV*dT?c%KIZA~@-RcW#%5;WacbkI$D`RfjJ>HUF~* z2IBev(Ht!+qdx%))NSI9^Yk=rj#+lxNz)4feSIX7OFDex_-!pfD^4}LW^o`Fm`t+& zX10t|^<pN;0n74nZabigz>2NG1QxIo0BwH!|ALQZ!y`{1%a8NF=f-UHNol-_6K{sq z04e~<;cqL=k34PNYX6IgKQpOi%J~@B4TbeqF*fja%SNs^jr=)tFL4U`YeQ6qjYe-0 zH>{THEPPz4K471tE||4y28;Q5l93GUwOp1})t~5L?xyi?Pnx%BQmx+yXnKyoH~#JY z%$5atz+hsf%mc_41F*xf9DVrxQB&5Z#z^ANgP#F`WKv&2_rz&v&h6~fkv}K&<-7iw zwPA~TVldV}l}f(k(oA*xVxP4Tex7vNFI2S`=I977(mAFIbyGmx4NhRmay%)mRbg&O z`5_`}>&9ttTwc=156<mc=ip_000Z(J0Z-)8XQTWqZG|CVmoI%MB-lhjSyfXyx(xY_ z$dgtTA#7``nFZYqT>1+2$82EPi?oDh%LtCyOyX%z-xEq7!BO?Jj1z4-oi_=BIkr}U zSF1i_8n&u%+DDO-n=WYueEWOWhk=578`Yk=+YSzMK~^&ldJjF!QoaoydC8?<v_cK3 zd*u{i`lB}gm7;?WN#UZtlK73``!VxCt;zU-aHDtbkKqMQ_efjYS>4qv_#^X470++^ zgH2<hZ;5I?E7qFhldGc-W|mv?L-!AKyCQa`iOkbTiVA{-KL)z2aFwCWK~}%F_Acie z58;@P+F}@Trje!|McYwh?p@%o8N8q&(t(sC<g-DD@Ycv2t4_uvmz5x0PgO~&J&pR{ zu5|H(Oud1FiS~XBbwD5-a(hyIc%YSpNcNnw52X+q^FzL}Zhb49)fXULAVuKbVp9U( znB^ax)W^C}s$*CEy5!R@gp1y;%K>#g*Q=~3)KU+$1wXVUitTQc566lHQRh&8*%y|F zL*M>toXPHfip$BPZy9%fYUun+SNZ(zXF+{GktkPB&1AYSbV4O%m-#xQ<GGj=n7ttT zK7!2L$iJ?vvS!|=6mt)z(#w|n=3_5=#zub?gC$hcu?l#Ort3coX&EZf@h-Z^2%ej2 zTy-EB<-K!evlS{Ywo4U22+psHoqtqcxu>?K?yx*ay1lNi*`3@z6Bh1eTscRk3j1#! zjTMv;4n_Al?a{cLDW>0<{THA2-BOKu#p)>-YT-$r<lud-*gK|cI%-?c;rrTNTm?-9 zX46%~F9bwV^U19!B;o5`B`?0DAE?lRGIIW<{wc<afB{n#E~wRkCd}>5pSF+NcPXJl z-fd2FN9UVBo=-3dh$nEp6y<}ULKl_HRR-)98#=9!;YG_Fjf}dSYDqQ+Nc4k>4-f9= zYO5T4Hb0E`MOoLM!IXTRrzcQ67=XP^r_h<WX|=IwXI)T|&0b@9v4n6!j2W|<HG~FB zm*c>kIsfoU_q88sI&ehM#r->ea4_Wsw+CzgP~1P4epiU;;2)h!rn?UProg?n)6!pg z=c+cu4GT>&o!y6H4l&UbrEJG|8@q}HGe5ckWgl-35gP09Z=+gjA&BJMS}Wmf`=ck& zG>&i>mg~1-N)MpbR_37B$ATO5xtIxJ|IzB*85cd|I!Fo`Oc_0jr)x=DkQ=h%lS7}c z2;nJ5SDil%cvKIo1Cq-2wAJOb;JvgV4t(37>Z`)Qxo(SFGb(jf?<*Cuh3Vg-<c7VA z<TchG9o#5MF2-|*aQ>C>t=vtWdTk_s(In?R=JGbaIy`==ICiDB@$5wXeUf20t=W>h zIwamTw_prk0HpbZ=CQYQAJ4gG4e{f4@eE4%7yfT_b+eyJ&Wn-1APt1~I~(w;NOuk# zsIpqC=$s@cQzo)X00L3rST4WRI4l&qe_bx<)j1uH&*$Qy+?}8v{$F<L{>C!ZX}lFG z;D<J^@nn^3txxaTxLD^Q2RVERkF5k!r*C8r=@?f2(nb^{;ua>Tvh<T~5+iqo@lx0@ z#Ns>xjk69r8zfUj#2#Bi0A4sqy`u<%GH{RgEiu<w`lh&FMN)mE*)$B7n189hNkQ2c zD+d3Cds`9ZexH2aXmb=)TWumTv=1bbySTs{Aq<PRfk9dD#L;v5rY=Xxl`5mBxVk3q zx$+JaVl<0jwUdj`ihU-zfxuP$g0bq_#~T@{hmtB*Mdos~{xffk6hGzdpr#%5h^^11 zB2uBtj&>kHMjJ1r{$<%w9`a|<W1X;s!Tc8?9?kgW(ZxHX+tqc{X^eRhN*Hyq>2r!$ z(8_scL8OajJlz#_{5dPXS@(A#r#2t+tHn<0XNx7|cEhi$QyVeRg*#%RljHX#qBj|S zJ3t-?!wM($pUk&jw(2N$3I47OTA7c3Ib8y;u<(_7u2h#d^<ZWKKJ!Mz!O%m$sb7TL zO;?XdfQ;0A&8VaiY}a?ymw8@jzozsf*<0f5u=upH0>@p6EitP|W09e2PG36pWrP(c z8@4-DyuY<<|0azpy&WpiS`Hg~;-tG+Gm1Uq;k4IT_(&hOI*tY7&B1P4M6pkAyK|1l z0*dL~y7plgl<JY@nY<+P&1WGoYdVp_Z+2{S%x^8+c@UT8XJVj>J9UZEb#*lO>T5h= zWxgGadl<?wwH(jN=G>s{vQ6=9yq0%5mo4m_?6FgkoJdl8mP+q1q*y~2Z4x~Lg9N|p z-eFgtL*!MW&)ZQi?K@xNP^;rGEI-?=Gnt@8knbA&M+~A-bluF|KZ~D*0r^7cTA^pB zZa1znj%&iU<Z7w?VB6<|PK&3x(Nu_xQ3ZF)j!g$LqS9s4)bZ0#{h~{OD|*C-Ps>Me zFE>g24K8(+jnxi{?=HEK!bCgpjBLL42W{&W1UDsNZ9tAN=9GNk-YKVW+NC`tS`ryU zvXa4yo)NOX@vxGn{G6J%VD(^awt=_(IrX+N<tKF}4`IXI%85yn@uU1N={?=ZHad&X zHd%fYgb4gd2(L8v!2KPBNjZS!`%pKz@^aBn<BjWibKaj_@C$ygyb7}zRN_%TsQ)Y` z>hMwD9j{}0aRG>@yfmFYqFo%S5rCV!Y>-TFT8w$Pgu;tHxW=valll6uj8dUE!AeL+ zacCm-CaHE?VCY2?_d^yD4=V{d9W2Mq=)TdjA2us*aSAMO@@@--8_bNbTNmedPQKx0 zGF5IHlmAPh=fyTv9j|a-J_L&k#o6jr+QbYUbdUaUE&h}*)+?gNDW`sLfwv+HMDd+( zicgyI#c;w@ha$n6px=0-OMsKxq`NLR_-lxhJg55|+VsfX5uf3DX3FX=^fm`SUJGjK z_|^pzJ$lyWCisPwme3sy8OG=ra)sVlxUXoFraCND%zFtkersi(s5}vo5Oirc-{cZL zTUebrW3nBFI#hKM2SipuAuAL?;MhtXAPNNSOmL~WIP83^cGQ+@M7qZm>IC8{)1eh5 zq_V+^MJuv0!2xyJQy!4n_jkM>PSMm&cW$?dz3ERjHjF&2id(iKd{vbPFp#Ra(Z#{G zZLVH-dQ)T;WvVCsnHX*8l2VA?ht13Pu+VQs{szMzJSoh}0P<jtAaA_Jj{^<#&*ViX zq?+fX+!?{2Q*otRA6n8lYqtflDuV>tGL~;pAP`~uuzdqZOi^Kp&co8Y=^^KeWgz*| zFuZ9*_xm#lhhB-PB<?!{aO(~nr5I|LZcY@;v3Dv>d65S{Q$55qYK@}&^wcp|a~1hi z)Ug`}%H^716z}4Znp7(F(vc#-k`;1In~N3J?HxvlH?h)5)G&9kFV)m#SV^+f0`G!% z!h~G0evSR&R;Sj?)XQH-7MiIkIxtLt8-6EaG+zD&@QsM^<8K6nYT<SlZ;|TTT;QH@ z^R9WLd$n>aJUPTA3(a26_AK3+D}K97Nn`3z?<UdF%A?T-LW#d^(@HQwFEqqO+IHeU zykoJ`^m!Vy73nLrcALN#wd8Rf5c<z7KIYTWwE9vsNpv$6H1*sTx-r%Hid5t@4Z_IB zao=1Sh9US%GUI~t_jN_cmGra9K?A~gKC6VsV&PKsX#JtT74E}gyCd{63red~%ZCJ! z;I?_W@_uS5h6|3`DA0>uoYpx7e&;V&I4n-)gJE?C?n<H3!IXN8h2Ses&c@Z7OIRJE zCDvPI@RsJ6XFdg)C7$8-ZDKB7`^H|>3FVBx;nScg$6nxihn&$Vx_Uh0s?M95Fz8Do zQ~?5YQJBL}cUlk;?CO=Q6<?V<44*F{E4cEzY|cn;ta4O~m_QDuWM2u>PnKp9_?j-? zzfK*j<DlMz$DJZ!bv373?DzyIarS6&#<$<P{d*qy8LnL@Pwu?X%wD%${#p0o6tFJC z--QOuh4ezggEp8F$A&*t9QYwP#L*K^ypU+~{>KCoPeHE-8z9U&X_>qtZkoE-dpitY z(g;OcmqR`1ZWKk*eHtVY%=wa8@hf7l&NDOAXVb(paHlQMBDZtkLOl>zjlOT$=d2J; z>9jORoH6sfQT*p8`Y9r(tdYT;=HtAfvqDDeEO+AgQ0{SXyB<{A)MCugSw*@1-ifVr z@$mr1%|Ts?zu^y+%R%AWh5~#!R>MuJ*S;MJ^8U@!>Z07QGc0~^%12@C+eeCNjt<~2 zf81ARVec>YqQ5poehw#VUu3RU{;Trysd?D^C|1womR%l1rslD|&p2G?EK8WR_CV-# zm3KsQvk9}YuxAe6r*d;NR^Ie(&zVrrCk9v1ZQoKV^2Y`Dt%~{XD695Qka5JE#@Xi# zHH}J6r}z&ntaUgmkul5W_b$_?8w@@A8+x77atLypgY)4pyOjpU`nvJOIKJdip9<Sl zq!F|NEg=TEDorO%qrqTvuNGLwajl&kXOT<VI@4s`7`6*2Y1E4<ZmmrQR9bX)MSacC zy#V!(7rLU;lXYn>Jg<2gebgqp_x_OsiRpK9bsE2N6){cc=Ie-?&?sX8%3r3giX2cq z4uv$oGrXU1pH~ri<2Q(bx{GZ|6>Db&_C9d01Xr|W#Eeg6MDVt97bj$ntv($MJ}moH z3pK(EDX}*&>@H%7S*S!*E2%-V3uL!}JC14p_wRosf$aVxa2^sd)3=#w2z)Dr26od} Kr}Bn<^#1`Rhu@R{ literal 0 HcmV?d00001 From 6eb00def7d5751621adfbc736db563e16f22e91a Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sun, 10 Mar 2024 00:37:29 -0500 Subject: [PATCH 02/10] update --- README.md | 4 ++-- docs/mkdocs.yml | 2 ++ docs/src/css/extra.css | 9 +++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 docs/src/css/extra.css diff --git a/README.md b/README.md index bad8926..03b76d9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ <p align="center"> <picture> - <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-dark.png"> - <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-light.png" alt="dbt_linreg logo"> + <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-dark.png#only-dark"> + <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-light.png#only-light" alt="dbt_linreg logo"> </picture> </p> <p align="center"> diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 860aa94..e19f848 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -41,6 +41,8 @@ markdown_extensions: - markdown_include.include: base_path: docs - sane_lists +extra_css: + - css/extra.css extra: social: - icon: fontawesome/brands/github diff --git a/docs/src/css/extra.css b/docs/src/css/extra.css new file mode 100644 index 0000000..ae3ab37 --- /dev/null +++ b/docs/src/css/extra.css @@ -0,0 +1,9 @@ +[data-md-color-scheme="light"] img[src$="#only-dark"], +[data-md-color-scheme="light"] img[src$="#gh-dark-mode-only"] { + display: none; /* Hide dark images in light mode */ +} + +[data-md-color-scheme="dark"] img[src$="#only-light"], +[data-md-color-scheme="dark"] img[src$="#gh-light-mode-only"] { + display: none; /* Hide light images in dark mode */ +} From ec35dfb197530ae88521e2234546cb54fb2b329f Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sun, 10 Mar 2024 00:41:04 -0500 Subject: [PATCH 03/10] update --- docs/mkdocs.yml | 2 +- docs/src/index.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index e19f848..2da718e 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -11,7 +11,7 @@ theme: name: material palette: - media: "(prefers-color-scheme: dark)" - scheme: default + scheme: slate primary: black accent: light blue toggle: diff --git a/docs/src/index.md b/docs/src/index.md index 7d211af..7f0ae9b 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1 +1,7 @@ +--- +hide: + - title + - toc + - navigation +--- {!../README.md!} From 5b17c2d0d5722802e1a6bc604de9243c59c4b616 Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sun, 10 Mar 2024 00:44:16 -0500 Subject: [PATCH 04/10] update --- README.md | 4 ++-- docs/src/css/extra.css | 4 ++++ docs/src/index.md | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 03b76d9..c4a0e06 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ <p align="center"> <picture> - <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-dark.png#only-dark"> - <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-light.png#only-light" alt="dbt_linreg logo"> + <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-dark.png#readme-logo"> + <img src="https://raw.githubusercontent.com/dwreeves/dbt_linreg/main/docs/src/img/dbt-linreg-banner-light.png#readme-logo" alt="dbt_linreg logo"> </picture> </p> <p align="center"> diff --git a/docs/src/css/extra.css b/docs/src/css/extra.css index ae3ab37..e9ec230 100644 --- a/docs/src/css/extra.css +++ b/docs/src/css/extra.css @@ -7,3 +7,7 @@ [data-md-color-scheme="dark"] img[src$="#gh-light-mode-only"] { display: none; /* Hide light images in dark mode */ } + +img[src$="#readme-logo"] { + display: none; +} diff --git a/docs/src/index.md b/docs/src/index.md index 7f0ae9b..85eeb67 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -4,4 +4,10 @@ hide: - toc - navigation --- + +<p align="center"> +<img src="img/dbt-linreg-banner-light.png#only-light" align="center"> +<img src="img/dbt-linreg-banner-dark.png#only-dark" align="center"> +</p> + {!../README.md!} From d418fd0a27244a6620d811cee006b4de4ac03add Mon Sep 17 00:00:00 2001 From: Chris Stevens <Chris.Stevens@msasafety.com> Date: Fri, 14 Jun 2024 15:31:56 -0400 Subject: [PATCH 05/10] Add redshift specific coefficient return function --- macros/linear_regression/utils.sql | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/macros/linear_regression/utils.sql b/macros/linear_regression/utils.sql index d5cbaab..235cdd4 100644 --- a/macros/linear_regression/utils.sql +++ b/macros/linear_regression/utils.sql @@ -177,6 +177,14 @@ gb{{ loop.index }} as {{ gb }}, {% endif %} {% endmacro %} +{% macro redshift___maybe_round(x, round_) %} + {% if round_ is not none %} + {{ return('round(' ~ x ~ ', ' ~ round_ ~ ')') }} + {% else %} + {{ return(x) }} + {% endif %} +{% endmacro %} + {# Alias and write group by columns in a standard way. #} {% macro _gb_cols(group_by, trailing_comma=False, prefix=None) -%} {%- if group_by %} From 01004c8c6ab3a043889bcd06a42af9ec0023f96e Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Fri, 14 Jun 2024 17:49:26 -0400 Subject: [PATCH 06/10] version bump --- CHANGELOG.md | 4 ++++ README.md | 1 + dbt_project.yml | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e53a321..38c9629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### `0.2.4` + +- Fix minor incompatibility with Redshift; contributed by [@steelcd](https://github.com/steelcd). + ### `0.2.3` - Added Postgres support in integration tests + fixed bugs that prevented Postgres from working. diff --git a/README.md b/README.md index c4a0e06..d143ada 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ There are a few reasons why this method is discouraged over the `chol` method: - 🐌 It tends to be much slower in OLAP systems, and struggles to efficiently calculate large number of columns. - 📊 It does not calculate standard errors. - 😕 For ridge regression, coefficients are not accurate; they tend to be off by a magnitude of ~0.01%. +- ⚠️ It does not work in all databases because it relies on `COVAR_POP`. So when should you use `fwl`? The main use case is in OLTP systems (e.g. Postgres) for unregularized coefficient estimation. Long story short, the `chol` method relies on subquery optimization to be more performant than `fwl`; however, OLTP systems do not benefit at all from subquery optimization. This means that `fwl` is slightly more performant in this context. diff --git a/dbt_project.yml b/dbt_project.yml index 59a675e..6eb1606 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,5 +1,5 @@ name: "dbt_linreg" -version: "0.2.3" +version: "0.2.4" # 1.2 is required because of modules.itertools. require-dbt-version: [">=1.2.0", "<2.0.0"] From 2acdc3cb6ce77deeceb0602d6073f3eccf252cc4 Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sat, 24 Aug 2024 13:45:45 -0400 Subject: [PATCH 07/10] bug fixes --- CHANGELOG.md | 6 ++++++ dbt_project.yml | 2 +- macros/linear_regression/ols.sql | 4 ++++ .../linear_regression/ols_impl_chol/_ols_impl_chol.sql | 10 +++++----- .../linear_regression/ols_impl_special/_ols_1var.sql | 2 +- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38c9629..addeaf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### `0.2.5` + +- Fix bug where `exog` and `group_by` did not handle `str` inputs e.g. `exog="x"`. +- Fix bug where `group_by` for `method='fwl'` with exactly 1 exog variable did not work. (Explanation: `method='fwl'` dispatches to a different macro for the special case of 1 exog variable, and `group_by` was not implemented correctly here.) +- Fix bug where `safe` mode did not work for `method='chol'` + ### `0.2.4` - Fix minor incompatibility with Redshift; contributed by [@steelcd](https://github.com/steelcd). diff --git a/dbt_project.yml b/dbt_project.yml index 6eb1606..c467ae6 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -1,5 +1,5 @@ name: "dbt_linreg" -version: "0.2.4" +version: "0.2.5" # 1.2 is required because of modules.itertools. require-dbt-version: [">=1.2.0", "<2.0.0"] diff --git a/macros/linear_regression/ols.sql b/macros/linear_regression/ols.sql index 9f82acb..239000e 100644 --- a/macros/linear_regression/ols.sql +++ b/macros/linear_regression/ols.sql @@ -60,6 +60,8 @@ {% else %} {% set exog = [exog] %} {% endif %} + {% elif exog is string %} + {% set exog = [exog] %} {% endif %} {% if group_by is not iterable %} @@ -68,6 +70,8 @@ {% else %} {% set group_by = [group_by] %} {% endif %} + {% elif group_by is string %} + {% set group_by = [group_by] %} {% endif %} {% if alpha is not iterable and alpha is not none %} diff --git a/macros/linear_regression/ols_impl_chol/_ols_impl_chol.sql b/macros/linear_regression/ols_impl_chol/_ols_impl_chol.sql index c9d9046..2ef4648 100644 --- a/macros/linear_regression/ols_impl_chol/_ols_impl_chol.sql +++ b/macros/linear_regression/ols_impl_chol/_ols_impl_chol.sql @@ -73,7 +73,7 @@ {{ return(d) }} {% endmacro %} -{% macro _forward_substitution(li) %} +{% macro _forward_substitution(li, safe=true) %} {% set d = {} %} {% for i, j in modules.itertools.combinations_with_replacement(li, 2) %} {% set ns = namespace() %} @@ -86,7 +86,7 @@ {% endfor %} {% set ns.numerator = ns.numerator~')' %} {% endif %} - {% if adapter.type() == "postgres" %} + {% if safe %} {% do d.update({(i, j): '('~ns.numerator~'/nullif(i'~j~'j'~j~', 0))'}) %} {% else %} {% do d.update({(i, j): '('~ns.numerator~'/i'~j~'j'~j~')'}) %} @@ -118,7 +118,7 @@ )) }} {%- endif %} {%- set subquery_optimization = method_options.get('subquery_optimization', True) %} -{%- set safe_sqrt = method_options.get('safe', True) %} +{%- set safe_mode = method_options.get('safe', True) %} {%- set calculate_standard_error = format_options.get('calculate_standard_error', (not alpha)) and format == 'long' %} {%- if alpha and calculate_standard_error %} {% do log( @@ -171,7 +171,7 @@ _dbt_linreg_xtx as ( ), _dbt_linreg_chol as ( - {%- set d = dbt_linreg._cholesky_decomposition(li=xcols, subquery_optimization=subquery_optimization, safe=safe_sqrt) %} + {%- set d = dbt_linreg._cholesky_decomposition(li=xcols, subquery_optimization=subquery_optimization, safe=safe_mode) %} {%- if subquery_optimization %} {%- for i in (xcols | reverse) %} select @@ -202,7 +202,7 @@ _dbt_linreg_chol as ( ), _dbt_linreg_inverse_chol as ( {#- The optimal way to calculate is to do each diagonal at a time. #} - {%- set d = dbt_linreg._forward_substitution(li=xcols) %} + {%- set d = dbt_linreg._forward_substitution(li=xcols, safe=safe_mode) %} {%- if subquery_optimization %} {%- for gap in (range(0, upto) | reverse) %} select *, diff --git a/macros/linear_regression/ols_impl_special/_ols_1var.sql b/macros/linear_regression/ols_impl_special/_ols_1var.sql index a8c301d..0101bc9 100644 --- a/macros/linear_regression/ols_impl_special/_ols_1var.sql +++ b/macros/linear_regression/ols_impl_special/_ols_1var.sql @@ -25,7 +25,7 @@ _dbt_linreg_cmeans as ( {%- endif %} _dbt_linreg_base as ( select - {{ dbt_linreg._gb_cols(group_by, trailing_comma=True) | indent(4) }} + {{ dbt_linreg._alias_gb_cols(group_by) | indent(4) }} {%- if alpha and add_constant %} b.{{ endog }} - _dbt_linreg_cmeans.y as y, b.{{ exog[0] }} - _dbt_linreg_cmeans.x1 as x1, From 5a55b21f7498b2011c1252d9593f0b59c9ee671d Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sat, 24 Aug 2024 14:22:59 -0400 Subject: [PATCH 08/10] clean up dbt docs --- .pre-commit-config.yaml | 2 +- CHANGELOG.md | 3 +- README.md | 3 +- .../linear_regression/{ => utils}/utils.sql | 0 macros/schema.yml | 114 +- poetry.lock | 2177 +++++++++-------- pyproject.toml | 5 +- scripts.py | 32 + 8 files changed, 1371 insertions(+), 965 deletions(-) rename macros/linear_regression/{ => utils}/utils.sql (100%) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e659793..ec0866f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.0.284 + rev: v0.6.2 hooks: - id: ruff diff --git a/CHANGELOG.md b/CHANGELOG.md index addeaf9..83ae1be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ - Fix bug where `exog` and `group_by` did not handle `str` inputs e.g. `exog="x"`. - Fix bug where `group_by` for `method='fwl'` with exactly 1 exog variable did not work. (Explanation: `method='fwl'` dispatches to a different macro for the special case of 1 exog variable, and `group_by` was not implemented correctly here.) -- Fix bug where `safe` mode did not work for `method='chol'` +- Fix bug where `safe` mode did not work for `method='chol'`. +- Improved docs by hiding everything except `ols()`, improved description of `ols()` macro, and added missing arg. ### `0.2.4` diff --git a/README.md b/README.md index d143ada..e4f59bf 100644 --- a/README.md +++ b/README.md @@ -193,7 +193,8 @@ def ols( format_options: Optional[dict[str, Any]] = None, group_by: Optional[Union[str, list[str]]] = None, alpha: Optional[Union[float, list[float]]] = None, - method: Literal['chol', 'fwl'] = 'chol' + method: Literal['chol', 'fwl'] = 'chol', + method_options: Optional[dict[str, Any]] = None ): ... ``` diff --git a/macros/linear_regression/utils.sql b/macros/linear_regression/utils/utils.sql similarity index 100% rename from macros/linear_regression/utils.sql rename to macros/linear_regression/utils/utils.sql diff --git a/macros/schema.yml b/macros/schema.yml index e31f3d7..d58e5c6 100644 --- a/macros/schema.yml +++ b/macros/schema.yml @@ -28,7 +28,31 @@ macros: ``` {% endraw %} - The macro renders a subquery; in some database engines, such as Postgres, it is required to alias all subqueries. + You may also select from a CTE; in this case, just pass a string referencing the CTE: + + {% raw %} + ```sql + {{ + config( + materialized="table" + ) + }} + with my_data as ( + select * from {{ ref('simple_matrix') }} + ) + select * from {{ + dbt_linreg.ols( + table='my_data', + endog='y', + exog=['xa', 'xb', 'xc'], + format='long', + format_options={'round': 5} + ) + }} + ``` + {% endraw %} + + The macro renders a subquery, inclusive of parentheses. Please see the README / full documentation for more information: [https://dwreeves.github.io/dbt_linreg/](https://dwreeves.github.io/dbt_linreg/) arguments: @@ -53,6 +77,9 @@ macros: - name: format_options type: dict description: See **Formats and format options** section in the README for more. + - name: group_by + type: string or list of numbers + description: If specified, the regression will be grouped by these variables, and individual regressions will run on each group. - name: alpha type: number or list of numbers description: If not null, the regression will be run as a ridge regression with a penalty of `alpha`. See **Notes** section in the README for more information. @@ -62,18 +89,36 @@ macros: - name: method_options type: dict description: Options specific to the estimation method. See **Methods and method options** in the README for more. - # Everything down here is just for intermediary calculations. - # Better to hide this stuff to reduce confusion when reading docs. + # Everything down here is just for intermediary calculations or helper functions. + # There is no point to showing these in the docs. # The truly curious can just look at the source code. + # + # Please generate the below with the following command: + # >>> python scripts.py gen-hide-macros-yaml - name: _alias_exog docs: show: false - name: _alias_gb_cols docs: show: false + - name: _cell_or_alias + docs: + show: false + - name: _cholesky_decomposition + docs: + show: false + - name: _filter_and_center_if_alpha + docs: + show: false + - name: _filter_if_alpha + docs: + show: false - name: _format_wide_variable_column docs: show: false + - name: _forward_substitution + docs: + show: false - name: _gb_cols docs: show: false @@ -83,21 +128,84 @@ macros: - name: _maybe_round docs: show: false + - name: _ols_0var + docs: + show: false + - name: _ols_1var + docs: + show: false + - name: _ols_chol + docs: + show: false + - name: _ols_fwl + docs: + show: false + - name: _orth_x_intercept + docs: + show: false + - name: _orth_x_slope + docs: + show: false + - name: _regress_or_alias + docs: + show: false + - name: _safe_sqrt + docs: + show: false - name: _strip_quotes docs: show: false + - name: _traverse_intercepts + docs: + show: false + - name: _traverse_slopes + docs: + show: false - name: _unalias_gb_cols docs: show: false + - name: bigquery___safe_sqrt + docs: + show: false + - name: default___cell_or_alias + docs: + show: false + - name: default___maybe_round + docs: + show: false + - name: default___regress_or_alias + docs: + show: false + - name: default___safe_sqrt + docs: + show: false - name: default__regress docs: show: false + - name: duckdb___cell_or_alias + docs: + show: false + - name: duckdb___regress_or_alias + docs: + show: false - name: final_select docs: show: false + - name: postgres___maybe_round + docs: + show: false + - name: redshift___maybe_round + docs: + show: false - name: regress docs: show: false + - name: snowflake___cell_or_alias + docs: + show: false + - name: snowflake___regress_or_alias + docs: + show: false - name: snowflake__regress docs: show: false diff --git a/poetry.lock b/poetry.lock index 7214cd0..8829015 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,14 +2,14 @@ [[package]] name = "agate" -version = "1.7.1" +version = "1.9.1" description = "A data analysis library that is optimized for humans instead of machines." category = "main" optional = false python-versions = "*" files = [ - {file = "agate-1.7.1-py2.py3-none-any.whl", hash = "sha256:23f9f412f74f97b72f82b1525ab235cc816bc8c8525d968a091576a0dbc54a5f"}, - {file = "agate-1.7.1.tar.gz", hash = "sha256:eadf46d980168b8922d5d396d6258eecd5e7dbef7e6f0c0b71e968545ea96389"}, + {file = "agate-1.9.1-py2.py3-none-any.whl", hash = "sha256:1cf329510b3dde07c4ad1740b7587c9c679abc3dcd92bb1107eabc10c2e03c50"}, + {file = "agate-1.9.1.tar.gz", hash = "sha256:bc60880c2ee59636a2a80cd8603d63f995be64526abf3cbba12f00767bcd5b3d"}, ] [package.dependencies] @@ -19,131 +19,70 @@ leather = ">=0.3.2" parsedatetime = ">=2.1,<2.5 || >2.5" python-slugify = ">=1.2.1" pytimeparse = ">=1.1.5" +tzdata = {version = ">=2023.3", markers = "platform_system == \"Windows\""} [package.extras] -docs = ["Sphinx (>=1.2.2)", "sphinx-rtd-theme (>=0.1.6)"] -test = ["PyICU (>=2.4.2)", "coverage (>=3.7.1)", "cssselect (>=0.9.1)", "lxml (>=3.6.0)", "pytest", "pytest-cov", "pytz (>=2015.4)"] +test = ["PyICU (>=2.4.2)", "backports.zoneinfo", "coverage (>=3.7.1)", "cssselect (>=0.9.1)", "lxml (>=3.6.0)", "pytest", "pytest-cov"] + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] [[package]] name = "attrs" -version = "23.1.0" +version = "24.2.0" description = "Classes Without Boilerplate" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, - {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] [package.extras] -cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]", "pre-commit"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] -tests = ["attrs[tests-no-zope]", "zope-interface"] -tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "babel" -version = "2.12.1" +version = "2.16.0" description = "Internationalization utilities" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" 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.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, -] - -[[package]] -name = "cffi" -version = "1.15.1" -description = "Foreign Function Interface for Python calling C code." -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] -[package.dependencies] -pycparser = "*" - [[package]] name = "cfgv" version = "3.4.0" @@ -158,99 +97,114 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" -version = "8.1.6" +version = "8.1.7" description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"}, - {file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -270,64 +224,84 @@ files = [ [[package]] name = "coverage" -version = "7.3.0" +version = "7.6.1" description = "Code coverage measurement for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db76a1bcb51f02b2007adacbed4c88b6dee75342c37b05d1822815eed19edee5"}, - {file = "coverage-7.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c02cfa6c36144ab334d556989406837336c1d05215a9bdf44c0bc1d1ac1cb637"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:477c9430ad5d1b80b07f3c12f7120eef40bfbf849e9e7859e53b9c93b922d2af"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce2ee86ca75f9f96072295c5ebb4ef2a43cecf2870b0ca5e7a1cbdd929cf67e1"}, - {file = "coverage-7.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68d8a0426b49c053013e631c0cdc09b952d857efa8f68121746b339912d27a12"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3eb0c93e2ea6445b2173da48cb548364f8f65bf68f3d090404080d338e3a689"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:90b6e2f0f66750c5a1178ffa9370dec6c508a8ca5265c42fbad3ccac210a7977"}, - {file = "coverage-7.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96d7d761aea65b291a98c84e1250cd57b5b51726821a6f2f8df65db89363be51"}, - {file = "coverage-7.3.0-cp310-cp310-win32.whl", hash = "sha256:63c5b8ecbc3b3d5eb3a9d873dec60afc0cd5ff9d9f1c75981d8c31cfe4df8527"}, - {file = "coverage-7.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:97c44f4ee13bce914272589b6b41165bbb650e48fdb7bd5493a38bde8de730a1"}, - {file = "coverage-7.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74c160285f2dfe0acf0f72d425f3e970b21b6de04157fc65adc9fd07ee44177f"}, - {file = "coverage-7.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b543302a3707245d454fc49b8ecd2c2d5982b50eb63f3535244fd79a4be0c99d"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad0f87826c4ebd3ef484502e79b39614e9c03a5d1510cfb623f4a4a051edc6fd"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13c6cbbd5f31211d8fdb477f0f7b03438591bdd077054076eec362cf2207b4a7"}, - {file = "coverage-7.3.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fac440c43e9b479d1241fe9d768645e7ccec3fb65dc3a5f6e90675e75c3f3e3a"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3c9834d5e3df9d2aba0275c9f67989c590e05732439b3318fa37a725dff51e74"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4c8e31cf29b60859876474034a83f59a14381af50cbe8a9dbaadbf70adc4b214"}, - {file = "coverage-7.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7a9baf8e230f9621f8e1d00c580394a0aa328fdac0df2b3f8384387c44083c0f"}, - {file = "coverage-7.3.0-cp311-cp311-win32.whl", hash = "sha256:ccc51713b5581e12f93ccb9c5e39e8b5d4b16776d584c0f5e9e4e63381356482"}, - {file = "coverage-7.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:887665f00ea4e488501ba755a0e3c2cfd6278e846ada3185f42d391ef95e7e70"}, - {file = "coverage-7.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d000a739f9feed900381605a12a61f7aaced6beae832719ae0d15058a1e81c1b"}, - {file = "coverage-7.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59777652e245bb1e300e620ce2bef0d341945842e4eb888c23a7f1d9e143c446"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9737bc49a9255d78da085fa04f628a310c2332b187cd49b958b0e494c125071"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5247bab12f84a1d608213b96b8af0cbb30d090d705b6663ad794c2f2a5e5b9fe"}, - {file = "coverage-7.3.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2ac9a1de294773b9fa77447ab7e529cf4fe3910f6a0832816e5f3d538cfea9a"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:85b7335c22455ec12444cec0d600533a238d6439d8d709d545158c1208483873"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:36ce5d43a072a036f287029a55b5c6a0e9bd73db58961a273b6dc11a2c6eb9c2"}, - {file = "coverage-7.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:211a4576e984f96d9fce61766ffaed0115d5dab1419e4f63d6992b480c2bd60b"}, - {file = "coverage-7.3.0-cp312-cp312-win32.whl", hash = "sha256:56afbf41fa4a7b27f6635bc4289050ac3ab7951b8a821bca46f5b024500e6321"}, - {file = "coverage-7.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f297e0c1ae55300ff688568b04ff26b01c13dfbf4c9d2b7d0cb688ac60df479"}, - {file = "coverage-7.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac0dec90e7de0087d3d95fa0533e1d2d722dcc008bc7b60e1143402a04c117c1"}, - {file = "coverage-7.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:438856d3f8f1e27f8e79b5410ae56650732a0dcfa94e756df88c7e2d24851fcd"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1084393c6bda8875c05e04fce5cfe1301a425f758eb012f010eab586f1f3905e"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49ab200acf891e3dde19e5aa4b0f35d12d8b4bd805dc0be8792270c71bd56c54"}, - {file = "coverage-7.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a67e6bbe756ed458646e1ef2b0778591ed4d1fcd4b146fc3ba2feb1a7afd4254"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f39c49faf5344af36042b293ce05c0d9004270d811c7080610b3e713251c9b0"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7df91fb24c2edaabec4e0eee512ff3bc6ec20eb8dccac2e77001c1fe516c0c84"}, - {file = "coverage-7.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:34f9f0763d5fa3035a315b69b428fe9c34d4fc2f615262d6be3d3bf3882fb985"}, - {file = "coverage-7.3.0-cp38-cp38-win32.whl", hash = "sha256:bac329371d4c0d456e8d5f38a9b0816b446581b5f278474e416ea0c68c47dcd9"}, - {file = "coverage-7.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b859128a093f135b556b4765658d5d2e758e1fae3e7cc2f8c10f26fe7005e543"}, - {file = "coverage-7.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed8d310afe013db1eedd37176d0839dc66c96bcfcce8f6607a73ffea2d6ba"}, - {file = "coverage-7.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61260ec93f99f2c2d93d264b564ba912bec502f679793c56f678ba5251f0393"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97af9554a799bd7c58c0179cc8dbf14aa7ab50e1fd5fa73f90b9b7215874ba28"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3558e5b574d62f9c46b76120a5c7c16c4612dc2644c3d48a9f4064a705eaee95"}, - {file = "coverage-7.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37d5576d35fcb765fca05654f66aa71e2808d4237d026e64ac8b397ffa66a56a"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:07ea61bcb179f8f05ffd804d2732b09d23a1238642bf7e51dad62082b5019b34"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:80501d1b2270d7e8daf1b64b895745c3e234289e00d5f0e30923e706f110334e"}, - {file = "coverage-7.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4eddd3153d02204f22aef0825409091a91bf2a20bce06fe0f638f5c19a85de54"}, - {file = "coverage-7.3.0-cp39-cp39-win32.whl", hash = "sha256:2d22172f938455c156e9af2612650f26cceea47dc86ca048fa4e0b2d21646ad3"}, - {file = "coverage-7.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:60f64e2007c9144375dd0f480a54d6070f00bb1a28f65c408370544091c9bc9e"}, - {file = "coverage-7.3.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:5492a6ce3bdb15c6ad66cb68a0244854d9917478877a25671d70378bdc8562d0"}, - {file = "coverage-7.3.0.tar.gz", hash = "sha256:49dbb19cdcafc130f597d9e04a29d0a032ceedf729e41b181f51cd170e6ee865"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, + {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, + {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, + {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, + {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, + {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, + {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, + {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, + {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, + {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, + {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, + {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, + {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, + {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, + {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, + {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, + {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, ] [package.dependencies] @@ -337,211 +311,287 @@ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.1 toml = ["tomli"] [[package]] -name = "dbt-core" -version = "1.6.6" -description = "With dbt, data analysts and engineers can build analytics the way engineers build applications." +name = "daff" +version = "1.3.46" +description = "Diff and patch tables" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "daff-1.3.46.tar.gz", hash = "sha256:22d0da9fd6a3275b54c926a9c97b180f9258aad65113ea18f3fec52cbadcd818"}, +] + +[[package]] +name = "dbt-adapters" +version = "1.4.1" +description = "The set of adapter protocols and base functionality that supports integration with dbt-core" +category = "main" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "dbt_adapters-1.4.1-py3-none-any.whl", hash = "sha256:ace4928ca64c7c97bbe4dbe7287b0907496bc9bd6951bbadb1034a93b4dc40f7"}, + {file = "dbt_adapters-1.4.1.tar.gz", hash = "sha256:bc705a9ac16037bfdf2e8bbb01e76df69ad0fc44a54e56ad6e9830d1bd4d0632"}, +] + +[package.dependencies] +agate = ">=1.0,<2.0" +dbt-common = ">=1.6,<2.0" +mashumaro = {version = ">=3.0,<4.0", extras = ["msgpack"]} +protobuf = ">=3.0,<5.0" +pytz = ">=2015.7" +typing-extensions = ">=4.0,<5.0" + +[[package]] +name = "dbt-common" +version = "1.7.0" +description = "The shared common utilities that dbt-core and adapter implementations use" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "dbt-core-1.6.6.tar.gz", hash = "sha256:6a38a5ac0dcbff59a3b388bc76cec301a6fc0f076694c31d878ffb0dc89b5c7d"}, - {file = "dbt_core-1.6.6-py3-none-any.whl", hash = "sha256:4ae40ae4c663898b76bb14d053daed256847da54d0d496a943811bc10133a557"}, + {file = "dbt_common-1.7.0-py3-none-any.whl", hash = "sha256:ade7cf908492e83f890fd2c2bbb286f685dfe55a28ee1076f5485041b9acb93e"}, + {file = "dbt_common-1.7.0.tar.gz", hash = "sha256:bf085abd6c2d871ec802f0b78a13467ca1d8be1603b165bb80caa9309d6b292d"}, ] [package.dependencies] -agate = ">=1.7.0,<1.8.0" -cffi = ">=1.9,<2.0.0" -click = "<9" +agate = ">=1.7.0,<1.10" colorama = ">=0.3.9,<0.5" -dbt-extractor = ">=0.4.1,<0.5.0" -dbt-semantic-interfaces = ">=0.2.0,<0.3.0" -hologram = ">=0.0.16,<0.1.0" -idna = ">=2.5,<4" +deepdiff = ">=7.0,<8.0" isodate = ">=0.6,<0.7" -Jinja2 = ">=3.1.2,<3.2.0" +jinja2 = ">=3.1.3,<4" +jsonschema = ">=4.0,<5.0" +mashumaro = {version = ">=3.9,<4.0", extras = ["msgpack"]} +pathspec = ">=0.9,<0.13" +protobuf = ">=4.0.0,<5.0.0" +python-dateutil = ">=2.0,<3.0" +requests = "<3.0.0" +typing-extensions = ">=4.4,<5.0" + +[package.extras] +build = ["check-wheel-contents", "twine", "wheel"] +lint = ["black (>=23.3,<24.0)", "flake8", "flake8-docstrings", "flake8-pyproject", "mypy (>=1.3,<2.0)", "pytest (>=7.3,<8.0)", "types-jinja2 (>=2.11,<3.0)", "types-jsonschema (>=4.17,<5.0)", "types-protobuf (>=4.24,<5.0)", "types-python-dateutil (>=2.8,<3.0)", "types-pyyaml (>=6.0,<7.0)", "types-requests"] +test = ["hypothesis (>=6.87,<7.0)", "pytest (>=7.3,<8.0)", "pytest-cov (>=4.1,<5.0)", "pytest-mock", "pytest-xdist (>=3.2,<4.0)"] + +[[package]] +name = "dbt-core" +version = "1.8.5" +description = "With dbt, data analysts and engineers can build analytics the way engineers build applications." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dbt_core-1.8.5-py3-none-any.whl", hash = "sha256:194f0bd5d5b83b3324f9ab50d6b675b8ddfe9bf2e5d7b6c8e677fa0df92a8470"}, + {file = "dbt_core-1.8.5.tar.gz", hash = "sha256:f22a9212a9b7d223a0ba36af0dc138ed844227462c2ca1a42f2aabf6ec412c91"}, +] + +[package.dependencies] +agate = ">=1.7.0,<1.10" +click = ">=8.0.2,<9.0" +daff = ">=1.3.46" +dbt-adapters = ">=1.1.1,<2.0" +dbt-common = ">=1.0.4,<2.0" +dbt-extractor = ">=0.5.0,<=0.6" +dbt-semantic-interfaces = ">=0.5.1,<0.6" +Jinja2 = ">=3.1.3,<4" logbook = ">=1.5,<1.6" -mashumaro = {version = ">=3.8.1,<3.9.0", extras = ["msgpack"]} -minimal-snowplow-tracker = ">=0.0.2,<0.1.0" -networkx = ">=2.3,<4" +mashumaro = {version = ">=3.9,<4.0", extras = ["msgpack"]} +minimal-snowplow-tracker = ">=0.0.2,<0.1" +networkx = ">=2.3,<4.0" packaging = ">20.9" -pathspec = ">=0.9,<0.12" -protobuf = ">=4.0.0" +pathspec = ">=0.9,<0.13" +protobuf = ">=4.0.0,<5" pytz = ">=2015.7" pyyaml = ">=6.0" requests = "<3.0.0" -sqlparse = ">=0.2.3,<0.5" -typing-extensions = ">=3.7.4" -urllib3 = ">=1.0,<2.0" +sqlparse = ">=0.5.0,<0.6.0" +typing-extensions = ">=4.4" [[package]] name = "dbt-duckdb" -version = "1.6.0" +version = "1.8.3" description = "The duckdb adapter plugin for dbt (data build tool)" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "dbt-duckdb-1.6.0.tar.gz", hash = "sha256:e36776d6ee7aa1554a236b7ffa93c556c4419920134a3801feef7c64b706db16"}, - {file = "dbt_duckdb-1.6.0-py3-none-any.whl", hash = "sha256:3fa094e077acbfbeb04c7b38dc3be2f6797f6fecd1323a1e3ce58e574ae22aa8"}, + {file = "dbt_duckdb-1.8.3-py3-none-any.whl", hash = "sha256:7d2651a383c97984ce130d5cd6ca3294590fd1f092e48b5d448a3a5e6f42dc72"}, + {file = "dbt_duckdb-1.8.3.tar.gz", hash = "sha256:c33df9ba1d4a1ac6ff2731816ad11c14b67d256a873e2ae16d85e69b7ceffb9a"}, ] [package.dependencies] -dbt-core = ">=1.6.0,<1.7.0" -duckdb = ">=0.7.0" +dbt-adapters = ">=1,<2" +dbt-common = ">=1,<2" +dbt-core = ">=1.8.0" +duckdb = ">=1.0.0" [package.extras] glue = ["boto3", "mypy-boto3-glue"] [[package]] name = "dbt-extractor" -version = "0.4.1" +version = "0.5.1" description = "A tool to analyze and extract information from Jinja used in dbt projects." category = "main" optional = false python-versions = ">=3.6.1" files = [ - {file = "dbt_extractor-0.4.1-cp36-abi3-macosx_10_7_x86_64.whl", hash = "sha256:4dc715bd740e418d8dc1dd418fea508e79208a24cf5ab110b0092a3cbe96bf71"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:bc9e0050e3a2f4ea9fe58e8794bc808e6709a0c688ed710fc7c5b6ef3e5623ec"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76872cdee659075d6ce2df92dc62e59a74ba571be62acab2e297ca478b49d766"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81435841610be1b07806d72cd89b1956c6e2a84c360b9ceb3f949c62a546d569"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7c291f9f483eae4f60dd5859097d7ba51d5cb6c4725f08973ebd18cdea89d758"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:822b1e911db230e1b9701c99896578e711232001027b518c44c32f79a46fa3f9"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:554d27741a54599c39e5c0b7dbcab77400d83f908caba284a3e960db812e5814"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a805d51a25317f53cbff951c79b9cf75421cf48e4b3e1dfb3e9e8de6d824b76c"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cad90ddc708cb4182dc16fe2c87b1f088a1679877b93e641af068eb68a25d582"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:34783d788b133f223844e280e37b3f5244f2fb60acc457aa75c2667e418d5442"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:9da211869a1220ea55c5552c1567a3ea5233a6c52fa89ca87a22465481c37bc9"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-musllinux_1_2_i686.whl", hash = "sha256:7d7c47774dc051b8c18690281a55e2e3d3320e823b17e04b06bc3ff81b1874ba"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:037907a7c7ae0391045d81338ca77ddaef899a91d80f09958f09fe374594e19b"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-win32.whl", hash = "sha256:3fe8d8e28a7bd3e0884896147269ca0202ca432d8733113386bdc84c824561bf"}, - {file = "dbt_extractor-0.4.1-cp36-abi3-win_amd64.whl", hash = "sha256:35265a0ae0a250623b0c2e3308b2738dc8212e40e0aa88407849e9ea090bb312"}, - {file = "dbt_extractor-0.4.1.tar.gz", hash = "sha256:75b1c665699ec0f1ffce1ba3d776f7dfce802156f22e70a7b9c8f0b4d7e80f42"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3b91e6106b967d908b34f83929d3f50ee2b498876a1be9c055fe060ed728c556"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3614ce9f83ae4cd0dc95f77730034a793a1c090a52dcf698ba1c94050afe3a8b"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ea4edf33035d0a060b1e01c42fb2d99316457d44c954d6ed4eed9f1948664d87"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3b9bf50eb062b4344d9546fe42038996c6e7e7daa10724aa955d64717260e5d"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c0ce901d4ebf0664977e4e1cbf596d4afc6c1339fcc7d2cf67ce3481566a626f"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:cbe338b76e9ffaa18275456e041af56c21bb517f6fbda7a58308138703da0996"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b25fa7a276ab26aa2d70ff6e0cf4cfb1490d7831fb57ee1337c24d2b0333b84"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5651e458be910ff567c0da3ea2eb084fd01884cc88888ac2cf1e240dcddacc2"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62e4f040fd338b652683421ce48e903812e27fd6e7af58b1b70a4e1f9f2c79e3"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91e25ad78f1f4feadd27587ebbcc46ad909cfad843118908f30336d08d8400ca"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:cdf9938b36cd098bcdd80f43dc03864da3f69f57d903a9160a32236540d4ddcd"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:475e2c05b17eb4976eff6c8f7635be42bec33f15a74ceb87a40242c94a99cebf"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:100453ba06e169cbdb118234ab3f06f6722a2e0e316089b81c88dea701212abc"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-win32.whl", hash = "sha256:6916aae085fd5f2af069fd6947933e78b742c9e3d2165e1740c2e28ae543309a"}, + {file = "dbt_extractor-0.5.1-cp38-abi3-win_amd64.whl", hash = "sha256:eecc08f3743e802a8ede60c89f7b2bce872acc86120cbc0ae7df229bb8a95083"}, + {file = "dbt_extractor-0.5.1.tar.gz", hash = "sha256:cd5d95576a8dea4190240aaf9936a37fd74b4b7913ca69a3c368fc4472bb7e13"}, ] [[package]] name = "dbt-postgres" -version = "1.6.6" -description = "The postgres adapter plugin for dbt (data build tool)" +version = "1.8.2" +description = "The set of adapter protocols and base functionality that supports integration with dbt-core" category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.8.0" files = [ - {file = "dbt-postgres-1.6.6.tar.gz", hash = "sha256:e87d417c4b7abc84fbedbca78ff53661eb10f041e2a93bc0d692a196015d632f"}, - {file = "dbt_postgres-1.6.6-py3-none-any.whl", hash = "sha256:a5d9c43e402f438a8353781f616e922a5d2d4800a10261057872c19cffa15d32"}, + {file = "dbt_postgres-1.8.2-py3-none-any.whl", hash = "sha256:b0d9f53b5927722cd22e8135e0b76181febf3cf89aef8caf039c59bfce78afc9"}, + {file = "dbt_postgres-1.8.2.tar.gz", hash = "sha256:23b302626dd11e90594ccff0347148252c37af1a1e8c8710bc9c03b05337f3d3"}, ] [package.dependencies] -agate = "*" -dbt-core = "1.6.6" -psycopg2-binary = ">=2.8,<3.0" +agate = ">=1.0,<2.0" +dbt-adapters = ">=0.1.0a1,<2.0" +dbt-common = ">=0.1.0a1,<2.0" +dbt-core = ">=1.8.0a1" +psycopg2-binary = ">=2.9,<3.0" [[package]] name = "dbt-semantic-interfaces" -version = "0.2.0" +version = "0.5.1" description = "The shared semantic layer definitions that dbt-core and MetricFlow use" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "dbt_semantic_interfaces-0.2.0-py3-none-any.whl", hash = "sha256:823c9bd53745604cae2af854c7d5064056383d0304560c35236a33c5f0e52090"}, - {file = "dbt_semantic_interfaces-0.2.0.tar.gz", hash = "sha256:4afecc6dc56f85ecce7ac424dea07561513467e0bf28ead7307b78a22e6b999b"}, + {file = "dbt_semantic_interfaces-0.5.1-py3-none-any.whl", hash = "sha256:b95ff3a6721dc30f6278cb84933d95e0ef27766e67eeb6bb41906242e77f7c9b"}, + {file = "dbt_semantic_interfaces-0.5.1.tar.gz", hash = "sha256:3a497abef1ba8112affdf804b26bfdcd5468ed95cc924b509068e18d371c7c4d"}, ] [package.dependencies] click = ">=7.0,<9.0" -importlib-metadata = ">=6.0,<7.0" -jinja2 = ">=3.0,<4.0" -jsonschema = ">=3.0,<4.0" -more-itertools = ">=8.0,<9.0" -pydantic = ">=1.10,<2.0" -python-dateutil = ">=2.0,<3.0" -pyyaml = ">=6.0,<7.0" -typing-extensions = ">=4.0,<5.0" +importlib-metadata = ">=6.0,<7" +jinja2 = ">=3.1.3,<4" +jsonschema = ">=4.0,<5" +more-itertools = ">=8.0,<11.0" +pydantic = ">=1.10,<3" +python-dateutil = ">=2.0,<3" +pyyaml = ">=6.0,<7" +typing-extensions = ">=4.4,<5" + +[[package]] +name = "deepdiff" +version = "7.0.1" +description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "deepdiff-7.0.1-py3-none-any.whl", hash = "sha256:447760081918216aa4fd4ca78a4b6a848b81307b2ea94c810255334b759e1dc3"}, + {file = "deepdiff-7.0.1.tar.gz", hash = "sha256:260c16f052d4badbf60351b4f77e8390bee03a0b516246f6839bc813fb429ddf"}, +] + +[package.dependencies] +ordered-set = ">=4.1.0,<4.2.0" + +[package.extras] +cli = ["click (==8.1.7)", "pyyaml (==6.0.1)"] +optimize = ["orjson"] [[package]] name = "distlib" -version = "0.3.7" +version = "0.3.8" description = "Distribution utilities" category = "main" optional = false python-versions = "*" files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] name = "duckdb" -version = "0.8.1" -description = "DuckDB embedded database" +version = "1.0.0" +description = "DuckDB in-process database" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7.0" files = [ - {file = "duckdb-0.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:14781d21580ee72aba1f5dcae7734674c9b6c078dd60470a08b2b420d15b996d"}, - {file = "duckdb-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f13bf7ab0e56ddd2014ef762ae4ee5ea4df5a69545ce1191b8d7df8118ba3167"}, - {file = "duckdb-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4032042d8363e55365bbca3faafc6dc336ed2aad088f10ae1a534ebc5bcc181"}, - {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a71bd8f0b0ca77c27fa89b99349ef22599ffefe1e7684ae2e1aa2904a08684"}, - {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24568d6e48f3dbbf4a933109e323507a46b9399ed24c5d4388c4987ddc694fd0"}, - {file = "duckdb-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297226c0dadaa07f7c5ae7cbdb9adba9567db7b16693dbd1b406b739ce0d7924"}, - {file = "duckdb-0.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5792cf777ece2c0591194006b4d3e531f720186102492872cb32ddb9363919cf"}, - {file = "duckdb-0.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:12803f9f41582b68921d6b21f95ba7a51e1d8f36832b7d8006186f58c3d1b344"}, - {file = "duckdb-0.8.1-cp310-cp310-win32.whl", hash = "sha256:d0953d5a2355ddc49095e7aef1392b7f59c5be5cec8cdc98b9d9dc1f01e7ce2b"}, - {file = "duckdb-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:6e6583c98a7d6637e83bcadfbd86e1f183917ea539f23b6b41178f32f813a5eb"}, - {file = "duckdb-0.8.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fad7ed0d4415f633d955ac24717fa13a500012b600751d4edb050b75fb940c25"}, - {file = "duckdb-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81ae602f34d38d9c48dd60f94b89f28df3ef346830978441b83c5b4eae131d08"}, - {file = "duckdb-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d75cfe563aaa058d3b4ccaaa371c6271e00e3070df5de72361fd161b2fe6780"}, - {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbb55e7a3336f2462e5e916fc128c47fe1c03b6208d6bd413ac11ed95132aa0"}, - {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6df53efd63b6fdf04657385a791a4e3c4fb94bfd5db181c4843e2c46b04fef5"}, - {file = "duckdb-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b188b80b70d1159b17c9baaf541c1799c1ce8b2af4add179a9eed8e2616be96"}, - {file = "duckdb-0.8.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ad481ee353f31250b45d64b4a104e53b21415577943aa8f84d0af266dc9af85"}, - {file = "duckdb-0.8.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1d1b1729993611b1892509d21c21628917625cdbe824a61ce891baadf684b32"}, - {file = "duckdb-0.8.1-cp311-cp311-win32.whl", hash = "sha256:2d8f9cc301e8455a4f89aa1088b8a2d628f0c1f158d4cf9bc78971ed88d82eea"}, - {file = "duckdb-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:07457a43605223f62d93d2a5a66b3f97731f79bbbe81fdd5b79954306122f612"}, - {file = "duckdb-0.8.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d2c8062c3e978dbcd80d712ca3e307de8a06bd4f343aa457d7dd7294692a3842"}, - {file = "duckdb-0.8.1-cp36-cp36m-win32.whl", hash = "sha256:fad486c65ae944eae2de0d590a0a4fb91a9893df98411d66cab03359f9cba39b"}, - {file = "duckdb-0.8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:86fa4506622c52d2df93089c8e7075f1c4d0ba56f4bf27faebde8725355edf32"}, - {file = "duckdb-0.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:60e07a62782f88420046e30cc0e3de842d0901c4fd5b8e4d28b73826ec0c3f5e"}, - {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f18563675977f8cbf03748efee0165b4c8ef64e0cbe48366f78e2914d82138bb"}, - {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16e179443832bea8439ae4dff93cf1e42c545144ead7a4ef5f473e373eea925a"}, - {file = "duckdb-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a413d5267cb41a1afe69d30dd6d4842c588256a6fed7554c7e07dad251ede095"}, - {file = "duckdb-0.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3784680df59eadd683b0a4c2375d451a64470ca54bd171c01e36951962b1d332"}, - {file = "duckdb-0.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:67a1725c2b01f9b53571ecf3f92959b652f60156c1c48fb35798302e39b3c1a2"}, - {file = "duckdb-0.8.1-cp37-cp37m-win32.whl", hash = "sha256:197d37e2588c5ad063e79819054eedb7550d43bf1a557d03ba8f8f67f71acc42"}, - {file = "duckdb-0.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3843feb79edf100800f5037c32d5d5a5474fb94b32ace66c707b96605e7c16b2"}, - {file = "duckdb-0.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:624c889b0f2d656794757b3cc4fc58030d5e285f5ad2ef9fba1ea34a01dab7fb"}, - {file = "duckdb-0.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fcbe3742d77eb5add2d617d487266d825e663270ef90253366137a47eaab9448"}, - {file = "duckdb-0.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47516c9299d09e9dbba097b9fb339b389313c4941da5c54109df01df0f05e78c"}, - {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf1ba718b7522d34399446ebd5d4b9fcac0b56b6ac07bfebf618fd190ec37c1d"}, - {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e36e35d38a9ae798fe8cf6a839e81494d5b634af89f4ec9483f4d0a313fc6bdb"}, - {file = "duckdb-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23493313f88ce6e708a512daacad13e83e6d1ea0be204b175df1348f7fc78671"}, - {file = "duckdb-0.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1fb9bf0b6f63616c8a4b9a6a32789045e98c108df100e6bac783dc1e36073737"}, - {file = "duckdb-0.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12fc13ecd5eddd28b203b9e3999040d3a7374a8f4b833b04bd26b8c5685c2635"}, - {file = "duckdb-0.8.1-cp38-cp38-win32.whl", hash = "sha256:a12bf4b18306c9cb2c9ba50520317e6cf2de861f121d6f0678505fa83468c627"}, - {file = "duckdb-0.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e4e809358b9559c00caac4233e0e2014f3f55cd753a31c4bcbbd1b55ad0d35e4"}, - {file = "duckdb-0.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7acedfc00d97fbdb8c3d120418c41ef3cb86ef59367f3a9a30dff24470d38680"}, - {file = "duckdb-0.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:99bfe264059cdc1e318769103f656f98e819cd4e231cd76c1d1a0327f3e5cef8"}, - {file = "duckdb-0.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:538b225f361066231bc6cd66c04a5561de3eea56115a5dd773e99e5d47eb1b89"}, - {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae0be3f71a18cd8492d05d0fc1bc67d01d5a9457b04822d025b0fc8ee6efe32e"}, - {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd82ba63b58672e46c8ec60bc9946aa4dd7b77f21c1ba09633d8847ad9eb0d7b"}, - {file = "duckdb-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:780a34559aaec8354e83aa4b7b31b3555f1b2cf75728bf5ce11b89a950f5cdd9"}, - {file = "duckdb-0.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:01f0d4e9f7103523672bda8d3f77f440b3e0155dd3b2f24997bc0c77f8deb460"}, - {file = "duckdb-0.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31f692decb98c2d57891da27180201d9e93bb470a3051fcf413e8da65bca37a5"}, - {file = "duckdb-0.8.1-cp39-cp39-win32.whl", hash = "sha256:e7fe93449cd309bbc67d1bf6f6392a6118e94a9a4479ab8a80518742e855370a"}, - {file = "duckdb-0.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:81d670bc6807672f038332d9bf587037aabdd741b0810de191984325ed307abd"}, - {file = "duckdb-0.8.1.tar.gz", hash = "sha256:a54d37f4abc2afc4f92314aaa56ecf215a411f40af4bffe1e86bd25e62aceee9"}, + {file = "duckdb-1.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4a8ce2d1f9e1c23b9bab3ae4ca7997e9822e21563ff8f646992663f66d050211"}, + {file = "duckdb-1.0.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:19797670f20f430196e48d25d082a264b66150c264c1e8eae8e22c64c2c5f3f5"}, + {file = "duckdb-1.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b71c342090fe117b35d866a91ad6bffce61cd6ff3e0cff4003f93fc1506da0d8"}, + {file = "duckdb-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25dd69f44ad212c35ae2ea736b0e643ea2b70f204b8dff483af1491b0e2a4cec"}, + {file = "duckdb-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8da5f293ecb4f99daa9a9352c5fd1312a6ab02b464653a0c3a25ab7065c45d4d"}, + {file = "duckdb-1.0.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3207936da9967ddbb60644ec291eb934d5819b08169bc35d08b2dedbe7068c60"}, + {file = "duckdb-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1128d6c9c33e883b1f5df6b57c1eb46b7ab1baf2650912d77ee769aaa05111f9"}, + {file = "duckdb-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:02310d263474d0ac238646677feff47190ffb82544c018b2ff732a4cb462c6ef"}, + {file = "duckdb-1.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:75586791ab2702719c284157b65ecefe12d0cca9041da474391896ddd9aa71a4"}, + {file = "duckdb-1.0.0-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:83bb415fc7994e641344f3489e40430ce083b78963cb1057bf714ac3a58da3ba"}, + {file = "duckdb-1.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:bee2e0b415074e84c5a2cefd91f6b5ebeb4283e7196ba4ef65175a7cef298b57"}, + {file = "duckdb-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa5a4110d2a499312609544ad0be61e85a5cdad90e5b6d75ad16b300bf075b90"}, + {file = "duckdb-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fa389e6a382d4707b5f3d1bc2087895925ebb92b77e9fe3bfb23c9b98372fdc"}, + {file = "duckdb-1.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7ede6f5277dd851f1a4586b0c78dc93f6c26da45e12b23ee0e88c76519cbdbe0"}, + {file = "duckdb-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0b88cdbc0d5c3e3d7545a341784dc6cafd90fc035f17b2f04bf1e870c68456e5"}, + {file = "duckdb-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd1693cdd15375156f7fff4745debc14e5c54928589f67b87fb8eace9880c370"}, + {file = "duckdb-1.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:c65a7fe8a8ce21b985356ee3ec0c3d3b3b2234e288e64b4cfb03356dbe6e5583"}, + {file = "duckdb-1.0.0-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:e5a8eda554379b3a43b07bad00968acc14dd3e518c9fbe8f128b484cf95e3d16"}, + {file = "duckdb-1.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:a1b6acdd54c4a7b43bd7cb584975a1b2ff88ea1a31607a2b734b17960e7d3088"}, + {file = "duckdb-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a677bb1b6a8e7cab4a19874249d8144296e6e39dae38fce66a80f26d15e670df"}, + {file = "duckdb-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:752e9d412b0a2871bf615a2ede54be494c6dc289d076974eefbf3af28129c759"}, + {file = "duckdb-1.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3aadb99d098c5e32d00dc09421bc63a47134a6a0de9d7cd6abf21780b678663c"}, + {file = "duckdb-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83b7091d4da3e9301c4f9378833f5ffe934fb1ad2b387b439ee067b2c10c8bb0"}, + {file = "duckdb-1.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:6a8058d0148b544694cb5ea331db44f6c2a00a7b03776cc4dd1470735c3d5ff7"}, + {file = "duckdb-1.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e40cb20e5ee19d44bc66ec99969af791702a049079dc5f248c33b1c56af055f4"}, + {file = "duckdb-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7bce1bc0de9af9f47328e24e6e7e39da30093179b1c031897c042dd94a59c8e"}, + {file = "duckdb-1.0.0-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8355507f7a04bc0a3666958f4414a58e06141d603e91c0fa5a7c50e49867fb6d"}, + {file = "duckdb-1.0.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:39f1a46f5a45ad2886dc9b02ce5b484f437f90de66c327f86606d9ba4479d475"}, + {file = "duckdb-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a6d29ba477b27ae41676b62c8fae8d04ee7cbe458127a44f6049888231ca58fa"}, + {file = "duckdb-1.0.0-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:1bea713c1925918714328da76e79a1f7651b2b503511498ccf5e007a7e67d49e"}, + {file = "duckdb-1.0.0-cp38-cp38-macosx_12_0_universal2.whl", hash = "sha256:bfe67f3bcf181edbf6f918b8c963eb060e6aa26697d86590da4edc5707205450"}, + {file = "duckdb-1.0.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:dbc6093a75242f002be1d96a6ace3fdf1d002c813e67baff52112e899de9292f"}, + {file = "duckdb-1.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba1881a2b11c507cee18f8fd9ef10100be066fddaa2c20fba1f9a664245cd6d8"}, + {file = "duckdb-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:445d0bb35087c522705c724a75f9f1c13f1eb017305b694d2686218d653c8142"}, + {file = "duckdb-1.0.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:224553432e84432ffb9684f33206572477049b371ce68cc313a01e214f2fbdda"}, + {file = "duckdb-1.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d3914032e47c4e76636ad986d466b63fdea65e37be8a6dfc484ed3f462c4fde4"}, + {file = "duckdb-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:af9128a2eb7e1bb50cd2c2020d825fb2946fdad0a2558920cd5411d998999334"}, + {file = "duckdb-1.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:dd2659a5dbc0df0de68f617a605bf12fe4da85ba24f67c08730984a0892087e8"}, + {file = "duckdb-1.0.0-cp39-cp39-macosx_12_0_universal2.whl", hash = "sha256:ac5a4afb0bc20725e734e0b2c17e99a274de4801aff0d4e765d276b99dad6d90"}, + {file = "duckdb-1.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:2c5a53bee3668d6e84c0536164589d5127b23d298e4c443d83f55e4150fafe61"}, + {file = "duckdb-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b980713244d7708b25ee0a73de0c65f0e5521c47a0e907f5e1b933d79d972ef6"}, + {file = "duckdb-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cbd4f9fe7b7a56eff96c3f4d6778770dd370469ca2212eddbae5dd63749db5"}, + {file = "duckdb-1.0.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed228167c5d49888c5ef36f6f9cbf65011c2daf9dcb53ea8aa7a041ce567b3e4"}, + {file = "duckdb-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:46d8395fbcea7231fd5032a250b673cc99352fef349b718a23dea2c0dd2b8dec"}, + {file = "duckdb-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:6ad1fc1a4d57e7616944166a5f9417bdbca1ea65c490797e3786e3a42e162d8a"}, + {file = "duckdb-1.0.0.tar.gz", hash = "sha256:a2a059b77bc7d5b76ae9d88e267372deff19c291048d59450c431e166233d453"}, ] [[package]] name = "exceptiongroup" -version = "1.1.2" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, - {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -549,46 +599,31 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.2" +version = "3.15.4" description = "A platform independent file lock." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] - -[[package]] -name = "hologram" -version = "0.0.16" -description = "JSON schema generation from dataclasses" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "hologram-0.0.16-py3-none-any.whl", hash = "sha256:4e56bd525336bb64a18916f871977a4125b64be8aaa750233583003333cda361"}, - {file = "hologram-0.0.16.tar.gz", hash = "sha256:1c2c921b4e575361623ea0e0d0aa5aee377b1a333cc6c6a879e213ed34583e55"}, -] - -[package.dependencies] -jsonschema = ">=3.0" -python-dateutil = ">=2.8,<2.9" +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "identify" -version = "2.5.26" +version = "2.6.0" description = "File identification library for Python" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.26-py2.py3-none-any.whl", hash = "sha256:c22a8ead0d4ca11f1edd6c9418c3220669b3b7533ada0a0ffa6cc0ef85cf9b54"}, - {file = "identify-2.5.26.tar.gz", hash = "sha256:7243800bce2f58404ed41b7c002e53d4d22bcf3ae1b7900c2d7aefd95394bf7f"}, + {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, + {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, ] [package.extras] @@ -596,33 +631,33 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.4" +version = "3.8" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.8-py3-none-any.whl", hash = "sha256:050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac"}, + {file = "idna-3.8.tar.gz", hash = "sha256:d838c2c0ed6fced7693d5e8ab8e734d5f8fda53a039c0164afb0b82e771e3603"}, ] [[package]] name = "importlib-metadata" -version = "6.8.0" +version = "6.11.0" description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, + {file = "importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b"}, + {file = "importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] @@ -655,14 +690,14 @@ six = "*" [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -673,40 +708,55 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "3.2.0" +version = "4.23.0" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, - {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, ] [package.dependencies] -attrs = ">=17.4.0" -pyrsistent = ">=0.14.0" -setuptools = "*" -six = ">=1.11.0" +attrs = ">=22.2.0" +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rpds-py = ">=0.7.1" [package.extras] -format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] -format-nongpl = ["idna", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "webcolors"] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" [[package]] name = "leather" -version = "0.3.4" +version = "0.4.0" description = "Python charting for 80% of humans." category = "main" optional = false python-versions = "*" files = [ - {file = "leather-0.3.4-py2.py3-none-any.whl", hash = "sha256:5e741daee96e9f1e9e06081b8c8a10c4ac199301a0564cdd99b09df15b4603d2"}, - {file = "leather-0.3.4.tar.gz", hash = "sha256:b43e21c8fa46b2679de8449f4d953c06418666dc058ce41055ee8a8d3bb40918"}, + {file = "leather-0.4.0-py2.py3-none-any.whl", hash = "sha256:18290bc93749ae39039af5e31e871fcfad74d26c4c3ea28ea4f681f4571b3a2b"}, + {file = "leather-0.4.0.tar.gz", hash = "sha256:f964bec2086f3153a6c16e707f20cb718f811f57af116075f4c0f4805c608b95"}, ] -[package.dependencies] -six = ">=1.6.1" +[package.extras] +test = ["cssselect (>=0.9.1)", "lxml (>=3.6.0)", "pytest", "pytest-cov"] [[package]] name = "logbook" @@ -765,74 +815,84 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "mashumaro" -version = "3.8.1" -description = "Fast serialization library on top of dataclasses" +version = "3.13.1" +description = "Fast and well tested serialization library" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mashumaro-3.8.1-py3-none-any.whl", hash = "sha256:e060469a4bec1c86f8145ea27ecd99027ea3e343075a4efcb5e8a969a45b9fb9"}, - {file = "mashumaro-3.8.1.tar.gz", hash = "sha256:8bae8b25e2287b75094655b8ba8635f34016c09ca16498188f2f3b198d88b7ef"}, + {file = "mashumaro-3.13.1-py3-none-any.whl", hash = "sha256:ad0a162b8f4ea232dadd2891d77ff20165b855b9d84610f36ac84462d4576aa0"}, + {file = "mashumaro-3.13.1.tar.gz", hash = "sha256:169f0290253b3e6077bcb39c14a9dd0791a3fdedd9e286e536ae561d4ff1975b"}, ] [package.dependencies] @@ -874,236 +934,275 @@ six = ">=1.9.0,<2.0" [[package]] name = "more-itertools" -version = "8.14.0" +version = "10.4.0" description = "More routines for operating on iterables, beyond itertools" category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "more-itertools-8.14.0.tar.gz", hash = "sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750"}, - {file = "more_itertools-8.14.0-py3-none-any.whl", hash = "sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2"}, + {file = "more-itertools-10.4.0.tar.gz", hash = "sha256:fe0e63c4ab068eac62410ab05cccca2dc71ec44ba8ef29916a0090df061cf923"}, + {file = "more_itertools-10.4.0-py3-none-any.whl", hash = "sha256:0f7d9f83a0a8dcfa8a2694a770590d98a67ea943e3d9f5298309a484758c4e27"}, ] [[package]] name = "msgpack" -version = "1.0.5" +version = "1.0.8" description = "MessagePack serializer" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, - {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, - {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, - {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, - {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, - {file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"}, - {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"}, - {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"}, - {file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"}, - {file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"}, - {file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"}, - {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"}, - {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"}, - {file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"}, - {file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, - {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, - {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, - {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, - {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, - {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, + {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, + {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, + {file = "msgpack-1.0.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982"}, + {file = "msgpack-1.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d"}, + {file = "msgpack-1.0.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653"}, + {file = "msgpack-1.0.8-cp310-cp310-win32.whl", hash = "sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693"}, + {file = "msgpack-1.0.8-cp310-cp310-win_amd64.whl", hash = "sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad"}, + {file = "msgpack-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85"}, + {file = "msgpack-1.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b"}, + {file = "msgpack-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce"}, + {file = "msgpack-1.0.8-cp311-cp311-win32.whl", hash = "sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305"}, + {file = "msgpack-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b"}, + {file = "msgpack-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc"}, + {file = "msgpack-1.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04"}, + {file = "msgpack-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543"}, + {file = "msgpack-1.0.8-cp312-cp312-win32.whl", hash = "sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c"}, + {file = "msgpack-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151"}, + {file = "msgpack-1.0.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db"}, + {file = "msgpack-1.0.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2"}, + {file = "msgpack-1.0.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a"}, + {file = "msgpack-1.0.8-cp38-cp38-win32.whl", hash = "sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c"}, + {file = "msgpack-1.0.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596"}, + {file = "msgpack-1.0.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228"}, + {file = "msgpack-1.0.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746"}, + {file = "msgpack-1.0.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273"}, + {file = "msgpack-1.0.8-cp39-cp39-win32.whl", hash = "sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d"}, + {file = "msgpack-1.0.8-cp39-cp39-win_amd64.whl", hash = "sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011"}, + {file = "msgpack-1.0.8.tar.gz", hash = "sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3"}, ] [[package]] name = "networkx" -version = "3.1" +version = "3.3" description = "Python package for creating and manipulating graphs and networks" category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"}, - {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"}, + {file = "networkx-3.3-py3-none-any.whl", hash = "sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2"}, + {file = "networkx-3.3.tar.gz", hash = "sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9"}, ] [package.extras] -default = ["matplotlib (>=3.4)", "numpy (>=1.20)", "pandas (>=1.3)", "scipy (>=1.8)"] -developer = ["mypy (>=1.1)", "pre-commit (>=3.2)"] -doc = ["nb2plots (>=0.6)", "numpydoc (>=1.5)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.13)", "sphinx (>=6.1)", "sphinx-gallery (>=0.12)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.10)", "sympy (>=1.10)"] -test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] +default = ["matplotlib (>=3.6)", "numpy (>=1.23)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.5)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["myst-nb (>=1.0)", "numpydoc (>=1.7)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=2.0)", "pygraphviz (>=1.12)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "nodeenv" -version = "1.8.0" +version = "1.9.1" description = "Node.js virtual environment builder" category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] -[package.dependencies] -setuptools = "*" - [[package]] name = "numpy" -version = "1.25.2" +version = "2.1.0" description = "Fundamental package for array computing in Python" category = "main" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6326ab99b52fafdcdeccf602d6286191a79fe2fda0ae90573c5814cd2b0bc1b8"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0937e54c09f7a9a68da6889362ddd2ff584c02d015ec92672c099b61555f8911"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:30014b234f07b5fec20f4146f69e13cfb1e33ee9a18a1879a0142fbb00d47673"}, + {file = "numpy-2.1.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:899da829b362ade41e1e7eccad2cf274035e1cb36ba73034946fccd4afd8606b"}, + {file = "numpy-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08801848a40aea24ce16c2ecde3b756f9ad756586fb2d13210939eb69b023f5b"}, + {file = "numpy-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:398049e237d1aae53d82a416dade04defed1a47f87d18d5bd615b6e7d7e41d1f"}, + {file = "numpy-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0abb3916a35d9090088a748636b2c06dc9a6542f99cd476979fb156a18192b84"}, + {file = "numpy-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10e2350aea18d04832319aac0f887d5fcec1b36abd485d14f173e3e900b83e33"}, + {file = "numpy-2.1.0-cp310-cp310-win32.whl", hash = "sha256:f6b26e6c3b98adb648243670fddc8cab6ae17473f9dc58c51574af3e64d61211"}, + {file = "numpy-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:f505264735ee074250a9c78247ee8618292091d9d1fcc023290e9ac67e8f1afa"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:76368c788ccb4f4782cf9c842b316140142b4cbf22ff8db82724e82fe1205dce"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:f8e93a01a35be08d31ae33021e5268f157a2d60ebd643cfc15de6ab8e4722eb1"}, + {file = "numpy-2.1.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9523f8b46485db6939bd069b28b642fec86c30909cea90ef550373787f79530e"}, + {file = "numpy-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54139e0eb219f52f60656d163cbe67c31ede51d13236c950145473504fa208cb"}, + {file = "numpy-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5ebbf9fbdabed208d4ecd2e1dfd2c0741af2f876e7ae522c2537d404ca895c3"}, + {file = "numpy-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:378cb4f24c7d93066ee4103204f73ed046eb88f9ad5bb2275bb9fa0f6a02bd36"}, + {file = "numpy-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8f699a709120b220dfe173f79c73cb2a2cab2c0b88dd59d7b49407d032b8ebd"}, + {file = "numpy-2.1.0-cp311-cp311-win32.whl", hash = "sha256:ffbd6faeb190aaf2b5e9024bac9622d2ee549b7ec89ef3a9373fa35313d44e0e"}, + {file = "numpy-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0af3a5987f59d9c529c022c8c2a64805b339b7ef506509fba7d0556649b9714b"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fe76d75b345dc045acdbc006adcb197cc680754afd6c259de60d358d60c93736"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f358ea9e47eb3c2d6eba121ab512dfff38a88db719c38d1e67349af210bc7529"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:dd94ce596bda40a9618324547cfaaf6650b1a24f5390350142499aa4e34e53d1"}, + {file = "numpy-2.1.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b47c551c6724960479cefd7353656498b86e7232429e3a41ab83be4da1b109e8"}, + {file = "numpy-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0756a179afa766ad7cb6f036de622e8a8f16ffdd55aa31f296c870b5679d745"}, + {file = "numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24003ba8ff22ea29a8c306e61d316ac74111cebf942afbf692df65509a05f111"}, + {file = "numpy-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b34fa5e3b5d6dc7e0a4243fa0f81367027cb6f4a7215a17852979634b5544ee0"}, + {file = "numpy-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c4f982715e65036c34897eb598d64aef15150c447be2cfc6643ec7a11af06574"}, + {file = "numpy-2.1.0-cp312-cp312-win32.whl", hash = "sha256:c4cd94dfefbefec3f8b544f61286584292d740e6e9d4677769bc76b8f41deb02"}, + {file = "numpy-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0cdef204199278f5c461a0bed6ed2e052998276e6d8ab2963d5b5c39a0500bc"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8ab81ccd753859ab89e67199b9da62c543850f819993761c1e94a75a814ed667"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442596f01913656d579309edcd179a2a2f9977d9a14ff41d042475280fc7f34e"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:848c6b5cad9898e4b9ef251b6f934fa34630371f2e916261070a4eb9092ffd33"}, + {file = "numpy-2.1.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:54c6a63e9d81efe64bfb7bcb0ec64332a87d0b87575f6009c8ba67ea6374770b"}, + {file = "numpy-2.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:652e92fc409e278abdd61e9505649e3938f6d04ce7ef1953f2ec598a50e7c195"}, + {file = "numpy-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab32eb9170bf8ffcbb14f11613f4a0b108d3ffee0832457c5d4808233ba8977"}, + {file = "numpy-2.1.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8fb49a0ba4d8f41198ae2d52118b050fd34dace4b8f3fb0ee34e23eb4ae775b1"}, + {file = "numpy-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44e44973262dc3ae79e9063a1284a73e09d01b894b534a769732ccd46c28cc62"}, + {file = "numpy-2.1.0-cp313-cp313-win32.whl", hash = "sha256:ab83adc099ec62e044b1fbb3a05499fa1e99f6d53a1dde102b2d85eff66ed324"}, + {file = "numpy-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:de844aaa4815b78f6023832590d77da0e3b6805c644c33ce94a1e449f16d6ab5"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:343e3e152bf5a087511cd325e3b7ecfd5b92d369e80e74c12cd87826e263ec06"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f07fa2f15dabe91259828ce7d71b5ca9e2eb7c8c26baa822c825ce43552f4883"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5474dad8c86ee9ba9bb776f4b99ef2d41b3b8f4e0d199d4f7304728ed34d0300"}, + {file = "numpy-2.1.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:1f817c71683fd1bb5cff1529a1d085a57f02ccd2ebc5cd2c566f9a01118e3b7d"}, + {file = "numpy-2.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a3336fbfa0d38d3deacd3fe7f3d07e13597f29c13abf4d15c3b6dc2291cbbdd"}, + {file = "numpy-2.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a894c51fd8c4e834f00ac742abad73fc485df1062f1b875661a3c1e1fb1c2f6"}, + {file = "numpy-2.1.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:9156ca1f79fc4acc226696e95bfcc2b486f165a6a59ebe22b2c1f82ab190384a"}, + {file = "numpy-2.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:624884b572dff8ca8f60fab591413f077471de64e376b17d291b19f56504b2bb"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:15ef8b2177eeb7e37dd5ef4016f30b7659c57c2c0b57a779f1d537ff33a72c7b"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:e5f0642cdf4636198a4990de7a71b693d824c56a757862230454629cf62e323d"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15976718c004466406342789f31b6673776360f3b1e3c575f25302d7e789575"}, + {file = "numpy-2.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6c1de77ded79fef664d5098a66810d4d27ca0224e9051906e634b3f7ead134c2"}, + {file = "numpy-2.1.0.tar.gz", hash = "sha256:7dc90da0081f7e1da49ec4e398ede6a8e9cc4f5ebe5f9e06b443ed889ee9aaa2"}, +] + +[[package]] +name = "ordered-set" +version = "4.1.0" +description = "An OrderedSet is a custom MutableSet that remembers its order, so that every" +category = "main" +optional = false +python-versions = ">=3.7" files = [ - {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, - {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, - {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, - {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, - {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, - {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, - {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, - {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, - {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, - {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, - {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, - {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, + {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, + {file = "ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562"}, ] +[package.extras] +dev = ["black", "mypy", "pytest"] + [[package]] name = "packaging" -version = "23.1" +version = "24.1" description = "Core utilities for Python packages" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] name = "pandas" -version = "2.0.3" +version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, - {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, - {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, - {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, - {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, - {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, - {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, - {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, - {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, - {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, - {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, ] [package.dependencies] numpy = [ - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" -tzdata = ">=2022.1" +tzdata = ">=2022.7" [package.extras] -all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] -aws = ["s3fs (>=2021.08.0)"] -clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] -compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] -computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"] -feather = ["pyarrow (>=7.0.0)"] -fss = ["fsspec (>=2021.07.0)"] -gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"] -hdf5 = ["tables (>=3.6.1)"] -html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"] -mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"] -parquet = ["pyarrow (>=7.0.0)"] -performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"] -plot = ["matplotlib (>=3.6.1)"] -postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] -spss = ["pyreadstat (>=1.1.2)"] -sql-other = ["SQLAlchemy (>=1.4.16)"] -test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.6.3)"] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] [[package]] name = "parsedatetime" @@ -1119,26 +1218,26 @@ files = [ [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "patsy" -version = "0.5.3" +version = "0.5.6" description = "A Python package for describing statistical models and for building design matrices." category = "main" optional = false python-versions = "*" files = [ - {file = "patsy-0.5.3-py2.py3-none-any.whl", hash = "sha256:7eb5349754ed6aa982af81f636479b1b8db9d5b1a6e957a6016ec0534b5c86b7"}, - {file = "patsy-0.5.3.tar.gz", hash = "sha256:bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277"}, + {file = "patsy-0.5.6-py2.py3-none-any.whl", hash = "sha256:19056886fd8fa71863fa32f0eb090267f21fb74be00f19f5c70b2e9d76c883c6"}, + {file = "patsy-0.5.6.tar.gz", hash = "sha256:95c6d47a7222535f84bff7f63d7303f2e297747a598db89cf5c67f0c0c7d2cdb"}, ] [package.dependencies] @@ -1150,30 +1249,31 @@ test = ["pytest", "pytest-cov", "scipy"] [[package]] name = "platformdirs" -version = "3.10.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" 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-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.2.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1182,14 +1282,14 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.3.3" +version = "3.8.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, - {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"}, + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, ] [package.dependencies] @@ -1201,25 +1301,23 @@ virtualenv = ">=20.10.0" [[package]] name = "protobuf" -version = "4.24.0" +version = "4.25.4" description = "" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "protobuf-4.24.0-cp310-abi3-win32.whl", hash = "sha256:81cb9c4621d2abfe181154354f63af1c41b00a4882fb230b4425cbaed65e8f52"}, - {file = "protobuf-4.24.0-cp310-abi3-win_amd64.whl", hash = "sha256:6c817cf4a26334625a1904b38523d1b343ff8b637d75d2c8790189a4064e51c3"}, - {file = "protobuf-4.24.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:ae97b5de10f25b7a443b40427033e545a32b0e9dda17bcd8330d70033379b3e5"}, - {file = "protobuf-4.24.0-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:567fe6b0647494845d0849e3d5b260bfdd75692bf452cdc9cb660d12457c055d"}, - {file = "protobuf-4.24.0-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:a6b1ca92ccabfd9903c0c7dde8876221dc7d8d87ad5c42e095cc11b15d3569c7"}, - {file = "protobuf-4.24.0-cp37-cp37m-win32.whl", hash = "sha256:a38400a692fd0c6944c3c58837d112f135eb1ed6cdad5ca6c5763336e74f1a04"}, - {file = "protobuf-4.24.0-cp37-cp37m-win_amd64.whl", hash = "sha256:5ab19ee50037d4b663c02218a811a5e1e7bb30940c79aac385b96e7a4f9daa61"}, - {file = "protobuf-4.24.0-cp38-cp38-win32.whl", hash = "sha256:e8834ef0b4c88666ebb7c7ec18045aa0f4325481d724daa624a4cf9f28134653"}, - {file = "protobuf-4.24.0-cp38-cp38-win_amd64.whl", hash = "sha256:8bb52a2be32db82ddc623aefcedfe1e0eb51da60e18fcc908fb8885c81d72109"}, - {file = "protobuf-4.24.0-cp39-cp39-win32.whl", hash = "sha256:ae7a1835721086013de193311df858bc12cd247abe4ef9710b715d930b95b33e"}, - {file = "protobuf-4.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:44825e963008f8ea0d26c51911c30d3e82e122997c3c4568fd0385dd7bacaedf"}, - {file = "protobuf-4.24.0-py3-none-any.whl", hash = "sha256:82e6e9ebdd15b8200e8423676eab38b774624d6a1ad696a60d86a2ac93f18201"}, - {file = "protobuf-4.24.0.tar.gz", hash = "sha256:5d0ceb9de6e08311832169e601d1fc71bd8e8c779f3ee38a97a78554945ecb85"}, + {file = "protobuf-4.25.4-cp310-abi3-win32.whl", hash = "sha256:db9fd45183e1a67722cafa5c1da3e85c6492a5383f127c86c4c4aa4845867dc4"}, + {file = "protobuf-4.25.4-cp310-abi3-win_amd64.whl", hash = "sha256:ba3d8504116a921af46499471c63a85260c1a5fc23333154a427a310e015d26d"}, + {file = "protobuf-4.25.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:eecd41bfc0e4b1bd3fa7909ed93dd14dd5567b98c941d6c1ad08fdcab3d6884b"}, + {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4c8a70fdcb995dcf6c8966cfa3a29101916f7225e9afe3ced4395359955d3835"}, + {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:3319e073562e2515c6ddc643eb92ce20809f5d8f10fead3332f71c63be6a7040"}, + {file = "protobuf-4.25.4-cp38-cp38-win32.whl", hash = "sha256:7e372cbbda66a63ebca18f8ffaa6948455dfecc4e9c1029312f6c2edcd86c4e1"}, + {file = "protobuf-4.25.4-cp38-cp38-win_amd64.whl", hash = "sha256:051e97ce9fa6067a4546e75cb14f90cf0232dcb3e3d508c448b8d0e4265b61c1"}, + {file = "protobuf-4.25.4-cp39-cp39-win32.whl", hash = "sha256:90bf6fd378494eb698805bbbe7afe6c5d12c8e17fca817a646cd6a1818c696ca"}, + {file = "protobuf-4.25.4-cp39-cp39-win_amd64.whl", hash = "sha256:ac79a48d6b99dfed2729ccccee547b34a1d3d63289c71cef056653a846a2240f"}, + {file = "protobuf-4.25.4-py3-none-any.whl", hash = "sha256:bfbebc1c8e4793cfd58589acfb8a1026be0003e852b9da7db5a4285bde996978"}, + {file = "protobuf-4.25.4.tar.gz", hash = "sha256:0dc4a62cc4052a036ee2204d26fe4d835c62827c855c8a03f29fe6da146b380d"}, ] [[package]] @@ -1303,133 +1401,156 @@ files = [ {file = "psycopg2_binary-2.9.9-cp39-cp39-win_amd64.whl", hash = "sha256:f7ae5d65ccfbebdfa761585228eb4d0df3a8b15cfb53bd953e713e09fbb12957"}, ] -[[package]] -name = "pycparser" -version = "2.21" -description = "C parser in Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] - [[package]] name = "pydantic" -version = "1.10.12" -description = "Data validation and settings management using python type hints" +version = "2.8.2" +description = "Data validation using Python type hints" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pydantic-1.10.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a1fcb59f2f355ec350073af41d927bf83a63b50e640f4dbaa01053a28b7a7718"}, - {file = "pydantic-1.10.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b7ccf02d7eb340b216ec33e53a3a629856afe1c6e0ef91d84a4e6f2fb2ca70fe"}, - {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fb2aa3ab3728d950bcc885a2e9eff6c8fc40bc0b7bb434e555c215491bcf48b"}, - {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:771735dc43cf8383959dc9b90aa281f0b6092321ca98677c5fb6125a6f56d58d"}, - {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca48477862372ac3770969b9d75f1bf66131d386dba79506c46d75e6b48c1e09"}, - {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5e7add47a5b5a40c49b3036d464e3c7802f8ae0d1e66035ea16aa5b7a3923ed"}, - {file = "pydantic-1.10.12-cp310-cp310-win_amd64.whl", hash = "sha256:e4129b528c6baa99a429f97ce733fff478ec955513630e61b49804b6cf9b224a"}, - {file = "pydantic-1.10.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0d191db0f92dfcb1dec210ca244fdae5cbe918c6050b342d619c09d31eea0cc"}, - {file = "pydantic-1.10.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:795e34e6cc065f8f498c89b894a3c6da294a936ee71e644e4bd44de048af1405"}, - {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69328e15cfda2c392da4e713443c7dbffa1505bc9d566e71e55abe14c97ddc62"}, - {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2031de0967c279df0d8a1c72b4ffc411ecd06bac607a212892757db7462fc494"}, - {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ba5b2e6fe6ca2b7e013398bc7d7b170e21cce322d266ffcd57cca313e54fb246"}, - {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a7bac939fa326db1ab741c9d7f44c565a1d1e80908b3797f7f81a4f86bc8d33"}, - {file = "pydantic-1.10.12-cp311-cp311-win_amd64.whl", hash = "sha256:87afda5539d5140cb8ba9e8b8c8865cb5b1463924d38490d73d3ccfd80896b3f"}, - {file = "pydantic-1.10.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:549a8e3d81df0a85226963611950b12d2d334f214436a19537b2efed61b7639a"}, - {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598da88dfa127b666852bef6d0d796573a8cf5009ffd62104094a4fe39599565"}, - {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba5c4a8552bff16c61882db58544116d021d0b31ee7c66958d14cf386a5b5350"}, - {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79e6a11a07da7374f46970410b41d5e266f7f38f6a17a9c4823db80dadf4303"}, - {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab26038b8375581dc832a63c948f261ae0aa21f1d34c1293469f135fa92972a5"}, - {file = "pydantic-1.10.12-cp37-cp37m-win_amd64.whl", hash = "sha256:e0a16d274b588767602b7646fa05af2782576a6cf1022f4ba74cbb4db66f6ca8"}, - {file = "pydantic-1.10.12-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a9dfa722316f4acf4460afdf5d41d5246a80e249c7ff475c43a3a1e9d75cf62"}, - {file = "pydantic-1.10.12-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a73f489aebd0c2121ed974054cb2759af8a9f747de120acd2c3394cf84176ccb"}, - {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bcb8cbfccfcf02acb8f1a261143fab622831d9c0989707e0e659f77a18e0"}, - {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fcfb5296d7877af406ba1547dfde9943b1256d8928732267e2653c26938cd9c"}, - {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2f9a6fab5f82ada41d56b0602606a5506aab165ca54e52bc4545028382ef1c5d"}, - {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dea7adcc33d5d105896401a1f37d56b47d443a2b2605ff8a969a0ed5543f7e33"}, - {file = "pydantic-1.10.12-cp38-cp38-win_amd64.whl", hash = "sha256:1eb2085c13bce1612da8537b2d90f549c8cbb05c67e8f22854e201bde5d98a47"}, - {file = "pydantic-1.10.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ef6c96b2baa2100ec91a4b428f80d8f28a3c9e53568219b6c298c1125572ebc6"}, - {file = "pydantic-1.10.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c076be61cd0177a8433c0adcb03475baf4ee91edf5a4e550161ad57fc90f523"}, - {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d5a58feb9a39f481eda4d5ca220aa8b9d4f21a41274760b9bc66bfd72595b86"}, - {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5f805d2d5d0a41633651a73fa4ecdd0b3d7a49de4ec3fadf062fe16501ddbf1"}, - {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1289c180abd4bd4555bb927c42ee42abc3aee02b0fb2d1223fb7c6e5bef87dbe"}, - {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5d1197e462e0364906cbc19681605cb7c036f2475c899b6f296104ad42b9f5fb"}, - {file = "pydantic-1.10.12-cp39-cp39-win_amd64.whl", hash = "sha256:fdbdd1d630195689f325c9ef1a12900524dceb503b00a987663ff4f58669b93d"}, - {file = "pydantic-1.10.12-py3-none-any.whl", hash = "sha256:b749a43aa51e32839c9d71dc67eb1e4221bb04af1033a32e3923d46f9effa942"}, - {file = "pydantic-1.10.12.tar.gz", hash = "sha256:0fe8a415cea8f340e7a9af9c54fc71a649b43e8ca3cc732986116b3cb135d303"}, + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.20.1" +typing-extensions = [ + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, +] [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] [[package]] -name = "pygments" -version = "2.16.1" -description = "Pygments is a syntax highlighting package written in Python." +name = "pydantic-core" +version = "2.20.1" +description = "Core functionality for Pydantic validation and serialization" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, ] -[package.extras] -plugins = ["importlib-metadata"] +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] -name = "pyrsistent" -version = "0.19.3" -description = "Persistent/Functional/Immutable data structures" +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, - {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, - {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, - {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, - {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, - {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + [[package]] name = "pytest" -version = "7.4.0" +version = "8.3.2" description = "pytest: simple powerful testing with Python" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, + {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, ] [package.dependencies] @@ -1437,22 +1558,22 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" -version = "4.1.0" +version = "5.0.0" description = "Pytest plugin for measuring coverage." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] @@ -1460,18 +1581,18 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -1479,14 +1600,14 @@ six = ">=1.5" [[package]] name = "python-slugify" -version = "8.0.1" +version = "8.0.4" description = "A Python slugify application that also handles Unicode" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "python-slugify-8.0.1.tar.gz", hash = "sha256:ce0d46ddb668b3be82f4ed5e503dbc33dd815d83e2eb6824211310d3fb172a27"}, - {file = "python_slugify-8.0.1-py2.py3-none-any.whl", hash = "sha256:70ca6ea68fe63ecc8fa4fcf00ae651fc8a5d02d93dcd12ae6d4fc7ca46c4d395"}, + {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, + {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, ] [package.dependencies] @@ -1509,76 +1630,105 @@ files = [ [[package]] name = "pytz" -version = "2023.3" +version = "2024.1" description = "World timezone definitions, modern and historical" category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "pyyaml" -version = "6.0.1" +version = "6.0.2" description = "YAML parser and emitter for Python" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "referencing" +version = "0.35.1" +description = "JSON Referencing + Python" +category = "main" +optional = false +python-versions = ">=3.8" files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, ] +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -1593,14 +1743,14 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rich" -version = "13.5.2" +version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"}, - {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"}, + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, ] [package.dependencies] @@ -1612,105 +1762,216 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rich-click" -version = "1.6.1" +version = "1.8.3" description = "Format click help output nicely with rich" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "rich-click-1.6.1.tar.gz", hash = "sha256:f8ff96693ec6e261d1544e9f7d9a5811c5ef5d74c8adb4978430fc0dac16777e"}, - {file = "rich_click-1.6.1-py3-none-any.whl", hash = "sha256:0fcf4d1a09029d79322dd814ab0b2e66ac183633037561881d45abae8a161d95"}, + {file = "rich_click-1.8.3-py3-none-any.whl", hash = "sha256:636d9c040d31c5eee242201b5bf4f2d358bfae4db14bb22ec1cafa717cfd02cd"}, + {file = "rich_click-1.8.3.tar.gz", hash = "sha256:6d75bdfa7aa9ed2c467789a0688bc6da23fbe3a143e19aa6ad3f8bac113d2ab3"}, ] [package.dependencies] click = ">=7" -rich = ">=10.7.0" +rich = ">=10.7" +typing-extensions = "*" [package.extras] -dev = ["pre-commit"] +dev = ["mypy", "packaging", "pre-commit", "pytest", "pytest-cov", "rich-codex", "ruff", "types-setuptools"] +docs = ["markdown-include", "mkdocs", "mkdocs-glightbox", "mkdocs-material-extensions", "mkdocs-material[imaging] (>=9.5.18,<9.6.0)", "mkdocs-rss-plugin", "mkdocstrings[python]", "rich-codex"] [[package]] -name = "ruff" -version = "0.0.284" -description = "An extremely fast Python linter, written in Rust." +name = "rpds-py" +version = "0.20.0" +description = "Python bindings to Rust's persistent data structures (rpds)" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "ruff-0.0.284-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:8b949084941232e2c27f8d12c78c5a6a010927d712ecff17231ee1a8371c205b"}, - {file = "ruff-0.0.284-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:a3930d66b35e4dc96197422381dff2a4e965e9278b5533e71ae8474ef202fab0"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d1f7096038961d8bc3b956ee69d73826843eb5b39a5fa4ee717ed473ed69c95"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bcaf85907fc905d838f46490ee15f04031927bbea44c478394b0bfdeadc27362"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3660b85a9d84162a055f1add334623ae2d8022a84dcd605d61c30a57b436c32"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0a3218458b140ea794da72b20ea09cbe13c4c1cdb7ac35e797370354628f4c05"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2fe880cff13fffd735387efbcad54ba0ff1272bceea07f86852a33ca71276f4"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1d098ea74d0ce31478765d1f8b4fbdbba2efc532397b5c5e8e5ea0c13d7e5ae"}, - {file = "ruff-0.0.284-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4c79ae3308e308b94635cd57a369d1e6f146d85019da2fbc63f55da183ee29b"}, - {file = "ruff-0.0.284-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f86b2b1e7033c00de45cc176cf26778650fb8804073a0495aca2f674797becbb"}, - {file = "ruff-0.0.284-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e37e086f4d623c05cd45a6fe5006e77a2b37d57773aad96b7802a6b8ecf9c910"}, - {file = "ruff-0.0.284-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d29dfbe314e1131aa53df213fdfea7ee874dd96ea0dd1471093d93b59498384d"}, - {file = "ruff-0.0.284-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:88295fd649d0aa1f1271441df75bf06266a199497afd239fd392abcfd75acd7e"}, - {file = "ruff-0.0.284-py3-none-win32.whl", hash = "sha256:735cd62fccc577032a367c31f6a9de7c1eb4c01fa9a2e60775067f44f3fc3091"}, - {file = "ruff-0.0.284-py3-none-win_amd64.whl", hash = "sha256:f67ed868d79fbcc61ad0fa034fe6eed2e8d438d32abce9c04b7c4c1464b2cf8e"}, - {file = "ruff-0.0.284-py3-none-win_arm64.whl", hash = "sha256:1292cfc764eeec3cde35b3a31eae3f661d86418b5e220f5d5dba1c27a6eccbb6"}, - {file = "ruff-0.0.284.tar.gz", hash = "sha256:ebd3cc55cd499d326aac17a331deaea29bea206e01c08862f9b5c6e93d77a491"}, + {file = "rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2"}, + {file = "rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf"}, + {file = "rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce"}, + {file = "rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94"}, + {file = "rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee"}, + {file = "rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489"}, + {file = "rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209"}, + {file = "rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad"}, + {file = "rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58"}, + {file = "rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0"}, + {file = "rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6"}, + {file = "rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4"}, + {file = "rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940"}, + {file = "rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174"}, + {file = "rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139"}, + {file = "rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29"}, + {file = "rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879"}, + {file = "rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2"}, + {file = "rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57"}, + {file = "rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a"}, + {file = "rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24"}, + {file = "rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751"}, + {file = "rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253"}, + {file = "rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a"}, + {file = "rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5"}, + {file = "rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22"}, + {file = "rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda"}, + {file = "rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420"}, + {file = "rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b"}, + {file = "rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7"}, + {file = "rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344"}, + {file = "rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec"}, + {file = "rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8"}, + {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, ] [[package]] -name = "scipy" -version = "1.9.3" -description = "Fundamental algorithms for scientific computing in Python" +name = "ruff" +version = "0.6.2" +description = "An extremely fast Python linter and code formatter, written in Rust." category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, - {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, - {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, - {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, - {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, - {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, - {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, + {file = "ruff-0.6.2-py3-none-linux_armv6l.whl", hash = "sha256:5c8cbc6252deb3ea840ad6a20b0f8583caab0c5ef4f9cca21adc5a92b8f79f3c"}, + {file = "ruff-0.6.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:17002fe241e76544448a8e1e6118abecbe8cd10cf68fde635dad480dba594570"}, + {file = "ruff-0.6.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3dbeac76ed13456f8158b8f4fe087bf87882e645c8e8b606dd17b0b66c2c1158"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:094600ee88cda325988d3f54e3588c46de5c18dae09d683ace278b11f9d4d534"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:316d418fe258c036ba05fbf7dfc1f7d3d4096db63431546163b472285668132b"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d72b8b3abf8a2d51b7b9944a41307d2f442558ccb3859bbd87e6ae9be1694a5d"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2aed7e243be68487aa8982e91c6e260982d00da3f38955873aecd5a9204b1d66"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d371f7fc9cec83497fe7cf5eaf5b76e22a8efce463de5f775a1826197feb9df8"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8f310d63af08f583363dfb844ba8f9417b558199c58a5999215082036d795a1"}, + {file = "ruff-0.6.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7db6880c53c56addb8638fe444818183385ec85eeada1d48fc5abe045301b2f1"}, + {file = "ruff-0.6.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1175d39faadd9a50718f478d23bfc1d4da5743f1ab56af81a2b6caf0a2394f23"}, + {file = "ruff-0.6.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b939f9c86d51635fe486585389f54582f0d65b8238e08c327c1534844b3bb9a"}, + {file = "ruff-0.6.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d0d62ca91219f906caf9b187dea50d17353f15ec9bb15aae4a606cd697b49b4c"}, + {file = "ruff-0.6.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7438a7288f9d67ed3c8ce4d059e67f7ed65e9fe3aa2ab6f5b4b3610e57e3cb56"}, + {file = "ruff-0.6.2-py3-none-win32.whl", hash = "sha256:279d5f7d86696df5f9549b56b9b6a7f6c72961b619022b5b7999b15db392a4da"}, + {file = "ruff-0.6.2-py3-none-win_amd64.whl", hash = "sha256:d9f3469c7dd43cd22eb1c3fc16926fb8258d50cb1b216658a07be95dd117b0f2"}, + {file = "ruff-0.6.2-py3-none-win_arm64.whl", hash = "sha256:f28fcd2cd0e02bdf739297516d5643a945cc7caf09bd9bcb4d932540a5ea4fa9"}, + {file = "ruff-0.6.2.tar.gz", hash = "sha256:239ee6beb9e91feb8e0ec384204a763f36cb53fb895a1a364618c6abb076b3be"}, ] -[package.dependencies] -numpy = ">=1.18.5,<1.26.0" - -[package.extras] -dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] -test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - [[package]] -name = "setuptools" -version = "68.0.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" +name = "scipy" +version = "1.14.1" +description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false -python-versions = ">=3.7" -files = [ - {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, - {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, +python-versions = ">=3.10" +files = [ + {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"}, + {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"}, + {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"}, + {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"}, + {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"}, + {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"}, + {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"}, + {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"}, + {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"}, + {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"}, + {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"}, + {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"}, + {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"}, + {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"}, + {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"}, + {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"}, + {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"}, + {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}, ] +[package.dependencies] +numpy = ">=1.23.5,<2.3" + [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "six" @@ -1726,65 +1987,64 @@ files = [ [[package]] name = "sqlparse" -version = "0.4.4" +version = "0.5.1" description = "A non-validating SQL parser." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3"}, - {file = "sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"}, + {file = "sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4"}, + {file = "sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"}, ] [package.extras] -dev = ["build", "flake8"] +dev = ["build", "hatch"] doc = ["sphinx"] -test = ["pytest", "pytest-cov"] [[package]] name = "statsmodels" -version = "0.14.0" +version = "0.14.2" description = "Statistical computations and models for Python" category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "statsmodels-0.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:16bfe0c96a53b20fa19067e3b6bd2f1d39e30d4891ea0d7bc20734a0ae95942d"}, - {file = "statsmodels-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a6a0a1a06ff79be8aa89c8494b33903442859add133f0dda1daf37c3c71682e"}, - {file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77b3cd3a5268ef966a0a08582c591bd29c09c88b4566c892a7c087935234f285"}, - {file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c64ebe9cf376cba0c31aed138e15ed179a1d128612dd241cdf299d159e5e882"}, - {file = "statsmodels-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb471f757fc45102a87e5d86e87dc2c8c78b34ad4f203679a46520f1d863b9da"}, - {file = "statsmodels-0.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:582f9e41092e342aaa04920d17cc3f97240e3ee198672f194719b5a3d08657d6"}, - {file = "statsmodels-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7ebe885ccaa64b4bc5ad49ac781c246e7a594b491f08ab4cfd5aa456c363a6f6"}, - {file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b587ee5d23369a0e881da6e37f78371dce4238cf7638a455db4b633a1a1c62d6"}, - {file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef7fa4813c7a73b0d8a0c830250f021c102c71c95e9fe0d6877bcfb56d38b8c"}, - {file = "statsmodels-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:a6ad7b8aadccd4e4dd7f315a07bef1bca41d194eeaf4ec600d20dea02d242fce"}, - {file = "statsmodels-0.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3757542c95247e4ab025291a740efa5da91dc11a05990c033d40fce31c450dc9"}, - {file = "statsmodels-0.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de489e3ed315bdba55c9d1554a2e89faa65d212e365ab81bc323fa52681fc60e"}, - {file = "statsmodels-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e290f4718177bffa8823a780f3b882d56dd64ad1c18cfb4bc8b5558f3f5757"}, - {file = "statsmodels-0.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71054f9dbcead56def14e3c9db6f66f943110fdfb19713caf0eb0f08c1ec03fd"}, - {file = "statsmodels-0.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:d7fda067837df94e0a614d93d3a38fb6868958d37f7f50afe2a534524f2660cb"}, - {file = "statsmodels-0.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1c7724ad573af26139a98393ae64bc318d1b19762b13442d96c7a3e793f495c3"}, - {file = "statsmodels-0.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3b0a135f3bfdeec987e36e3b3b4c53e0bb87a8d91464d2fcc4d169d176f46fdb"}, - {file = "statsmodels-0.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce28eb1c397dba437ec39b9ab18f2101806f388c7a0cf9cdfd8f09294ad1c799"}, - {file = "statsmodels-0.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b1c768dd94cc5ba8398121a632b673c625491aa7ed627b82cb4c880a25563f"}, - {file = "statsmodels-0.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:8d1e3e10dfbfcd58119ba5a4d3c7d519182b970a2aebaf0b6f539f55ae16058d"}, - {file = "statsmodels-0.14.0.tar.gz", hash = "sha256:6875c7d689e966d948f15eb816ab5616f4928706b180cf470fd5907ab6f647a4"}, + {file = "statsmodels-0.14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df5d6f95c46f0341da6c79ee7617e025bf2b371e190a8e60af1ae9cabbdb7a97"}, + {file = "statsmodels-0.14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a87ef21fadb445b650f327340dde703f13aec1540f3d497afb66324499dea97a"}, + {file = "statsmodels-0.14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5827a12e3ede2b98a784476d61d6bec43011fedb64aa815f2098e0573bece257"}, + {file = "statsmodels-0.14.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10f2b7611a61adb7d596a6d239abdf1a4d5492b931b00d5ed23d32844d40e48e"}, + {file = "statsmodels-0.14.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c254c66142f1167b4c7d031cf8db55294cc62ff3280e090fc45bd10a7f5fd029"}, + {file = "statsmodels-0.14.2-cp310-cp310-win_amd64.whl", hash = "sha256:0e46e9d59293c1af4cc1f4e5248f17e7e7bc596bfce44d327c789ac27f09111b"}, + {file = "statsmodels-0.14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:50fcb633987779e795142f51ba49fb27648d46e8a1382b32ebe8e503aaabaa9e"}, + {file = "statsmodels-0.14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:876794068abfaeed41df71b7887000031ecf44fbfa6b50d53ccb12ebb4ab747a"}, + {file = "statsmodels-0.14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a91f6c4943de13e3ce2e20ee3b5d26d02bd42300616a421becd53756f5deb37"}, + {file = "statsmodels-0.14.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4864a1c4615c5ea5f2e3b078a75bdedc90dd9da210a37e0738e064b419eccee2"}, + {file = "statsmodels-0.14.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afbd92410e0df06f3d8c4e7c0e2e71f63f4969531f280fb66059e2ecdb6e0415"}, + {file = "statsmodels-0.14.2-cp311-cp311-win_amd64.whl", hash = "sha256:8e004cfad0e46ce73fe3f3812010c746f0d4cfd48e307b45c14e9e360f3d2510"}, + {file = "statsmodels-0.14.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb0ba1ad3627705f5ae20af6b2982f500546d43892543b36c7bca3e2f87105e7"}, + {file = "statsmodels-0.14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90fd2f0110b73fc3fa5a2f21c3ca99b0e22285cccf38e56b5b8fd8ce28791b0f"}, + {file = "statsmodels-0.14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac780ad9ff552773798829a0b9c46820b0faa10e6454891f5e49a845123758ab"}, + {file = "statsmodels-0.14.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55d1742778400ae67acb04b50a2c7f5804182f8a874bd09ca397d69ed159a751"}, + {file = "statsmodels-0.14.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f870d14a587ea58a3b596aa994c2ed889cc051f9e450e887d2c83656fc6a64bf"}, + {file = "statsmodels-0.14.2-cp312-cp312-win_amd64.whl", hash = "sha256:f450fcbae214aae66bd9d2b9af48e0f8ba1cb0e8596c6ebb34e6e3f0fec6542c"}, + {file = "statsmodels-0.14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:201c3d00929c4a67cda1fe05b098c8dcf1b1eeefa88e80a8f963a844801ed59f"}, + {file = "statsmodels-0.14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9edefa4ce08e40bc1d67d2f79bc686ee5e238e801312b5a029ee7786448c389a"}, + {file = "statsmodels-0.14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c78a7601fdae1aa32104c5ebff2e0b72c26f33e870e2f94ab1bcfd927ece9b"}, + {file = "statsmodels-0.14.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f36494df7c03d63168fccee5038a62f469469ed6a4dd6eaeb9338abedcd0d5f5"}, + {file = "statsmodels-0.14.2-cp39-cp39-win_amd64.whl", hash = "sha256:8875823bdd41806dc853333cc4e1b7ef9481bad2380a999e66ea42382cf2178d"}, + {file = "statsmodels-0.14.2.tar.gz", hash = "sha256:890550147ad3a81cda24f0ba1a5c4021adc1601080bd00e191ae7cd6feecd6ad"}, ] [package.dependencies] -numpy = [ - {version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""}, - {version = ">=1.22.3", markers = "python_version == \"3.10\" and platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""}, -] +numpy = ">=1.22.3" packaging = ">=21.3" -pandas = ">=1.0" -patsy = ">=0.5.2" -scipy = ">=1.4,<1.9.2 || >1.9.2" +pandas = ">=1.4,<2.1.0 || >2.1.0" +patsy = ">=0.5.6" +scipy = ">=1.8,<1.9.2 || >1.9.2" [package.extras] -build = ["cython (>=0.29.26)"] -develop = ["colorama", "cython (>=0.29.26)", "cython (>=0.29.28,<3.0.0)", "flake8", "isort", "joblib", "matplotlib (>=3)", "oldest-supported-numpy (>=2022.4.18)", "pytest (>=7.0.1,<7.1.0)", "pytest-randomly", "pytest-xdist", "pywinpty", "setuptools-scm[toml] (>=7.0.0,<7.1.0)"] +build = ["cython (>=0.29.33)"] +develop = ["colorama", "cython (>=0.29.33)", "cython (>=3.0.10,<4)", "flake8", "isort", "joblib", "matplotlib (>=3)", "pytest (>=7.3.0,<8)", "pytest-cov", "pytest-randomly", "pytest-xdist", "pywinpty", "setuptools-scm[toml] (>=8.0,<9.0)"] docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "numpydoc", "pandas-datareader", "sphinx"] [[package]] @@ -1828,81 +2088,82 @@ files = [ [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] name = "tzdata" -version = "2023.3" +version = "2024.1" description = "Provider of IANA time zone data" category = "main" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, - {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] name = "urllib3" -version = "1.26.16" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.8" files = [ - {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, - {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.24.3" +version = "20.26.3" description = "Virtual Python Environment builder" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.3-py3-none-any.whl", hash = "sha256:95a6e9398b4967fbcb5fef2acec5efaf9aa4972049d9ae41f95e0972a683fd02"}, - {file = "virtualenv-20.24.3.tar.gz", hash = "sha256:e5c3b4ce817b0b328af041506a2a299418c98747c4b1e68cb7527e74ced23efc"}, + {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, + {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "zipp" -version = "3.16.2" +version = "3.20.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, + {file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"}, + {file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" diff --git a/pyproject.toml b/pyproject.toml index 29747fc..d556ba1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,11 +25,14 @@ ruff = "*" statsmodels = "*" tabulate = "*" dbt-postgres = "^1.6.6" +pyyaml = "*" [tool.ruff] line-length = 100 + +[tool.ruff.lint] select = ["F", "E", "W", "I001"] -[tool.ruff.isort] +[tool.ruff.lint.isort] lines-after-imports = 2 force-single-line = true diff --git a/scripts.py b/scripts.py index 131707b..08b6b82 100644 --- a/scripts.py +++ b/scripts.py @@ -2,6 +2,7 @@ This file is used for generation of CSV files for integration test cases, and also for manual verification + generation of test case values. """ +import json import os.path as op import warnings from typing import NamedTuple @@ -12,6 +13,7 @@ import pandas as pd import rich_click as click import statsmodels.api as sm +import yaml from tabulate import tabulate @@ -365,5 +367,35 @@ def gen_test_cases(tables: list[str], size: int, seed: int, skip_if_exists: bool click.echo(click.style("Done!", fg="green")) +@cli.command("gen-hide-macros-yaml") +def gen_hide_args_yaml(): + """Generates the YAML that hides the macros from the docs. + + Requires the `manifest.json` to be available. + (`dbt parse --profiles-dir ./integration_tests/profiles`) + + Recommended to `| pbcopy` this command, then paste in `macros/schema.yml`. + + This is not enforced during CICD, beware! + """ + exclude_from_hiding = ["ols"] + with open("target/manifest.json") as f: + manifest = json.load(f) + + macros = [ + data["name"] for fqn, data + in manifest["macros"].items() + if data.get("package_name", "") == "dbt_linreg" + and data.get("name") not in exclude_from_hiding + ] + + out = [ + {"name": macro, "docs": {"show": False}} + for macro in sorted(macros) + ] + + print(" " + yaml.safe_dump(out, sort_keys=False).replace("\n", "\n ")) + + if __name__ == "__main__": cli() From c3a8e06d92a85f6ef58d14b42a2952a29512fe05 Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sat, 24 Aug 2024 14:39:17 -0400 Subject: [PATCH 09/10] update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e4f59bf..1f88010 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Add this the `packages:` list your dbt project's `packages.yml`: ```yaml - package: "dwreeves/dbt_linreg" - version: "0.2.3" + version: "0.2.5" ``` The full file will look something like this: @@ -43,7 +43,7 @@ packages: # Other packages here # ... - package: "dwreeves/dbt_linreg" - version: "0.2.3" + version: "0.2.5" ``` # Examples From 854edbb79dd66c3f21e428d8145b425dd43ff978 Mon Sep 17 00:00:00 2001 From: dwreeves <xdanielreeves@gmail.com> Date: Sun, 25 Aug 2024 08:02:22 -0400 Subject: [PATCH 10/10] correction to docs --- macros/linear_regression/ols.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/macros/linear_regression/ols.sql b/macros/linear_regression/ols.sql index 239000e..685abb5 100644 --- a/macros/linear_regression/ols.sql +++ b/macros/linear_regression/ols.sql @@ -20,8 +20,7 @@ 2. Dispatches the appropriate call. The actual calculations occur elsewhere in the code, depending on the - implementation chosen. (At the moment, the only implementation method - supported is method='fwl'.) + implementation chosen. #############################################################################}