From dc27f714a21b1c4ebdc13364aaa6ed864384d44a Mon Sep 17 00:00:00 2001 From: soerenray Date: Fri, 20 Oct 2023 17:37:36 +0200 Subject: [PATCH 01/27] construction time plot --- .gitignore | 5 +- scripts/inspect_bottleneck.ipynb | 135 +++++++++++++++++++++++++++++++ scripts/mesh2vec_times.png | Bin 0 -> 44414 bytes 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 scripts/inspect_bottleneck.ipynb create mode 100644 scripts/mesh2vec_times.png diff --git a/.gitignore b/.gitignore index 0066896..12a5a6c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ /docs/source/generated* __pycache__ /data/tmp_* -/data/*internal* \ No newline at end of file +/data/*internal* +.DS_Store +.venv/ +.ipynb_checkpoints \ No newline at end of file diff --git a/scripts/inspect_bottleneck.ipynb b/scripts/inspect_bottleneck.ipynb new file mode 100644 index 0000000..067a773 --- /dev/null +++ b/scripts/inspect_bottleneck.ipynb @@ -0,0 +1,135 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "05ed44a9", + "metadata": {}, + "outputs": [], + "source": [ + "from mesh2vec.mesh2vec_cae import Mesh2VecCae\n", + "from pathlib import Path\n", + "from functools import wraps\n", + "import time\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4510390", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Credit: https://dev.to/kcdchennai/python-decorator-to-measure-execution-time-54hk\n", + "\"\"\"\n", + "\n", + "\n", + "def timeit(func):\n", + " @wraps(func)\n", + " def timeit_wrapper(*args, **kwargs):\n", + " # time.perf_counter() more accurate than time.time()\n", + " start_time = time.perf_counter()\n", + " result = func(*args, **kwargs)\n", + " end_time = time.perf_counter()\n", + " total_time = end_time - start_time\n", + " # result of construction irrelevant, we just want the elapsed time\n", + " return total_time\n", + " return timeit_wrapper\n", + "\n", + "\n", + "@timeit\n", + "def measure_from_ansa(distance):\n", + " \"\"\"\n", + " Collect time it takes to construct vector\n", + " \"\"\"\n", + " m2v = Mesh2VecCae.from_ansa_shell(\n", + " distance,\n", + " Path(\"../data/hat/Hatprofile.k\"),\n", + " json_mesh_file=Path(\"../data/hat/cached_hat_key.json\")\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63d7ce86", + "metadata": {}, + "outputs": [], + "source": [ + "plot_dict = dict()\n", + "\n", + "for i in range(1, 41):\n", + " time_elapsed = measure_from_ansa(i)\n", + " plot_dict.update({str(i): time_elapsed})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9fcead0", + "metadata": {}, + "outputs": [], + "source": [ + "plot_dict" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5bffb97", + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(12, 12))\n", + "plt.plot(plot_dict.keys(), plot_dict.values())\n", + "plt.xlabel(\"neighbors\")\n", + "plt.ylabel(\"construction time\")\n", + "\n", + "plt.savefig('mesh2vec_times.png')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c273fcc9", + "metadata": {}, + "outputs": [], + "source": [ + "# next step: bottlenecks finden" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c71e44b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/scripts/mesh2vec_times.png b/scripts/mesh2vec_times.png new file mode 100644 index 0000000000000000000000000000000000000000..93f52fbaefdca58a4f700dd075c44026d886c301 GIT binary patch literal 44414 zcmeFZ2UnA6yEYueGK%6j3OtI)IHHUoFjA!j90m~)Q0ZMoic%uI1{fV>MpP68qy`Hh z9jVe1uz=K1q?e%d-U)#~-t)TS^X$FXdcXG%e0!~#1(MwN)z5Mq$9es8Nk?PPu0y+U zINTo1^M72y;kM?W|9{vHf0;a*M};5q?&`+wdIVc{uWPP0IPGihw;c)YjyJFW>}lib zc9Y;NB`zl}b?Rq(clX z4_t@)C%2B;oN+Nf_+Z!XU1sP0ymC(1Y25i{YrM2PMdiUpm)601(zNg)hQHE+_ml8u zFXDN7%Z)hQ3&XC(hoKv|H(@J=%4!199-}t=)sBqefWPT?0+}O|IZFaX7U(EzOuHqcC@meXNlKr z!j)A0C1h8+-?xSDxHLkKDDSf5gm0J`85u>Ly}Lb=74WQ3qvB=P#^lYr%DziKB8y~y zI_vGtQl--e{@48cKkRkR+SG{I z@`~-X!>(kP!H+^U6$u67`g#^~zjP~N=Do9mCS2d3*2I!S(T`O{SPqh^fsQ-+)0@ldHda~WfH-qtxS9*Bgfw`BXsy|_G^RBsL9XyDfyJa9VqK==0@`JbIH@NWxZrY{ZH2{PZPeucFUo1w*6Z zJI6dle7VaWV!mzKc%wVnf0BTDpU-OA-JPpd88R@8`9J&WfaQwC=#ty&zFw2hbsq{? zE*HGVzQr8@EyL&Dr^#)bclhyufJqk#_roF9sPJ3_BvkFc9(HS0>4R5Ygxi?TMlQ{>JOm!QzeM zJ<(v5AXei3Ifc8Q43CxkfP8k7&MAwwC$s$v=3zrp1lm#MQukk>BY5_6`=k0~PlgzM zu`4C_Es)EL#9+3Z*&lJX@@0K)qigGi`H#PezoI9$v&nZgP!wL7&l$zs7?+lgbQ|C% zN_tk4)v14K|AMxGD!&))*}Y;$s!wW`$Z(y;G?<6Z8(R!TJv%JChAn1&jka?ietsqO z*<>~);BHaWg``Jh=4jyNsAxbVmqgi|&8*7xkAF8X72#c1-EKOHjDF)M>4e4QQVYAt zR&<#6JR*uTH1oNL)@J`T5TS+2ZAqsG^DWHcnnsl*B~mX7w=)ny5AS#Bjf+;2SnvCL<2 zp@Xt1V;ARAs)eDWph4M%Beg5 z@a+l?lS0QX(SZ8nQRZO@%6?ga2c_*Vxlwn(tnF_wFOyWE_?d0_fKKm6=VdpmhzT>wTb|Mjo^xszF?BRLu8%RMW;-1g#uSU2wKiti@zJV zbIPK`eWR{ES}N8L4-*hO)+47JzE+^!<<)8Ev);IY=J0`HPWPXsvt&goe%&#EwN4`} zRIg05i7HOzsGZPFU_O{_P1Q?rpZGG~aB(XHk_VL+nBRI=KgK<~P-E0z>~35*)hkhlFbRIMKYE`HpX@0O;STk8WHWGdz+#dI}u&~%%tyUTNAh+4c%;?% z%yzyVlW#hubT5a;Z}n@il;>3EayH3trdTtqRYy_G$cpF@HsnQFx2PRn5Z(Ufq+ark zukY_oT9ITN40Z5~p;M;$zY^D$YBtwrNjr{s{|vu(`BU~mLouIf*9sUbG?I3hzyH+S z()dgXU-$hh#pdFC%6AHrva-aL{Z{H*lC)Z11;0vz2gHW`z!uH+DV*$aY?d!d@Vk0T zQJ+saRecqoKfQS1cle4u=ZLsPJgHw^M$@%&pJG9*xB5C}rd9cGk2g?n7^qpV9LiOH ze7KDQqsm~Lm*FF%VxbQF+V5dQqO-m7Nmo(_)SJrKpM3&fA-*{YzGB|bG2WtR++gbG z&fVWXn~5&_jTN_f9l9~h{BZ7o@(x)p%*>glf}NhFDV)@Ft;OGMrPw)DhFo1_o9T#> zz=@YiOlHWqv0g+d*~z%s?P}gWR2EvFt| zinWIU-Z!z;DF3_h`(35X$u(@~V|igsP(nPHC1-3DX7DrXk5MHWmBaax!Ip*!oGBZV z&*@^@?ONv5-jY_M*)F$O$2|3@I~^4x!k7UQl?)gO>t*!b(Km`%n7>;n>dT$~1H1jF zg5;&}9ictMNypL%Xnil+PX4st(m2M2TCZzxlJU_vCEH$wJuk-t=32(nt>^+%tR@ zL%l*Z!h1c}9;|3!PGXl=*EG0OjmHxtfi({a?>+fSSQkY)hZuEkgZuNsh3rE6$OAH$ zc7Ol-aFMP~aa@`8Xh4_G)ll%wN3l-6xzx&=^?A>r)%h_0i65cwl<$9zqT%JiyFS@R zlyaR+0Q>$Pb0(Mmv^`}SJ$b~;Yi%N2$EukfN?iIgz`c41xijPsd@p6g`(LnM^jn^# zd9;eMg6Kb`**~+F_ZxGl@#IbWQ+BLrUps208SIx`?780-o#$?_IY))X$NS8AZp;3& zmc47YF~;Nd^k|*Wi1(eNiT9lhmJYx90h@jOzZo9si#@@%LYnyL8BuoZ5VUK)wKO?7 zz)7!acmFTz++J(DHr3e^mvgl%hB;C>8lJIUa~Ip0q zm(0U{=#H2v`2?jbux~tFSCP0)0t;PKE3@9&nHtJS+kRR45ZvJc45 zMl?m`y7r8Q#~UT10*Z7AUvB+V*lO;|ar97w)^CLkg$FxErHQ2crSKG@bv@ zVz?s9W9^prtu&$;cXn`~9y-$Z%om#;B6nv-pNJduq$Pvdxy24owzOwB)$3X*5Ix$@ zerSDLRWvl`%P2xvglPo}FDdFaX_yii+8y^>)wpQq0c_D7ZTCFVX3Pudg$W5N-!@ig z)8{Mu!ITf19ND}{LBFH0>mvI56h?-yh$dfw{n)uj+QZDTq*f!lBfp(05Qrn+(Z=SW z!qy$mjFi*Y2TKzzM`r`;24H#8v7=dG+ww)f5uKi}xcT-MYWuLOJXj^zGOcv}upIYTaG-0^I4>_Upa$4AO z*sk1l2@ewzo-KD;^UM|lV-SG#LHbp2vRLEYR$jKf9LRw|#j?+n)Y?}kWN+;1We+yx zxm7wOIBPo;V(pt3WEc&1slp~+ zbc0lV2=2eTBgdDlVz3Ny(l$j-z9UXObaB`gKJ0CA=eX$PV%>VOu*=#m(+5}^u>)}U z?bM0Zo`;%_1Lh^o7U>eSHVHR}2V{LeYn&Q0Ny?eG* zCOCA;YU!}O9D5c8(2?b#m$|P^3`}3K7+&JZKY-1mWiSnY<`|0f=L{_tvMhG+!UXfM zKl(6nzlu4Pm8uyQDk!Za(?*WJA2~!j14qz%PoTfI?TCa~c&496qf04451R5~H^sB; z5W6s_m<-F}IgsO?F`p@&FU@L)$h{){-OO8)=yG?DHTT(P`>S?C4wkQl%|O|mf=AlL z%oSwf*9xztPG5qw)1JhBz=l!EThFrJ?qz3x(Z<`oY_Zh9~@nChzf;j4zBOj zj(RKu2V;f3c8}iOeBXP~Bkv+Edi zS;2CdY+YQe@3k3kPdy>%KlubsM=9opDkvwT>WZgUJiM&RSz>ov)3vJa@Nr}HAxt~)kSRJ0S?dP!p8PAeh`9>>mhP1vYc@}!) zOvadeg%*3LH8w?=rRx*Qe$L?>%8Gnt+gI7^98OLdIiZOUc+zTg=_b}dce!9W?14FpHM{kI zJ_w1JR_w2LFNPQnQA4R<&xpvya>!zbBhg|V>}iX>4tMuk-E+=;dC=8!Si|{dc~Kd) zq$BYWunXaUUrJ>+kV)#3k=gTTxXh+A@}Sg>I+%)V3?)dkFwJq)&hoK87dABYwg<-M zE%X1G0g?jN#!p6E;4eEIu=+Kd;Uhs|F6=%iDO6BU&}By=E;Om_bxNk8%+dwWuCV za-@bJQMz=x(2N_>lX{X0rFax_!vnT8wQJ0Y&2i24KB9q0!~=n?Woa=lcg$5`Nz%8! zk6A7g6+9-ML3&7;p)%rU{e|rkd~ETnm3vQU1}ub=hOz@U9J0z5YW=@*S$XUEL4QR) zLF!C>uvYbOjHVnsg^qQF!|g5Uk4gt0E4CC7XjAV7AInc>hBaF)}Ku1n6Bg$&_sClvU#83zK^nY+Ji(#jOwA zD$F_NLKLO`oy*|DG$ByYtKY{C<+akXvd&8zeB$QMtE#G&COZgstJjw&ql(=|$=|Zw zYK}*}wxcFYT5aER=t~9#c!8jirPv(_)E0w12isE|9{)=|5xPA&aPlvwPCwdu|1wMI z)|WR^C6ieP@&4X3FoMIbpN}@IOq$=W+$K-&b?cy58W{;+hw<~=^iZ=72%zT+)tKzy z*7bmZx#`fEKieLoq`2IV-Z)efF1NPQU+$LzdDr4dL(jmx&*Dh=gtBS8g2x2_1!cYA zHE;f)utw|u9XVKg(MnK5$eW@NId9|V{^fRPmr(uolsvhwdZN5!TPJYNQ zC%!&YO3-S6q_gwXM2GA!7=O($|Ea{U zr+bU0NzT=?pdq@L5rv%F3&D_VI_)%`(E^&8HcqKMZwC@=` z`4>2Y{F~Zfgag(~1Z|gJ6mj!pC-PwK*1px*$Ja6;wn(W@v2Ezf#(jwBy*b%dA_FqO zI%kwFeA(EZVmHbSedx#XsUX?OEKRP(Aug@fVl@x^5{iR3`hP|q2|ikYIJKNWa>_F( z(#f9hS50EK6n-SGcq#?(;xP``InMuCrXLxjTC>PkU|o4Mah6wruky zj}XyPVX=!I1}E*X9Izr53+M8lR18W*5;NIL<$-#T-T&KBO;-r) z(FCCFCycGH;pn8CPW}7gBtH8(As#M>f5!i>`gv60g&qnXe^Sw5BGPjA>Tb zVqUxH7Q!+mEa^AGhCb}rT{qL?e0lDd#N+IhJ`}~A9!4+o5|nPrJWRjRfyh$0F%B# zd)WBD9*V7%X9WuC0^ol5of@gkFEkSndi@`<_rBlwMjrQZuL^UY)DI^JsMPB1_;U|7 z$O97$bx~J9sDw1hw?F>v*q81G6L0}bxGy~iQzF3}uR%Gw*?p&I`gFNdb9m4$>@Z(? z?rUss|9W3(avFMV6t;(d{Wx_zeIb*g952M^y>?8}J3R~aH3I8vh-g$D zo=7>WuDeBqy~-h_a7Uzj%O zi^~X*#}mg^0J#Bxnj=C7B^!yKp4AQe53lVsDM>qetZ3$GXc<6U;X#J%gZ7CzT~my~ z#!k;S%I#%3dWEC26Lq7#d4{3jr?4rrR2Qp(YQS!n+qd#}2=Z>y9^{!6^# z(qyFW;WA{O4F5nMUCoO%DpCmabvFzfimiThAth!4x|4~SoC;fd$a-?hi??y7?-qTw zR4Y8?%iUCq&AFqY=w!!;+}=ijfL3uT9zS-vV^%G;O;9i)A}Re4Oqcj~v^W2E_D9;* zdh$lSQev8}Rhw#TW~1p47N|SQ7F~>sJs4t?47T2fn$QEjz&;6^F4YFkmvm8GQ9!ZE6l3xtE z27zz)7Hl`#E(3aW!-i;mZfQ1wvv3v|sKhDztp+%}@Y+vB$ z?0?;Jq%BjEG!yT-H1;Q)w{Esuv%L&C{9@#6IzgU_A#LmC+w0%9sjpq&}ieZU`ck77;vq;4Rizio3GMdbSA#1a@#-^q} zpXD+RsC?LV-4{R9>i8lg{1 zov~1CI{;3!j=j=d$o9P$57E;zs2yM516WEEn`3j#CDD`t$X;^h#2{pcphE13T@A1I zb+OsRUvtKsfhf$t5%!J_gPb{`>U*A#!JWA2AavL(CJl>9j-rTCNXLpp41?i26P>uz*d7^K%N37zIzWgn;pXh-Nu@@r1aKO zv+BcAzLSvuO#h8F;vfPRh0&)ME|fB(C{!Sj1~gH=Ft$Cj$Nx+Xk@|YComlHQR3;>)2Ib4Lf}WOUwogv=b;wg9*{3D<|b)p3#;$iuJ(A#mJX410x<*WaMvVpG8f{V@*Xd7#7g!**?EZB^{o>!kYE7+Zp)B zM9Y=+MIG^mOGVtkL$X(l)dBe1y}$qwYy+TPfa%6g)2dvcx3}$)__sn9iiV@i4_;u? z*pzcn)G5o$B-Xp}XrUUrezMy3CHJ*mZ+2rVpc$sMx#Av~;rRLQ%|5ra05yO}a}qF5 zuqjV;*O#&ncC9+<*eO@&-?}yV~17X##)h#wDiy- ziRFLp(V>Vei&9%qKFBYB(UbC9nKIglb|I-{yTq|`4?F8A`@tieN1)|`$9@FW zDgWxn-T!hx9moIE|D-cFbBi*~izP$xYxd-Yi0q+e4Z((j4$D}`g=HamU2+KMhn(X$ zNGVKMu8?>*K4#!>s`uV4B;54z?9WA82Os#3Qn6h`_kWO^{6sTqg0fqkSdrsgr%jYa zWI4TGQOdUdb77D3`U4U$YbQ3=>4f%7c$*DE&-`cGH8sPy9{=m9rG)}-*$)H5aTT{T zBE>CYfW5UW_bs1T*N%}siSm=2Yad)|Po~_cdU#Mw3KAZB7rqUf>j)a3J!&=r5C?!p zL62Owq{kbV`+DG64C?4mxULSQc$V`UE0E@!6PMe%T&e{iZI3f|Z&sHd2;!8y_Wm#T z*?!_HK}hssGEDMpHzqwiJQ~P?&_Fwys-6lAR$(C9Q$*gGIOZ4s3^PVNfH5<=dwf7t=ny2J!f3r2=_s*&fQA=eObFp|h(#&#ssjX`1e=wYGmD~7kKpr(| zW!o6Xu(bnBA+`%}r#QaIjN0~ch0)evN5JTU0C6w4#(H2BenPu8v#38Nv#|SCxJvcH zaGjJ*?X%tg`fY%RmZF!UGv55Fdb!6YD{YMLqQe1rX+B}=oeVd^J;2p{fi0op|8P$jf8;3SO5S}Y8b8PPVyFZ2i)Bs~e3-ABJ>Z3#J&+m64m%aE@co0)7^iO?pzGJ&Z_;GHX7SKM%k0m-PE@ zsjCX4{b1=Jc@;04d(UK019ie49#Qta8(O-t(&N^2cE@o|MC0D$;>!x`frWHks1den zeyKj*nxeY`0Eg0C1tH*?$IE)Wkh&%>sH0%$E^Jc+*I%<_2Ty zt%p28kgV;*onb}|;z_KCqvC*c0(pTWV98_CeH5TB-%q&$v>K<^SokrGWeMM(Dq^v$ zA^#{qu{wy@jlY$)ux#zAnL6~%GjSOUr@Q|yY1_l7dbA$|J^w1T*iL9GfY&x)k_cO4) zkoe@7U;#vC69D4=jJ2JbVSCGLZhQ768@;`YlRbvbHxHU`EVh~MKS@${tVT<3$R320 z&*lPi=rMog=u7sQ=+bmOrWBaF*l;%Q98zRL&CJi+*veX4crar}eanWcHx6C^--xPb!1#82!| zQ~*~#92#1Gft^iWn(mQL+?eA5m@n~trb*9p)SIv&;<{rjiU#L?35vu5JNSLBuG$krkMM@^aAP0TsQvulI>K>(L--+ zF5PnqmJlPFgLZj*SnVpdTX^rDmRgI>8Xyw?^! za<6VOk4SSykvnYfU!S4rVbcAME3X5hjSy|Go=#vu76j}-gVA%2bVe%~>$FqigW2WHo4>t>`3cr8>D7218$ z%zfGzI>IKQ^@CsmvwMF7jx#2gHkawzJ7dPDyfg7SyPE^q5Dvyu#m-kxq?!9q!2%}1 z^6F#!d*W5Z@xG*7yogCWc2Blu!hwmv2(e!~1N)ecyr;~%?W;)A|0A zwPUm0S&w9XJ}x$D_g7|OKt%*Bf@(SzfIFT;c`zG%xjy9y`Ha)QDv}o>AauJbwbsBX zm5W?RU#`|;0p%Pp+nHf#LUW=s(gRYU1_6GD_Fe?y{drM9);tvgD<}n$@6)q0i3|MNMp8*xuHmU3R3} zD?{-=B)KJya6kJcJk~I^cQ3WJx1G$gavzLDmTPP`e*o!ukx>kGK)^;Tx#4JU_z*@EC=lW0SEs!2Tstb%dF8?I@dPQu0 z;XI2*^cdmz&{F&gCZGYs+PuRznX6M5t@0(!Jg1-2DWAqggGMlCRJM~%{()Xc5P#L4 zEg)6x!B(woryTyYq8?w?`D}3kVE<4!-*f`&0^t&%6e`S)@$`-0BkU}MR@;|i+}dr}`AyhSVVEWZV0S6Td==SgDngtwST6 z#}fWuf(o(I(z$goA%T=)+mYl@JrVbog(${+E^Oi^^~G7N(rleR!ui6ni6tIYE$k>* zrXYAg*vdGjQ6O#cT1qy~6w|xTDIgC&i`KH!>vrKpJLtJ^)4^y5%qjHB+`NYLUXY!- z!a|@~%fe1i_6u|I?_yUQQssDSA1p&82Co1()49BIBsmAk~a@s*Wy{APT*+)hcpBOqf;u5txop09TM;q#6Z7p#F4lB`d5&_ zlbUeh(UDj}W12yFScYQcZm2hj{I}*y&Euq?ViR=cc(&|L2gI(dnH@!$a9+MWKYOqfU_=L8w**J}J>rNINfQL@Ajy0xZc&mE z$b22HQ>!i4r#~Qx!wt}sm544g@nydXq-o7SuZ$sy>W&QrR;HLS5)0z>9>=-Wl^z0V zloUu#G=SaATHc77A^QT-bt6`+q^!!1Ge=(j&$jo58OCobYtjQv%Di2GJJhfE1zykc zb*~C3_G@|nMgQO8GDJETK@0kcs( z`_^N-(>N@9GpG>nS@@18$qzkITL2Czg-pgnhXN9OCsI#YmYt#Z`w^NKak#`jKkv0~ zz4KF;nC+jpu>bV82R>3j#V7J8?L5 zL4fmqv;QJtQ ztDv~-FyvYv5>|=cuXE-okYXI8Rdopk%nrq3BOW=bvyowjwfIY)X07M;Ec4FYO=)C@o4O zpBCI`JBHBM(%n-}wSZYba@IUt=MP>m29TPb5{|q5`wV$~=HVe35dj59@6$sm_~q0) zksLVHbpQ(8Hc1JeK?;;>0HH`%s&z}TwFf-!y={vjSLsNM!$N2v^B8d9#XuU%uJS{@ z1v-kVT&v(f7Ne@|Qb5=!7@w(RiXS2x1F2 zZ6>~?#x51l0C!t9X)#+{@h7LANQCRgatC2<1w}Ri%jpMyyQ-?-H4}%ZXUI`~8>oIj zs@r{jax^tFvjM+86&`%V*FM}6dT_jSBbreRiB*^o-;r`H$c_vk67&{>ey3+=Q#FO- zpQWYAu~ar5@QCL2IF}AD)Jf3BdL+u1T9^YnR6gqhZLYLBaCf}BzyXo*8J6X1JpXU9 zo~1pz4HxuM+ayPcwAN=0d09BUUlvnq33Gt4W2cDIHFo&LXh>;=t(f2VVwV>qFC>|J z^?AszbXp@%Csqy6IZ%~5&3_P z(~w9c9`PA^iWv4u!SuAW+84n`V%BFV6ce-#`w-JI>NP0kQTbr^m`SW4B~W*MS0c|o z*xTW{_~$EoCc0T!Sc7O=7AH0MnT*l4FrvrOOJz6M>BTRTlvTC5k{ zG<9gtr~$=6JEHRG=K##8u$_-LOK5NciEBzs8gq%$FIkta1Cim?{pe7DIh64IJ+E{q zObhKg9%X<(WGAYGZATY+Qh>+rmc^G)iFDjs7wpekDAizigSX zPVuGB#7|62Xsj&#==bb3a)+g#Qyw!$Etp%IwYeeX-1`pT2!)!Gloe&zaEP0i zT{|tH=vklOHxunLSd~fHO-@ZcIau|m4wio70mTq__LkJ}W1YzVsMmE29i#XQr5`%v z2CC3S#s>|ELWAVaSKQ(NVYYc7#Q=b;nCYza;kqchg`pbIe9JnSA~m{LQLiLyeWynG z(KvJe`A=N|>(f&1V@>|UqE)`p4|z-bLD zK7ycxc?jd&m_%<58_I9hsY9g%i&PaAQNxVS8u*2$NMZncDG>YD<)M3V>Rm>k}}z2&REBg~|MK8gju84uL=7c+&O7 zqw3T{?RB~Fs{`hK(*@&g=^ficJKEZYJFP<-K&fL`pJS{4U+M!mMH&!H;q2`KSk!|I zCMn@!7&I+d_YYtMkLoJTe_RVpIOB4Cq%pp9a~bq6sP|pI4l4T~0_uMwuVpm+isCB` z5~jnaa|0WXKwc7#vp)eA3<)W~ki&my3{mCfZljHiuX_WHD3CH()B(iE*!bL9X<@GYIT|j+Cy=M5@a~;JqQycR<(@Kg?gNrF|z&nWcMKt;*?wc>rA*diJd9Uvt>w@w^+<_XsAIyxw$V!4RD@qv;u^kWt z>JFa_sidT2 zX{t*~D@t4&Mg+SZ2iV_ewcV&*hZ0D%42qX~IrAELokpoO6(fV|O@-8*8F#=P9)ET2 z5f*UkKOA;wABhc&e=fxMc(&&sBU}a~5J6BbhDSw6V5Fb2OULNl4%tpGAlANQ5^%=( z3UJjmARHa4FWLhoEjXS(*!~MpoC~=#DL-ybk|6r^I6<{a5S@vR6k>Fjdg=fi17PYU z&E7xN^A>xp!L6$UA+RIM`&ar!%jat6mKu0cW(}5v5+g8?*l2TM&fUHEGg^_Se7Xh! zsh07PN5uXK&#fCr~XUwAR7uKl$R2X*oj-L z%I&yBBBb)gV-mVaK|#TPmtnCm-{Ajzrsy#JM$U0ttm2r%(;ZQC&9~qoZYujiTOQ z5FPPFDvBzg5Q&OOyCSaO%g0v)L4TET81ktOg4iP2v z6(etLovg*z7E3~UR94%Mvdcj^nqvNQ+<+2WTx!)#0cVXOEmU^+QdlPT|8nBCy<@J_ zFsQL4ZKU4l@!5f-;jm^-f6uD*;336r$uuiMIe?RU%JREZWRuqfD!8**lEvv9%OKI zhQiu}S>;9XdCVu|+-XW@j%hAr0(P#a?SVXL140%AAdKcOvlNd)bgU9M3r4LG`AU-r zyc>@w>=qB*6Po>bqq0yCkqKojstyRj04b^SoUeg_fhR<>{u`54R3uxyV+b2^vG^OX z)3!6Yj?GDkEYkr9A4zOXFIih#BN4Ujmp7NYu7`*rbBJqjMjNs}lX_f}?Ea;(E7t+Z z@0)nvai(uGFftkynDy3(JY{la38Yf?o+ywizVdC2S@8_?b9J8a_B@LuMo1ln@eeqszhJ(_$*bS|SMo>=kL3EF%e#%d&dPGW%Li|N zG+`(=^q!&w%J<2{uLt{6%+Mrhp=9nch_!`kfSoU|q@4#W1K@syP{{0o&@zWrHr{p0 zxDaznCOh^(ranFJN!toUg1>tTkyO22Ecs(-U#Am zAW6T|DE4f+v#|sMrRz)l(olKpD8%7bTEq3k8yXlPgle3?rl6<(2H(DNdZd zIIJO~Lst;t1<#R+A0-N~0JwoisgP}Rv6%W{Lm8aGsB|4|L$gtCa42mCMovFwLo$h= zjnQbkgp;=c0xAn&5f}5KDURCr9ovoz3Su0D{SM@T0G}FxVsWjo4ATM;h%jov!92hG z>fEqy;F@0LBsACd2!K+G{{Vw63}FkY6O~bvYT?xvfv`JG*FKL95)c{eeNanRl41*P)yh zdifOEL4e6}n~`1bJC|sczyQbwWWCo>{@4U*n0GN6TC`aaf+oXsANFMdCzG!SduDwp zMI{~qIvN5V`sW@Wj=oYe?*PGND-xLTfdnoL@pB-+68HQOHysHL!Ic5D;k|*YYUotI zOo1?8)bu;|R69J>*~|%Eo!3xVy4X@ z+5o9j`n`CBF>TT*By<@En5xblAH$n<46s*=4^-N4?&yjeOEvLh6&4_GIH_AQ?Suy6N9<9|4=DC4v z9ci)6K#*(@A*irbbslYTI1@a|fQifALRV6}CnbQ6zypM(P1$~Mo~{aTr2ovtd+Ku@ z6(1{vbU3Xkp(N1psk%gFI)By(SUzv~Mb4IX&1@Lcu?XResmEu;P~8oqDH#6@>hp)3 z2!3Y$D}_bq{ulYdhf=w&!?iC*IY40nwlR)H(Y-NohX=(YD*m(?pw=?C;37T*MwoUM zk0!(dWG@xSsI$twQ4@v$3Ax_eYBLZrAec^_%85%9SR1#{Tcq!FYXuRmih|8vP^ktz z&;yy>@Jo$+VN^}R+MH#LB;Muj9+>YTP?Uueysz_~GQRYGM;d^Z(6)R|x0=5S)FNoT zqV-k|0%jegJ;DySc?+TYP%SfS6H1@%>CpRu18093RY7$@ke=-7`aYp&i0DT!1DG4` z2uZ&;4fh{l4%1w4%lyKG~TY19m>77SEExG%5{T$VdpJxLB8aglj0VC&y%eaYk%k95-w-1s8)m;3%BrJ_M_wF+s)kvL z7ad)G0&vHG!A|3CV{o}ZBVd0hCvM_ah5|IQ|A)VXYKlQ@0Ll=(xnFSJPRP+jnY(JD zDyJyrfZ+(EksjKnCkNPLdkG}<58YUMim3k=ipvecRnA5*Io=k~xs_JZrZlMFAnrt4 z8mV zSLA4!ic*3Ql7`FME+O_VL8Bd7*RS7pN;A@9>gG(40)iTGa0OHEJL0?A$; z_}rzjuigrP^#ZPhUoM?zz)5dS@k?PYhp(p)Lc3quaX4anr??7{^F_{mxqyHo6gEh9 zqSh~ER04|qKqrUJ&HSz)!-nHCu*_9T(oQbq<)Rc&azNM*J*$H#t0ESWs;c~w+0GvL z%~*|A5al51eF>osJ8}IO-`V{)aKwyN!jT5RmLy*W(#>6&Z;;%<4xUGZtt$UK(%Nez z1fK45a99YZ&qj+2SomFzq_lxPg|c0abbi89I*F-uIvC2)*H8b08w@XsVtD{*j!)@dxtFvO5`aCtbOTE z=mmcn5-Je=)Qo-#Jdq=IQBJ-jQgD>1Jk%|Yi#uZ*8~2;-CG5$ca=PCgRlEOMU!;6$ zct2_N<2f2@B0W2xYrVa_y>RXpxbTJ!=jTtlw2ZLA+XAm?xatMhId$v7k&2OJ*egn4OHf78AZbWZ__0oh z&gS{Osy(9=PbYIYAF|#XDu7H#`mfF%_8#~%d-XKvR6)>5>xGoK^ABXZqO$!YHChJ`&CE{O%}ab2+;e z2u*Nr5}@St{S*pPPHl+KPv)% z@+WbLzxx@YGz*p_U`TR`e7K+}C_kx}r|^^3s*(>&z9azWjdlVONKJnKC*d-)&H*5?M&_;H8X>z;F|Ao=fyHV1)P(RK7%@Jr z3SdE2$wXS5XZOw2)ULT5x`@<8=A<3XWS}w&?z55fnE0Z!HulN~uG>LObU?VSGY4*N zq)*Z3+U97&P0cU@#jj&&24nm$J&frH;4>`+fJ6ofeuME#FQUqwK&+dZw#E`z{KRKf z4`FgN)P&lGh!uWDtO!(2N`O~()6&_Fv!|oN37?ob!&%G>Ju;N$h4W zAsqYm5Bk2E6H|%Sh`1k}T#%^u-v8QhBLI?Qw{u*vXZW4c%$a+JyW376J4RI0<#=TWsLBN&%2_$yfbqUg>Pm>At zOdAKu4BZa@`Olaq;K7XB7Pzi}ZvkQ)RR2KN?N*LgG=xOqyKYO&5t3riSAjMezqleG zc`FuG(*@OH=9cRg+><3m5hMXJXj?xZw(yoS7<&}c<%x|6d+F4CfOOv(#FKq6NhL^H zihF~p;qspd+le)J5q!ik2=oS43b_@Rc{d2MPO+;7MC(SzhP6qLe&fDl>qwPk0gu|t zplPz_K(~OQ!h2N6R`i%Z;!2I)4vv9kG!s{)N(Z|b47jI2SaWmoufAM$beF{zwhSw% z!G1HhjWH!CsEY)xPY`s9eTWJ&f*M|@rpCDivb=f4v#E$*xpxfi6xxY1J&tBkHe8S< ze;nbDpmuTVTKCiiloGN{_I(`{wsUh!pBRl|fF1z86y?}aghJdztWSy2=wcRKi$!BZ zn%XW^fE7oHs%knmjZ$E9plFTsc`7Mg>PEUaW5ngv6{rSJ*oMo*bS@2Je2|Q(fb1M; z{8q@yEtz`S=kx<)U#U+>EDOI32Or{}x4Qi4AC`uI^`c zKvgBP{x~WuMA4}Gn-z^)xXxZ?2MEM0Q+i18BvQW&)clP5c{U)r3pKj~Ex%>3k4L&& zzu*xl$$=|U+*Utxpuw(S)7a4j@d~odP(PQ~8gzuwa#;}&Rvi1D3(F61jZ5Q(9$yly zA1q(r_Yj&be3}zMrNy+;^7S-*}c8OS4reP+3MyQo?}?;hK~YHGHD9vR zC!o0&l}d^e>CRB2q)z?M7ZCk}$wW#(CK9KlfbRZ-EFLR43ls9f7yZn)X>&bn$SrvK zIcR`U%L7)ZIz#!`OQ|#{3#|>fL26#{~m#-M;d&3a4dP7jr`&cl77)&rg zy>G)l6y2+1@l3*e{g1Gr!5w?3C}oDV1a%7PJF3=RXtq)bgGq%O&{RmoYIK@#mS}?o zd0vCdApFNB0^w4K`zX*MyP>oMGXrHFu1Gx zkxR@s0kl#_ynMV%sOFx=Y}j`lyI0q7;}6yhqq3$H^9Qgn>~BaRylRSu zk3`W4g2#u){gTX5Vj#N55s>6nHFh3KUePU;=n|ByGfo$`uS}pO5)Wc?zZ34Q5~Gx{ z7;wQKU8h^Q)VVbsT&t=Ss%NxccJ{NiBnO~dNBOt~pMKC-L2wWI(je1Wf%DG#M#@Tp=Gu+OWNcI`B?REsm7F?f4cu*=hKrB%#UYr_6}&znkGdoJGfOz z9BG8AJSlLnC{2b7r348aiDC;@-tdih(04X&Yz+D=+)L_usTFMQv1W-x>>#-cYCxqH ziEWI{cbdiHsm0^Q77?U)g%e2lh89K&c{O_j=jbyMG(owOnB?3x`zX?tgW{I&W-2n=vysFX0#011RbnG;`6S>?(4?d_Aa3K(rfyUr9V0tTXb{d98s;j z>I>(1m{F*RhY}prk}Nh|zv=OwqS|dvx2&+g`WO1@QFC~z%o2@RY=$P`G)wyc9j{1V zOaUItw0C<{VPFOJ2Q)nU%YzC1b1f^)=%tn@oKX#l&b{i>$mm=BKkdDDP*mI3HrNLA zUcBlx0Ez-v0Z|Z;EFi%E*h-R|QOQlt&_p8&2uhHgqogM1WB`<$k&GfaNzO29AMQ8x z*39>tcWVBeda1HR`}8^c?7j91&syu*4Brk9{A{(u4J~6bd1BYqXcKy(Ezr;*8wGhP zJD8jBRr8?y-SIsc65HqARTD)G!PGQciHp?^hozQ)QVC4LUbl2uAWWD$M#%Lr2WpE| z(PIMY*fo2~gU}~{7VN`is-h$gKwWo{H(TamGJ(c$6dSD_=vn8<&>GZOf^@m-(vA@J zx{r2FgTI=yxgyo{>)$=+YBw1<(cgex6_S*oZqhQGOqBNWmu?Z6>Oj(%*|IvyV4s0;j=(hoXrs%qooCNDrhf*4(`cBp;dyM z(X*fv^x~zHHCyw(ZuPHD&?Aro0p#Xxo9ai>$#7~ph?)RtR7YFmY|TNl^;vwJyrLpA zkrLMoI?J?=tz_B{5-VwL0QWg*&AZG2U>5GY@C`wQ3s4n=RR%$(AneammvV<517!+O zFri+_h40>&lYk0j`i%uog90_YeK3tTW3OLPd$+a3eh%1kPSHxCCR(1v;EpDJAiCSLGc~0LmE__LTBD=>W;vF zExPNvQ30WGtWbranDBfr2EriLO|BI>q=}*-htrcu?{od}w#Xb*b0V4~lxK!yw%gaU z2H`Cx6^)1%){Ct;xm%bHC%ca5l|kw(-e(ZLnmr?;=8bzFeu3;gT>O3dlU=+rNvr#j z2Ms5Lyl=|O+;(?D_{;|m`8I^{u>*wQ*3snjU;7)oO~UrM*R~<71#D1LgL-6nzu<@g z-FGgiCHDenIrq_iCBbax^##cgPDV&Le;@CKVy!`7g`w7JE7;YTE<>!je(KLU1c>AE?TK0y3wfTbBTG0 z7{mweE0r`Vrr-Z#bD}}N%;8WD9r2Wu9ke6h$}K_{#@SNEpsnA(`m0!Q(PHcVP_aXroN@~ZKAglV-R0A< z9wlEBuN;K=H9cpMHdaQYjlWQjKM)BFIN3L?Y!{;-(a;0gF5XGRRA%fJ38VpYGlIVm zxd@VJEu;-g>yJR{0#&@BS~(tqs4#~eiXrwI!7C3T@&G82yzZscZZNh_Xd#Me8k&R^ zz}btYLCQ^qg#6>(O^3)(&7kyRyZR>SelAUcPHZ=ip~rV_LQfqq=wQB{uXHy(uni=D z(||*|erjtQSY}9WH^LZ-evfNrH(^<4TqbH`6x~@^n+|trK-IwVE8YLA8W@*0b_?)N zyV)KIgOMEY%%Q7rt-qkL%lE7*Y$11yZDi&ijE*|fFP`ZEbl#ON|)MDm5_I?cNoP>2Z0mfW`I(6B3mu-FXdUX7)UDl-wFpgcbIMH*T&5-xAeGE##CWUV;?)FKPZo)6e8uWVqiOXthjL zAa5)NqL4Zl76~(^DL97u>FrKK{T%XPdXm8jD!18wzSsAP;`Y^<9Mg}fAO)yNwfPVa zZ{Xs(h|oLap59CN)jK!9!{l=ot><1ps-X_@5lcmcBhOVgNdxO`~v z^Y&$RV)!CJ)l>f1nywC(IQjJ0ih`qs8$d8h^c$6&d=7)%l`L%6D+FPcje>R)+Sp@I z6lr(>fi!7gR(hi}-}>+0UCt>va03qVJV+;uk# zlK0tcJv7=-Y);5oHM`%+lbo-iCRExyp7oKlo4QNUP$04&*u~JgDIpTM@CA|MqaV7l zY^|$HweZ;@+a~lJ6J8KxQI>2Q#m~FObLF4oQWjTy2e~F_ZvAl~9@m=s{22KSPxtK8 zmQ{+PnN+eG%2jNWIY(kMb~-bBpOQULy}~Oh>PhxQ^dI-XiF0pnksB>;Z=ZN|@FZtQ z$Tk08+r=403ihV|?!*aeBuE|RQegV3+%`9vLir$OmKI{?Xt@UiPq(Z@Hvx7)l!063)zGqwIUSAKs_(^Xbz)+&f+jtUbnZ>*IzUVW%y`fajBq_=i1J%zU8rri*%qHFgu)C)jfuyg7*av*Iox zg)&NBOB+%_#-d>x*sNFTV6R;Gjzhf3ZPO!>)W_l_MznQsI!d6M!G?N+oD9^Qd)OHr zZleK8DM)cMOeCD^nbN(gfbJvR}IGpp1>^J zIFFuQ$++}!A%f_5)01H$YhQ!ySm2xf8<0D5AB%&nh%3C4xLtgIck59O!^E6R*u;*o zR3G|Sv_lllp~at)+C>tlDz%n>1+S&>HyW8JV@SD`?+%A`nfE(! zJFm7JHzP45jzc(eduV0G$b;1k?qJnwI&LO~ef$qLCsdr(mVf ztSOi7Ov^j0n{}7{FQd2z{XhGK(8%(zmmi7;VHSc)sw2EK?}9pFmCa2^F*MYLPOw|t z3C}R`__N!Qtaz-AXT!1Aa-FEY+{yZ9aiXFSCSSEvClWt?8>OLG&RJ{CIabsBa<*n^9o|zT4d#_UWq$q_Ey|6pEK=AvxcXS!; zjXJ8Hf2_16+1os*+xS-j^u(gYOm^3-$>CnuRhkr4^Pz4hZ#J;EQ;d7{&%dL=q~*I& z-H*TCY*i=!m|?%Ogx(o1 zdq6|+t497Zyv+UA2HLO&dch^L?zB6EGT5oxY8`EEX0!je(XsE{Wf+^ifX5rPLPTPt z_*wd+Q_Z6CJ3Z0^T1tCY&|_~DKGv@%$n7{liEm9dna(g3yVnN zcsipX1AcY2NYZ!3oXzXS0@{HQ*xN94|0iK_zk}8%y1s9}&;lr%K^qlHucc3Kc|jrv zuqhk*3$2c9+>CH!LWwZGJwGmFVLp3&q$0no`Pflxk#UVT(M)5=xTcMeCr+#Eq`#{KHl&EZbduwU->p@%Z9%RGSHqZ3r0LHDt;(&%xbGEJk# zTncSh2@(NLG-;xFfr0ALH9KKxbA0Fh7`D@`(<13wL#H&+2IoL>6s^`{9SdJoKSrfF zNBB9^N!`M;H))mou+Mu`^Ou8Z!{5a(g*$f~oo^GQKiU4_!rn7d_MQPt=Tv7;sNG`C zK0C4SJ$6b{?1g0+3y4sPH`;&-M_>cOY<$}gE`mq#*?M*yxm`3s0pqj9HgQU68B@0H zYSQZ-tF?gAbV?zzA-yIul&&qGeN-`s$%b85ifxh`qby z-9l@Z!T<}ST`tcK|Esw99j(jLNe{9@Y+VY^VAExly-3deW9sOJ-S$m<>u+fe;-kCg z);BG%(N4a?MtfybKF79;$vAgiR=j07<4|7fSF?GIIgrF?YD^z1R)-3G0EKdgrm0^3 zP9|x9w&j5)_1+s#`e66?)7tOYc-HPE7E*KK`{moqKgOj!Gpd#|;AIH=(aQ|AnDEBA zvG=9$1(^gfEE_Azkos+ko^Cl%g99Kd|GOTvt3%p!>Hh8E)aB5E`Amk1fq|fjtepnE zJS%Lpq0iBi9O6GuB-xHJrRL3xzH~0V8p@p(vD3p*jmdrGQM5qrHTZ$3L_rbh_7?df z^5Y8~PH_S$*0F zAJu2d*4ymLiY=gbKxVO+I6Qice16pulV}S*?4|6I7LV}!n9^;~w3qd>acUALE)-KP ztYjBELeUt`VeieABxE8w`=ioYid~Er^3|5M-u@S%dxj~Lf^O%_x9ug>)1OTwQBV%W z*^4tIOZfkR?F`&;Y#a7H{y`^!{0~rWDVBHM?wH#!@noEv#*F&V6ZGPhjC$TJn;@AB zTdbVolil$?1LX;EpY|822*POYNg$zN3n|?n78zQ0ldEewh~dpRb<*o+>UADod9Vya z7x(UB$;l$K>RK$GY8MsIaZzY9NQt^XF6JtwSBV5%f zzA-|Og@NJDyLa!X1#FV#b2oh-|X; znuc}tN<1>IqAx5DD)Ho-baTF;5mbs0v{$-$^GT%h0)Ba_O9sk|J)S;&TI*cV+}wOp zjH>I>KAeJrv{p=Hc-hSy|6_OkKzhV?OUvJEm6rA0fCgw>%0==tg2~R-I^#ejuW9H- zdip&525RUoPOV?fQMu~r>6tP;kHdAe51i^Q9?RkBfwj|8@`^0Xe=%Dad!piRP&V$L zufNDVgqM*CVtC=

0!9UoTlzQ^Uf`t91M2UoFri%U0z82Kynt_QCeZo2a~X*_Rie zx-56oXd-V2b7+Q6`&6b}FyRe@M$HS$)7|pWxOv68VzeP_3ObwRO6+C=A|o@PfL{zU z{mpR8)2B|!Pj3Di9cAX@D_EQH_WmoV={W8;+@a;1h-uf9S3&KW54SZ~%Y-i8T>iYj zPY4i3T*^K#j_N|EKNO&ExI_l1k=uY3TTcIkV(8YEbDl}J9N(aGjutc&%B_Z6w~UQ+ z+gU%7pOlou!p+_OBV->=@itMqoOZ`5g3_Fy84uc2y6G4J+xeA@{_oz!WM*E|@=($_ zt-@0Y1^V2OAb=7ijWt@`g{n= zWNr0khsVa4L_|ak#36*fY28KBJgjXlEA1MCT#yoa!4y-;V9a+A<+<}j@ePukD7T#= zXx~eH`}S`dVP_S;)0C8n?(VV1etpELbV76V6OdH~Jn_d1s`hksJ|3giJ4QxEMCe)0 zGiajihYBvUO{g!9WUOdT{I-}s{#n}&@0Vdh9kaWY{)}*VeNQJSD4$m8_zvX`^!Q1j zqfdsZBD81Us0Iws}b9L4>9 zSR*|`m>x6EBXr^Mt>1TxB#&#iX=o|!)cynO$$Y%4@@bvrEC)_O#&{(jh{la=80eKh zx(=W)VA-5z1lyqwG-?Md4uYO5ysYCbtX`zd?p%Uje<3bK|7>|S*{3+oEEC)9qDL`5 zq1FbXEbyw6NnNu+44PfM_rU4V`sjM&1w67c;d71*=++b$rX1Tj1LNF@hcDA8C&05F z&tN%M_xJ}<8LleK#k33Advl@0!xeYs)a=SXJ#$_jZJ=q7!$03!i=&ti?+KodIeUMG zGL=~%humiHwKA^kxLD(VEnE9TWT!>_0xSizch?AIlslGp{A{d)RD}4F^R`?{_ck#> z04eC`<;~WmRrW5UvH7d(MAhX_Z#y^CgZ4ZQ++F0KMvDsuM8*Y;B^fHU?!(L31Xm24 z?S3$$V_al^4F)}Q9zCpG6uCF%>(XTv&K}ZZy$tv+d&B6Y!}$sk4@LN701v|jAfHV1 z=;NHTE@gHVT3T;oGshHxF4E1Jhxi~PUF$DLb(?=!CH&giE=e|RB?Joa{bj#s1NRdhiAGQMy#Drm z9Fu`*b9Q$6CuvImPBimzv?8>P`dp#q1k$D5OjT9K7YobTlRL1h zR+ow;_myky4KdjU34%jrKLj&i@YDNj<^0+?%Ja2~VJ3_ zdO=#6!Le=Yyku(*Sd?qL`f}l?%}p3z`!(!l!RZpfzPEeHc)Oe%FV}R*mV08uZp#+C zLIu0x6&ULQ)#BUcY~6`lx8lIe3h`tnm`$E%@p=)5oGV!@ni$&Wx0*Bo?w4`h4|%`% za#s4~irc-+%=Lo}{%9d)k?D6o7tzSxZtRsm`D{c`k4w(sEh+L``@Ltq64sb>S{y=i zVU|r?#Y?T3XWP*>`7r=$kpB9a+6U>(s4ylZnKv*`K1fB$>`7w%V62SmAiYlf*S|%! z7dP_vVoY?Fu>%8IPqvs5b>E5Cs^_ppvXM_x5#rBG__W`7Z-)*QA-OC(h@=b<| zzZ~>4A~*H@%VmTa@B|IMyYgm+Nzz9@_hV*VHV^qELyuqZ#+^-FnH(XzaIi^R5bB^}WkjCq3Gp^LZqHUEY?6$YRwxZYHK zU;-^-x}bIOL-4wZmUqudQ$acv*N1$2cdpj##id%`E1~5JO>Ja!lf4RYPTT>Vh{uV)*?nSJRZ)^Awwi2)grK*e94%XB)_@iN7J_?f-t;Si6 zq^Cj6Np$cMor0R3>%5C8^>c!X$C;z$H`GpibTtcyZhM@&5So~d+9$c^8}I_rU|hQZ zNvZ0kzrAJS;&BMwee}Tvvv4$tqGIUXQc5B0Z|JqSo6||#>>0u2S+KdO!V_&9@RIRM zvVs2}j;gHx-Z~E5T2T(fu4|@-$9TpS0R>5mrd6x9<{A>8Pg0NfSoIHo-*5>Yg^Ko5VkLZ2Ydc+58HiF~u=D-Y+$1(}R1S?2W`d6^-PEmTQcZh?zjF zuUl`rVu=i;If-IC?&C}x&(#a!GdiDivn)LSLAR#CuI`+#*Jw~FQf^b8?fBu{=Enfo zrgFin_M%Zn54hnr1M zlajBw@yQ@rACf~h+~GN3V%wQN-X?D6OH8dMP?%TT$bT=s`l`#;bgHhYx6b7NS{jRU zu$b=ZG}0pJ6D+HS)hT5FH!DRL=B&L;&yfl(s1{HHH;qlLEzp)1} zkgXFZNHjX!DNeU}UjJpc_#9oE!i?tav-B7hVW9f$aV|{Oo(0<7 z+_&P2tEN&Y-=V;J@AW!p;KoDytIsgb+;1~rSs5=m>Jgy)(4XPOhLf>FlFFNLN|N}A zn`V*Nou!bAd-;8YaoQZ!zTCo~Kw%-ndd z=6Z=&csF3c3YB?I@_8e_uTb>dqtzN2GgT}JzQ*{a zL+O^YDf$c9HYx0TjR-S1{vJ%ppj~)#Q?Jid&`eG4oNgo8<{gjq)Z5Ocwm0Nez{oOd zoBL!Sah7!fbM1ck8|&rv9wDO*y-kko?3qHp8@l%0GpYvH^LY<^m;7;LMv375%>_k_37j$_nW_znl7Cv&Ng~p%$pJSP{h>+ zeJNShf#M)8==(eGHtZ|eW#e|!3TCf2>7Q=fi1`bEH=?Q8!f@-sqaCwQ=&l1d2!W9b z*=c?I!4Vu4Q0nzD?ro_*xeB_tBkuu?Cdi~v*qvms-pHp<1l$FOYeEK$P05f8Wx~Lb zON=U@Q-%p2q1ti008R~|_a8}R?$^x}QuN5NL~z7)4)jF_Uf6#YPi{}}Z#Yg_vi90Z zR+x!oMNwW6tb6mmrs(6n{Z zGs+zKYkpO!sm{|U6HUXKAo`9u<_x zJm7+03%WDcoQVtHx|J~Yi)AMK;$)v3Gb@wK1V5QU{@8YrjC8q4;`FrI6XD`m{DVgw zsYU?iu4@;|U}7taR39yTpZ;u7kL`{7B|Zj5tFL2sXZhbH_^Ymi11azNLrm?m;M%4N z!tF9~bbuMlcZu7!r>bh^nf`r=oh6A3iL*Nsga$*D)n_8U*0#-ZF?K|WDdqznE+_5! zsOYS)7Uc`FwaeU<5_ydQ4<79kPN5i2ZO+*hE)n|Op6DIr*IY`s+c%#2W;a^IU zGq`mJRrVhS$Ts1AE5J|~C?Z;eLe!&Ag@}-wfay^+VV=E`omP&MBgAW+oxNnPyAG08XSss zlQ_8k!IjmGCrw^Kg=}*^4uuuCq3c?T`#bK~X+1d>KWeCLdDGTRHPE_6e!UUpumnDq zi|HxM&omV@4Jh+{mxO!`fXMy@v zfyI2W_gtF}s=HeS9gp92g>0u$dZj6StEpoaF;9h!=(#gx-B?jp_G`|1)Rm5uy}HP6 zugwmwmVn)4?n(q}lJxr$P`uFeIbMiFCs%G8XyalqPp049#1h|hf=&C2L?X^ znF(p$;m#$#_fnW|ZIw|tB?fz5*)eaaIM;qm7H&`?flYAqCp75oiVEB2iLF}{)bwFe z*=Ol>6qfQiIIF+v$KMLOQr@KRO>XM8vpKzOu$mX)I0!K!xI!bNy*3;5Zq`Rk#Cpk1 z3*KoPrkB<7PabSke1v7S!9rLDfHx5+f}lDJej5a zXa;t9>sHuSX}X5>-ZY}@m!f-6$3^y32$j(FxJp(CbFkmQoSy+1!+spN|C`^^sE2@) zUhebDqa$;3BskH40DY`f{cfZ6A%vFL7hBug9r>o}+fYpvWQeIJocoan4;8JoUDp$6 zUDqA~Pk^;riCub6fjJ2d%9|Q*iA$K>h0>@AAiV2@YPgvAc!r}i0t(P!)dANCT$7i1la?PgK{c%EwD8w`L{8*f#0_2iSow9UY0K#V`5@5*6(09zI=dmJ5>Y#+v6529uw2d3 z{)v5}Ko2OR%AGsUOG`^_etms+ve)-Ke{6DcvfLmOGjqzV&HJsVWNySPEiL`*g%+}K zy1gZYykQ!lzN5rGyVFfcFyi0OdTXezxR<>s?Pp)g@Xuq~qX5;A55jm&`<5|#2(WSEV{eXG z+Wj5(#l>I3d;xaeh)DfmOWv!QYM%5phL{HZRK}rr<^Ny5IhHu#6hx}e;N{@u!=RWB ze%cQjXuCza2zgF=>_5V04-JEOITMq#|Me*Y@Dj?Yr~pVV%9wd(5?>hHpx^fK**xNU70C$YZ{A3G#d2S-H7$xsig9_>}H1fUS{crD@ z_uq_#)B1_$&x^Czb8x>6&w~qy{rDn;_y6g)7t{vO981k@2tab2UX}{CLF4(LU(%u6 zc$DC}d-oNjrFd+{WfS7#uLrIJ5pl9+i5>aTql$)x$*@l|;B?C(-2rQ<$Q!DZUSh|E zmfp(q1C3Px%BdNHhHYD0l0jnpo2#6##}j~c@b3KlJoz7g$O6MyE^&F1TrXg? z%-p*L_#IM#?34w*G_|8-u!gP z)19WFNr&E1#ly#GZHS$(Pcfy4c~O#+lgrKYI5mG_&va)ZX%RLPU8w3K?dx(&_L&+MN#`^mDc1T4*wk*!w z9S3QZd%&GAD>jzPvj<*+XgR-YgsyJkDR>x*0ud8Qy%}mA&x~$pOBH`E^r-(>f zup7{%n|k{6>GNm0juF(-!1FOWYABgmTE|J1_|W|WS38W6H2`} zRTtUknZfR4kUqY_%-+?qtk+aZp{c#13m4pz@0mIv(RFqRFu!C=u#WBJE>308&CJ%I znQsz;CJ0DmHIGoSDY&|pqjgS8yXwKE^Y}5hnSWO9Li@NxwAHWybQQkQ#4ER<%@v& zf{kPB(~BdFc)kILIQb&r`t=)d9HS`%4vU^r#~dx<1fx_4r#go5uptC4#!haaFcT>#cyzDQM7wfLte z%Tnuo_9ETR>1mU6%@QS`ul4TC&`gE?@+*vtV$TjAhb)I5Fxe(TzEmEb(F|$SSlCM` zPPqz+a7B_LjP5gh}4NWRvzA~|$k?kyCBvPKNhk{JS%@;zzkPS|$z zZf!mV)OYZ-}Ufy@QjQhMZE#F=DCiG`a-}4NzG>#UcNqh&clGG z+Hkx%rl-g{3FR}v6N1!pDo}z_Z9AGZ=~NEx?%2C*&J=|5TPMC}RZoP$6M%G%DxxE@ z4_@!+nQNjzp!7>DhuP2R_s~t68xFFh(gjamv%X}Ys564c76U_ccxWC_(}W7xrtq2% zq>&w={CXx1xPCumW;TE5%h7V%wuQpGAm^iv&^AzV&v{NdgtO{HJ&=DJR=V$->>@=e zrK=@?!($ALJK1V=u4-CZW+o=nWX99L(x_}y-&x*hK7O({ZPk^a~Mk zvP;mV6C$?X<*a+pYHef&s;FUidvLdiVXFOud?HMV{*O;D67A;(^uei-9znioBIrD} zkeM`SF$reLDEyQVl5keUwG`1jdpGD?GaCSP%_!nB&N79WN5p!^4D<~Q&atzzFM`h* z_&xIN+lSDMf5n5dX?FnJuuII$wWV7NbydBst*zeRdWC@4d@dS;ofGs<*U!%nmV-N0 zDV@`=9>~!&Lc<~>%@{&JdGbe;xb3>OMc+J-V>v8-ijK})%V~zEgsZNWMu?bumQ(lc z3#;0?Qs9KD2kl4Gc$H<<8A=p5lr?Pw1+ z8deGvc*9{j=ZE&Q>%RLy`&HM})ByKojzbiv;d6L>P+Z5xB8`EjO56{4@bd(lBKva6 zHzrwzr>2a-%xb^Y#=dSa z!-L`KL>9P!bX=pX5hnqOa#?&M?IBuP+F8HSPoHkN%vVv>*4D~_2de4EZ#S)iTv%9g zTYMygX>Yz%OG^u(uP{s8`^EmI#Lc^Ymj*gCK z58J?YR37K^N&qen4@!2eG?@5%ew`$35{h{G2Aee{p{NDsoc;R#OaJ^+IYHmoh?f2s zov_AFrwdoFN`m?C0Qz%{1rBC;BC!~7CkUxVvg=_(lPgaw(EH7my_3OS=ItXERi}@2pO)?zfYs{l$vg8_U+$x%l{${qCjlrFJlbBSoHG zut;~HGfg#aYisMIaT*9Fn8nm)YU^d4`(jpYZEY0P)Xe7Q=0UppdU{4c9}h==zk_m+ zh)^CuLG^+@E3X0K6swq+Sa$@NB&eKFhUlgz*C-Cimu_`;cONr=?j8je@00eBQ0`i z=9SlO_6QW0->b8=bBTzWKp#yVP)_HnyfSOnjI)aDT#YTbIT+~5f_Y7Qg2Th1=+fBr$jayABEh8cjaq2l8UPmLLExh8 z|58;I0x_ru*Y?&H(gf(xgL)8#25^cDAaZWVHEIhFUDiO7GrzFFdHC3Q3xQNn%aXy@ zKB`=$9G;mm1@Tz#s@NH^F#{2n0)pFyCkGBA5nBgR%Qqba9+)ue%X3?E+u%oZ+~ov+ z>}u8^P!<}#JWe-jFIT(+?A{qPn`!`H?=SYD*l^Sb|kb>vl4l!`cp*?fPa0lqA!oXy4 z8MQL#WU16cX-@>a46^SZKm_NT=p?vgqJ&M&%9fSrzd1NLozvFVUYxI?>y1!VGt<(F zeC_4Mg?s{j@WQ?|H1NPO^ZH4G#hYf0&R4JQ>RNs30!3kHaF2g%6J;uFD_rVtQ_PwRtLvR)vZq^UAjUYajU>jU?!39SkP z6H{1|@Mb-?VRNO1+xGG?gAA3dPj@+g{P-~nrCOZ8>C1y$@cHFs9(6dHh|r1cv_y#V z?M4EF!a_p{;4UebHbOkz0OX428*dPolK(tRlnkv&%Q9<18Hm<5HZ_J|(HAKUw>`i)|hjJT=PG)aT5pt9WxX6%2#n`3DUS=Ots z(xxl?Y5A806jBg!Ynd}=%T~3JQCOMj9kWpakfA%@Gz>2($?Yq$Q~3JTt7{NLTQOUM zgk0j}Yy~kacL+;8HY}`6Af&(mp{q`Uj*hMkoa~dm$meZ?(kO!(7SLQGi$N7zRg9|O zonPbN;LrySm`nWp-Oz~1bm_*8zKKt!ppO!v9Z=j4NhyRiyg=M_ja4nz;xeiDvf1=S;xjMUAhzs+dc5|T}{P@5#}{M zG!z0O^IP>m$#n*gPC#JG8U(Vg`oWzQzMuy14y}Qw|9Z({ZLKo|1X4g0R1Z#@4vg7+ zz+w34sq^PGV%px`tCNChfasQ8%N#lr`GDst9g%};h9n3bD*XA{&C!?Dhf-x^Brz!| z3{H0m26rwPv~3bsTWf1Q__7VzdUf^iT*+Ivp7!hM8v*A{BM%&7$pJAg^MF!IjlC0H z0TsKJ$?6r=1ii>@)y*%bWCFeyfB_i=dA9$S26_!?2OvRXL2@DpqXuecsvN_Xi#cZf z0$i3q@0_Bf)Q9Z^mC%_FpBRD7$x^vmT~}8J-GQwP3=F}b6INp#^@NzL>|DARHR_Px zZzk5I>=@#cLCUs@(A1`Iq&1#H;?WJxej4~gUL%+!O@PeIE$<_vya9heRxW3Phj0A& z@#A`c%``)uI)UEbw98zUO@C#&yNbQOae#qBq`BK^>7@|FNxG~43$3u30@u=`II2s5 zkm-_uKu>pzH%ImKKv}O!x)Kn+LPT5jM`QpMN?;8%lf zm*$vk?gF`d+)cA8h?D<592iQV*SXmp+gD-eSM-qsd>bF-1wav6tefJq?2S@Dw zwP@hRQC%W641>J|ORo@N=5-3!- zx_EGb>2v%TH8@agoBDHjID$sTj~fmv5)&6EfIH0gt*)`Le2Bf@!O>B1oV`Lr5(0RL z6G#vTvZ`c?f>UaVHv=HzGzCRMl@}G2dEM8q%|LsuNu>E(`CC&{7f4K=X)iBmkh{QH z^&!`HWIFU5_&TsZ?xz)uj~fa>45bG9pNTsP0xcvRG zj2WP7pvalPBDpL!@Qv&+-jmSh5v!0a8>ePrUxiIw@$e14)tFS42z=4SHUl}`dg)mU zoDkO}kB^U&ld?SPH{dW;0w5SEU?_^BWE_hOND>O~Y?a=r(qFu&kgCKA1pG1rU>-Ex zq*gQx+=K;@M`D|2ja-xIZ#SZZu%Nyxh<@>X!Je<8sN3m@g*mF)6d`%B@Ojr^Kz*zx z1P+}4`Lgvdi&Q8=4FQ|$9}u9+K%qUBaM7(SjT>U&s6US!LGlqjbhOfiX zO<`cTLckb@{Q9N42>(9kRrT0)YhEHrpY;uk^o6Y&k)20yXet4!SM^-CmzCQf);@LO z#E*9K58xN*m6nw?i0rP*J)CWXJ+8~05xMYYT z7Zeg<&x2??{tx!|P5_}U!uepq z5aR};*#RdviV*DJdm%b2k<-~7*6#NW)pz1PxsU3&+Np|40>Nu z_VBB!1*-z{K{G9fA7toxXyuWo2bhEjnC6l8G~kyFMIH?dmAg0JlnY_?^HAJBZY00r zdK8|i4?Zd40uU3icd}kwSdfH6p%Ag3ky3_+Q9io2;|K+Kglt5Y=mq_4Ktt*w-l+%2 zr2&F}0*s~syk+N>|6ACfS}G~g6(pqnY_U5BZ53UYZmv}1H^EWiUTlYpWOXN`Qf~%KL=?&ha^P$Yzbd^d3mB)fAJ`gFJ=TR)Sl@& zt%5Q}AHY3AJ{}+t*U-OjyA`iH54vuq14i%$1jCZ6VdCHR(nDVD2sPksM-4 z2jEEM0WgP}o`@g-IAW(WJ|RKza$M=0OIU+` zq~qvWd6Je8RJ$8wly4A9%6Ugd0GQ2d-;8paK8Rij^HmEp4cl(J zbGsqI!Dohthjo7b{8>qye~jZFCZ?J`x83bTkeW-^t~DbUnu^tGrojacOJm+z zlh-m+)uzYm!}dO=M+=x8I_L+vqiBe5Lv+x1Fspk0^=+QZGcL7GPc*dv8+DQbbWsw} z0W|T*?Sf;@$Hhnm26Jg3S)AaKqGzGQJ^G%0ALxTP^3#{<>QG1xd5tPE*nBS#?>B16WlLR3*Pb{Z8oT|Lbp+Vwa@D zlR<(?Z_Po(Oou>1s{R^4-W$XDk2OI8Lbe0Tbrpivx)BRDwZsX^9^45vy;xhe0@cTl zAIXm$vs*o5_pPqZpF|>IS>Mbf5-39!-h%E4r*06ZvuaM$(q;hoEERq|Yi%btmmBp% zfCk3^qNpLLLWkAy5q?0^p$fFQC;he;HfC`Mkx!3?yJ@DPT2a|beY%3g1L^zECA+v_? zp41$Vp98sSg%LE<_{9STzC1UmooC$D3F%!PKK^l$@S2mFg< z@NQ)RZ+i+&P~2`i&fv|}k!g#840L6m(eWox7EaI3g=>z2kY8JhVMK2QmUyDkB^-n~*y za0>y3RG8`_DeLPe!o12mr>71LJp`ZrKIAS6|6zhOyM)jA2jFdc7C=b&0WfDfw|Z;a zxqV1@&NtL18lpn)Gr>a6CgT($0s7IuY#Qj?q@nYWVPG7{SGfw%SZ#g10xV%3@E{)&1&dpKgEt z^hp8Kbh=hqv4c9S9i$GXnri^{8Dw`T0dLAL9)NfPJQ+|$=JH*jxDD(eu$HShse-eF z5??5n@$K8U9&kXAP50102qjxrp#%r2xW{`7NGRtA+IJGDyxV8{OO{b7#D}CvIdEn^ z%q>P zU$A+A8Q2(PRV`chHHz+`ZR;M$Bn#IfKp|~FJxvE*zqHfJbPHf67sDEq%qGwpf3PIK z0DFxFEIJ$ucUWk-UA}lGzZX&K0)qDeVt&2%cYva(`NwAuTc`?vNbWuo(~Z?R0KiG) zZd<@JtA$De;206t4wAMufC#cMG6p=vPRN6Y6YofxfF0D?9{s@uG}bYU!cSABb{{Ab14OPinx Date: Tue, 24 Oct 2023 11:08:19 +0200 Subject: [PATCH 02/27] test on Renumics PC --- scripts/mesh2vec_times.png | Bin 44414 -> 41634 bytes ...leneck.ipynb => plot_execution_time.ipynb} | 12 +----------- 2 files changed, 1 insertion(+), 11 deletions(-) rename scripts/{inspect_bottleneck.ipynb => plot_execution_time.ipynb} (93%) diff --git a/scripts/mesh2vec_times.png b/scripts/mesh2vec_times.png index 93f52fbaefdca58a4f700dd075c44026d886c301..98cfda7a4005f58c616b5f07ea07e909230e75f1 100644 GIT binary patch literal 41634 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 literal 44414 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 Date: Tue, 24 Oct 2023 15:58:49 +0200 Subject: [PATCH 03/27] added profiling with stats to file and interactive profiling --- scripts/discover_bottlenecks.ipynb | 114 +++++ scripts/profile_stats.txt | 771 +++++++++++++++++++++++++++++ 2 files changed, 885 insertions(+) create mode 100644 scripts/discover_bottlenecks.ipynb create mode 100644 scripts/profile_stats.txt diff --git a/scripts/discover_bottlenecks.ipynb b/scripts/discover_bottlenecks.ipynb new file mode 100644 index 0000000..0d70f87 --- /dev/null +++ b/scripts/discover_bottlenecks.ipynb @@ -0,0 +1,114 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3f4b82e7", + "metadata": {}, + "source": [ + "## Methodology\n", + "\n", + "Inspect calc_adjacencies in mesh2vec.mesh2vec.helpers.py from different angles to pinpoint bottlenck(s):\n", + "- Use time as measurement to find obvious bottlenecks\n", + "- Use a profiler (in this case: cProfile) to inspect statistics about each section (e.g.: number of function calls, cumulative time spent on function, ..)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8089532b", + "metadata": {}, + "outputs": [], + "source": [ + "STATS_OUTPUT_FILE = \"profile_stats.txt\"" + ] + }, + { + "cell_type": "markdown", + "id": "f7caade1", + "metadata": {}, + "source": [ + "### Imports" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a8ff956", + "metadata": {}, + "outputs": [], + "source": [ + "# perf counter more accurate than using time.time()\n", + "from time import perf_counter\n", + "\n", + "from pstats import SortKey, Stats\n", + "import io\n", + "from cProfile import Profile\n", + "\n", + "from pathlib import Path\n", + "from mesh2vec.mesh2vec_cae import Mesh2VecCae" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d78841c7", + "metadata": {}, + "outputs": [], + "source": [ + "pr = Profile()\n", + "pr.enable()\n", + "Mesh2VecCae.from_ansa_shell(25,Path(\"../data/hat/Hatprofile.k\"),\n", + " json_mesh_file=Path(\"../data/hat/cached_hat_key.json\")) \n", + "pr.disable()\n", + "s = io.StringIO()\n", + "sortby = SortKey.CUMULATIVE\n", + "ps = Stats(pr, stream=s).sort_stats(sortby)\n", + "ps.print_stats()\n", + "\n", + "# write profiling stats to file\n", + "with open(STATS_OUTPUT_FILE, 'w+') as f:\n", + " f.write(s.getvalue())" + ] + }, + { + "cell_type": "markdown", + "id": "85e2e6d1", + "metadata": {}, + "source": [ + "## Interactive visualization of profiling results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66cb58db", + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext snakeviz\n", + "%snakeviz Mesh2VecCae.from_ansa_shell(25,Path(\"../data/hat/Hatprofile.k\"),json_mesh_file=Path(\"../data/hat/cached_hat_key.json\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/scripts/profile_stats.txt b/scripts/profile_stats.txt new file mode 100644 index 0000000..67ef622 --- /dev/null +++ b/scripts/profile_stats.txt @@ -0,0 +1,771 @@ + 265989 function calls (259137 primitive calls) in 7.785 seconds + + Ordered by: cumulative time + + ncalls tottime percall cumtime percall filename:lineno(function) + 2 0.000 0.000 7.804 3.902 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3490(run_code) + 2 0.000 0.000 7.804 3.902 {built-in method builtins.exec} + 1 0.001 0.001 7.792 7.792 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:121(from_ansa_shell) + 1 0.010 0.010 7.727 7.727 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:32(__init__) + 1 0.006 0.006 7.696 7.696 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:34(__init__) + 1 0.493 0.493 7.652 7.652 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:8(calc_adjacencies) + 209 3.239 0.015 3.239 0.015 {built-in method numpy.array} + 24 0.000 0.000 3.192 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:620(__matmul__) + 24 0.000 0.000 3.192 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:505(_mul_dispatch) + 24 0.001 0.000 3.191 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:506(_mul_sparse_matrix) + 24 2.098 0.087 2.098 0.087 {built-in method scipy.sparse._sparsetools.csr_matmat} + 24 1.085 0.045 1.085 0.045 {built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz} + 25 0.000 0.000 0.645 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:477(__sub__) + 25 0.002 0.000 0.644 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:361(_sub_sparse) + 25 0.001 0.000 0.642 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1237(_binopt) + 25 0.615 0.025 0.615 0.025 {built-in method scipy.sparse._sparsetools.csr_minus_csr} + 5 0.000 0.000 0.087 0.017 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:138(unique) + 5 0.002 0.000 0.084 0.017 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:323(_unique1d) + 5 0.080 0.016 0.080 0.016 {method 'sort' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.035 0.035 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:669(_read_ansafile) + 1 0.000 0.000 0.032 0.032 /usr/lib/python3.10/json/__init__.py:299(loads) + 1 0.000 0.000 0.032 0.032 /usr/lib/python3.10/json/decoder.py:332(decode) + 1 0.032 0.032 0.032 0.032 /usr/lib/python3.10/json/decoder.py:343(raw_decode) + 101/100 0.001 0.000 0.030 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:25(__init__) + 101 0.001 0.000 0.024 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:135(check_format) + 1 0.000 0.000 0.023 0.023 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:223(from_ansa_json) + 126 0.001 0.000 0.020 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1167(prune) + 252 0.000 0.000 0.018 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/_lib/_util.py:144(_prune_array) + 53 0.018 0.000 0.018 0.000 {method 'copy' of 'numpy.ndarray' objects} + 1 0.012 0.012 0.015 0.015 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:79() + 1 0.003 0.003 0.013 0.013 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:52(check_vtx_ids) + 1 0.003 0.003 0.013 0.013 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:33(check_hyper_edges) + 6684 0.004 0.000 0.011 0.000 {built-in method builtins.all} + 1 0.002 0.002 0.010 0.010 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:235() + 6667 0.004 0.000 0.008 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:81() + 232 0.002 0.000 0.008 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1269(_get_index_dtype) + 126052 0.007 0.000 0.007 0.000 {method 'append' of 'list' objects} + 32266 0.005 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:42() + 232 0.004 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:147(get_index_dtype) + 6 0.000 0.000 0.005 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:609(__init__) + 4 0.000 0.000 0.005 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:423(dict_to_mgr) + 6666 0.005 0.000 0.005 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:84() + 14 0.000 0.000 0.004 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:493(sanitize_array) + 4 0.000 0.000 0.004 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:100(arrays_to_mgr) + 6730/64 0.002 0.000 0.003 0.000 {built-in method builtins.max} + 6668 0.003 0.000 0.003 0.000 {method 'tolist' of 'numpy.ndarray' objects} +40254/40246 0.003 0.000 0.003 0.000 {built-in method builtins.isinstance} + 22 0.003 0.000 0.003 0.000 {built-in method numpy.asanyarray} + 7 0.000 0.000 0.003 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:120(maybe_convert_platform) + 6667 0.002 0.000 0.003 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:21() + 4 0.000 0.000 0.003 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:588(_homogenize) + 1 0.000 0.000 0.003 0.003 /usr/lib/python3.10/pathlib.py:1129(read_text) + 1 0.001 0.001 0.002 0.002 {method 'read' of '_io.TextIOWrapper' objects} + 19 0.002 0.000 0.002 0.000 {pandas._libs.lib.maybe_convert_objects} + 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3955(__setitem__) + 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4164(_set_item) + 3/2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_decorators.py:323(wrapper) + 1 0.001 0.001 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:230() + 5 0.002 0.000 0.002 0.000 {method 'flatten' of 'numpy.ndarray' objects} + 201 0.002 0.000 0.002 0.000 {built-in method numpy.empty} + 464 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:685(__init__) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:150(__init__) + 6401 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:54() + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:229() + 12/8 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:430(__new__) + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:226() + 104 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:294(check_shape) + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:228() + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:5251(drop) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4475(drop) + 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4892(_sanitize_column) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4512(_drop_axis) + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:57() + 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/codecs.py:319(decode) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() + 2 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() + 1 0.001 0.001 0.001 0.001 {built-in method _codecs.utf_8_decode} + 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:211(isscalarlike) + 11 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1763(construct_1d_object_array_from_listlike) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4139(_set_item_mgr) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:11(check_distance_init_arg) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1983(warning) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1847(_log) + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:227() + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:380(tocsr) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1394(insert) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:146(concat) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_handler.py:98(emit) + 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:708(_with_infer) + 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2182(create_block_manager_from_column_arrays) + 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1855(isscalar) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6844(insert) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:57(new_method) + 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:74() + 50 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:124(_set_self) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/arraylike.py:40(__eq__) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:6233(_cmp_method) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_simple_sinks.py:15(write) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:119(_make_ids_unique) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:132(__init__) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:689(reindex_indexer) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:563(flush) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:774(_slice_take_blocks_ax0) + 52 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:343(asformat) + 586 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:286(nnz) + 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/threading.py:589(wait) + 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/threading.py:288(wait) + 8 0.001 0.000 0.001 0.000 {method 'acquire' of '_thread.lock' objects} + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:949(tocsr) + 235 0.000 0.000 0.001 0.000 :404(parent) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:389(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:171() + 94 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:117(__instancecheck__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:231(comparison_op) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:60(comp_method_OBJECT_ARRAY) + 1 0.000 0.000 0.000 0.000 {pandas._libs.ops.vec_compare} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:956(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6901(drop) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3888(get_indexer) + 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.coo_tocsr} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2253(_form_blocks) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:57(take_nd) + 6407 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects} + 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:20(__init__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:861(take_nd) + 19 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:273(_check) + 94 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:120(_take_nd_ndarray) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:483(mkdtemp) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:393(tocoo) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7396(_maybe_cast_data_without_dtype) +1711/1658 0.000 0.000 0.000 0.000 {built-in method builtins.len} + 578 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:107(_getnnz) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1864(_consolidate_inplace) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:713(_sanitize_str_dtypes) + 1 0.000 0.000 0.000 0.000 {built-in method posix.mkdir} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:565(get_result) + 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:696(min) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6032(get_indexer_for) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:631(_get_new_axes) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:130(filterwarnings) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:633() + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:235(asarray_tuplesafe) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:176(concatenate_managers) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2319(_consolidate) + 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:307() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1111(open) + 1 0.000 0.000 0.000 0.000 {built-in method io.open} + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:249(compile) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:288(_compile) + 778 0.000 0.000 0.000 0.000 {built-in method numpy.asarray} + 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:22(upcast) + 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:108(__init__) + 67/9 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:121(__subclasscheck__) + 10 0.000 0.000 0.000 0.000 {method 'max' of 'numpy.ndarray' objects} + 67/9 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2361(_merge_blocks) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:783(compile) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:39(_amax) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2305(_stack_arrays) + 107 0.000 0.000 0.000 0.000 {built-in method builtins.any} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3758(__getitem__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:648(_get_concat_axis) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1007(__exit__) + 151 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1461(issparse) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1010(cleanup) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:708(_concat_indexes) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5254(__contains__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5377(append) + 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:709(max) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5407(_concat) + 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:45(_instancecheck) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:965(_rmtree) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:688(rmtree) + 575 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1331() + 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:274(full) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7277(ensure_index) + 235 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:3194(_construct_result) + 310 0.000 0.000 0.000 0.000 {built-in method builtins.getattr} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4274(_get_item_cache) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6576(_maybe_cast_listlike_indexer) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:262(__call__) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:342(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1110(sum_duplicates) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:134(_get_option) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3703(_ixs) + 54 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:238(isshape) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:229(eye) + 6 0.000 0.000 0.000 0.000 {method 'min' of 'numpy.ndarray' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1080(__get_has_canonical_format) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1393(moveaxis) + 1 0.000 0.000 0.000 0.000 {method 'format_map' of 'str' objects} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:43(_amin) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2488(convert_to_index_sliceable) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5368(insert) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:638(_get_comb_axis) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:944(parse) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:78(get_objs_combined_axis) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:13(__format__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:122(_get_combined_index) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:26(spdiags) + 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.csr_has_canonical_format} + 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis0_object_object} + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:588(_dtype_to_subclass) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:436(_parse_sub) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:481() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:71(_wrapreduction) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:89(__init__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:627(_extract_index) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codeop.py:117(__call__) + 103 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:93(to_native) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:494(_parse) + 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:40(_check) + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:346(_name_get) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:303(maybe_iterable_to_list) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:116(_get_single_key) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:622(_code) + 298 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:296(format) + 15 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:399(extract_array) + 2 0.000 0.000 0.000 0.000 {built-in method builtins.compile} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:326(_get_take_nd_function) + 255 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:503(can_cast) + 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1591(_is_dtype_type) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6285(_should_compare) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7372(maybe_extract_name) + 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:312() + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1178(maybe_infer_to_datetimelike) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:881(_engine) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2979(prod) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:288(_get_take_nd_function_cached) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:199() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:278(_get_mgr_concatenation_plan) + 73 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:267(isdense) + 16 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1246(is_float_dtype) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:259(__init__) + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:181(_add_filter) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:27(require) + 9 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:165(simplefilter) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:626(write) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1330(normalize_axis_tuple) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:219(vstack) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:259(schedule) + 5 0.000 0.000 0.000 0.000 {built-in method builtins.sorted} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1455(_insert_update_blklocs_and_blknos) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5844(__finalize__) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:957(__new__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:200(fill_value) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:95() + 101 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:23(_get_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:204(union_indexes) + 2/1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:87(_compile) + 82 0.000 0.000 0.000 0.000 {built-in method builtins.hash} + 352 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:236(_swap) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3975(_get_indexer) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2421(is_boolean) + 1 0.000 0.000 0.000 0.000 {built-in method posix.rmdir} + 58 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4257(_box_col_values) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:589(_from_parts) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1129(iget) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2745(inferred_type) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:645(na_value_for_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:548(_schedule_flush) + 216 0.000 0.000 0.000 0.000 {built-in method _operator.index} + 3 0.000 0.000 0.000 0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:310(reshape_uniq) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:108(isna) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:744(_try_cast) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2324() + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5562(append) + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:458(__enter__) + 3 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:554(_take_preprocess_indexer_and_fill_value) + 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_object_object} + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:690(_simple_new) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:160(_consolidate_key) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:54(shape) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/base.py:286(is_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:81(aware_now) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5116(_get_engine_target) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:650(_warn_if_deprecated) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:569(_parse_args) + 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_int64_int64} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1285(exists) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:458(copy) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:627(_rmtree_safe_fd) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3241(union) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1445(_insert_update_mgr_locs) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:501(is_categorical_dtype) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:191(_isna) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1092(stat) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:4020(_check_indexing_method) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1673(construct_1d_arraylike_from_scalar) + 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1487(is_ea_or_datetimelike_dtype) + 2 0.000 0.000 0.000 0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects} + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:330(_name_includes_bit_suffix) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:71(concat_compat) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:357(issubdtype) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4137(_check_setitem_copy) + 1 0.000 0.000 0.000 0.000 {built-in method posix.stat} + 6 0.000 0.000 0.000 0.000 {built-in method builtins.next} + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2120(get_block_type) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6804(delete) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1846(is_consolidated) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5464(equals) + 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_datetimelike_array} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2421(all) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:172(blknos) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5904(__setattr__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:560(_compile_info) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:384(default_index) + 12 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:162(is_object_dtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/zmq/sugar/socket.py:545(send) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:676(_sanitize_ndim) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:997(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:527(maybe_promote) + 131 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass} + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:597(_get_root) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:585(is_dtype_equal) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:268(index_labels_to_array) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2161(new_block_2d) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:566(require_length_match) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:790(is_unsigned_integer_dtype) + 2 0.000 0.000 0.000 0.000 {method 'view' of 'numpy.ndarray' objects} + 12 0.000 0.000 0.000 0.000 :1053(_handle_fromlist) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:56(parse_parts) + 32 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_list_like} + 13 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:566(_maybe_promote_cached) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:708(_values) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1854(_consolidate_check) + 21 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:56() + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:699(is_valid_na_for_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:574(_maybe_promote) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:77(get_op_result_name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1934(from_array) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:33(seterr) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:292(__next__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1040(_verify_integrity) + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:611(_get_deprecated_option) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:569(__init__) + 29 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:946(__len__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:463(is_interval_dtype) + 4 0.000 0.000 0.000 0.000 {method 'strftime' of 'datetime.date' objects} + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:60(__getitem__) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:173(_simple_new) + 15 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar} + 23 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:255(get) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:268(_isna_array) + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:477(__exit__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:436(_promote_fields) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:430(__enter__) + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:437(__init__) + 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:461(ensure_wrapped_if_datetimelike) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5172(delete) + 47 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 9/8 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2237(_grouping_func) + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:283(issubclass_) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:565(_set_axis) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2398(_fast_count_smallints) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:736(is_signed_integer_dtype) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:247(_getnnz) + 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:148() + 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_1d_int64_int64} + 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:325(is_hashable) + 1 0.000 0.000 0.000 0.000 {method 'sub' of 're.Pattern' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:377(abspath) + 1 0.000 0.000 0.000 0.000 {built-in method posix.open} + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:621(__str__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3754(get_loc) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:49(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:136(ones) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2172(new_block) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:108() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1025(argsort) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/dtypes.py:1247(is_dtype) + 2/1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:175(getwidth) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1380() + 1 0.000 0.000 0.000 0.000 {built-in method posix.lstat} + 1 0.000 0.000 0.000 0.000 {method 'any' of 'numpy.ndarray' objects} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5304(__getitem__) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:236(make_block_same_class) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:309(_isna_string_dtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2381(is_unique) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1752(_validate_names) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2091(maybe_coerce_values) + 5 0.000 0.000 0.000 0.000 {built-in method builtins.sum} + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:684(is_integer_dtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:661(name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1185(tile) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:279(helper) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1169(is_alive) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1390(_indexed_same) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1860() + 1 0.000 0.000 0.000 0.000 {method 'fill' of 'numpy.ndarray' objects} + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:262(__subclasshook__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:506(choices) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:593(detach) + 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_io._IOBase' objects} + 24 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:234(__next) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7456(unpack_nested_dtype) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1768(ravel) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6205(_maybe_promote) + 29 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:165(__getitem__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:86(_csr_container) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1725(validate_all_hashable) + 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:925(__len__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:545(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:266(is_dict_like) + 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:169(tocsr) + 6 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange} + 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1556(get_dtype) + 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:156() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:708(__get__) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:216(isintlike) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:476() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:1267(_set_as_cached) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2266(ensure_block_shape) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:705(_combine_concat_plans) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:99(_maybe_match_name) + 6 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:78(_check_methods) + 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:146(classes) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:53(_wrapfunc) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:55(_any) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:579(_select_options) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:338(normpath) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1392() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:986(__and__) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2069(internal_values) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:742(__iter__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:772(getenv) + 1 0.000 0.000 0.000 0.000 {built-in method now} + 53 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:409(__subclasshook__) + 1 0.000 0.000 0.000 0.000 {built-in method posix.scandir} + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2783(_is_multi) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6303(_is_comparable_dtype) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:631(__fspath__) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:130(__enter__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/frozen.py:70(__getitem__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3737(_convert_can_do_setop) + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:870(_reset_identity) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:140(basename) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:102(__init__) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:564(_get_axis) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:125(_unpack_tuple) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:640(_info_axis) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:733(_maybe_repeat) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:135(getdata) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1891(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1278(is_bool_dtype) + 22 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:173(append) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:79(__getitem__) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/types.py:176(__get__) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:139(__exit__) + 16 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x56520b12d9a0} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:519() + 10 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:435(__exit__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:525(_view_is_safe) + 17 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:821(get) + 2 0.000 0.000 0.000 0.000 {method 'match' of 're.Pattern' objects} + 1 0.000 0.000 0.000 0.000 {method 'timetuple' of 'datetime.datetime' objects} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:1498(__len__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:253(_sanitize_params) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:236(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:71(join) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1967(keys) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:81(atleast_2d) + 30 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5090(_values) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:150(dirname) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:16(_coo_container) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1420(is_1d_only_ea_dtype) + 4 0.000 0.000 0.000 0.000 {method 'transpose' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2752(_is_all_dates) + 5 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_object} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1751(pandas_dtype) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:117(splitext) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:638(_translate_key) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3198(_get_reconciled_name_object) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:830(_rename) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1204(is_numeric_dtype) + 43 0.000 0.000 0.000 0.000 /usr/lib/python3.10/typing.py:1737(cast) + 39 0.000 0.000 0.000 0.000 {built-in method _warnings._filters_mutated} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:289() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5204(_validate_fill_value) + 1 0.000 0.000 0.000 0.000 {method 'argsort' of 'numpy.ndarray' objects} + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1154(needs_i8_conversion) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:874(shape) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:132(geterr) + 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:151(classes_and_not_datetimelike) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:108(_get_distinct_objs) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:362(apply_if_callable) + 1 0.000 0.000 0.000 0.000 /tmp/ipykernel_16169/2440128879.py:1() + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1102(_wait_for_tstate_lock) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:611(name) + 8 0.000 0.000 0.000 0.000 {built-in method numpy.core._multiarray_umath.normalize_axis_index} + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:72(get) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:675(__getitem__) + 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:24(_kind_name) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:85(allows_duplicate_labels) + 9 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2250(extend_blocks) + 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:1080(copyto) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/compilerop.py:180(extra_flags) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:453(_view) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1744() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:26(_csr_container) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:482() + 1 0.000 0.000 0.000 0.000 {built-in method time.localtime} + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:359(__call__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4234(_ensure_valid_index) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:109(getdtype) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:608(_format_parsed_parts) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:541(equals) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:550(_get_axis_number) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:228(set_axis) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1102(__set_has_canonical_format) + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:381(__subclasshook__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:309(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:234(ident) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:555() + 7 0.000 0.000 0.000 0.000 {method 'ravel' of 'numpy.ndarray' objects} + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1430(current_thread) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1042() + 7 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_iterator} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:281(rng) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:225(__init__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:488() + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:41(_get_sep) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2656(check_deprecated_indexers) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:292() + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:231(mgr_to_mgr) + 2 0.000 0.000 0.000 0.000 {method 'timestamp' of 'datetime.datetime' objects} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:151(cast_scalar_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:23(atleast_1d) + 4 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.checknull} + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:574(_ensure_array) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:624(get) + 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:213(mgr_locs) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1435() + 3 0.000 0.000 0.000 0.000 {built-in method posix.getpid} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:353(dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:328(_sanitize_and_check) + 4 0.000 0.000 0.000 0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects} + 21 0.000 0.000 0.000 0.000 {built-in method _sre.unicode_iscased} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:460(array_equivalent) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:192(all_none) + 6 0.000 0.000 0.000 0.000 {built-in method builtins.min} + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:113() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:16(__format__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2372() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3731(_assert_can_do_setop) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1001(__repr__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1061(from_blocks) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2186(check_ndim) + 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1734(name) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:60(isabs) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:104() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:436(gettempdir) + 1 0.000 0.000 0.000 0.000 {built-in method posix.fstat} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:570(_get_block_manager_axis) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:133(_unique_dispatcher) + 5 0.000 0.000 0.000 0.000 {method 'add' of 'pandas._libs.internals.BlockPlacement' objects} + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2433(_using_copy_on_write) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/dispatch.py:13(should_extension_dispatch) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:137(_event_pipe) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:58(_validate_set_axis) + 5 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:485(_get_literal_prefix) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:121(_splitext) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:354(__init__) + 21 0.000 0.000 0.000 0.000 {built-in method builtins.ord} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:910(clean_reindex_fill_method) + 2 0.000 0.000 0.000 0.000 {built-in method numpy.seterrobj} + 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:90(get_shape) + 6 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {method 'replace' of 'datetime.datetime' objects} + 8 0.000 0.000 0.000 0.000 {built-in method sys.intern} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:413(_engine_type) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:755(encode) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:188(blklocs) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:682() + 1 0.000 0.000 0.000 0.000 {built-in method posix.close} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:714(_ensure_dtype_type) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3442(compare) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:161(__len__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:827(iget) + 2 0.000 0.000 0.000 0.000 {method 'nonzero' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:447(_simple) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:215(_vhstack_dispatcher) + 1 0.000 0.000 0.000 0.000 {built-in method numpy.zeros} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:500(dtype) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1422(sanitize_to_nanoseconds) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1433(is_extension_array_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:521(_is_master_process) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2407(_preprocess_slice_or_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:558(_get_axis_name) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:72() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:103() + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5881() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:839(is_) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:110() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:1231(user_global_ns) + 2 0.000 0.000 0.000 0.000 {pandas._libs.internals.get_blkno_placements} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1455() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1820(_get_names) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1048(is_numeric_v_string_like) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:332(attrs) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:516(_get_charset_prefix) + 7 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects} + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1145(ident) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:241(disallow_kwargs) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:857(axes) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:664(ndim) + 4 0.000 0.000 0.000 0.000 {method 'join' of 'str' objects} + 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:353(flags) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_validators.py:226(validate_bool_kwarg) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:678(__new__) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:801(value) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:233(is_single_block) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:280() + 9 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_platform_int} + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:153(concatenate) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:986(dtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3176(ndim) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:246(_maybe_reindex_columns_na_proxy) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:76(__init__) + 4 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:928(fix_flags) + 19 0.000 0.000 0.000 0.000 {built-in method _sre.unicode_tolower} + 1 0.000 0.000 0.000 0.000 {built-in method _sre.compile} + 10 0.000 0.000 0.000 0.000 {built-in method posix.fspath} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:861(is_empty_data) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5402() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:267(__exit__) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:112(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:264(__enter__) + 5 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:426(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:756(infer_dtype_from_scalar) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:619(isstring) + 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.item_from_zerodim} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1389(_moveaxis_dispatcher) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:87(samestat) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:477(_get_iscased) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:53(allows_duplicate_labels) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5888(__getattr__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:207(_arrays_for_stack_dispatcher) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:287(tell) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:117() + 1 0.000 0.000 0.000 0.000 {method '__format__' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:224(_infer_return_type) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:238(items) + 4 0.000 0.000 0.000 0.000 {built-in method numpy.geterrobj} + 7 0.000 0.000 0.000 0.000 {method 'group' of 're.Match' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5876() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:273(_release_save) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:23(__init__) + 3 0.000 0.000 0.000 0.000 {method 'item' of 'numpy.ndarray' objects} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:85(empty_like) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:92(is_nonempty) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:82(groups) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:823(shape) + 4 0.000 0.000 0.000 0.000 {built-in method builtins.callable} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:537(is_string_or_object_np_dtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2009(_block) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5411() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1931(np_can_hold_element) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:8(__init__) + 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer} + 8 0.000 0.000 0.000 0.000 {method 'random' of '_random.Random' objects} + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:239(splitroot) + 1 0.000 0.000 0.000 0.000 {built-in method builtins.divmod} + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:196() + 2 0.000 0.000 0.000 0.000 {built-in method numpy.promote_types} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:817(fsdecode) + 2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects} + 2 0.000 0.000 0.000 0.000 {method 'values' of 'collections.OrderedDict' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:178(not_none) + 5 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects} + 1 0.000 0.000 0.000 0.000 {built-in method sys._getframe} + 2 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock} + 4 0.000 0.000 0.000 0.000 {built-in method builtins.id} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:625(_get_result_dim) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:107(clean_fill_method) + 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_float} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:279(_is_owned) + 8 0.000 0.000 0.000 0.000 {built-in method math.floor} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:349() + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:553(is_set) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6193(_index_as_unique) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:250(match) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3172(_ndim_dispatcher) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1142(__set_sorted) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:108() + 2 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:669(result_type) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:260(__init__) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:182() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:276(_acquire_restore) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1764(_ravel_dispatcher) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:600(_constructor) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5558(_append_dispatcher) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6569(_maybe_cast_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:109() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:37(current_process) + 2 0.000 0.000 0.000 0.000 {built-in method sys.audit} + 1 0.000 0.000 0.000 0.000 {method 'get' of '_contextvars.ContextVar' objects} + 4 0.000 0.000 0.000 0.000 {method 'add' of 'set' objects} + 4 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:892(bincount) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:701(_maybe_check_integrity) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:368(_get_candidate_names) + 2 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1257() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2381() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5364(_insert_dispatcher) + 1 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:37(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:51(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3209(_validate_sort_keyword) + 3 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_bool} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:99(_check_closed) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:77(_atleast_2d_dispatcher) + 1 0.000 0.000 0.000 0.000 {method '__exit__' of 'posix.ScandirIterator' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:424(_gettempdir) + 2 0.000 0.000 0.000 0.000 {built-in method _thread.get_ident} + 1 0.000 0.000 0.000 0.000 {method 'total_seconds' of 'datetime.timedelta' objects} + 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2974(_prod_dispatcher) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1181(_tile_dispatcher) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:324(ndim) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1129(name) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 2 0.000 0.000 0.000 0.000 {built-in method io.text_encoding} + 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:169(__setitem__) + 2 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5168(_delete_dispatcher) + 2 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.lock' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:116() + 1 0.000 0.000 0.000 0.000 {method 'tzname' of 'datetime.timezone' objects} + 1 0.000 0.000 0.000 0.000 {built-in method atexit.register} + 1 0.000 0.000 0.000 0.000 {built-in method numpy.ascontiguousarray} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:546(_constructor) + 1 0.000 0.000 0.000 0.000 {method 'encode' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:189(name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2416(_all_dispatcher) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:728(_constructor) + 1 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1004(__enter__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1021(_argsort_dispatcher) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:281() + 1 0.000 0.000 0.000 0.000 {method 'release' of '_thread.lock' objects} + 1 0.000 0.000 0.000 0.000 {method '__enter__' of '_thread.lock' objects} + 1 0.000 0.000 0.000 0.000 {built-in method builtins.abs} + 1 0.000 0.000 0.000 0.000 {method 'utcoffset' of 'datetime.timezone' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:19(_atleast_1d_dispatcher) + 1 0.000 0.000 0.000 0.000 {function FrozenList.__getitem__ at 0x7f0ed407d5a0} + + From 618365fce11c2ba0370922c056ccc62a2e989a5d Mon Sep 17 00:00:00 2001 From: soeren Date: Fri, 27 Oct 2023 11:01:19 +0200 Subject: [PATCH 04/27] exclude private files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 12a5a6c..1ef6f88 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ __pycache__ /data/*internal* .DS_Store .venv/ -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints +data/mb_private_data \ No newline at end of file From 29fdbfbe71766d71f0721bcd6c4cbddcf4ddf83d Mon Sep 17 00:00:00 2001 From: soeren Date: Mon, 30 Oct 2023 13:14:43 +0100 Subject: [PATCH 05/27] test run --- scripts/discover_bottlenecks.ipynb | 8 + scripts/profile_stats.txt | 1149 +++++++++++++--------------- 2 files changed, 560 insertions(+), 597 deletions(-) diff --git a/scripts/discover_bottlenecks.ipynb b/scripts/discover_bottlenecks.ipynb index 0d70f87..c2a2085 100644 --- a/scripts/discover_bottlenecks.ipynb +++ b/scripts/discover_bottlenecks.ipynb @@ -88,6 +88,14 @@ "%load_ext snakeviz\n", "%snakeviz Mesh2VecCae.from_ansa_shell(25,Path(\"../data/hat/Hatprofile.k\"),json_mesh_file=Path(\"../data/hat/cached_hat_key.json\"))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac198351", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/scripts/profile_stats.txt b/scripts/profile_stats.txt index 67ef622..e0206b0 100644 --- a/scripts/profile_stats.txt +++ b/scripts/profile_stats.txt @@ -1,771 +1,726 @@ - 265989 function calls (259137 primitive calls) in 7.785 seconds + 1107221 function calls (1078620 primitive calls) in 47.052 seconds Ordered by: cumulative time ncalls tottime percall cumtime percall filename:lineno(function) - 2 0.000 0.000 7.804 3.902 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3490(run_code) - 2 0.000 0.000 7.804 3.902 {built-in method builtins.exec} - 1 0.001 0.001 7.792 7.792 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:121(from_ansa_shell) - 1 0.010 0.010 7.727 7.727 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:32(__init__) - 1 0.006 0.006 7.696 7.696 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:34(__init__) - 1 0.493 0.493 7.652 7.652 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:8(calc_adjacencies) - 209 3.239 0.015 3.239 0.015 {built-in method numpy.array} - 24 0.000 0.000 3.192 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:620(__matmul__) - 24 0.000 0.000 3.192 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:505(_mul_dispatch) - 24 0.001 0.000 3.191 0.133 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:506(_mul_sparse_matrix) - 24 2.098 0.087 2.098 0.087 {built-in method scipy.sparse._sparsetools.csr_matmat} - 24 1.085 0.045 1.085 0.045 {built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz} - 25 0.000 0.000 0.645 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:477(__sub__) - 25 0.002 0.000 0.644 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:361(_sub_sparse) - 25 0.001 0.000 0.642 0.026 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1237(_binopt) - 25 0.615 0.025 0.615 0.025 {built-in method scipy.sparse._sparsetools.csr_minus_csr} - 5 0.000 0.000 0.087 0.017 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:138(unique) - 5 0.002 0.000 0.084 0.017 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:323(_unique1d) - 5 0.080 0.016 0.080 0.016 {method 'sort' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.035 0.035 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:669(_read_ansafile) - 1 0.000 0.000 0.032 0.032 /usr/lib/python3.10/json/__init__.py:299(loads) - 1 0.000 0.000 0.032 0.032 /usr/lib/python3.10/json/decoder.py:332(decode) - 1 0.032 0.032 0.032 0.032 /usr/lib/python3.10/json/decoder.py:343(raw_decode) - 101/100 0.001 0.000 0.030 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:25(__init__) - 101 0.001 0.000 0.024 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:135(check_format) - 1 0.000 0.000 0.023 0.023 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:223(from_ansa_json) - 126 0.001 0.000 0.020 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1167(prune) - 252 0.000 0.000 0.018 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/_lib/_util.py:144(_prune_array) - 53 0.018 0.000 0.018 0.000 {method 'copy' of 'numpy.ndarray' objects} - 1 0.012 0.012 0.015 0.015 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:79() - 1 0.003 0.003 0.013 0.013 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:52(check_vtx_ids) - 1 0.003 0.003 0.013 0.013 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:33(check_hyper_edges) - 6684 0.004 0.000 0.011 0.000 {built-in method builtins.all} - 1 0.002 0.002 0.010 0.010 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:235() - 6667 0.004 0.000 0.008 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:81() - 232 0.002 0.000 0.008 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1269(_get_index_dtype) - 126052 0.007 0.000 0.007 0.000 {method 'append' of 'list' objects} - 32266 0.005 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:42() - 232 0.004 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:147(get_index_dtype) - 6 0.000 0.000 0.005 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:609(__init__) - 4 0.000 0.000 0.005 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:423(dict_to_mgr) - 6666 0.005 0.000 0.005 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:84() - 14 0.000 0.000 0.004 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:493(sanitize_array) - 4 0.000 0.000 0.004 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:100(arrays_to_mgr) - 6730/64 0.002 0.000 0.003 0.000 {built-in method builtins.max} - 6668 0.003 0.000 0.003 0.000 {method 'tolist' of 'numpy.ndarray' objects} -40254/40246 0.003 0.000 0.003 0.000 {built-in method builtins.isinstance} - 22 0.003 0.000 0.003 0.000 {built-in method numpy.asanyarray} - 7 0.000 0.000 0.003 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:120(maybe_convert_platform) - 6667 0.002 0.000 0.003 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:21() - 4 0.000 0.000 0.003 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:588(_homogenize) - 1 0.000 0.000 0.003 0.003 /usr/lib/python3.10/pathlib.py:1129(read_text) - 1 0.001 0.001 0.002 0.002 {method 'read' of '_io.TextIOWrapper' objects} - 19 0.002 0.000 0.002 0.000 {pandas._libs.lib.maybe_convert_objects} - 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3955(__setitem__) - 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4164(_set_item) - 3/2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_decorators.py:323(wrapper) - 1 0.001 0.001 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:230() - 5 0.002 0.000 0.002 0.000 {method 'flatten' of 'numpy.ndarray' objects} + 2 0.000 0.000 47.293 23.646 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3490(run_code) + 2 0.000 0.000 47.292 23.646 {built-in method builtins.exec} + 1 0.004 0.004 47.137 47.137 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:121(from_ansa_shell) + 1 0.044 0.044 46.760 46.760 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:32(__init__) + 1 0.095 0.095 46.637 46.637 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:34(__init__) + 1 2.928 2.928 46.387 46.387 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:8(calc_adjacencies) + 24 0.000 0.000 19.785 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:620(__matmul__) + 24 0.000 0.000 19.785 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:505(_mul_dispatch) + 24 0.001 0.000 19.784 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:506(_mul_sparse_matrix) + 209 19.751 0.095 19.751 0.095 {built-in method numpy.array} + 24 13.078 0.545 13.078 0.545 {built-in method scipy.sparse._sparsetools.csr_matmat} + 24 6.696 0.279 6.696 0.279 {built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz} + 25 0.000 0.000 3.517 0.141 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:477(__sub__) + 25 0.004 0.000 3.516 0.141 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:361(_sub_sparse) + 25 0.001 0.000 3.512 0.140 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1237(_binopt) + 25 3.306 0.132 3.306 0.132 {built-in method scipy.sparse._sparsetools.csr_minus_csr} + 5 0.000 0.000 0.415 0.083 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:138(unique) + 5 0.008 0.002 0.403 0.081 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:323(_unique1d) + 5 0.390 0.078 0.390 0.078 {method 'sort' of 'numpy.ndarray' objects} + 101/100 0.001 0.000 0.211 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:25(__init__) + 101 0.001 0.000 0.203 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:135(check_format) + 126 0.001 0.000 0.199 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1167(prune) + 53 0.198 0.004 0.198 0.004 {method 'copy' of 'numpy.ndarray' objects} + 252 0.000 0.000 0.197 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/_lib/_util.py:144(_prune_array) + 1 0.000 0.000 0.194 0.194 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:669(_read_ansafile) + 1 0.000 0.000 0.183 0.183 /usr/lib/python3.10/json/__init__.py:299(loads) + 1 0.000 0.000 0.183 0.183 /usr/lib/python3.10/json/decoder.py:332(decode) + 1 0.183 0.183 0.183 0.183 /usr/lib/python3.10/json/decoder.py:343(raw_decode) + 1 0.002 0.002 0.155 0.155 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:223(from_ansa_json) + 1 0.012 0.012 0.099 0.099 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:235() + 1 0.047 0.047 0.059 0.059 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:79() + 1 0.016 0.016 0.057 0.057 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:33(check_hyper_edges) + 1 0.015 0.015 0.053 0.053 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:52(check_vtx_ids) + 28553 0.017 0.000 0.049 0.000 {built-in method builtins.all} + 28536 0.017 0.000 0.039 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:81() + 555553 0.030 0.000 0.030 0.000 {method 'append' of 'list' objects} + 140377 0.021 0.000 0.027 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:42() + 28535 0.022 0.000 0.022 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:84() + 6 0.000 0.000 0.017 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:609(__init__) + 4 0.001 0.000 0.017 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:423(dict_to_mgr) + 28599/64 0.007 0.000 0.016 0.000 {built-in method builtins.max} + 14 0.001 0.000 0.015 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:493(sanitize_array) + 4 0.000 0.000 0.014 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:100(arrays_to_mgr) + 28537 0.014 0.000 0.014 0.000 {method 'tolist' of 'numpy.ndarray' objects} + 28536 0.009 0.000 0.014 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:21() + 22 0.013 0.001 0.013 0.001 {built-in method numpy.asanyarray} + 7 0.000 0.000 0.012 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:120(maybe_convert_platform) + 4 0.001 0.000 0.011 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:588(_homogenize) +169951/169943 0.010 0.000 0.010 0.000 {built-in method builtins.isinstance} + 1 0.000 0.000 0.010 0.010 /usr/lib/python3.10/pathlib.py:1129(read_text) + 1 0.006 0.006 0.010 0.010 {method 'read' of '_io.TextIOWrapper' objects} + 232 0.002 0.000 0.009 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1269(_get_index_dtype) + 1 0.007 0.007 0.008 0.008 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:230() + 19 0.008 0.000 0.008 0.000 {pandas._libs.lib.maybe_convert_objects} + 232 0.004 0.000 0.007 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:147(get_index_dtype) + 1 0.006 0.006 0.006 0.006 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:229() + 1 0.006 0.006 0.006 0.006 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:228() + 28023 0.004 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:54() + 2 0.000 0.000 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3955(__setitem__) + 1 0.000 0.000 0.005 0.005 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() + 2 0.005 0.003 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() + 2 0.000 0.000 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4164(_set_item) + 11 0.005 0.000 0.005 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1763(construct_1d_object_array_from_listlike) + 1 0.005 0.005 0.005 0.005 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:226() + 2 0.000 0.000 0.005 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4892(_sanitize_column) + 1 0.000 0.000 0.004 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:150(__init__) + 1 0.004 0.004 0.004 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:57() + 5 0.004 0.001 0.004 0.001 {method 'flatten' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.004 0.004 /usr/lib/python3.10/codecs.py:319(decode) + 1 0.004 0.004 0.004 0.004 {built-in method _codecs.utf_8_decode} + 3/2 0.000 0.000 0.003 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_decorators.py:323(wrapper) + 4 0.000 0.000 0.003 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2182(create_block_manager_from_column_arrays) + 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:227() + 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:74() + 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:171() + 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:380(tocsr) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:119(_make_ids_unique) 201 0.002 0.000 0.002 0.000 {built-in method numpy.empty} - 464 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:685(__init__) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:150(__init__) - 6401 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:54() - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:229() - 12/8 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:430(__new__) - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:226() + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:57(new_method) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/arraylike.py:40(__eq__) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:6233(_cmp_method) + 2 0.002 0.001 0.002 0.001 {built-in method scipy.sparse._sparsetools.coo_tocsr} + 4 0.000 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2253(_form_blocks) + 2 0.000 0.000 0.002 0.001 /usr/lib/python3.10/codeop.py:117(__call__) + 2 0.002 0.001 0.002 0.001 {built-in method builtins.compile} + 12/8 0.000 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:430(__new__) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:231(comparison_op) + 464 0.002 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:685(__init__) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:60(comp_method_OBJECT_ARRAY) + 1 0.002 0.002 0.002 0.002 {pandas._libs.ops.vec_compare} + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:5251(drop) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4475(drop) + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4512(_drop_axis) + 28029 0.002 0.000 0.002 0.000 {method 'keys' of 'dict' objects} + 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:146(concat) + 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:132(__init__) 104 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:294(check_shape) - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:228() - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:5251(drop) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4475(drop) - 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4892(_sanitize_column) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4512(_drop_axis) - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:57() - 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/codecs.py:319(decode) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() - 2 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() - 1 0.001 0.001 0.001 0.001 {built-in method _codecs.utf_8_decode} + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:565(get_result) 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:211(isscalarlike) - 11 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1763(construct_1d_object_array_from_listlike) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4139(_set_item_mgr) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:11(check_distance_init_arg) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1983(warning) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1847(_log) - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:227() - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:380(tocsr) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1394(insert) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:146(concat) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_handler.py:98(emit) - 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:708(_with_infer) - 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2182(create_block_manager_from_column_arrays) - 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1855(isscalar) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6844(insert) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:57(new_method) - 1 0.001 0.001 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:74() - 50 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:124(_set_self) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/arraylike.py:40(__eq__) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:6233(_cmp_method) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_simple_sinks.py:15(write) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:119(_make_ids_unique) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:132(__init__) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:176(concatenate_managers) + 19 0.001 0.000 0.001 0.000 {method 'reduce' of 'numpy.ufunc' objects} + 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:273(_check) + 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1864(_consolidate_inplace) + 13 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:713(_sanitize_str_dtypes) 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:689(reindex_indexer) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:563(flush) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2319(_consolidate) 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:774(_slice_take_blocks_ax0) + 2 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2361(_merge_blocks) + 6 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2305(_stack_arrays) + 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:861(take_nd) + 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1855(isscalar) + 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:57(take_nd) 52 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:343(asformat) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:11(check_distance_init_arg) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1983(warning) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1847(_log) + 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:120(_take_nd_ndarray) + 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:27(require) 586 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:286(nnz) - 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/threading.py:589(wait) - 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/threading.py:288(wait) - 8 0.001 0.000 0.001 0.000 {method 'acquire' of '_thread.lock' objects} 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:949(tocsr) + 50 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:124(_set_self) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4139(_set_item_mgr) + 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:108() + 8 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7396(_maybe_cast_data_without_dtype) + 6 0.001 0.000 0.001 0.000 {method 'upper' of 'str' objects} + 10 0.000 0.000 0.001 0.000 {method 'max' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_handler.py:98(emit) + 10 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:39(_amax) + 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1394(insert) 235 0.000 0.000 0.001 0.000 :404(parent) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:389(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:171() - 94 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:117(__instancecheck__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:231(comparison_op) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:60(comp_method_OBJECT_ARRAY) - 1 0.000 0.000 0.000 0.000 {pandas._libs.ops.vec_compare} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:956(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6901(drop) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3888(get_indexer) - 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.coo_tocsr} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2253(_form_blocks) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:57(take_nd) - 6407 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects} - 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:20(__init__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:861(take_nd) - 19 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:273(_check) - 94 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:120(_take_nd_ndarray) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:483(mkdtemp) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:393(tocoo) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7396(_maybe_cast_data_without_dtype) -1711/1658 0.000 0.000 0.000 0.000 {built-in method builtins.len} + 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:708(_with_infer) + 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/tempfile.py:956(__init__) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_simple_sinks.py:15(write) + 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/tempfile.py:483(mkdtemp) + 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:393(tocoo) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:563(flush) 578 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:107(_getnnz) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1864(_consolidate_inplace) - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:713(_sanitize_str_dtypes) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6844(insert) 1 0.000 0.000 0.000 0.000 {built-in method posix.mkdir} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:565(get_result) - 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:696(min) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6032(get_indexer_for) + 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:20(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:589(wait) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:288(wait) + 8 0.000 0.000 0.000 0.000 {method 'acquire' of '_thread.lock' objects} + 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis0_object_object} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6901(drop) +1691/1640 0.000 0.000 0.000 0.000 {built-in method builtins.len} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3888(get_indexer) + 6 0.000 0.000 0.000 0.000 {method 'min' of 'numpy.ndarray' objects} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:43(_amin) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:389(__init__) + 94 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:117(__instancecheck__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:631(_get_new_axes) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:130(filterwarnings) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:219(vstack) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:633() 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:235(asarray_tuplesafe) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:176(concatenate_managers) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2319(_consolidate) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6032(get_indexer_for) + 778 0.000 0.000 0.000 0.000 {built-in method numpy.asarray} 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:307() + 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:696(min) + 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:108(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1110(sum_duplicates) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1080(__get_has_canonical_format) + 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.csr_has_canonical_format} + 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:709(max) + 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:22(upcast) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1111(open) 1 0.000 0.000 0.000 0.000 {built-in method io.open} - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:249(compile) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:288(_compile) - 778 0.000 0.000 0.000 0.000 {built-in method numpy.asarray} - 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:22(upcast) - 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:108(__init__) - 67/9 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:121(__subclasscheck__) - 10 0.000 0.000 0.000 0.000 {method 'max' of 'numpy.ndarray' objects} - 67/9 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2361(_merge_blocks) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:783(compile) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:39(_amax) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2305(_stack_arrays) - 107 0.000 0.000 0.000 0.000 {built-in method builtins.any} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3758(__getitem__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:648(_get_concat_axis) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1007(__exit__) 151 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1461(issparse) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1010(cleanup) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:648(_get_concat_axis) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:708(_concat_indexes) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5254(__contains__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5377(append) - 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:709(max) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5407(_concat) - 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:45(_instancecheck) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:965(_rmtree) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:688(rmtree) - 575 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1331() 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:274(full) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5407(_concat) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5254(__contains__) + 107 0.000 0.000 0.000 0.000 {built-in method builtins.any} 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7277(ensure_index) 235 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6576(_maybe_cast_listlike_indexer) + 575 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1331() + 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:45(_instancecheck) + 94 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1007(__exit__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1010(cleanup) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:3194(_construct_result) - 310 0.000 0.000 0.000 0.000 {built-in method builtins.getattr} + 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_object_object} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4274(_get_item_cache) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6576(_maybe_cast_listlike_indexer) 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:262(__call__) 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:342(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1110(sum_duplicates) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:134(_get_option) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3703(_ixs) - 54 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:238(isshape) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:229(eye) - 6 0.000 0.000 0.000 0.000 {method 'min' of 'numpy.ndarray' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1080(__get_has_canonical_format) + 54 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:238(isshape) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:965(_rmtree) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3703(_ixs) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:134(_get_option) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:688(rmtree) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2488(convert_to_index_sliceable) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1393(moveaxis) + 310 0.000 0.000 0.000 0.000 {built-in method builtins.getattr} 1 0.000 0.000 0.000 0.000 {method 'format_map' of 'str' objects} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:43(_amin) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2488(convert_to_index_sliceable) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5368(insert) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:638(_get_comb_axis) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:944(parse) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:588(_dtype_to_subclass) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:78(get_objs_combined_axis) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5368(insert) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:13(__format__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:122(_get_combined_index) + 298 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:296(format) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:26(spdiags) - 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.csr_has_canonical_format} - 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis0_object_object} - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:588(_dtype_to_subclass) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:436(_parse_sub) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:481() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:71(_wrapreduction) + 103 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:93(to_native) + 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_int64_int64} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:89(__init__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1673(construct_1d_arraylike_from_scalar) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:627(_extract_index) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codeop.py:117(__call__) - 103 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:93(to_native) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:494(_parse) 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:40(_check) - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:346(_name_get) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:303(maybe_iterable_to_list) 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:116(_get_single_key) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:622(_code) - 298 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:296(format) - 15 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:399(extract_array) - 2 0.000 0.000 0.000 0.000 {built-in method builtins.compile} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:326(_get_take_nd_function) - 255 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:503(can_cast) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:881(_engine) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:130(filterwarnings) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:259(__init__) 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1591(_is_dtype_type) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6285(_should_compare) 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7372(maybe_extract_name) - 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:312() + 15 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:399(extract_array) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6285(_should_compare) 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1178(maybe_infer_to_datetimelike) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:881(_engine) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2979(prod) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:288(_get_take_nd_function_cached) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:199() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:278(_get_mgr_concatenation_plan) 73 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:267(isdense) - 16 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1246(is_float_dtype) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:259(__init__) 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:181(_add_filter) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:27(require) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:71(_wrapreduction) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:278(_get_mgr_concatenation_plan) 9 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:165(simplefilter) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:626(write) + 16 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1246(is_float_dtype) + 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:312() + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:95() + 238 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:503(can_cast) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:310(reshape_uniq) 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1330(normalize_axis_tuple) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:219(vstack) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:259(schedule) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:957(__new__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:626(write) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5844(__finalize__) 5 0.000 0.000 0.000 0.000 {built-in method builtins.sorted} + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:259(schedule) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:589(_from_parts) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:481() 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1455(_insert_update_blklocs_and_blknos) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5844(__finalize__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:957(__new__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:200(fill_value) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:95() - 101 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:23(_get_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:204(union_indexes) - 2/1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:87(_compile) - 82 0.000 0.000 0.000 0.000 {built-in method builtins.hash} + 80 0.000 0.000 0.000 0.000 {built-in method builtins.hash} + 3 0.000 0.000 0.000 0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1129(iget) + 216 0.000 0.000 0.000 0.000 {built-in method _operator.index} 352 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:236(_swap) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3975(_get_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:204(union_indexes) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:200(fill_value) + 1 0.000 0.000 0.000 0.000 {method 'fill' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2979(prod) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2421(is_boolean) - 1 0.000 0.000 0.000 0.000 {built-in method posix.rmdir} - 58 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4257(_box_col_values) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:589(_from_parts) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1129(iget) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:54(shape) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:303(maybe_iterable_to_list) 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2745(inferred_type) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:645(na_value_for_dtype) + 101 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:23(_get_dtype) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:548(_schedule_flush) - 216 0.000 0.000 0.000 0.000 {built-in method _operator.index} - 3 0.000 0.000 0.000 0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:310(reshape_uniq) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:108(isna) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:744(_try_cast) + 6 0.000 0.000 0.000 0.000 {built-in method builtins.next} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:645(na_value_for_dtype) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:569(_parse_args) 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2324() - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5562(append) + 1 0.000 0.000 0.000 0.000 {built-in method posix.rmdir} 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:458(__enter__) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:744(_try_cast) + 54 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5116(_get_engine_target) 3 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:554(_take_preprocess_indexer_and_fill_value) - 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_object_object} - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:690(_simple_new) 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:160(_consolidate_key) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:54(shape) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/base.py:286(is_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:81(aware_now) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5116(_get_engine_target) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:650(_warn_if_deprecated) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:569(_parse_args) - 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_int64_int64} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1285(exists) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5562(append) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:346(_name_get) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:997(__init__) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2120(get_block_type) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3975(_get_indexer) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:458(copy) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:627(_rmtree_safe_fd) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4137(_check_setitem_copy) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:268(index_labels_to_array) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:690(_simple_new) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:81(aware_now) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3241(union) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1445(_insert_update_mgr_locs) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:501(is_categorical_dtype) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:191(_isna) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1092(stat) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:4020(_check_indexing_method) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1673(construct_1d_arraylike_from_scalar) - 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1487(is_ea_or_datetimelike_dtype) - 2 0.000 0.000 0.000 0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects} - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:330(_name_includes_bit_suffix) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2161(new_block_2d) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/base.py:286(is_dtype) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:627(_rmtree_safe_fd) + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:566(require_length_match) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1285(exists) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:172(blknos) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:71(concat_compat) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:357(issubdtype) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4137(_check_setitem_copy) - 1 0.000 0.000 0.000 0.000 {built-in method posix.stat} - 6 0.000 0.000 0.000 0.000 {built-in method builtins.next} - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2120(get_block_type) + 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1487(is_ea_or_datetimelike_dtype) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6804(delete) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:501(is_categorical_dtype) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:4020(_check_indexing_method) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:249(compile) + 12 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:162(is_object_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:136(ones) + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:676(_sanitize_ndim) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5904(__setattr__) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:650(_warn_if_deprecated) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1092(stat) + 12 0.000 0.000 0.000 0.000 :1053(_handle_fromlist) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/zmq/sugar/socket.py:545(send) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1846(is_consolidated) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5464(equals) - 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_datetimelike_array} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2421(all) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:172(blknos) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5904(__setattr__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:560(_compile_info) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:108(isna) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:384(default_index) - 12 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:162(is_object_dtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/zmq/sugar/socket.py:545(send) - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:676(_sanitize_ndim) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:997(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:527(maybe_promote) - 131 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1040(_verify_integrity) 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:597(_get_root) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:585(is_dtype_equal) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:268(index_labels_to_array) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2161(new_block_2d) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:566(require_length_match) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:790(is_unsigned_integer_dtype) - 2 0.000 0.000 0.000 0.000 {method 'view' of 'numpy.ndarray' objects} - 12 0.000 0.000 0.000 0.000 :1053(_handle_fromlist) 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:56(parse_parts) - 32 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_list_like} - 13 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:566(_maybe_promote_cached) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:708(_values) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1854(_consolidate_check) + 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_datetimelike_array} + 29 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:946(__len__) 21 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:56() - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:699(is_valid_na_for_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:574(_maybe_promote) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:77(get_op_result_name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1934(from_array) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:33(seterr) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:292(__next__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1040(_verify_integrity) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2421(all) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:288(_compile) + 1 0.000 0.000 0.000 0.000 {built-in method posix.stat} + 13 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:585(is_dtype_equal) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:191(_isna) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:33(seterr) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:790(is_unsigned_integer_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:436(_promote_fields) 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:611(_get_deprecated_option) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:569(__init__) - 29 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:946(__len__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:463(is_interval_dtype) - 4 0.000 0.000 0.000 0.000 {method 'strftime' of 'datetime.date' objects} - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:60(__getitem__) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:173(_simple_new) - 15 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar} - 23 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:255(get) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:268(_isna_array) - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:477(__exit__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:436(_promote_fields) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:430(__enter__) - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:437(__init__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1854(_consolidate_check) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1934(from_array) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1185(tile) + 106 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass} + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:77(get_op_result_name) + 32 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_list_like} + 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange} + 2 0.000 0.000 0.000 0.000 {method 'view' of 'numpy.ndarray' objects} 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:461(ensure_wrapped_if_datetimelike) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5172(delete) - 47 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} - 9/8 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2237(_grouping_func) - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:283(issubclass_) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:565(_set_axis) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2398(_fast_count_smallints) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:736(is_signed_integer_dtype) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:247(_getnnz) - 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:148() - 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_1d_int64_int64} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:430(__enter__) + 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_io._IOBase' objects} + 47 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:437(__init__) 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:325(is_hashable) - 1 0.000 0.000 0.000 0.000 {method 'sub' of 're.Pattern' objects} 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:377(abspath) - 1 0.000 0.000 0.000 0.000 {built-in method posix.open} - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:621(__str__) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3754(get_loc) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5172(delete) + 2 0.000 0.000 0.000 0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects} 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:49(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:136(ones) + 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:477(__exit__) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:60(__getitem__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:86(_csr_container) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:463(is_interval_dtype) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:173(_simple_new) + 4 0.000 0.000 0.000 0.000 {method 'strftime' of 'datetime.date' objects} + 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:236(make_block_same_class) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:736(is_signed_integer_dtype) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2172(new_block) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:108() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1025(argsort) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/dtypes.py:1247(is_dtype) - 2/1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:175(getwidth) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1380() - 1 0.000 0.000 0.000 0.000 {built-in method posix.lstat} + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:621(__str__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2091(maybe_coerce_values) + 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:148() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:565(_set_axis) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:357(issubdtype) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2381(is_unique) + 1 0.000 0.000 0.000 0.000 {method 'sub' of 're.Pattern' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:506(choices) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2398(_fast_count_smallints) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:699(is_valid_na_for_dtype) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:247(_getnnz) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:139(__exit__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:266(is_dict_like) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:684(is_integer_dtype) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:554(_take_preprocess_indexer_and_fill_value) 1 0.000 0.000 0.000 0.000 {method 'any' of 'numpy.ndarray' objects} + 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:925(__len__) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5304(__getitem__) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:236(make_block_same_class) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:309(_isna_string_dtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2381(is_unique) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1752(_validate_names) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2091(maybe_coerce_values) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/dtypes.py:1247(is_dtype) + 1 0.000 0.000 0.000 0.000 {built-in method posix.lstat} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:362(apply_if_callable) 5 0.000 0.000 0.000 0.000 {built-in method builtins.sum} - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:684(is_integer_dtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:661(name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1185(tile) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:279(helper) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1169(is_alive) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1390(_indexed_same) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1860() - 1 0.000 0.000 0.000 0.000 {method 'fill' of 'numpy.ndarray' objects} - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:262(__subclasshook__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:506(choices) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:593(detach) - 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_io._IOBase' objects} - 24 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:234(__next) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7456(unpack_nested_dtype) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1768(ravel) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6205(_maybe_promote) - 29 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:165(__getitem__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:86(_csr_container) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1725(validate_all_hashable) - 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:925(__len__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:545(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:266(is_dict_like) - 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:169(tocsr) 6 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange} - 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1556(get_dtype) - 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:156() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:708(__get__) + 5/4 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1025(argsort) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1752(_validate_names) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:279(helper) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:661(name) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1380() + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:705(_combine_concat_plans) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:55(_any) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:338(normpath) 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:216(isintlike) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:476() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/frozen.py:70(__getitem__) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:1267(_set_as_cached) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1725(validate_all_hashable) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1860() + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:631(__fspath__) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2266(ensure_block_shape) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:705(_combine_concat_plans) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:99(_maybe_match_name) - 6 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:78(_check_methods) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1768(ravel) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:708(_values) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1169(is_alive) + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:579(_select_options) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:330(_name_includes_bit_suffix) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:268(_isna_array) 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:146(classes) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:708(__get__) + 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:156() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:545(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7456(unpack_nested_dtype) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:53(_wrapfunc) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:55(_any) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:579(_select_options) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:338(normpath) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6205(_maybe_promote) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:476() + 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:733(_maybe_repeat) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1392() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:986(__and__) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2069(internal_values) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:593(detach) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:1498(__len__) + 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1556(get_dtype) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:150(dirname) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:130(__enter__) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:99(_maybe_match_name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3737(_convert_can_do_setop) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:435(__exit__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:742(__iter__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:772(getenv) - 1 0.000 0.000 0.000 0.000 {built-in method now} - 53 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:409(__subclasshook__) - 1 0.000 0.000 0.000 0.000 {built-in method posix.scandir} + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:102(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:519() 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2783(_is_multi) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/types.py:176(__get__) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:283(issubclass_) + 10 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects} + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:564(_get_axis) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2069(internal_values) + 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:169(tocsr) + 1 0.000 0.000 0.000 0.000 {built-in method posix.open} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:772(getenv) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:253(_sanitize_params) + 17 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6303(_is_comparable_dtype) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:631(__fspath__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:130(__enter__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/frozen.py:70(__getitem__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3737(_convert_can_do_setop) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1420(is_1d_only_ea_dtype) + 2 0.000 0.000 0.000 0.000 {method 'match' of 're.Pattern' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:135(getdata) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:569(__init__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/compilerop.py:180(extra_flags) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1278(is_bool_dtype) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:85(allows_duplicate_labels) + 16 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x55eceb2b19a0} 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:870(_reset_identity) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:140(basename) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:102(__init__) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:564(_get_axis) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:125(_unpack_tuple) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5204(_validate_fill_value) + 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_1d_int64_int64} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1751(pandas_dtype) 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:640(_info_axis) - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:733(_maybe_repeat) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:135(getdata) 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1891(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1278(is_bool_dtype) - 22 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:173(append) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:79(__getitem__) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/types.py:176(__get__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:139(__exit__) - 16 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x56520b12d9a0} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:519() - 10 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:435(__exit__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:525(_view_is_safe) - 17 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} + 43 0.000 0.000 0.000 0.000 /usr/lib/python3.10/typing.py:1737(cast) + 39 0.000 0.000 0.000 0.000 {built-in method _warnings._filters_mutated} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:81(atleast_2d) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:309(_isna_string_dtype) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:821(get) - 2 0.000 0.000 0.000 0.000 {method 'match' of 're.Pattern' objects} - 1 0.000 0.000 0.000 0.000 {method 'timetuple' of 'datetime.datetime' objects} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:1498(__len__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:253(_sanitize_params) + 1 0.000 0.000 0.000 0.000 {built-in method now} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1967(keys) + 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:79(__getitem__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:132(geterr) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4234(_ensure_valid_index) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2752(_is_all_dates) + 1 0.000 0.000 0.000 0.000 /tmp/ipykernel_28415/2631849376.py:1() 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:236(__init__) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:71(join) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1967(keys) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:81(atleast_2d) - 30 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5090(_values) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:150(dirname) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:125(_unpack_tuple) + 1 0.000 0.000 0.000 0.000 {method 'timetuple' of 'datetime.datetime' objects} + 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:638(_translate_key) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:874(shape) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:231(mgr_to_mgr) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:117(splitext) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:525(_view_is_safe) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:16(_coo_container) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1420(is_1d_only_ea_dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:108(_get_distinct_objs) + 9 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects} + 11 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1204(is_numeric_dtype) 4 0.000 0.000 0.000 0.000 {method 'transpose' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2752(_is_all_dates) - 5 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_object} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1751(pandas_dtype) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:117(splitext) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:638(_translate_key) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3198(_get_reconciled_name_object) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:830(_rename) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1204(is_numeric_dtype) - 43 0.000 0.000 0.000 0.000 /usr/lib/python3.10/typing.py:1737(cast) - 39 0.000 0.000 0.000 0.000 {built-in method _warnings._filters_mutated} + 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:151(classes_and_not_datetimelike) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2250(extend_blocks) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:289() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5204(_validate_fill_value) + 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:1080(copyto) + 30 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5090(_values) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1102(_wait_for_tstate_lock) + 4 0.000 0.000 0.000 0.000 {built-in method builtins.callable} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:830(_rename) 1 0.000 0.000 0.000 0.000 {method 'argsort' of 'numpy.ndarray' objects} 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1154(needs_i8_conversion) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:874(shape) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:132(geterr) - 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:151(classes_and_not_datetimelike) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:108(_get_distinct_objs) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:362(apply_if_callable) - 1 0.000 0.000 0.000 0.000 /tmp/ipykernel_16169/2440128879.py:1() - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1102(_wait_for_tstate_lock) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:611(name) - 8 0.000 0.000 0.000 0.000 {built-in method numpy.core._multiarray_umath.normalize_axis_index} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:326(_get_take_nd_function) + 1 0.000 0.000 0.000 0.000 {built-in method time.localtime} 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:72(get) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:611(name) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:675(__getitem__) - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:24(_kind_name) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:85(allows_duplicate_labels) - 9 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2250(extend_blocks) - 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:1080(copyto) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/compilerop.py:180(extra_flags) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:453(_view) 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1744() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:26(_csr_container) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:482() - 1 0.000 0.000 0.000 0.000 {built-in method time.localtime} - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:359(__call__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4234(_ensure_valid_index) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:109(getdtype) + 1 0.000 0.000 0.000 0.000 {built-in method posix.scandir} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:281(rng) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:292() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:23(atleast_1d) 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:608(_format_parsed_parts) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:555() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:109(getdtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1061(from_blocks) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:41(_get_sep) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:453(_view) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:541(equals) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:550(_get_axis_number) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:228(set_axis) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1102(__set_has_canonical_format) - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:381(__subclasshook__) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:482() 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:309(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:234(ident) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:555() - 7 0.000 0.000 0.000 0.000 {method 'ravel' of 'numpy.ndarray' objects} 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1430(current_thread) 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1042() - 7 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_iterator} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:281(rng) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:225(__init__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:488() - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:41(_get_sep) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2656(check_deprecated_indexers) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:292() - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:231(mgr_to_mgr) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:26(_csr_container) + 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:550(_get_axis_number) 2 0.000 0.000 0.000 0.000 {method 'timestamp' of 'datetime.datetime' objects} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:151(cast_scalar_indexer) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:23(atleast_1d) - 4 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.checknull} - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:574(_ensure_array) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:624(get) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:113() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3442(compare) 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:213(mgr_locs) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:234(ident) + 8 0.000 0.000 0.000 0.000 {built-in method sys.intern} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2656(check_deprecated_indexers) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:192(all_none) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:353(dtype) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2186(check_ndim) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:228(set_axis) 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1435() + 5 0.000 0.000 0.000 0.000 {method 'add' of 'pandas._libs.internals.BlockPlacement' objects} + 4 0.000 0.000 0.000 0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/dispatch.py:13(should_extension_dispatch) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:60(isabs) 3 0.000 0.000 0.000 0.000 {built-in method posix.getpid} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:353(dtype) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:574(_ensure_array) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:488() + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1001(__repr__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:328(_sanitize_and_check) - 4 0.000 0.000 0.000 0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects} - 21 0.000 0.000 0.000 0.000 {built-in method _sre.unicode_iscased} + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2433(_using_copy_on_write) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:133(_unique_dispatcher) + 7 0.000 0.000 0.000 0.000 {method 'ravel' of 'numpy.ndarray' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:104() 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:460(array_equivalent) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:192(all_none) - 6 0.000 0.000 0.000 0.000 {built-in method builtins.min} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:113() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:16(__format__) + 8 0.000 0.000 0.000 0.000 {built-in method numpy.core._multiarray_umath.normalize_axis_index} + 2 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.checknull} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:527(maybe_promote) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:413(_engine_type) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2372() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3731(_assert_can_do_setop) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1001(__repr__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1061(from_blocks) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2186(check_ndim) 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1734(name) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:60(isabs) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:104() + 2 0.000 0.000 0.000 0.000 {built-in method numpy.seterrobj} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:827(iget) + 5 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} + 1 0.000 0.000 0.000 0.000 {built-in method numpy.zeros} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:624(get) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:151(cast_scalar_indexer) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:354(__init__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1422(sanitize_to_nanoseconds) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:436(gettempdir) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1102(__set_has_canonical_format) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:121(_splitext) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5881() + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:137(_event_pipe) 1 0.000 0.000 0.000 0.000 {built-in method posix.fstat} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:910(clean_reindex_fill_method) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3731(_assert_can_do_setop) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:801(value) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1048(is_numeric_v_string_like) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2407(_preprocess_slice_or_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:16(__format__) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:570(_get_block_manager_axis) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:133(_unique_dispatcher) - 5 0.000 0.000 0.000 0.000 {method 'add' of 'pandas._libs.internals.BlockPlacement' objects} - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2433(_using_copy_on_write) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/dispatch.py:13(should_extension_dispatch) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:137(_event_pipe) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:215(_vhstack_dispatcher) + 1 0.000 0.000 0.000 0.000 {built-in method posix.close} + 2 0.000 0.000 0.000 0.000 {pandas._libs.internals.get_blkno_placements} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:58(_validate_set_axis) - 5 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:485(_get_literal_prefix) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:121(_splitext) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:354(__init__) - 21 0.000 0.000 0.000 0.000 {built-in method builtins.ord} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:910(clean_reindex_fill_method) - 2 0.000 0.000 0.000 0.000 {built-in method numpy.seterrobj} - 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:90(get_shape) - 6 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:267(__exit__) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:24(_kind_name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:558(_get_axis_name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:682() + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:664(ndim) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_validators.py:226(validate_bool_kwarg) 1 0.000 0.000 0.000 0.000 {method 'replace' of 'datetime.datetime' objects} - 8 0.000 0.000 0.000 0.000 {built-in method sys.intern} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:413(_engine_type) + 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:241(disallow_kwargs) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1455() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:521(_is_master_process) + 5 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_object} + 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:90(get_shape) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:755(encode) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:188(blklocs) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:682() - 1 0.000 0.000 0.000 0.000 {built-in method posix.close} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:714(_ensure_dtype_type) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3442(compare) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:161(__len__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:827(iget) - 2 0.000 0.000 0.000 0.000 {method 'nonzero' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:447(_simple) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:215(_vhstack_dispatcher) - 1 0.000 0.000 0.000 0.000 {built-in method numpy.zeros} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:500(dtype) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1422(sanitize_to_nanoseconds) + 4 0.000 0.000 0.000 0.000 {method 'join' of 'str' objects} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1433(is_extension_array_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:521(_is_master_process) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2407(_preprocess_slice_or_indexer) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:558(_get_axis_name) + 2 0.000 0.000 0.000 0.000 {method 'nonzero' of 'numpy.ndarray' objects} + 7 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_iterator} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:72() + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:332(attrs) + 4 0.000 0.000 0.000 0.000 {built-in method numpy.geterrobj} + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:500(dtype) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:103() - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5881() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:839(is_) + 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:353(flags) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:110() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:1231(user_global_ns) - 2 0.000 0.000 0.000 0.000 {pandas._libs.internals.get_blkno_placements} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1455() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5402() + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3176(ndim) + 4 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1820(_get_names) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1048(is_numeric_v_string_like) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:332(attrs) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:516(_get_charset_prefix) - 7 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects} - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1145(ident) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:241(disallow_kwargs) 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:857(axes) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:664(ndim) - 4 0.000 0.000 0.000 0.000 {method 'join' of 'str' objects} - 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:353(flags) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_validators.py:226(validate_bool_kwarg) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:678(__new__) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:801(value) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:233(is_single_block) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:280() - 9 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_platform_int} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:264(__enter__) + 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:188(blklocs) 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:153(concatenate) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:224(_infer_return_type) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:233(is_single_block) 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:986(dtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3176(ndim) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:246(_maybe_reindex_columns_na_proxy) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:76(__init__) - 4 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:928(fix_flags) - 19 0.000 0.000 0.000 0.000 {built-in method _sre.unicode_tolower} - 1 0.000 0.000 0.000 0.000 {built-in method _sre.compile} - 10 0.000 0.000 0.000 0.000 {built-in method posix.fspath} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:861(is_empty_data) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5402() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:267(__exit__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:112(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:264(__enter__) - 5 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:426(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:756(infer_dtype_from_scalar) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:619(isstring) - 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.item_from_zerodim} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1389(_moveaxis_dispatcher) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:87(samestat) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_compile.py:477(_get_iscased) + 10 0.000 0.000 0.000 0.000 {built-in method posix.fspath} 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:53(allows_duplicate_labels) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5888(__getattr__) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:1231(user_global_ns) + 9 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_platform_int} + 6 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:207(_arrays_for_stack_dispatcher) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:287(tell) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:117() - 1 0.000 0.000 0.000 0.000 {method '__format__' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:224(_infer_return_type) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:238(items) - 4 0.000 0.000 0.000 0.000 {built-in method numpy.geterrobj} - 7 0.000 0.000 0.000 0.000 {method 'group' of 're.Match' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:839(is_) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:246(_maybe_reindex_columns_na_proxy) + 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.item_from_zerodim} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:756(infer_dtype_from_scalar) 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5876() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:273(_release_save) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:23(__init__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:276(_acquire_restore) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1931(np_can_hold_element) 3 0.000 0.000 0.000 0.000 {method 'item' of 'numpy.ndarray' objects} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:85(empty_like) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:92(is_nonempty) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:82(groups) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:280() 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:823(shape) - 4 0.000 0.000 0.000 0.000 {built-in method builtins.callable} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:537(is_string_or_object_np_dtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2009(_block) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5411() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1931(np_can_hold_element) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:8(__init__) - 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer} - 8 0.000 0.000 0.000 0.000 {method 'random' of '_random.Random' objects} + 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1145(ident) + 5 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:239(splitroot) - 1 0.000 0.000 0.000 0.000 {built-in method builtins.divmod} - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:196() - 2 0.000 0.000 0.000 0.000 {built-in method numpy.promote_types} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5888(__getattr__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:23(__init__) + 2 0.000 0.000 0.000 0.000 {method 'values' of 'collections.OrderedDict' objects} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:273(_release_save) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:817(fsdecode) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:426(__init__) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:117() + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1389(_moveaxis_dispatcher) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:92(is_nonempty) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:238(items) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:87(samestat) + 7 0.000 0.000 0.000 0.000 {method 'group' of 're.Match' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:600(_constructor) + 1 0.000 0.000 0.000 0.000 {method '__format__' of 'str' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5411() + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:107(clean_fill_method) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:279(_is_owned) + 8 0.000 0.000 0.000 0.000 {method 'random' of '_random.Random' objects} 2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects} - 2 0.000 0.000 0.000 0.000 {method 'values' of 'collections.OrderedDict' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:178(not_none) - 5 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects} + 1 0.000 0.000 0.000 0.000 {built-in method builtins.divmod} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:8(__init__) 1 0.000 0.000 0.000 0.000 {built-in method sys._getframe} - 2 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock} + 2 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} 4 0.000 0.000 0.000 0.000 {built-in method builtins.id} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:625(_get_result_dim) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:107(clean_fill_method) - 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_float} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:279(_is_owned) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2009(_block) + 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:196() 8 0.000 0.000 0.000 0.000 {built-in method math.floor} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:349() - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:553(is_set) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6193(_index_as_unique) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:250(match) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3172(_ndim_dispatcher) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1142(__set_sorted) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:108() - 2 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:669(result_type) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:537(is_string_or_object_np_dtype) 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:260(__init__) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:182() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:276(_acquire_restore) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1764(_ravel_dispatcher) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:600(_constructor) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5558(_append_dispatcher) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6569(_maybe_cast_indexer) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:625(_get_result_dim) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6193(_index_as_unique) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:109() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:37(current_process) - 2 0.000 0.000 0.000 0.000 {built-in method sys.audit} - 1 0.000 0.000 0.000 0.000 {method 'get' of '_contextvars.ContextVar' objects} - 4 0.000 0.000 0.000 0.000 {method 'add' of 'set' objects} - 4 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:892(bincount) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:701(_maybe_check_integrity) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:368(_get_candidate_names) + 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:553(is_set) 2 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {built-in method numpy.promote_types} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5558(_append_dispatcher) + 2 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock} + 1 0.000 0.000 0.000 0.000 {method 'get' of '_contextvars.ContextVar' objects} + 5 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:349() + 2 0.000 0.000 0.000 0.000 {built-in method sys.audit} + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6569(_maybe_cast_indexer) + 2 0.000 0.000 0.000 0.000 {built-in method io.text_encoding} + 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer} 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1257() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2381() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5364(_insert_dispatcher) - 1 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:37(__init__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:51(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3209(_validate_sort_keyword) - 3 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_bool} 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:99(_check_closed) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:77(_atleast_2d_dispatcher) - 1 0.000 0.000 0.000 0.000 {method '__exit__' of 'posix.ScandirIterator' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:424(_gettempdir) + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1142(__set_sorted) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:178(not_none) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3172(_ndim_dispatcher) + 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:182() + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2381() + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:85(empty_like) + 1 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects} + 4 0.000 0.000 0.000 0.000 {method 'add' of 'set' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5364(_insert_dispatcher) + 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1764(_ravel_dispatcher) + 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:892(bincount) + 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_float} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1004(__enter__) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:37(current_process) 2 0.000 0.000 0.000 0.000 {built-in method _thread.get_ident} - 1 0.000 0.000 0.000 0.000 {method 'total_seconds' of 'datetime.timedelta' objects} - 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2974(_prod_dispatcher) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1181(_tile_dispatcher) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:324(ndim) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:108() + 1 0.000 0.000 0.000 0.000 {built-in method builtins.min} 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1129(name) - 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} - 2 0.000 0.000 0.000 0.000 {built-in method io.text_encoding} - 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/sre_parse.py:169(__setitem__) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3209(_validate_sort_keyword) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1181(_tile_dispatcher) + 1 0.000 0.000 0.000 0.000 {method 'total_seconds' of 'datetime.timedelta' objects} + 4 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:77(_atleast_2d_dispatcher) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:189(name) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:701(_maybe_check_integrity) 2 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5168(_delete_dispatcher) + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:368(_get_candidate_names) 2 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.lock' objects} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:116() - 1 0.000 0.000 0.000 0.000 {method 'tzname' of 'datetime.timezone' objects} - 1 0.000 0.000 0.000 0.000 {built-in method atexit.register} - 1 0.000 0.000 0.000 0.000 {built-in method numpy.ascontiguousarray} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:546(_constructor) + 1 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects} + 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_bool} + 1 0.000 0.000 0.000 0.000 {built-in method builtins.abs} + 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:424(_gettempdir) 1 0.000 0.000 0.000 0.000 {method 'encode' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:189(name) + 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2974(_prod_dispatcher) + 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects} + 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:324(ndim) + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5168(_delete_dispatcher) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2416(_all_dispatcher) + 1 0.000 0.000 0.000 0.000 {method 'tzname' of 'datetime.timezone' objects} + 1 0.000 0.000 0.000 0.000 {built-in method numpy.ascontiguousarray} + 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:37(__init__) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:728(_constructor) - 1 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1004(__enter__) + 1 0.000 0.000 0.000 0.000 {method '__exit__' of 'posix.ScandirIterator' objects} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1021(_argsort_dispatcher) 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:281() - 1 0.000 0.000 0.000 0.000 {method 'release' of '_thread.lock' objects} 1 0.000 0.000 0.000 0.000 {method '__enter__' of '_thread.lock' objects} - 1 0.000 0.000 0.000 0.000 {built-in method builtins.abs} + 1 0.000 0.000 0.000 0.000 {method 'release' of '_thread.lock' objects} 1 0.000 0.000 0.000 0.000 {method 'utcoffset' of 'datetime.timezone' objects} 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:19(_atleast_1d_dispatcher) - 1 0.000 0.000 0.000 0.000 {function FrozenList.__getitem__ at 0x7f0ed407d5a0} + 1 0.000 0.000 0.000 0.000 {function FrozenList.__getitem__ at 0x7fddbdab1510} From 6d2b640551fc96de8bba7d7a13561ce2a48fad49 Mon Sep 17 00:00:00 2001 From: soeren Date: Thu, 2 Nov 2023 12:40:35 +0100 Subject: [PATCH 06/27] BFS unoptimized --- mesh2vec/helpers.py | 177 +++++++++++++++++++++++++++++++------- mesh2vec/mesh2vec_base.py | 17 +++- mesh2vec/test.py | 37 ++++++++ 3 files changed, 196 insertions(+), 35 deletions(-) create mode 100644 mesh2vec/test.py diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 69cbef1..42e49d5 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -2,34 +2,149 @@ from typing import OrderedDict, List, Tuple, Dict import numpy as np -from scipy.sparse import csr_array, coo_array, eye - - -def calc_adjacencies( - hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int -) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - """calc adjacencies for hyper nodes""" - # vtx_connectivity: holds for each vtx all connected vtx - adjacency_list = [] - for vtxs in hyper_edges_idx.values(): - for vtx_a in vtxs: - for vtx_b in vtxs: - adjacency_list.append([vtx_a, vtx_b]) - adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) - - # adjacency matrix - n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 - data = np.array([1] * len(adjacency_list_np)) - adjacency_matrix = coo_array( - (data, (adjacency_list_np[:, 1], adjacency_list_np[:, 0])), shape=(n_vtx, n_vtx) - ).tocsr() - - # neighbors - adjacency_matrix_powers = {1: adjacency_matrix} - adjacency_matrix_powers_exclusive = {1: adjacency_matrix - csr_array(eye(n_vtx, dtype=int))} - for i in range(2, max_distance + 1): - adjacency_matrix_powers[i] = adjacency_matrix_powers[i - 1] @ adjacency_matrix - adjacency_matrix_powers[i].data = np.array([1] * adjacency_matrix_powers[i].nnz) - exclusive = (adjacency_matrix_powers[i] - adjacency_matrix_powers[i - 1]).tocsr() - adjacency_matrix_powers_exclusive[i] = exclusive - return adjacency_matrix_powers, adjacency_matrix_powers_exclusive +from scipy.sparse import csr_array, coo_array, eye, csr_matrix, lil_matrix +import igraph as ip +from abc import ABC, abstractmethod +import time + +""" +Use strategy to implement multiple adjacency finding algorithms +""" + + +class AbstractAdjacencyStrategy(ABC): + @abstractmethod + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: + pass + + +class MatMulAdjacency(AbstractAdjacencyStrategy): + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: + """calc adjacencies for hyper nodes with matrix multiplication to find adjacent nodes for a given distance""" + # vtx_connectivity: holds for each vtx all connected vtx + + timer = time.time() + adjacency_list = [] + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + adjacency_list.append([vtx_a, vtx_b]) + adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + print("ADJACENCY LIST first element: ", adjacency_list_np[0]) + + # adjacency matrix + n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 + data = np.array([1] * len(adjacency_list_np)) + adjacency_matrix = coo_array( + (data, (adjacency_list_np[:, 1], adjacency_list_np[:, 0])), shape=(n_vtx, n_vtx) + ).tocsr() + + print("ADJACENCY LIMATRIX shape: ", adjacency_matrix.shape) + + # neighbors + adjacency_matrix_powers = {1: adjacency_matrix} + adjacency_matrix_powers_exclusive = { + 1: adjacency_matrix - csr_array(eye(n_vtx, dtype=int)) + } + print("POWERS BEGINNING : ", adjacency_matrix_powers) + print("POWERS EXCLUSIVE BEGINNING: ", adjacency_matrix_powers_exclusive) + for i in range(2, max_distance + 1): + adjacency_matrix_powers[i] = adjacency_matrix_powers[i - 1] @ adjacency_matrix + adjacency_matrix_powers[i].data = np.array([1] * adjacency_matrix_powers[i].nnz) + exclusive = (adjacency_matrix_powers[i] - adjacency_matrix_powers[i - 1]).tocsr() + adjacency_matrix_powers_exclusive[i] = exclusive + + print("POWERS BEGINNING ", str(i), " : ", adjacency_matrix_powers) + print("POWERS EXCLUSIVE", str(i), " : ", adjacency_matrix_powers_exclusive) + + print("THIS TOOK: ", time.time() - timer) + + return adjacency_matrix_powers, adjacency_matrix_powers_exclusive + + +class BFSAdjacency(AbstractAdjacencyStrategy): + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: + # convert hyper edges to graph; hyper_edges: key -> node, values -> edges to directly connected nodes + # as nodes are already integers, create graph from scratch + # note: some nodes are integers written as strings -> conversion necessary + timer = time.time() + graph = ip.Graph( + edges=[ + (int(vertice), int(connected_vertice)) + for vertice in hyper_edges_idx.keys() + for connected_vertice in hyper_edges_idx[vertice] + if ( + (type(vertice) in [str, int] or np.issubdtype(vertice.dtype, np.str_)) + and ( + type(connected_vertice) in [str, int] + or np.issubdtype(connected_vertice.dtype, np.str_) + ) + ) + ] + ) + + n_vtx = len(graph.vs) + print("NUMBER OF VERTICES: ",n_vtx) + + adjacency_matrix_powers = {1: graph.get_adjacency_sparse()} + adjacency_matrix_powers_exclusive = { + 1: graph.get_adjacency_sparse() - csr_matrix(eye(n_vtx, dtype=int)) + } + + print("POWERS BEGINNING : ", adjacency_matrix_powers) + print("POWERS EXCLUSIVE BEGINNING: ", adjacency_matrix_powers_exclusive) + #################################################### + # General idea: BFS for each vertex for each depth # + #################################################### + + # convert once instead of every time in loop + vertices = [int(vertice) for vertice in hyper_edges_idx.keys()] + + for depth in range(2, max_distance + 1): + adjacency_matrix = lil_matrix((n_vtx, n_vtx)) + # grab the last cumulative matrix that we calculated as our base; LIL are more efficient than csr matrices + cumulative_matrix = adjacency_matrix_powers[depth - 1].tolil() + print("HAHA") + for vertex in vertices: + queue = [vertex] + visited = set() + current_depth = 0 + + while queue and current_depth <= depth: + next_level = set() + for v in queue: + if v not in visited: + visited.add(v) + adjacency_matrix[vertex, v] = 1 + cumulative_matrix[vertex, v] = 1 + neighbors = graph.neighbors(v) + next_level.update(neighbors) + queue = list(next_level) + current_depth += 1 + print("BOO") + # convert powers matrix from previous depth from lil to csr, as we will not look at it anymore + adjacency_matrix_powers[depth - 1] = adjacency_matrix_powers[depth - 1].tocsr() - csr_matrix(eye(n_vtx, dtype=int)) + + print("LAUTRE") + # add adjacency matrix for specific depth + lil_result = adjacency_matrix - lil_matrix(eye(n_vtx, dtype=int)) + adjacency_matrix_powers_exclusive[depth] = csr_matrix(lil_result) + + print("HAMBURG") + # add cumulative to powers, not in csr yet; we need to use it in the next iteration + adjacency_matrix_powers[depth] = cumulative_matrix + + print("POWERS BEGINNING ", str(depth), " : ", adjacency_matrix_powers) + print("POWERS EXCLUSIVE", str(depth), " : ", adjacency_matrix_powers_exclusive) + + # convert last cumulative matrix to CSR + # adjacency_matrix_powers[max_distance] = csr_matrix(adjacency_matrix_powers[depth - 1]) - csr_matrix(eye(n_vtx, dtype=int)) + print("THIS TOOK: ", time.time() - timer) + + return adjacency_matrix_powers, adjacency_matrix_powers_exclusive diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index b67a171..4addb17 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -11,7 +11,7 @@ # noinspection PyProtectedMember from pandas.api.types import is_string_dtype -from mesh2vec.helpers import calc_adjacencies +from mesh2vec.helpers import MatMulAdjacency, BFSAdjacency from mesh2vec.mesh2vec_exceptions import ( check_distance_init_arg, check_distance_arg, @@ -86,9 +86,18 @@ def __init__( for h_edge_id, vtx_ids in self._hyper_edges.items() ) - self._adjacency_matrix_powers, self._adjacency_matrix_powers_exclusive = calc_adjacencies( - hyper_edges_idx, distance - ) + # choose between BFSAdjacency and MatMulAdjacency + calc_strategy1 = MatMulAdjacency() + calc_strategy2 = BFSAdjacency() + ( + self._adjacency_matrix_powers, + self._adjacency_matrix_powers_exclusive, + ) = calc_strategy1.calc_adjacencies(hyper_edges_idx, distance) + print("NEW STRATEGY") + ( + self._adjacency_matrix_powers1, + self._adjacency_matrix_powers_exclusive1, + ) = calc_strategy2.calc_adjacencies(hyper_edges_idx, distance) @staticmethod def from_file(hg_file: Path, distance: int) -> "Mesh2VecBase": diff --git a/mesh2vec/test.py b/mesh2vec/test.py new file mode 100644 index 0000000..a73e26e --- /dev/null +++ b/mesh2vec/test.py @@ -0,0 +1,37 @@ +from mesh2vec.mesh2vec_cae import Mesh2VecCae +from pathlib import Path + +a = Mesh2VecCae.from_ansa_shell( + 3, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), +) + +"""# empty adjacency rows to create a csr matrix later on + row_indices = [] + column_indices = [] + # fill adjacency matrix + for vertex in graph.vs: + neighbors = graph.neighborhood(vertices=vertex.index, order=1, mode="all") + row_indices.extend([vertex.index] * len(neighbors)) + column_indices.extend(neighbors) + + # Create a CSR sparse matrix from row, column, and data lists + adjacency_matrix = csr_matrix( + (np.ones(len(row_indices), dtype=int), (row_indices, column_indices)), + shape=(n_vtx, n_vtx), + ) + + # the desired output type is in array format, not matrix format + adjacency_matrix_powers_exclusive[depth] = { + "data": adjacent_matrix.data, + "indices": adjacent_matrix.indices, + "indptr": adjacent_matrix.indptr, + "shape": adjacent_matrix.shape, + } + + adjacency_matrix_powers[depth] = ( + adjacency_matrix_powers[depth - 1] + adjacency_matrix_powers_exclusive[depth] + )""" + +# 2002728 n_vtx, index: 1002224 From 13e8805859dd3aead4f0e1307ec5f59184d7ce33 Mon Sep 17 00:00:00 2001 From: soeren Date: Thu, 2 Nov 2023 16:02:23 +0100 Subject: [PATCH 07/27] still very slow --- mesh2vec/helpers.py | 44 ++++++++++----------------------------- mesh2vec/mesh2vec_base.py | 3 +++ mesh2vec/test.py | 34 +++++++++++++++++++++++++++++- 3 files changed, 47 insertions(+), 34 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 42e49d5..3ac34cf 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -2,7 +2,7 @@ from typing import OrderedDict, List, Tuple, Dict import numpy as np -from scipy.sparse import csr_array, coo_array, eye, csr_matrix, lil_matrix +from scipy.sparse import csr_array, coo_array, eye, csr_matrix, lil_matrix, coo_matrix import igraph as ip from abc import ABC, abstractmethod import time @@ -103,48 +103,26 @@ def calc_adjacencies( # General idea: BFS for each vertex for each depth # #################################################### - # convert once instead of every time in loop - vertices = [int(vertice) for vertice in hyper_edges_idx.keys()] - for depth in range(2, max_distance + 1): + adjacency_matrix = lil_matrix((n_vtx, n_vtx)) - # grab the last cumulative matrix that we calculated as our base; LIL are more efficient than csr matrices - cumulative_matrix = adjacency_matrix_powers[depth - 1].tolil() + cumulative_matrix = lil_matrix((n_vtx, n_vtx)) print("HAHA") - for vertex in vertices: - queue = [vertex] - visited = set() - current_depth = 0 - - while queue and current_depth <= depth: - next_level = set() - for v in queue: - if v not in visited: - visited.add(v) - adjacency_matrix[vertex, v] = 1 - cumulative_matrix[vertex, v] = 1 - neighbors = graph.neighbors(v) - next_level.update(neighbors) - queue = list(next_level) - current_depth += 1 + + for vertex in graph.vs.indices: + exclusive_neighborhood = graph.neighborhood(vertices=vertex, mindist=depth, order=depth) + inclusive_neighborhood = graph.neighborhood(vertices=vertex, order=depth) + adjacency_matrix[vertex, exclusive_neighborhood] = 1 + cumulative_matrix[vertex, inclusive_neighborhood] = 1 print("BOO") - # convert powers matrix from previous depth from lil to csr, as we will not look at it anymore - adjacency_matrix_powers[depth - 1] = adjacency_matrix_powers[depth - 1].tocsr() - csr_matrix(eye(n_vtx, dtype=int)) - print("LAUTRE") - # add adjacency matrix for specific depth - lil_result = adjacency_matrix - lil_matrix(eye(n_vtx, dtype=int)) - adjacency_matrix_powers_exclusive[depth] = csr_matrix(lil_result) - print("HAMBURG") - # add cumulative to powers, not in csr yet; we need to use it in the next iteration - adjacency_matrix_powers[depth] = cumulative_matrix + adjacency_matrix_powers_exclusive[depth] = (adjacency_matrix - csr_matrix(eye(n_vtx, dtype=int))).tocsr().toarray() + adjacency_matrix_powers[depth] = (cumulative_matrix - csr_matrix(eye(n_vtx, dtype=int))).tocsr().toarray() print("POWERS BEGINNING ", str(depth), " : ", adjacency_matrix_powers) print("POWERS EXCLUSIVE", str(depth), " : ", adjacency_matrix_powers_exclusive) - # convert last cumulative matrix to CSR - # adjacency_matrix_powers[max_distance] = csr_matrix(adjacency_matrix_powers[depth - 1]) - csr_matrix(eye(n_vtx, dtype=int)) print("THIS TOOK: ", time.time() - timer) return adjacency_matrix_powers, adjacency_matrix_powers_exclusive diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 4addb17..7916d7d 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -99,6 +99,9 @@ def __init__( self._adjacency_matrix_powers_exclusive1, ) = calc_strategy2.calc_adjacencies(hyper_edges_idx, distance) + print("Test auf Gleichheit: ", self._adjacency_matrix_powers == self._adjacency_matrix_powers1) + print("Test auf Gleichheit: ", self._adjacency_matrix_powers_exclusive == self._adjacency_matrix_powers_exclusive1) + @staticmethod def from_file(hg_file: Path, distance: int) -> "Mesh2VecBase": # pylint: disable=line-too-long diff --git a/mesh2vec/test.py b/mesh2vec/test.py index a73e26e..17fb630 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -34,4 +34,36 @@ adjacency_matrix_powers[depth - 1] + adjacency_matrix_powers_exclusive[depth] )""" -# 2002728 n_vtx, index: 1002224 + + + +""" +vertices = [int(vertice) for vertice in hyper_edges_idx.keys()] + for depth in range(2, max_distance + 1): + adjacency_matrix = lil_matrix((n_vtx, n_vtx)) + # grab the last cumulative matrix that we calculated as our base; LIL are more efficient than csr matrices + cumulative_matrix = adjacency_matrix_powers[depth - 1].tolil() + print("HAHA") + for vertex in vertices: + queue = [vertex] + visited = set() + current_depth = 0 + + while queue and current_depth <= depth: + next_level = set() + for v in queue: + if v not in visited: + visited.add(v) + adjacency_matrix[vertex, v] = 1 + cumulative_matrix[vertex, v] = 1 + neighbors = graph.neighbors(v) + next_level.update(neighbors) + queue = list(next_level) + current_depth += 1 + + # convert last cumulative matrix to CSR + adjacency_matrix_powers[max_distance] = csr_matrix(adjacency_matrix_powers[max_distance]) - csr_matrix(eye(n_vtx, dtype=int)) + print("POWERS BEGINNING ", str(depth), " : ", adjacency_matrix_powers) + print("POWERS EXCLUSIVE", str(depth), " : ", adjacency_matrix_powers_exclusive) + print("THIS TOOK: ", time.time() - timer) +""" \ No newline at end of file From 907e82ea8e3cbd076908c45b1f43c49ac6794570 Mon Sep 17 00:00:00 2001 From: soeren Date: Fri, 3 Nov 2023 10:39:12 +0100 Subject: [PATCH 08/27] return list of lists for BFS --- mesh2vec/helpers.py | 69 +++++++++++---------------------------- mesh2vec/mesh2vec_base.py | 10 ++++-- mesh2vec/test.py | 62 +---------------------------------- 3 files changed, 28 insertions(+), 113 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 3ac34cf..e628d59 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -34,7 +34,6 @@ def calc_adjacencies( for vtx_b in vtxs: adjacency_list.append([vtx_a, vtx_b]) adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) - print("ADJACENCY LIST first element: ", adjacency_list_np[0]) # adjacency matrix n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 @@ -43,24 +42,18 @@ def calc_adjacencies( (data, (adjacency_list_np[:, 1], adjacency_list_np[:, 0])), shape=(n_vtx, n_vtx) ).tocsr() - print("ADJACENCY LIMATRIX shape: ", adjacency_matrix.shape) - # neighbors adjacency_matrix_powers = {1: adjacency_matrix} adjacency_matrix_powers_exclusive = { 1: adjacency_matrix - csr_array(eye(n_vtx, dtype=int)) } - print("POWERS BEGINNING : ", adjacency_matrix_powers) - print("POWERS EXCLUSIVE BEGINNING: ", adjacency_matrix_powers_exclusive) + for i in range(2, max_distance + 1): adjacency_matrix_powers[i] = adjacency_matrix_powers[i - 1] @ adjacency_matrix adjacency_matrix_powers[i].data = np.array([1] * adjacency_matrix_powers[i].nnz) exclusive = (adjacency_matrix_powers[i] - adjacency_matrix_powers[i - 1]).tocsr() adjacency_matrix_powers_exclusive[i] = exclusive - print("POWERS BEGINNING ", str(i), " : ", adjacency_matrix_powers) - print("POWERS EXCLUSIVE", str(i), " : ", adjacency_matrix_powers_exclusive) - print("THIS TOOK: ", time.time() - timer) return adjacency_matrix_powers, adjacency_matrix_powers_exclusive @@ -74,55 +67,31 @@ def calc_adjacencies( # as nodes are already integers, create graph from scratch # note: some nodes are integers written as strings -> conversion necessary timer = time.time() - graph = ip.Graph( - edges=[ - (int(vertice), int(connected_vertice)) - for vertice in hyper_edges_idx.keys() - for connected_vertice in hyper_edges_idx[vertice] - if ( - (type(vertice) in [str, int] or np.issubdtype(vertice.dtype, np.str_)) - and ( - type(connected_vertice) in [str, int] - or np.issubdtype(connected_vertice.dtype, np.str_) - ) - ) - ] - ) - - n_vtx = len(graph.vs) - print("NUMBER OF VERTICES: ",n_vtx) - - adjacency_matrix_powers = {1: graph.get_adjacency_sparse()} - adjacency_matrix_powers_exclusive = { - 1: graph.get_adjacency_sparse() - csr_matrix(eye(n_vtx, dtype=int)) - } - print("POWERS BEGINNING : ", adjacency_matrix_powers) - print("POWERS EXCLUSIVE BEGINNING: ", adjacency_matrix_powers_exclusive) + adjacency_list = [] + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + adjacency_list.append([vtx_a, vtx_b]) + adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + + graph = ip.Graph(adjacency_list_np) + + adj_list = graph.get_adjlist() + adjacency_list_exclusive = {1: adj_list} + adjacency_list_inclusive = {1: adj_list} + #################################################### # General idea: BFS for each vertex for each depth # #################################################### for depth in range(2, max_distance + 1): + exclusive_neighborhood = graph.neighborhood(vertices=None, mindist=depth, order=depth) + inclusive_neighborhood = graph.neighborhood(vertices=None, order=depth) - adjacency_matrix = lil_matrix((n_vtx, n_vtx)) - cumulative_matrix = lil_matrix((n_vtx, n_vtx)) - print("HAHA") - - for vertex in graph.vs.indices: - exclusive_neighborhood = graph.neighborhood(vertices=vertex, mindist=depth, order=depth) - inclusive_neighborhood = graph.neighborhood(vertices=vertex, order=depth) - adjacency_matrix[vertex, exclusive_neighborhood] = 1 - cumulative_matrix[vertex, inclusive_neighborhood] = 1 - print("BOO") - - - adjacency_matrix_powers_exclusive[depth] = (adjacency_matrix - csr_matrix(eye(n_vtx, dtype=int))).tocsr().toarray() - adjacency_matrix_powers[depth] = (cumulative_matrix - csr_matrix(eye(n_vtx, dtype=int))).tocsr().toarray() - - print("POWERS BEGINNING ", str(depth), " : ", adjacency_matrix_powers) - print("POWERS EXCLUSIVE", str(depth), " : ", adjacency_matrix_powers_exclusive) + adjacency_list_exclusive[depth] = exclusive_neighborhood + adjacency_list_inclusive[depth] = inclusive_neighborhood print("THIS TOOK: ", time.time() - timer) - return adjacency_matrix_powers, adjacency_matrix_powers_exclusive + return adjacency_list_inclusive, adjacency_list_exclusive diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 7916d7d..5606061 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -99,8 +99,14 @@ def __init__( self._adjacency_matrix_powers_exclusive1, ) = calc_strategy2.calc_adjacencies(hyper_edges_idx, distance) - print("Test auf Gleichheit: ", self._adjacency_matrix_powers == self._adjacency_matrix_powers1) - print("Test auf Gleichheit: ", self._adjacency_matrix_powers_exclusive == self._adjacency_matrix_powers_exclusive1) + print( + "Test auf Gleichheit: ", + self._adjacency_matrix_powers == self._adjacency_matrix_powers1, + ) + print( + "Test auf Gleichheit: ", + self._adjacency_matrix_powers_exclusive == self._adjacency_matrix_powers_exclusive1, + ) @staticmethod def from_file(hg_file: Path, distance: int) -> "Mesh2VecBase": diff --git a/mesh2vec/test.py b/mesh2vec/test.py index 17fb630..bff3bdf 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -2,68 +2,8 @@ from pathlib import Path a = Mesh2VecCae.from_ansa_shell( - 3, + 20, Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), ) -"""# empty adjacency rows to create a csr matrix later on - row_indices = [] - column_indices = [] - # fill adjacency matrix - for vertex in graph.vs: - neighbors = graph.neighborhood(vertices=vertex.index, order=1, mode="all") - row_indices.extend([vertex.index] * len(neighbors)) - column_indices.extend(neighbors) - - # Create a CSR sparse matrix from row, column, and data lists - adjacency_matrix = csr_matrix( - (np.ones(len(row_indices), dtype=int), (row_indices, column_indices)), - shape=(n_vtx, n_vtx), - ) - - # the desired output type is in array format, not matrix format - adjacency_matrix_powers_exclusive[depth] = { - "data": adjacent_matrix.data, - "indices": adjacent_matrix.indices, - "indptr": adjacent_matrix.indptr, - "shape": adjacent_matrix.shape, - } - - adjacency_matrix_powers[depth] = ( - adjacency_matrix_powers[depth - 1] + adjacency_matrix_powers_exclusive[depth] - )""" - - - - -""" -vertices = [int(vertice) for vertice in hyper_edges_idx.keys()] - for depth in range(2, max_distance + 1): - adjacency_matrix = lil_matrix((n_vtx, n_vtx)) - # grab the last cumulative matrix that we calculated as our base; LIL are more efficient than csr matrices - cumulative_matrix = adjacency_matrix_powers[depth - 1].tolil() - print("HAHA") - for vertex in vertices: - queue = [vertex] - visited = set() - current_depth = 0 - - while queue and current_depth <= depth: - next_level = set() - for v in queue: - if v not in visited: - visited.add(v) - adjacency_matrix[vertex, v] = 1 - cumulative_matrix[vertex, v] = 1 - neighbors = graph.neighbors(v) - next_level.update(neighbors) - queue = list(next_level) - current_depth += 1 - - # convert last cumulative matrix to CSR - adjacency_matrix_powers[max_distance] = csr_matrix(adjacency_matrix_powers[max_distance]) - csr_matrix(eye(n_vtx, dtype=int)) - print("POWERS BEGINNING ", str(depth), " : ", adjacency_matrix_powers) - print("POWERS EXCLUSIVE", str(depth), " : ", adjacency_matrix_powers_exclusive) - print("THIS TOOK: ", time.time() - timer) -""" \ No newline at end of file From 4b3f9f8262e67ebe15186f0c64ac5b3e4725e4e3 Mon Sep 17 00:00:00 2001 From: soeren Date: Tue, 7 Nov 2023 14:54:52 +0100 Subject: [PATCH 09/27] finished strateg pattern --- .gitignore | 3 ++- mesh2vec/helpers.py | 46 ++++++++++++++++++++++++++++----------- mesh2vec/mesh2vec_base.py | 37 +++++++++++-------------------- mesh2vec/mesh2vec_cae.py | 13 +++++++++-- mesh2vec/test.py | 8 ++++++- 5 files changed, 66 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index 1ef6f88..40d3b02 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ __pycache__ .DS_Store .venv/ .ipynb_checkpoints -data/mb_private_data \ No newline at end of file +data/mb_private_data +plot_mb* \ No newline at end of file diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index e628d59..e49750f 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -2,10 +2,9 @@ from typing import OrderedDict, List, Tuple, Dict import numpy as np -from scipy.sparse import csr_array, coo_array, eye, csr_matrix, lil_matrix, coo_matrix +from scipy.sparse import csr_array, coo_array, eye import igraph as ip from abc import ABC, abstractmethod -import time """ Use strategy to implement multiple adjacency finding algorithms @@ -13,21 +12,35 @@ class AbstractAdjacencyStrategy(ABC): + def __init__(self): + self.__adjacency_matrix_powers = None + self.__adjacency_matrix_powers_exclusive = None + + def set_matrices(self, matrix_powers, matrix_powers_exclusive): + self.__adjacency_matrix_powers = matrix_powers + self.__adjacency_matrix_powers_exclusive = matrix_powers_exclusive + @abstractmethod def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: pass + @abstractmethod + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + pass + class MatMulAdjacency(AbstractAdjacencyStrategy): + def __init__(self): + super().__init__() + def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: """calc adjacencies for hyper nodes with matrix multiplication to find adjacent nodes for a given distance""" # vtx_connectivity: holds for each vtx all connected vtx - timer = time.time() adjacency_list = [] for vtxs in hyper_edges_idx.values(): for vtx_a in vtxs: @@ -54,19 +67,23 @@ def calc_adjacencies( exclusive = (adjacency_matrix_powers[i] - adjacency_matrix_powers[i - 1]).tocsr() adjacency_matrix_powers_exclusive[i] = exclusive - print("THIS TOOK: ", time.time() - timer) - + self.set_matrices(adjacency_matrix_powers, adjacency_matrix_powers_exclusive) return adjacency_matrix_powers, adjacency_matrix_powers_exclusive + + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + return self.__adjacency_matrix_powers_exclusive[distance][vtx_id] + + def __str__(self) -> str: + return "MatMulAdjacency" class BFSAdjacency(AbstractAdjacencyStrategy): + def __init__(self): + super().__init__() + def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - # convert hyper edges to graph; hyper_edges: key -> node, values -> edges to directly connected nodes - # as nodes are already integers, create graph from scratch - # note: some nodes are integers written as strings -> conversion necessary - timer = time.time() adjacency_list = [] for vtxs in hyper_edges_idx.values(): @@ -84,14 +101,17 @@ def calc_adjacencies( #################################################### # General idea: BFS for each vertex for each depth # #################################################### - for depth in range(2, max_distance + 1): exclusive_neighborhood = graph.neighborhood(vertices=None, mindist=depth, order=depth) inclusive_neighborhood = graph.neighborhood(vertices=None, order=depth) - adjacency_list_exclusive[depth] = exclusive_neighborhood adjacency_list_inclusive[depth] = inclusive_neighborhood - print("THIS TOOK: ", time.time() - timer) - + self.set_matrices(adjacency_list_inclusive, adjacency_list_exclusive) return adjacency_list_inclusive, adjacency_list_exclusive + + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + return self.__adjacency_matrix_powers_exclusive[distance][vtx_id] + + def __str__(self) -> str: + return "BFSAdjacency" diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 5606061..ae136bb 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -11,7 +11,7 @@ # noinspection PyProtectedMember from pandas.api.types import is_string_dtype -from mesh2vec.helpers import MatMulAdjacency, BFSAdjacency +from mesh2vec.helpers import MatMulAdjacency, AbstractAdjacencyStrategy from mesh2vec.mesh2vec_exceptions import ( check_distance_init_arg, check_distance_arg, @@ -36,6 +36,7 @@ def __init__( distance: int, hyper_edges: Dict[str, List[str]], vtx_ids: Optional[List[str]] = None, + calc_strategy: AbstractAdjacencyStrategy = None, ): r""" Create neighborhood sets on a hypergraph. @@ -49,6 +50,7 @@ def __init__( hyper_edges: edge->connected vertices vtx_ids: provide a list of all vertices to control inernal order of vertices (features, aggregated feature) + calc_strategy: choose the algorithm to calculate adjacencies Example: >>> from mesh2vec.mesh2vec_base import Mesh2VecBase @@ -85,28 +87,13 @@ def __init__( ) for h_edge_id, vtx_ids in self._hyper_edges.items() ) - - # choose between BFSAdjacency and MatMulAdjacency - calc_strategy1 = MatMulAdjacency() - calc_strategy2 = BFSAdjacency() + if calc_strategy is None: + calc_strategy = MatMulAdjacency() + self._calc_strategy = calc_strategy ( self._adjacency_matrix_powers, self._adjacency_matrix_powers_exclusive, - ) = calc_strategy1.calc_adjacencies(hyper_edges_idx, distance) - print("NEW STRATEGY") - ( - self._adjacency_matrix_powers1, - self._adjacency_matrix_powers_exclusive1, - ) = calc_strategy2.calc_adjacencies(hyper_edges_idx, distance) - - print( - "Test auf Gleichheit: ", - self._adjacency_matrix_powers == self._adjacency_matrix_powers1, - ) - print( - "Test auf Gleichheit: ", - self._adjacency_matrix_powers_exclusive == self._adjacency_matrix_powers_exclusive1, - ) + ) = self._calc_strategy.calc_adjacencies(hyper_edges_idx, distance) @staticmethod def from_file(hg_file: Path, distance: int) -> "Mesh2VecBase": @@ -180,9 +167,10 @@ def get_nbh(self, vtx: str, dist: int) -> List[str]: if dist == 0: return [vtx] - vertices_idx = self._adjacency_matrix_powers_exclusive[dist][ - [self._vtx_ids_to_idx[vtx]], : - ].indices + vertices_idx = self._calc_strategy.get_neighbors_exclusive(dist, self._vtx_ids_to_idx[vtx]).indices + #vertices_idx = self._adjacency_matrix_powers_exclusive[dist][ + # [self._vtx_ids_to_idx[vtx]], : + #].indices return [self._vtx_idx_to_ids[i] for i in vertices_idx] def aggregate_categorical( @@ -334,7 +322,8 @@ def _collect_feature_values( return [[feature] for feature in features] neighborhoods = [ - self._adjacency_matrix_powers_exclusive[dist][[i], :].indices + # self._adjacency_matrix_powers_exclusive[dist][[i], :].indices + self._calc_strategy.get_neighbors_exclusive(dist, i).indices for i in range(len(self._features)) ] values = [features[neighborhood] for neighborhood in neighborhoods] diff --git a/mesh2vec/mesh2vec_cae.py b/mesh2vec/mesh2vec_cae.py index 4c37042..783d42a 100644 --- a/mesh2vec/mesh2vec_cae.py +++ b/mesh2vec/mesh2vec_cae.py @@ -14,6 +14,7 @@ import plotly.graph_objects as go from mesh2vec import mesh_features +from mesh2vec.helpers import AbstractAdjacencyStrategy from mesh2vec.mesh_features import CaeShellMesh, is_tri, num_border, midpoint from mesh2vec.mesh2vec_base import Mesh2VecBase from mesh2vec.mesh2vec_exceptions import check_feature_available, AnsaNotFoundException @@ -34,6 +35,7 @@ def __init__( distance: int, mesh: CaeShellMesh, mesh_info: pd.DataFrame, + calc_strategy: AbstractAdjacencyStrategy = None, ) -> None: # pylint: disable=line-too-long """ @@ -44,6 +46,7 @@ def __init__( mesh: points, point_ids/uids, connectivity and element_ids/uids mesh_info: additional info about the elements in mesh (same order is required) columns "part_name", "part_id", "file_path", "element_id" are required + calc_strategy: choose the algorithm to calculate adjacencies Example: >>> import numpy as np @@ -83,7 +86,12 @@ def __init__( hyper_vtx_ids = mesh.element_uid - super().__init__(distance, points_to_faces_str, vtx_ids=hyper_vtx_ids.tolist()) + super().__init__( + distance, + points_to_faces_str, + vtx_ids=hyper_vtx_ids.tolist(), + calc_strategy=calc_strategy, + ) self._mesh = mesh self._element_info = pd.DataFrame( { @@ -127,6 +135,7 @@ def from_ansa_shell( ansa_executable: Optional[Path] = None, ansa_script: Optional[Path] = None, verbose: bool = False, + calc_strategy: AbstractAdjacencyStrategy = None, ) -> "Mesh2VecCae": """ Read the given ANSA file and use the shell elements corresponding with ``partid`` to @@ -170,7 +179,7 @@ def from_ansa_shell( ) element_info["part_id"] = [element["__part__"] for element in elements] element_info["file_path"] = str(ansafile) - return Mesh2VecCae(distance, mesh, element_info) + return Mesh2VecCae(distance, mesh, element_info, calc_strategy) @staticmethod def from_d3plot_shell(distance: int, d3plot: Path, partid: str = None) -> "Mesh2VecCae": diff --git a/mesh2vec/test.py b/mesh2vec/test.py index bff3bdf..43f0c2a 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -1,3 +1,4 @@ +from mesh2vec.helpers import BFSAdjacency from mesh2vec.mesh2vec_cae import Mesh2VecCae from pathlib import Path @@ -6,4 +7,9 @@ Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), ) - +b = Mesh2VecCae.from_ansa_shell( + 20, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), + calc_strategy=BFSAdjacency(), +) From 30d44cc4a15b063958bc366314704079a78adb3a Mon Sep 17 00:00:00 2001 From: soeren Date: Thu, 16 Nov 2023 15:49:00 +0100 Subject: [PATCH 10/27] implemented pure python bfs --- mesh2vec/helpers.py | 197 ++++++++++++++++++++++++++++++++++---- mesh2vec/mesh2vec_base.py | 14 ++- mesh2vec/test.py | 46 ++++++++- 3 files changed, 235 insertions(+), 22 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index e49750f..966377a 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -1,9 +1,11 @@ """helper functions""" from typing import OrderedDict, List, Tuple, Dict - +from numba import njit import numpy as np +from collections import deque from scipy.sparse import csr_array, coo_array, eye import igraph as ip +import itertools from abc import ABC, abstractmethod """ @@ -11,14 +13,69 @@ """ +@njit(parallel=True, fastmath=True) +def numba_compute(adj_list, depth): + # prevent recalculating length + num_vertices = len(adj_list) + # "adjacency" list: position in aray -> node id, values: reachable nodes for depth + # lists instead of sets due to numba compatibility + reachable_nodes = [np.empty(0, dtype=np.int64) for _ in prange(num_vertices)] + + for start_vertex in prange(num_vertices): + visited = np.zeros(num_vertices, dtype=np.bool_) + visited[start_vertex] = True + + queue = np.zeros(num_vertices, dtype=np.int64) + front, rear = -1, -1 + + queue[0] = start_vertex + rear += 1 + + current_depth = 1 + + while front != rear and current_depth <= depth: + front += 1 + current_vertex = queue[front] + + for neighbor in adj_list[current_vertex]: + if not visited[neighbor]: + visited[neighbor] = True + # list in list append not supported in numba + reachable_nodes[start_vertex] = np.append( + reachable_nodes[start_vertex], neighbor + ) + + if current_depth < depth: + queue[rear] = neighbor + rear += 1 + + if front == rear - 1: + current_depth += 1 + + return reachable_nodes + + class AbstractAdjacencyStrategy(ABC): def __init__(self): - self.__adjacency_matrix_powers = None - self.__adjacency_matrix_powers_exclusive = None - + self.adjacency_matrix_powers = None + self.adjacency_matrix_powers_exclusive = None + self.idx_conversion = None + self.id_conversion = None + def set_matrices(self, matrix_powers, matrix_powers_exclusive): - self.__adjacency_matrix_powers = matrix_powers - self.__adjacency_matrix_powers_exclusive = matrix_powers_exclusive + self.adjacency_matrix_powers = matrix_powers + self.adjacency_matrix_powers_exclusive = matrix_powers_exclusive + + def set_idx_conversion(self, translation: OrderedDict): + # key -> vtx_id, value -> index + print( + list(translation.keys())[0], "translates to", translation[list(translation.keys())[0]] + ) + self.idx_conversion = translation + + def set_id_conversion(self, translation: OrderedDict): + # key -> vtx_idx, value -> vtx_id + self.id_conversion = translation @abstractmethod def calc_adjacencies( @@ -27,7 +84,9 @@ def calc_adjacencies( pass @abstractmethod - def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + def get_neighbors_exclusive( + self, distance: int, vtx_id: int, transformation: bool = True + ) -> List[int]: pass @@ -69,10 +128,22 @@ def calc_adjacencies( self.set_matrices(adjacency_matrix_powers, adjacency_matrix_powers_exclusive) return adjacency_matrix_powers, adjacency_matrix_powers_exclusive - - def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: - return self.__adjacency_matrix_powers_exclusive[distance][vtx_id] - + + def get_neighbors_exclusive( + self, distance: int, vtx_id: int, transformation: bool = True + ) -> List[int]: + row_index = self.idx_conversion[vtx_id] + # get the indices; + selected_row = self.adjacency_matrix_powers_exclusive[distance][[row_index], :] + # nonzero returns a tuple of ([row], [columns]); since we already selected the correct row: + # look at columns (= vtx_indices) + nonzero_indices = selected_row.nonzero()[1] + if transformation: + # convert to vtx_ids + nonzero_ids = [self.id_conversion[index] for index in nonzero_indices] + return nonzero_ids + return nonzero_indices + def __str__(self) -> str: return "MatMulAdjacency" @@ -84,13 +155,12 @@ def __init__(self): def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - adjacency_list = [] for vtxs in hyper_edges_idx.values(): for vtx_a in vtxs: for vtx_b in vtxs: adjacency_list.append([vtx_a, vtx_b]) - adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + adjacency_list_np: np.ndarray = np.unique(np.array(adjacency_list), axis=0) graph = ip.Graph(adjacency_list_np) @@ -109,9 +179,104 @@ def calc_adjacencies( self.set_matrices(adjacency_list_inclusive, adjacency_list_exclusive) return adjacency_list_inclusive, adjacency_list_exclusive - + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: - return self.__adjacency_matrix_powers_exclusive[distance][vtx_id] - + # TODO CONVERSION + return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] + def __str__(self) -> str: return "BFSAdjacency" + + +class BFSNumba(AbstractAdjacencyStrategy): + def __init__(self): + super().__init__() + + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + # TODO CONVERSION + return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] + + def __str__(self) -> str: + return "BFSNumba" + + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: + adjacency_list = [] + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + adjacency_list.append([vtx_a, vtx_b]) + + adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + adjacency_list_inclusive = {1: np.array([1, 2, 3])} + adjacency_list_exclusive = adjacency_list_inclusive + numba_compute(adjacency_list_np, 20) + return adjacency_list_inclusive, adjacency_list_exclusive + + +class PurePythonBFS(AbstractAdjacencyStrategy): + def __init__(self): + super().__init__() + + def __str__(self) -> str: + return "PurePythonBFS" + + def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + row_index = self.idx_conversion[vtx_id] + print(self.adjacency_matrix_powers_exclusive[row_index]) + idx_list = self.adjacency_matrix_powers_exclusive[row_index][distance] + return [self.id_conversion[idx] for idx in idx_list] + + def get_neighbors_inclusive(self, distance: int, vtx_id: int) -> List[int]: + # join all sublists of neighbors into one + row_index = self.idx_conversion[vtx_id] + row_index = vtx_id + idx_list = itertools.chain(self.adjacency_matrix_powers_exclusive[row_index][:distance]) + return [self.id_conversion[index] for index in idx_list] + + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Tuple[List[List[int]], List[List[int]]]: + # hyper_edges keys are still in id format, while values are in index format + vertices = [self.idx_conversion[v_id] for v_id in list(hyper_edges_idx.keys())] + + # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors + # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[400], [300], []] + neighbors_at_depth = {vertex: [[] for _ in range(max_distance)] for vertex in vertices} + + # for each vertex, do bfs separately + for start_vertex in vertices: + # Initialize the queue for BFS: (vertex, depth) + queue = deque([(start_vertex, 0)]) + + # Use a set to keep track of visited vertices + visited = set([start_vertex]) + + while queue: + # depth is saved in queue -> no tracking in loop + vertex, depth = queue.popleft() + + # do not track vertex identity in neighbors; new vertices will not be duplicates due + # to visited set tracking + if vertex != start_vertex: + # add found neighbor to start_vertex's neighbors + neighbors_at_depth[start_vertex][depth].append(vertex) + + # Check if we've reached the maximum depth; if not look for next level neighbors + # of found neighbor + if depth < max_distance: + vtx_id = self.id_conversion[vertex] + # Add unvisited neighbors to the queue; these are already in our dictionary + # ATTENTION: Some vertices do not have neighbors and thus might NOT be in dict as key + if vtx_id in hyper_edges_idx.keys(): + neighbors = set(hyper_edges_idx[vtx_id]) - visited + queue.extend((neighbor, depth + 1) for neighbor in neighbors) + visited.update(neighbors) + + self.adjacency_matrix_powers_exclusive = neighbors_at_depth + self.set_matrices(neighbors_at_depth, neighbors_at_depth) + + # constructing an inclusive neighbor matrix/ dictionary would be expensive; use get_neighbors_inclusive + # to get inclusive neighbors for specific vertex. This avoids computational overhead + return neighbors_at_depth, neighbors_at_depth diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index ae136bb..2b98b4e 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -90,6 +90,8 @@ def __init__( if calc_strategy is None: calc_strategy = MatMulAdjacency() self._calc_strategy = calc_strategy + self._calc_strategy.set_idx_conversion(self._vtx_ids_to_idx) + self._calc_strategy.set_id_conversion(self._vtx_idx_to_ids) ( self._adjacency_matrix_powers, self._adjacency_matrix_powers_exclusive, @@ -167,11 +169,12 @@ def get_nbh(self, vtx: str, dist: int) -> List[str]: if dist == 0: return [vtx] - vertices_idx = self._calc_strategy.get_neighbors_exclusive(dist, self._vtx_ids_to_idx[vtx]).indices - #vertices_idx = self._adjacency_matrix_powers_exclusive[dist][ + vertices_ids = self._calc_strategy.get_neighbors_exclusive(dist, vtx) + # vertices_idx = self._adjacency_matrix_powers_exclusive[dist][ # [self._vtx_ids_to_idx[vtx]], : - #].indices - return [self._vtx_idx_to_ids[i] for i in vertices_idx] + # ].indices + # return [self._vtx_idx_to_ids[i] for i in vertices_idx] + return vertices_ids def aggregate_categorical( self, @@ -321,9 +324,10 @@ def _collect_feature_values( if dist == 0: return [[feature] for feature in features] + # no transformation needed neighborhoods = [ # self._adjacency_matrix_powers_exclusive[dist][[i], :].indices - self._calc_strategy.get_neighbors_exclusive(dist, i).indices + self._calc_strategy.get_neighbors_exclusive(dist, i, transformation=False) for i in range(len(self._features)) ] values = [features[neighborhood] for neighborhood in neighborhoods] diff --git a/mesh2vec/test.py b/mesh2vec/test.py index 43f0c2a..57251d8 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -1,15 +1,59 @@ -from mesh2vec.helpers import BFSAdjacency +from mesh2vec.helpers import BFSAdjacency, BFSNumba, PurePythonBFS, MatMulAdjacency from mesh2vec.mesh2vec_cae import Mesh2VecCae from pathlib import Path +import time +start = time.time() +matm = MatMulAdjacency() a = Mesh2VecCae.from_ansa_shell( 20, Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), + calc_strategy=matm, ) +print("MATMUL:", time.time() - start) + +print("EXCLUSIVE") +print(matm.get_neighbors_exclusive(3, "4700000")) +""" +start = time.time() b = Mesh2VecCae.from_ansa_shell( 20, Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), calc_strategy=BFSAdjacency(), ) +print("BFS: ",time.time() - start)""" +start = time.time() +pbfs = PurePythonBFS() +d = Mesh2VecCae.from_ansa_shell( + 20, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), + calc_strategy=pbfs, +) +print("PurePythonBFS:", time.time() - start) + +print("EXCLUSIVE") +print(pbfs.get_neighbors_exclusive(3, "4700000")) +print("INCLUSIVE") +print(pbfs.get_neighbors_inclusive(3, "4700000")) + +"""start = time.time() +c = Mesh2VecCae.from_ansa_shell( + 20, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), + calc_strategy=BFSNumba(), +) +print("NUMBA:", time.time() - start)""" + + +"""ADJACENCY LIST: [[ 0 0] + [ 0 1] + [ 0 2014] + ... + [6399 6328] + [6399 6396] + [6399 6399]] +DICT 0: 1002224 [0, 2014, 2016, 2202]""" From 4e0e6ce1d5d05891fdb1c3b2ccbe19d571475525 Mon Sep 17 00:00:00 2001 From: soeren Date: Thu, 16 Nov 2023 15:51:50 +0100 Subject: [PATCH 11/27] leave first list for distance 0 to avoid wrong indexing for distances --- mesh2vec/helpers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 966377a..43ef5d7 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -242,8 +242,8 @@ def calc_adjacencies( vertices = [self.idx_conversion[v_id] for v_id in list(hyper_edges_idx.keys())] # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors - # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[400], [300], []] - neighbors_at_depth = {vertex: [[] for _ in range(max_distance)] for vertex in vertices} + # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] + neighbors_at_depth = {vertex: [[] for _ in range(max_distance + 1)] for vertex in vertices} # for each vertex, do bfs separately for start_vertex in vertices: From e3d43e816cbdc00a8c3f4bd74dbe782660a4f05f Mon Sep 17 00:00:00 2001 From: soeren Date: Fri, 17 Nov 2023 11:30:45 +0100 Subject: [PATCH 12/27] adjacency_dict now right --- mesh2vec/helpers.py | 52 +++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 43ef5d7..80706b2 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -180,9 +180,14 @@ def calc_adjacencies( self.set_matrices(adjacency_list_inclusive, adjacency_list_exclusive) return adjacency_list_inclusive, adjacency_list_exclusive - def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: - # TODO CONVERSION - return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] + def get_neighbors_exclusive( + self, distance: int, vtx_id: int, transformation: bool = True + ) -> List[int]: + if not transformation: + return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] + + matrix = self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] + return [self.id_conversion[vtx] for vtx in matrix] def __str__(self) -> str: return "BFSAdjacency" @@ -222,31 +227,51 @@ def __init__(self): def __str__(self) -> str: return "PurePythonBFS" - def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: + def get_neighbors_exclusive( + self, distance: int, vtx_id: int, transformation: bool = True + ) -> List[int]: row_index = self.idx_conversion[vtx_id] print(self.adjacency_matrix_powers_exclusive[row_index]) idx_list = self.adjacency_matrix_powers_exclusive[row_index][distance] - return [self.id_conversion[idx] for idx in idx_list] + if transformation: + return [self.id_conversion[idx] for idx in idx_list] + return idx_list - def get_neighbors_inclusive(self, distance: int, vtx_id: int) -> List[int]: + def get_neighbors_inclusive( + self, distance: int, vtx_id: int, transformation: bool = True + ) -> List[int]: # join all sublists of neighbors into one row_index = self.idx_conversion[vtx_id] row_index = vtx_id idx_list = itertools.chain(self.adjacency_matrix_powers_exclusive[row_index][:distance]) - return [self.id_conversion[index] for index in idx_list] + if transformation: + return [self.id_conversion[index] for index in idx_list] + return idx_list def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[List[List[int]], List[List[int]]]: - # hyper_edges keys are still in id format, while values are in index format - vertices = [self.idx_conversion[v_id] for v_id in list(hyper_edges_idx.keys())] + # construct adjacency dict + vtx_count = max([vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs]) + 1 + adjacency_dict = {self.idx_conversion[vtx]: [] for vtx in hyper_edges_idx} + + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + adjacency_dict[vtx_a].append(vtx_b) + adjacency_dict[vtx_b].append(vtx_a) + for i in range(len(adjacency_dict.keys())): + # eliminate duplicates + adjacency_dict[i] = list(set(adjacency_dict[i])) # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] - neighbors_at_depth = {vertex: [[] for _ in range(max_distance + 1)] for vertex in vertices} + neighbors_at_depth = { + vertex: [[] for _ in range(max_distance + 1)] for vertex in adjacency_dict + } # for each vertex, do bfs separately - for start_vertex in vertices: + for start_vertex in adjacency_dict: # Initialize the queue for BFS: (vertex, depth) queue = deque([(start_vertex, 0)]) @@ -266,11 +291,10 @@ def calc_adjacencies( # Check if we've reached the maximum depth; if not look for next level neighbors # of found neighbor if depth < max_distance: - vtx_id = self.id_conversion[vertex] # Add unvisited neighbors to the queue; these are already in our dictionary # ATTENTION: Some vertices do not have neighbors and thus might NOT be in dict as key - if vtx_id in hyper_edges_idx.keys(): - neighbors = set(hyper_edges_idx[vtx_id]) - visited + if vertex in adjacency_dict: + neighbors = set(adjacency_dict[vtx]) - visited queue.extend((neighbor, depth + 1) for neighbor in neighbors) visited.update(neighbors) From 4c5cfc585a756bf9290df043c2b32bcfcb83e98b Mon Sep 17 00:00:00 2001 From: soeren Date: Fri, 17 Nov 2023 12:41:41 +0100 Subject: [PATCH 13/27] pure python correctly implemented --- mesh2vec/helpers.py | 40 ++++++++++++++++------------------------ mesh2vec/test.py | 16 ---------------- 2 files changed, 16 insertions(+), 40 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 80706b2..d98ce0e 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -19,9 +19,9 @@ def numba_compute(adj_list, depth): num_vertices = len(adj_list) # "adjacency" list: position in aray -> node id, values: reachable nodes for depth # lists instead of sets due to numba compatibility - reachable_nodes = [np.empty(0, dtype=np.int64) for _ in prange(num_vertices)] + reachable_nodes = [np.empty(0, dtype=np.int64) for _ in range(num_vertices)] - for start_vertex in prange(num_vertices): + for start_vertex in range(num_vertices): visited = np.zeros(num_vertices, dtype=np.bool_) visited[start_vertex] = True @@ -68,9 +68,6 @@ def set_matrices(self, matrix_powers, matrix_powers_exclusive): def set_idx_conversion(self, translation: OrderedDict): # key -> vtx_id, value -> index - print( - list(translation.keys())[0], "translates to", translation[list(translation.keys())[0]] - ) self.idx_conversion = translation def set_id_conversion(self, translation: OrderedDict): @@ -231,7 +228,6 @@ def get_neighbors_exclusive( self, distance: int, vtx_id: int, transformation: bool = True ) -> List[int]: row_index = self.idx_conversion[vtx_id] - print(self.adjacency_matrix_powers_exclusive[row_index]) idx_list = self.adjacency_matrix_powers_exclusive[row_index][distance] if transformation: return [self.id_conversion[idx] for idx in idx_list] @@ -242,8 +238,9 @@ def get_neighbors_inclusive( ) -> List[int]: # join all sublists of neighbors into one row_index = self.idx_conversion[vtx_id] - row_index = vtx_id - idx_list = itertools.chain(self.adjacency_matrix_powers_exclusive[row_index][:distance]) + idx_list = list( + itertools.chain(*self.adjacency_matrix_powers_exclusive[row_index][:distance]) + ) if transformation: return [self.id_conversion[index] for index in idx_list] return idx_list @@ -251,27 +248,25 @@ def get_neighbors_inclusive( def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[List[List[int]], List[List[int]]]: - # construct adjacency dict + # values in .values(): indices list -> maximum index + 1 is length of unique vertices vtx_count = max([vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs]) + 1 - adjacency_dict = {self.idx_conversion[vtx]: [] for vtx in hyper_edges_idx} - + adjacency_list = [[] for _ in range(vtx_count)] for vtxs in hyper_edges_idx.values(): for vtx_a in vtxs: for vtx_b in vtxs: - adjacency_dict[vtx_a].append(vtx_b) - adjacency_dict[vtx_b].append(vtx_a) - for i in range(len(adjacency_dict.keys())): - # eliminate duplicates - adjacency_dict[i] = list(set(adjacency_dict[i])) + adjacency_list[vtx_a].append(vtx_b) + adjacency_list[vtx_b].append(vtx_a) + for i in range(len(adjacency_list)): + adjacency_list[i] = list(set(adjacency_list[i])) # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] neighbors_at_depth = { - vertex: [[] for _ in range(max_distance + 1)] for vertex in adjacency_dict + vertex: [[] for _ in range(max_distance + 1)] for vertex in range(vtx_count) } # for each vertex, do bfs separately - for start_vertex in adjacency_dict: + for start_vertex in range(vtx_count): # Initialize the queue for BFS: (vertex, depth) queue = deque([(start_vertex, 0)]) @@ -291,12 +286,9 @@ def calc_adjacencies( # Check if we've reached the maximum depth; if not look for next level neighbors # of found neighbor if depth < max_distance: - # Add unvisited neighbors to the queue; these are already in our dictionary - # ATTENTION: Some vertices do not have neighbors and thus might NOT be in dict as key - if vertex in adjacency_dict: - neighbors = set(adjacency_dict[vtx]) - visited - queue.extend((neighbor, depth + 1) for neighbor in neighbors) - visited.update(neighbors) + neighbors = set(adjacency_list[vertex]) - visited + queue.extend((neighbor, depth + 1) for neighbor in neighbors) + visited.update(neighbors) self.adjacency_matrix_powers_exclusive = neighbors_at_depth self.set_matrices(neighbors_at_depth, neighbors_at_depth) diff --git a/mesh2vec/test.py b/mesh2vec/test.py index 57251d8..fa3edc1 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -13,8 +13,6 @@ ) print("MATMUL:", time.time() - start) -print("EXCLUSIVE") -print(matm.get_neighbors_exclusive(3, "4700000")) """ start = time.time() b = Mesh2VecCae.from_ansa_shell( @@ -34,10 +32,6 @@ ) print("PurePythonBFS:", time.time() - start) -print("EXCLUSIVE") -print(pbfs.get_neighbors_exclusive(3, "4700000")) -print("INCLUSIVE") -print(pbfs.get_neighbors_inclusive(3, "4700000")) """start = time.time() c = Mesh2VecCae.from_ansa_shell( @@ -47,13 +41,3 @@ calc_strategy=BFSNumba(), ) print("NUMBA:", time.time() - start)""" - - -"""ADJACENCY LIST: [[ 0 0] - [ 0 1] - [ 0 2014] - ... - [6399 6328] - [6399 6396] - [6399 6399]] -DICT 0: 1002224 [0, 2014, 2016, 2202]""" From bb8350ed37277c3cc5e067f0a01281d2783d3a61 Mon Sep 17 00:00:00 2001 From: soeren Date: Sat, 18 Nov 2023 14:29:52 +0100 Subject: [PATCH 14/27] all strategies with respective neighbor fetching correct --- mesh2vec/helpers.py | 106 ++++++++++++++++++++++++-------------------- mesh2vec/test.py | 23 +++++++--- 2 files changed, 75 insertions(+), 54 deletions(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index d98ce0e..e96da0b 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -1,6 +1,6 @@ """helper functions""" from typing import OrderedDict, List, Tuple, Dict -from numba import njit +from numba import jit import numpy as np from collections import deque from scipy.sparse import csr_array, coo_array, eye @@ -12,47 +12,47 @@ Use strategy to implement multiple adjacency finding algorithms """ - -@njit(parallel=True, fastmath=True) -def numba_compute(adj_list, depth): - # prevent recalculating length - num_vertices = len(adj_list) - # "adjacency" list: position in aray -> node id, values: reachable nodes for depth - # lists instead of sets due to numba compatibility - reachable_nodes = [np.empty(0, dtype=np.int64) for _ in range(num_vertices)] - - for start_vertex in range(num_vertices): - visited = np.zeros(num_vertices, dtype=np.bool_) - visited[start_vertex] = True - - queue = np.zeros(num_vertices, dtype=np.int64) - front, rear = -1, -1 - - queue[0] = start_vertex - rear += 1 - - current_depth = 1 - - while front != rear and current_depth <= depth: - front += 1 - current_vertex = queue[front] - - for neighbor in adj_list[current_vertex]: - if not visited[neighbor]: - visited[neighbor] = True - # list in list append not supported in numba - reachable_nodes[start_vertex] = np.append( - reachable_nodes[start_vertex], neighbor - ) - - if current_depth < depth: - queue[rear] = neighbor - rear += 1 - - if front == rear - 1: - current_depth += 1 - - return reachable_nodes +@jit(parallel=False, fastmath=True, forceobj=True) +def numba_compute(adj_list, depth, vtx_count): + # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors + # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] + neighbors_at_depth = { + vertex: [np.array([], dtype=np.int64) for _ in range(depth + 1)] for vertex in range(vtx_count) + } + + # for each vertex, do bfs separately + for start_vertex in range(vtx_count): + # Initialize the queue for BFS: (vertex, depth); numba does not support dequeue + queue = [(start_vertex, 0)] + + # Use a set to keep track of visited vertices + visited = [start_vertex] + + # queue not empty + while queue: + # depth is saved in queue -> no tracking in loop + vertex, depth = queue.pop() + + # do not track vertex identity in neighbors; new vertices will not be duplicates due + # to visited set tracking + if vertex != start_vertex: + # add found neighbor to start_vertex's neighbors + neighbors_at_depth[start_vertex][depth] = np.append(neighbors_at_depth[start_vertex][depth], vertex) + + # Check if we've reached the maximum depth; if not look for next level neighbors + # of found neighbor + if depth < depth: + # remove duplicates manually, as np.setdiff1d and - with lists is not supported + neighbors = np.unique(np.array(adj_list[vertex])) + removed_neighbors = np.array([neighbor for neighbor in neighbors if neighbor not in visited], dtype=np.int64) + + for neighbor in removed_neighbors: + # stack instead of appending + queue.append((neighbor, depth + 1)) + visited.extend(removed_neighbors) + + + return neighbors_at_depth class AbstractAdjacencyStrategy(ABC): @@ -204,17 +204,25 @@ def __str__(self) -> str: def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - adjacency_list = [] + # values in .values(): indices list -> maximum index + 1 is length of unique vertices + vtx_count = max([vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs]) + 1 + adjacency_list = [[] for _ in range(vtx_count)] for vtxs in hyper_edges_idx.values(): for vtx_a in vtxs: for vtx_b in vtxs: - adjacency_list.append([vtx_a, vtx_b]) + adjacency_list[vtx_a].append(vtx_b) + adjacency_list[vtx_b].append(vtx_a) + for i in range(len(adjacency_list)): + adjacency_list[i] = list(set(adjacency_list[i])) - adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) - adjacency_list_inclusive = {1: np.array([1, 2, 3])} - adjacency_list_exclusive = adjacency_list_inclusive - numba_compute(adjacency_list_np, 20) - return adjacency_list_inclusive, adjacency_list_exclusive + neighbors_at_depth = numba_compute(adjacency_list, max_distance, vtx_count) + + self.adjacency_matrix_powers_exclusive = neighbors_at_depth + self.set_matrices(neighbors_at_depth, neighbors_at_depth) + + # constructing an inclusive neighbor matrix/ dictionary would be expensive; use get_neighbors_inclusive + # to get inclusive neighbors for specific vertex. This avoids computational overhead + return neighbors_at_depth, neighbors_at_depth class PurePythonBFS(AbstractAdjacencyStrategy): diff --git a/mesh2vec/test.py b/mesh2vec/test.py index fa3edc1..faec627 100644 --- a/mesh2vec/test.py +++ b/mesh2vec/test.py @@ -12,16 +12,22 @@ calc_strategy=matm, ) print("MATMUL:", time.time() - start) +matm_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] +print(matm_neighbors) + -""" start = time.time() +bfs = BFSAdjacency() b = Mesh2VecCae.from_ansa_shell( 20, Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), - calc_strategy=BFSAdjacency(), + calc_strategy=bfs, ) -print("BFS: ",time.time() - start)""" +print("BFS: ",time.time() - start) +bfs_neighbors = sorted(bfs.get_neighbors_exclusive(20, "4700000"))[:20] +print(bfs_neighbors) + start = time.time() pbfs = PurePythonBFS() d = Mesh2VecCae.from_ansa_shell( @@ -31,13 +37,20 @@ calc_strategy=pbfs, ) print("PurePythonBFS:", time.time() - start) +pbfs_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] +print(pbfs_neighbors) -"""start = time.time() +start = time.time() c = Mesh2VecCae.from_ansa_shell( 20, Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), calc_strategy=BFSNumba(), ) -print("NUMBA:", time.time() - start)""" +print("NUMBA:", time.time() - start) +numba_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] +print(numba_neighbors) + +trued_neighbors = numba_neighbors==pbfs_neighbors==matm_neighbors==bfs_neighbors +print("IDENTICAL_NEIGHBORS: ", trued_neighbors) \ No newline at end of file From c32cd630e97a22cd6c4abc0b0c82d067a2f8e6da Mon Sep 17 00:00:00 2001 From: soeren Date: Wed, 22 Nov 2023 12:59:59 +0100 Subject: [PATCH 15/27] removed unnecessary comment --- mesh2vec/helpers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index e96da0b..14e858f 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -47,7 +47,6 @@ def numba_compute(adj_list, depth, vtx_count): removed_neighbors = np.array([neighbor for neighbor in neighbors if neighbor not in visited], dtype=np.int64) for neighbor in removed_neighbors: - # stack instead of appending queue.append((neighbor, depth + 1)) visited.extend(removed_neighbors) From a9e48209aa23bc1bcd3d4159b7985ce0950a7375 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Mon, 4 Dec 2023 20:31:40 +0100 Subject: [PATCH 16/27] vtx_idx vs. vtx_id fixes test fixed - take now very long many more - test ok wip add: from keyfile etc eval relock pillow updated formatting add: numba and igraph cleanup mesh2vec_base more cleanups cleanup --- .gitignore | 4 +- docs/examples/plot_stress.py | 10 +- mesh2vec/helpers.py | 526 +-- mesh2vec/mesh2vec_base.py | 175 +- mesh2vec/mesh2vec_cae.py | 68 +- mesh2vec/mesh2vec_exceptions.py | 14 +- mesh2vec/mesh_features.py | 59 + mesh2vec/test.py | 56 - poetry.lock | 4820 +++++++++++++++------------- pyproject.toml | 4 +- scripts/discover_bottlenecks.ipynb | 122 - scripts/generate_test_data.py | 7 - scripts/mesh2vec_times.png | Bin 41634 -> 0 bytes scripts/plot_execution_time.ipynb | 125 - scripts/profile_stats.txt | 726 ----- tests/test_mesh2vec_base.py | 58 +- tests/test_mesh2vec_cae.py | 47 + 17 files changed, 3184 insertions(+), 3637 deletions(-) delete mode 100644 mesh2vec/test.py delete mode 100644 scripts/discover_bottlenecks.ipynb delete mode 100644 scripts/generate_test_data.py delete mode 100644 scripts/mesh2vec_times.png delete mode 100644 scripts/plot_execution_time.ipynb delete mode 100644 scripts/profile_stats.txt diff --git a/.gitignore b/.gitignore index 40d3b02..12a5a6c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,4 @@ __pycache__ /data/*internal* .DS_Store .venv/ -.ipynb_checkpoints -data/mb_private_data -plot_mb* \ No newline at end of file +.ipynb_checkpoints \ No newline at end of file diff --git a/docs/examples/plot_stress.py b/docs/examples/plot_stress.py index 8904f03..08bbc9d 100644 --- a/docs/examples/plot_stress.py +++ b/docs/examples/plot_stress.py @@ -19,11 +19,11 @@ Path("../../data/hat/Hatprofile.k"), json_mesh_file=Path("../../data/hat/cached_hat_key.json"), ) -hg.add_feature_from_d3plot( +name = hg.add_feature_from_d3plot( ArrayType.element_shell_stress, Path("../../data/hat/HAT.d3plot"), - timestep=1, - shell_layer=0, + timestep=-1, + shell_layer=np.mean, ) @@ -34,7 +34,7 @@ pd.DataFrame( { "vtx_id": hg.vtx_ids(), - "y-stress": [v[1] for v in hg.features()[ArrayType.element_shell_stress + "_1_0"]], + "y-stress": [v for v in hg.features()[name]], } ) ) @@ -49,7 +49,7 @@ name = hg.aggregate("y-stress", 1, np.mean) fig = hg.get_visualization_plotly(str(name)) fig.update_layout(title=name) -fig +fig.show() # %% diff --git a/mesh2vec/helpers.py b/mesh2vec/helpers.py index 14e858f..78f1653 100644 --- a/mesh2vec/helpers.py +++ b/mesh2vec/helpers.py @@ -1,107 +1,114 @@ """helper functions""" -from typing import OrderedDict, List, Tuple, Dict +from typing import OrderedDict, List, Dict +from collections import deque +from abc import ABC, abstractmethod +import time + from numba import jit import numpy as np -from collections import deque from scipy.sparse import csr_array, coo_array, eye import igraph as ip -import itertools -from abc import ABC, abstractmethod - -""" -Use strategy to implement multiple adjacency finding algorithms -""" - -@jit(parallel=False, fastmath=True, forceobj=True) -def numba_compute(adj_list, depth, vtx_count): - # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors - # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] - neighbors_at_depth = { - vertex: [np.array([], dtype=np.int64) for _ in range(depth + 1)] for vertex in range(vtx_count) - } +import numba +import numba.typed - # for each vertex, do bfs separately - for start_vertex in range(vtx_count): - # Initialize the queue for BFS: (vertex, depth); numba does not support dequeue - queue = [(start_vertex, 0)] - - # Use a set to keep track of visited vertices - visited = [start_vertex] +# pylint: disable=invalid-name +class AbstractAdjacencyStrategy(ABC): + # pylint: disable=too-few-public-methods + """ + Abstract class for adjacency finding strategies + """ - # queue not empty - while queue: - # depth is saved in queue -> no tracking in loop - vertex, depth = queue.pop() + @abstractmethod + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Dict[int, List[List[int]]]: + """ + calculate adjacencies for hyper nodes with a given maximum distance + Args: + hyper_edges_idx: OrderedDict of hyper nodes with their indices + max_distance: maximum distance to find adjacencies for + Returns: + dict of lists of lists (distance, vertex, neighbors) + """ + + +def _hyper_edges_to_adj_np(hyper_edges_idx): + adjacency_list = [] + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + adjacency_list.append([vtx_a, vtx_b]) + adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + return adjacency_list_np + + +def _hyper_edges_to_adj_list(vtx_count, hyper_edges_idx, include_self=False): + adjacency_list = [[] for _ in range(vtx_count)] + for vtxs in hyper_edges_idx.values(): + for vtx_a in vtxs: + for vtx_b in vtxs: + if include_self or not vtx_a == vtx_b: + adjacency_list[vtx_a].append(vtx_b) + adjacency_list[vtx_b].append(vtx_a) + adjacency_list = [list(set(adjacency)) for adjacency in adjacency_list] + return adjacency_list - # do not track vertex identity in neighbors; new vertices will not be duplicates due - # to visited set tracking - if vertex != start_vertex: - # add found neighbor to start_vertex's neighbors - neighbors_at_depth[start_vertex][depth] = np.append(neighbors_at_depth[start_vertex][depth], vertex) - # Check if we've reached the maximum depth; if not look for next level neighbors - # of found neighbor - if depth < depth: - # remove duplicates manually, as np.setdiff1d and - with lists is not supported - neighbors = np.unique(np.array(adj_list[vertex])) - removed_neighbors = np.array([neighbor for neighbor in neighbors if neighbor not in visited], dtype=np.int64) - - for neighbor in removed_neighbors: - queue.append((neighbor, depth + 1)) - visited.extend(removed_neighbors) - +class MatMulAdjacencySmart(AbstractAdjacencyStrategy): + """calc adjacencies using matrix multiplication with low memory footprint""" - return neighbors_at_depth + # pylint: disable=too-few-public-methods + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using matrix multiplication with low memory footprint""" + adjacency_list_np = _hyper_edges_to_adj_np(hyper_edges_idx) + # adjacency matrix + n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 + data = np.array([1] * len(adjacency_list_np)) + adjacency_matrix = coo_array( + (data, (adjacency_list_np[:, 1], adjacency_list_np[:, 0])), shape=(n_vtx, n_vtx) + ).tocsr() -class AbstractAdjacencyStrategy(ABC): - def __init__(self): - self.adjacency_matrix_powers = None - self.adjacency_matrix_powers_exclusive = None - self.idx_conversion = None - self.id_conversion = None + # neighbors + adjacency_matrix_powers_exclusive = { + 1: adjacency_matrix - csr_array(eye(n_vtx, dtype=int)), + 0: csr_array(eye(n_vtx, dtype=int)), + } - def set_matrices(self, matrix_powers, matrix_powers_exclusive): - self.adjacency_matrix_powers = matrix_powers - self.adjacency_matrix_powers_exclusive = matrix_powers_exclusive + all_neighbors = ( + adjacency_matrix_powers_exclusive[1] + adjacency_matrix_powers_exclusive[0] + ) - def set_idx_conversion(self, translation: OrderedDict): - # key -> vtx_id, value -> index - self.idx_conversion = translation + for i in range(2, max_distance + 1): + new = adjacency_matrix_powers_exclusive[i - 1] @ adjacency_matrix + new.data = np.array([1] * new.nnz) # make all entries 1 - def set_id_conversion(self, translation: OrderedDict): - # key -> vtx_idx, value -> vtx_id - self.id_conversion = translation + exclusive = new > all_neighbors + all_neighbors = all_neighbors + new - @abstractmethod - def calc_adjacencies( - self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int - ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - pass + adjacency_matrix_powers_exclusive[i] = exclusive - @abstractmethod - def get_neighbors_exclusive( - self, distance: int, vtx_id: int, transformation: bool = True - ) -> List[int]: - pass + neighborhoods = {} + for dist in range(1, max_distance + 1): + neighborhoods[dist] = [ + adjacency_matrix_powers_exclusive[dist][[i], :].indices for i in range(n_vtx) + ] + return neighborhoods class MatMulAdjacency(AbstractAdjacencyStrategy): - def __init__(self): - super().__init__() + # pylint: disable=too-few-public-methods + """calc adjacencies using matrix multiplication with low memory footprint""" def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int - ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - """calc adjacencies for hyper nodes with matrix multiplication to find adjacent nodes for a given distance""" + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using matrix multiplication""" # vtx_connectivity: holds for each vtx all connected vtx - adjacency_list = [] - for vtxs in hyper_edges_idx.values(): - for vtx_a in vtxs: - for vtx_b in vtxs: - adjacency_list.append([vtx_a, vtx_b]) - adjacency_list_np = np.unique(np.array(adjacency_list), axis=0) + adjacency_list_np = _hyper_edges_to_adj_np(hyper_edges_idx) # adjacency matrix n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 @@ -122,154 +129,153 @@ def calc_adjacencies( exclusive = (adjacency_matrix_powers[i] - adjacency_matrix_powers[i - 1]).tocsr() adjacency_matrix_powers_exclusive[i] = exclusive - self.set_matrices(adjacency_matrix_powers, adjacency_matrix_powers_exclusive) - return adjacency_matrix_powers, adjacency_matrix_powers_exclusive - - def get_neighbors_exclusive( - self, distance: int, vtx_id: int, transformation: bool = True - ) -> List[int]: - row_index = self.idx_conversion[vtx_id] - # get the indices; - selected_row = self.adjacency_matrix_powers_exclusive[distance][[row_index], :] - # nonzero returns a tuple of ([row], [columns]); since we already selected the correct row: - # look at columns (= vtx_indices) - nonzero_indices = selected_row.nonzero()[1] - if transformation: - # convert to vtx_ids - nonzero_ids = [self.id_conversion[index] for index in nonzero_indices] - return nonzero_ids - return nonzero_indices - - def __str__(self) -> str: - return "MatMulAdjacency" + ## neighborhoods key=distance, value=list of neighbors by index + neighborhoods = {} + for dist in range(1, max_distance + 1): + neighborhoods[dist] = [ + adjacency_matrix_powers_exclusive[dist][[i], :].indices for i in range(n_vtx) + ] + return neighborhoods class BFSAdjacency(AbstractAdjacencyStrategy): - def __init__(self): - super().__init__() + """calc adjacencies using BFS from igraph""" + # pylint: disable=too-few-public-methods def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int - ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - adjacency_list = [] - for vtxs in hyper_edges_idx.values(): - for vtx_a in vtxs: - for vtx_b in vtxs: - adjacency_list.append([vtx_a, vtx_b]) - adjacency_list_np: np.ndarray = np.unique(np.array(adjacency_list), axis=0) + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using BFS from igraph""" + adjacency_list_np: np.ndarray = _hyper_edges_to_adj_np(hyper_edges_idx) graph = ip.Graph(adjacency_list_np) - adj_list = graph.get_adjlist() - adjacency_list_exclusive = {1: adj_list} - adjacency_list_inclusive = {1: adj_list} - #################################################### # General idea: BFS for each vertex for each depth # #################################################### - for depth in range(2, max_distance + 1): + neighborhoods = {} + n_vtx = max(max(v) for v in hyper_edges_idx.values()) + 1 + + for depth in range(1, max_distance + 1): + exclusive_neighborhood = graph.neighborhood(vertices=None, mindist=depth, order=depth) - inclusive_neighborhood = graph.neighborhood(vertices=None, order=depth) - adjacency_list_exclusive[depth] = exclusive_neighborhood - adjacency_list_inclusive[depth] = inclusive_neighborhood + neighborhoods[depth] = [ + list(set(exclusive_neighborhood[i]) - {i}) for i in range(n_vtx) + ] - self.set_matrices(adjacency_list_inclusive, adjacency_list_exclusive) - return adjacency_list_inclusive, adjacency_list_exclusive + return neighborhoods - def get_neighbors_exclusive( - self, distance: int, vtx_id: int, transformation: bool = True - ) -> List[int]: - if not transformation: - return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] - matrix = self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] - return [self.id_conversion[vtx] for vtx in matrix] +class BFSNumba(AbstractAdjacencyStrategy): + """calc adjacencies using BFS in numba""" - def __str__(self) -> str: - return "BFSAdjacency" + # pylint: disable=too-few-public-methods + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using BFS in numba""" + vtx_count = max(vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs) + 1 + + adjacency_list = _hyper_edges_to_adj_list(vtx_count, hyper_edges_idx) + + print("building adjacency_list") + adjacency_list_numba = numba.typed.List() + for _ in range(vtx_count): + new = numba.typed.List() + new.append(1) + new.pop() + adjacency_list_numba.append(new) + + for i, neighbors in enumerate(adjacency_list): + for neighbor in neighbors: + adjacency_list_numba[i].append(neighbor) + + # neighbors_at_depth = List(List( List([-1]) for _ in range(max_distance + 1)) + # for vertex in range(vtx_count)) + print("building neighbors_at_depth") + neighbors_at_depth = numba.typed.List() + for i in range(vtx_count): + new = numba.typed.List() + for _ in range(max_distance + 1): + new_new = numba.typed.List() + new_new.append(1) + new_new.pop() + new.append(new_new) + neighbors_at_depth.append(new) + + print("start numba") + start = time.time() + + neighbors_at_depth = _numba_compute_bfs( + adjacency_list_numba, max_distance, vtx_count, neighbors_at_depth + ) + print(f"end numba after second {time.time() - start}") + connectivity = {} + for d in range(1, max_distance + 1): + connectivity[d] = [list(neighbors_at_depth[i][d]) for i in range(vtx_count)] + return connectivity -class BFSNumba(AbstractAdjacencyStrategy): - def __init__(self): - super().__init__() - def get_neighbors_exclusive(self, distance: int, vtx_id: int) -> List[int]: - # TODO CONVERSION - return self.adjacency_matrix_powers_exclusive[distance][self.idx_conversion[vtx_id]] +@jit(nopython=True, parallel=False, fastmath=True) +def _numba_compute_bfs(adj_list, max_depth, vtx_count, neighbors_at_depth): + """ + compute bfs in numba + Args: + adj_list: adjacency list as numba typed list of lists + max_depth: maximum depth to search + vtx_count: number of vertices + neighbors_at_depth: empty list of lists of lists (vtx, depth, neighbors) - def __str__(self) -> str: - return "BFSNumba" + """ + for start_vertex in range(vtx_count): + # Initialize the queue for BFS: (vertex, depth); numba does not support dequeue + queue = [(start_vertex, 0)] - def calc_adjacencies( - self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int - ) -> Tuple[Dict[int, csr_array], Dict[int, csr_array]]: - # values in .values(): indices list -> maximum index + 1 is length of unique vertices - vtx_count = max([vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs]) + 1 - adjacency_list = [[] for _ in range(vtx_count)] - for vtxs in hyper_edges_idx.values(): - for vtx_a in vtxs: - for vtx_b in vtxs: - adjacency_list[vtx_a].append(vtx_b) - adjacency_list[vtx_b].append(vtx_a) - for i in range(len(adjacency_list)): - adjacency_list[i] = list(set(adjacency_list[i])) + # Use a set to keep track of visited vertices + # visited = {start_vertex} + visited_array = np.array([False] * vtx_count) + + # queue not empty + while queue: + # depth is saved in queue -> no tracking in loop + vertex, depth = queue.pop(0) - neighbors_at_depth = numba_compute(adjacency_list, max_distance, vtx_count) + # do not track vertex identity in neighbors; new vertices will not be duplicates due + # to visited set tracking + if vertex != start_vertex: + # add found neighbor to start_vertex's neighbors + neighbors_at_depth[start_vertex][depth].append(vertex) - self.adjacency_matrix_powers_exclusive = neighbors_at_depth - self.set_matrices(neighbors_at_depth, neighbors_at_depth) + # Check if we've reached the maximum depth; if not look for next level neighbors + # of found neighbor + if depth < max_depth: + neighbors = [x for x in adj_list[vertex] if not visited_array[x]] + for neighbor in neighbors: + queue.append((neighbor, depth + 1)) + visited_array[neighbor] = True - # constructing an inclusive neighbor matrix/ dictionary would be expensive; use get_neighbors_inclusive - # to get inclusive neighbors for specific vertex. This avoids computational overhead - return neighbors_at_depth, neighbors_at_depth + return neighbors_at_depth class PurePythonBFS(AbstractAdjacencyStrategy): - def __init__(self): - super().__init__() - - def __str__(self) -> str: - return "PurePythonBFS" - - def get_neighbors_exclusive( - self, distance: int, vtx_id: int, transformation: bool = True - ) -> List[int]: - row_index = self.idx_conversion[vtx_id] - idx_list = self.adjacency_matrix_powers_exclusive[row_index][distance] - if transformation: - return [self.id_conversion[idx] for idx in idx_list] - return idx_list - - def get_neighbors_inclusive( - self, distance: int, vtx_id: int, transformation: bool = True - ) -> List[int]: - # join all sublists of neighbors into one - row_index = self.idx_conversion[vtx_id] - idx_list = list( - itertools.chain(*self.adjacency_matrix_powers_exclusive[row_index][:distance]) - ) - if transformation: - return [self.id_conversion[index] for index in idx_list] - return idx_list + # pylint: disable=too-few-public-methods + """calc adjacencies using BFS in pure python""" def calc_adjacencies( self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int - ) -> Tuple[List[List[int]], List[List[int]]]: + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using BFS in pure python""" # values in .values(): indices list -> maximum index + 1 is length of unique vertices - vtx_count = max([vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs]) + 1 - adjacency_list = [[] for _ in range(vtx_count)] - for vtxs in hyper_edges_idx.values(): - for vtx_a in vtxs: - for vtx_b in vtxs: - adjacency_list[vtx_a].append(vtx_b) - adjacency_list[vtx_b].append(vtx_a) - for i in range(len(adjacency_list)): - adjacency_list[i] = list(set(adjacency_list[i])) + vtx_count = max(vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs) + 1 + adjacency_list = _hyper_edges_to_adj_list(vtx_count, hyper_edges_idx) - # each vertex has a list of lists where the index of the list corresponds to the depth of its contained neighbors - # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with max_distance 3 -> [[], [400], [300], []] + # each vertex has a list of lists where the index of the list corresponds + # to the depth of its contained neighbors + # e.g.: neighbor 300 at depth 2, neighbor 400 at depth 1 with + # max_distance 3 -> [[], [400], [300], []] neighbors_at_depth = { - vertex: [[] for _ in range(max_distance + 1)] for vertex in range(vtx_count) + dist: [[] for vertex in range(vtx_count)] for dist in range(max_distance + 1) } # for each vertex, do bfs separately @@ -284,11 +290,11 @@ def calc_adjacencies( # depth is saved in queue -> no tracking in loop vertex, depth = queue.popleft() - # do not track vertex identity in neighbors; new vertices will not be duplicates due - # to visited set tracking + # do not track vertex identity in neighbors; new vertices will not be + # duplicates due to visited set tracking if vertex != start_vertex: # add found neighbor to start_vertex's neighbors - neighbors_at_depth[start_vertex][depth].append(vertex) + neighbors_at_depth[depth][start_vertex].append(vertex) # Check if we've reached the maximum depth; if not look for next level neighbors # of found neighbor @@ -296,10 +302,128 @@ def calc_adjacencies( neighbors = set(adjacency_list[vertex]) - visited queue.extend((neighbor, depth + 1) for neighbor in neighbors) visited.update(neighbors) + connectivity = {} + for d in range(1, max_distance + 1): + connectivity[d] = [list(neighbors_at_depth[d][i]) for i in range(vtx_count)] + return connectivity + + +class PurePythonDFS(AbstractAdjacencyStrategy): + # pylint: disable=too-few-public-methods + """calc adjacencies using DFS in pure python""" - self.adjacency_matrix_powers_exclusive = neighbors_at_depth - self.set_matrices(neighbors_at_depth, neighbors_at_depth) + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using DFS in pure python""" + # pylint: disable=too-many-locals + # values in .values(): indices list -> maximum index + 1 is length of unique vertices + vtx_count = max(vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs) + 1 + adjacency_list = _hyper_edges_to_adj_list(vtx_count, hyper_edges_idx) - # constructing an inclusive neighbor matrix/ dictionary would be expensive; use get_neighbors_inclusive - # to get inclusive neighbors for specific vertex. This avoids computational overhead - return neighbors_at_depth, neighbors_at_depth + neighbors_at_depth = { + dist: [[] for vertex in range(vtx_count)] for dist in range(max_distance + 1) + } + for vertex in range(vtx_count): + neighbors_at_depth[1][vertex] = adjacency_list[vertex].copy() + neighbors_at_depth[0][vertex] = [vertex] + + neighbors = [set(adjacency_list[vertex] + [vertex]) for vertex in range(vtx_count)] + + for dist in range(2, max_distance + 1): + for v in range(vtx_count): + new_cands = set( + x for nn in adjacency_list[v] for x in neighbors_at_depth[dist - 1][nn] + ) + new = new_cands - neighbors[v] + neighbors[v].update(new) + neighbors_at_depth[dist][v] = list(new) + return neighbors_at_depth + + +class DFSNumba(AbstractAdjacencyStrategy): + # pylint: disable=too-few-public-methods,too-many-locals + """calc adjacencies using DFS in numba""" + + def calc_adjacencies( + self, hyper_edges_idx: OrderedDict[str, List[int]], max_distance: int + ) -> Dict[int, List[List[int]]]: + """calc adjacencies using DFS in numba""" + # values in .values(): indices list -> maximum index + 1 is length of unique vertices + vtx_count = max(vtx_a for vtxs in hyper_edges_idx.values() for vtx_a in vtxs) + 1 + adjacency_list = _hyper_edges_to_adj_list(vtx_count, hyper_edges_idx) + + print("building adjacency_list") + adjacency_list_numba = numba.typed.List() + for _ in range(vtx_count): + new = numba.typed.List() + new.append(1) + new.pop() + adjacency_list_numba.append(new) + + for i, neighbors in enumerate(adjacency_list): + for neighbor in neighbors: + adjacency_list_numba[i].append(neighbor) + + print("building neighbors_at_depth") + neighbors_at_depth = numba.typed.List() + for i in range(vtx_count): + new = numba.typed.List() + + vtx_self = numba.typed.List() + vtx_self.append(i) + new.append(vtx_self) # 0 + + adjs = numba.typed.List() + for nn in adjacency_list_numba[i]: + adjs.append(nn) + + new.append(adjs) # 1 + + for _ in range(max_distance + 1): + new_new = numba.typed.List() + new_new.append(1) + new_new.pop() + new.append(new_new) + neighbors_at_depth.append(new) + + print("start numba") + start = time.time() + + neighbors_at_depth = _numba_compute_dfs( + adjacency_list_numba, max_distance, vtx_count, neighbors_at_depth + ) + print(f"end numba after second {time.time() - start}") + + connectivity = {} + for d in range(1, max_distance + 1): + connectivity[d] = [list(neighbors_at_depth[i][d]) for i in range(vtx_count)] + return connectivity + + +@jit(nopython=True, parallel=False, fastmath=True) +def _numba_compute_dfs(adj_list, max_distance, vtx_count, neighbors_at_depth): + """ + compute dfs in numba + Args: + adj_list: adjacency list as numba typed list of lists + max_distance: maximum depth to search + vtx_count: number of vertices + neighbors_at_depth: empty list of lists of lists (vtx, depth, neighbors) + + """ + neighbors = numba.typed.List() + for vertex in range(vtx_count): + neighbors_current = set(adj_list[vertex]) + neighbors_current.add(vertex) + neighbors.append(neighbors_current) + + for dist in range(2, max_distance + 1): + for v in range(vtx_count): + hood = set() + for nn in adj_list[v]: + hood.update(neighbors_at_depth[nn][dist - 1]) + hood = hood - neighbors[v] + neighbors[v].update(hood) + neighbors_at_depth[v][dist] = numba.typed.List(hood) + return neighbors_at_depth diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 2b98b4e..138aeb8 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -6,7 +6,7 @@ import networkx import numpy as np import pandas as pd -from scipy.sparse import csr_array +import joblib # noinspection PyProtectedMember from pandas.api.types import is_string_dtype @@ -89,13 +89,23 @@ def __init__( ) if calc_strategy is None: calc_strategy = MatMulAdjacency() - self._calc_strategy = calc_strategy - self._calc_strategy.set_idx_conversion(self._vtx_ids_to_idx) - self._calc_strategy.set_id_conversion(self._vtx_idx_to_ids) - ( - self._adjacency_matrix_powers, - self._adjacency_matrix_powers_exclusive, - ) = self._calc_strategy.calc_adjacencies(hyper_edges_idx, distance) + elif isinstance(calc_strategy, type): + calc_strategy = calc_strategy() + + self._neighborhoods = calc_strategy.calc_adjacencies(hyper_edges_idx, distance) + + def save(self, path: Path): + """ + Save the Mesh2Vec object to a file with joblib + """ + joblib.dump(self, path) + + @staticmethod + def load(path: Path): + """ + Load the Mesh2Vec object from a file with joblib + """ + return joblib.load(path) @staticmethod def from_file(hg_file: Path, distance: int) -> "Mesh2VecBase": @@ -169,12 +179,10 @@ def get_nbh(self, vtx: str, dist: int) -> List[str]: if dist == 0: return [vtx] - vertices_ids = self._calc_strategy.get_neighbors_exclusive(dist, vtx) - # vertices_idx = self._adjacency_matrix_powers_exclusive[dist][ - # [self._vtx_ids_to_idx[vtx]], : - # ].indices - # return [self._vtx_idx_to_ids[i] for i in vertices_idx] - return vertices_ids + vtx_idx = self._vtx_ids_to_idx[vtx] + neighbors_idx = self._neighborhoods[dist][vtx_idx] + neighbors_ids = [self._vtx_idx_to_ids[i] for i in neighbors_idx] + return neighbors_ids def aggregate_categorical( self, @@ -220,7 +228,7 @@ def aggregate_categorical( feature_categories = np.unique(self._features[feature]) for distance in dist_list: - values = self._collect_feature_values(feature, distance, default_value) + values = self._collect_feature_values(feature, distance, default_value, aggr=np.array) for category in feature_categories: feature_name = f"{feature}-cat-{category}-{distance}" @@ -289,49 +297,132 @@ def aggregate( if aggr_name is None: aggr_name = aggr.__name__ - feature_names = [] + agg_values_to_add = OrderedDict() for distance in dist_list: - values = self._collect_feature_values(feature, distance, default_value) if agg_add_ref: - ref_values = self._collect_feature_values(feature, 0, default_value) - agg_values = np.nan_to_num( - [aggr(value, ref_value) for value, ref_value in zip(values, ref_values)], - nan=default_value, + ref_values = self._collect_feature_values(feature, 0, default_value, aggr=None) + else: + values = self._collect_feature_values(feature, distance, default_value, aggr) + + if agg_add_ref: + agg_values = self._collect_feature_values( + feature, distance, default_value, aggr, ref_values ) else: - agg_values = np.nan_to_num([aggr(value) for value in values], nan=default_value) + agg_values = values feature_name = f"{feature}-{aggr_name}-{distance}" - self._aggregated_features[feature_name] = agg_values - feature_names.append(feature_name) - if len(feature_names) == 1: - return feature_names[0] - return feature_names + agg_values_to_add[feature_name] = agg_values + + self._aggregated_features = self._aggregated_features.assign( + **agg_values_to_add, + ) + if len(agg_values_to_add) == 1: + return list(agg_values_to_add.keys())[0] + return list(agg_values_to_add.keys()) + + # # pylint: disable=too-many-arguments + # def aggregate_many( + # self, + # feature_list: List[str], + # dist_list: List[int], + # aggr_list: Callable, + # aggr_name_list: str = None, + # agg_add_ref: bool = False, + # default_value: float = 0.0, + # ) -> Union[str, List[str]]: + # # pylint: disable=line-too-long + + # for feature in feature_list: + # check_feature_available(feature, self) + + # for dist_to_check in dist_list: + # check_distance_arg(dist_to_check, self) + + # if aggr_name_list is None: + # aggr_name_list = [aggr.__name__ for aggr in aggr_list] + + # agg_values_to_add = OrderedDict() + # for distance in dist_list: + # values = self._collect_feature_list_values(feature_list, distance, default_value) + # if agg_add_ref: + # ref_values = self._collect_feature_list_values(feature_list, 0, default_value) + # agg_values = np.nan_to_num( + # [aggr(value, ref_value) for value, ref_value in zip(values, ref_values)], + # nan=default_value, + # ) + # else: + # agg_values = values + # # agg_values = np.nan_to_num([np.mean(value) for value in values], nan=default_value) + + # feature_name = f"{feature}-all-{distance}" + # agg_values_to_add["all"] = agg_values + + # # self._aggregated_features = self._aggregated_features.assign( + # # **agg_values_to_add, + # # ) + # if len(agg_values_to_add) == 1: + # return list(agg_values_to_add.keys())[0] + # return list(agg_values_to_add.keys()) + + # def _collect_feature_list_values( + # self, + # feature_list: str, + # dist: int, + # default_value: Optional[Union[float, int, str]], + # ) -> List[List[Union[float, int, str]]]: + # """helper method to collect data from all hyper nodes during aggregation""" + # check_distance_arg(dist, self) + + # if default_value is None: + # default_value = "NONE" if is_string_dtype(self._features[feature]) else np.nan + # features = self._features[feature_list].fillna(default_value).to_numpy() + + # if dist == 0: + # return features + + # values = [ + # [np.mean(feature[neighborhood]) for neighborhood in self._neighborhoods[dist]] + # for feature in features.T + # ] + # return values def _collect_feature_values( self, - feature: str, + feature_name: str, dist: int, default_value: Optional[Union[float, int, str]], + aggr: Optional[Callable] = None, + ref_values: Optional[List[Union[float, int, str]]] = None, ) -> List[List[Union[float, int, str]]]: - """helper method to collect data from all hyper nodes during aggregation""" + """helper method to collect and aggregate data from all hyper nodes""" check_distance_arg(dist, self) if default_value is None: - default_value = "NONE" if is_string_dtype(self._features[feature]) else np.nan - features = self._features[feature].fillna(default_value).to_numpy() + default_value = "NONE" if is_string_dtype(self._features[feature_name]) else np.nan + feature = self._features[feature_name].fillna(default_value).to_numpy() if dist == 0: - return [[feature] for feature in features] + return feature + + if ref_values is None: + try: # fast: use nan_to_num over the whole array + return np.nan_to_num( + [aggr(feature[neighborhood]) for neighborhood in self._neighborhoods[dist]], + default_value, + ).tolist() + except ValueError: # slow: use nan_to_num for each element (different dimensions) + return [ + np.nan_to_num(aggr(feature[neighborhood]), default_value) + for neighborhood in self._neighborhoods[dist] + ] - # no transformation needed - neighborhoods = [ - # self._adjacency_matrix_powers_exclusive[dist][[i], :].indices - self._calc_strategy.get_neighbors_exclusive(dist, i, transformation=False) - for i in range(len(self._features)) + # compare to reference value is needed + ref_values_list = ref_values.tolist() + return [ + np.nan_to_num(aggr(feature[neighborhood], ref_values_list[i]), default_value) + for i, neighborhood in enumerate(self._neighborhoods[dist]) ] - values = [features[neighborhood] for neighborhood in neighborhoods] - return values def add_features_from_csv( self, @@ -422,9 +513,3 @@ def features(self) -> pd.DataFrame: Returns a Pandas dataframe with all feature columns. """ return self._features.copy() - - def ajacency_matrix_powers_exclusive(self) -> Dict[int, csr_array]: - """ - Return the adjacency_matrix of different max distances - """ - return self._adjacency_matrix_powers_exclusive diff --git a/mesh2vec/mesh2vec_cae.py b/mesh2vec/mesh2vec_cae.py index 783d42a..c260306 100644 --- a/mesh2vec/mesh2vec_cae.py +++ b/mesh2vec/mesh2vec_cae.py @@ -17,7 +17,11 @@ from mesh2vec.helpers import AbstractAdjacencyStrategy from mesh2vec.mesh_features import CaeShellMesh, is_tri, num_border, midpoint from mesh2vec.mesh2vec_base import Mesh2VecBase -from mesh2vec.mesh2vec_exceptions import check_feature_available, AnsaNotFoundException +from mesh2vec.mesh2vec_exceptions import ( + check_feature_available, + AnsaNotFoundException, + check_vtx_id_match, +) class Mesh2VecCae(Mesh2VecBase): @@ -100,9 +104,7 @@ def __init__( } ) - assert all( - x in mesh_info.keys() for x in ["part_name", "part_id", "file_path", "element_id"] - ) + assert all(x in mesh_info.keys() for x in ["file_path", "element_id"]) assert len(mesh_info) == len(self._element_info) assert all(mesh_info["element_id"] == self._element_info["element_id"]) mesh_info = mesh_info.drop(["element_id"], axis=1) @@ -223,6 +225,17 @@ def from_d3plot_shell(distance: int, d3plot: Path, partid: str = None) -> "Mesh2 return Mesh2VecCae(distance, mesh, element_info) + @staticmethod + def from_keyfile_shell(distance: int, keyfile: Path) -> "Mesh2VecCae": + """ + Read the given keyfile and use the shell elements to generate a hypergraph, using mesh + nodes as hyperedges, and adjacent elements as hypervertices. + """ + mesh = CaeShellMesh.from_keyfile(keyfile) + element_info = pd.DataFrame({"element_id": mesh.element_ids}) + element_info["file_path"] = str(keyfile) + return Mesh2VecCae(distance, mesh, element_info) + def get_elements_info(self) -> pd.DataFrame: """ Return a Pandas dataframe containing a row for each element in the hypergraph @@ -240,12 +253,12 @@ def get_elements_info(self) -> pd.DataFrame: def add_features_from_ansa( self, features: List[str], - ansafile: Optional[Path], + ansafile: Optional[Path] = None, json_mesh_file: Optional[Path] = None, ansa_executable: Optional[Path] = None, ansa_script: Optional[Path] = None, verbose: bool = False, - ) -> None: + ) -> List[str]: """ Add values derived or calculated from ANSA shell elements (currently restricted to LSDYNA models) for each element. @@ -260,7 +273,7 @@ def add_features_from_ansa( * aspect: The aspect ratio of each element (ansafile is required) * warpage: (ansafile is required) - * num_borders: number of border edges + * num_border: number of border edges * is_tria * midpoint x,y,z * normal vector x,y,z (ansafile is required) @@ -340,6 +353,7 @@ def _err_to_nan(elements: List[Dict[Any, Any]], name: str) -> np.ndarray: ["vtx_id"] + [feature for feature in features if feature in okay_inplace] ] ) + return features # pylint: disable=too-many-arguments, too-many-branches. too-many-statements def get_feature_from_d3plot( @@ -359,7 +373,7 @@ def get_feature_from_d3plot( >>> from lasso.dyna import ArrayType, D3plot >>> from mesh2vec.mesh2vec_cae import Mesh2VecCae >>> m2v = Mesh2VecCae.from_d3plot_shell(3, Path("data/hat/HAT.d3plot")) - >>> names, values = m2v.get_feature_from_d3plot( + >>> names, values, ids = m2v.get_feature_from_d3plot( ... ArrayType.element_shell_strain, ... D3plot(Path("data/hat/HAT.d3plot").as_posix()), ... timestep=1, shell_layer=0) @@ -471,7 +485,11 @@ def _get_d3plot_layer_array_names() -> List[str]: ] feature_name = feature - return feature_name, new_feature + return ( + feature_name, + new_feature, + [str(x) for x in d3plot_data.arrays["element_shell_ids"]], + ) def add_feature_from_d3plot( self, @@ -510,14 +528,17 @@ def add_feature_from_d3plot( d3plot_data = D3plot(d3plot.as_posix()) if not isinstance(d3plot, D3plot) else d3plot - feature_name, feature_values = self.get_feature_from_d3plot( + feature_name, feature_values, element_shell_ids = self.get_feature_from_d3plot( feature=feature, d3plot_data=d3plot_data, timestep=timestep, shell_layer=shell_layer, history_var_index=history_var_index, ) - new_features = pd.DataFrame({"vtx_id": self._mesh.element_ids}) + + check_vtx_id_match(self._mesh.element_ids, element_shell_ids) + + new_features = pd.DataFrame({"vtx_id": element_shell_ids}) new_features[feature_name] = feature_values self._features = self._features.merge( # type: ignore new_features, how="left", on="vtx_id", validate="1:1" @@ -531,6 +552,7 @@ def aggregate_angle_diff( aggr: Optional[Callable] = None, agg_add_ref: bool = True, default_value: float = 0.0, + skip_arcos: bool = False, ) -> Union[str, List[str]]: # pylint: disable=line-too-long @@ -551,6 +573,7 @@ def aggregate_angle_diff( reference as 2nd argument. (default is True) default_value: value to use in aggregation when a feature is missing for a neighbor or no neighor with the given dist exist. + skip_arcos: if True, the angle difference is not calculated, but the dot product of the normal vectors is used. Example: >>> from pathlib import Path @@ -577,12 +600,23 @@ def aggregate_angle_diff( def _mean_dir_diff(values: List[List[float]], ref_value: List[float]) -> float: """direction difference of values to ref_value (in radian)""" - assert aggr is not None - angle_diff = [ - np.arccos(np.clip(np.dot(np.array(value), np.array(ref_value[0])), -1.0, 1.0)) - for value in values - ] - return aggr(angle_diff) + + def vectorize_angle_diff(values, ref_value): + try: + values_array = np.array(values.tolist()) + except AttributeError: + values_array = np.array(values) + + ref_value_array = np.array(ref_value) + dot_products = np.dot(values_array, ref_value_array) + if skip_arcos: + return dot_products + angle_diff = np.arccos(np.clip(dot_products, -1.0, 1.0)) + return angle_diff + + angle_diff_b = vectorize_angle_diff(values, ref_value) + + return aggr(angle_diff_b) return self.aggregate( "normal", diff --git a/mesh2vec/mesh2vec_exceptions.py b/mesh2vec/mesh2vec_exceptions.py index d7aeca9..579ab8c 100644 --- a/mesh2vec/mesh2vec_exceptions.py +++ b/mesh2vec/mesh2vec_exceptions.py @@ -12,7 +12,7 @@ def check_distance_init_arg(distance: int) -> None: """check argument to rise exception or log warning if needed.""" if distance < 0: raise InvalidDistanceArgumentException("distance must be > 0") - if distance > 10: + if distance > 30: logger.warning("Calculating neighborhoods for distances > 10 can take much time") @@ -102,3 +102,15 @@ def check_vtx_ids_column(vtx_ids_column: List[str]) -> None: """check argument to rise exception or log warning if needed.""" if not all(isinstance(v, str) for v in vtx_ids_column): raise InvalidVtxIdArgument("All values in vtx_id column must be of type str") + + +def check_vtx_id_match(vtx_ids_stored, new_vtx_ids): + """ + Exception raised when the vtx_ids of the d3plot do not match the vtx_ids of + the loaded mesh + """ + if not set(vtx_ids_stored) == set(new_vtx_ids): + raise InvalidVtxIdsArgument( + "The element_shell_ids of the d3plot must contain exactly all of " + "the elements ids of the loaded mesh." + ) diff --git a/mesh2vec/mesh_features.py b/mesh2vec/mesh_features.py index 90a40c6..086b502 100644 --- a/mesh2vec/mesh_features.py +++ b/mesh2vec/mesh_features.py @@ -235,3 +235,62 @@ def from_ansa_json(elements: List[Any], nodes: List[Any]) -> "CaeShellMesh": [[pnt_idx[element[f"N{i}"]] for i in range(1, 5)] for element in elements] ) # duplicate ids allowed? return CaeShellMesh(point_coordinates, pnt_ids, elem_ids, elem_node_idxs) + + @staticmethod + def from_keyfile(keyfile: str) -> "CaeShellMesh": + """create CaeShellMesh from keyfile""" + + def parse_contents(file_contents): + lines = file_contents.split("\n") + current_section = "" + + point_coordinates = [] + pnt_ids = [] + + elem_ids = [] + elem_node_ids = [] + + for line in lines: + if line.startswith("*"): + current_section = line.split()[0].upper() + continue + if line.startswith("$#"): # comment + continue + + if current_section == "*NODE": + data = line.split() + if data: + point_coordinates.append([float(data[1]), float(data[2]), float(data[3])]) + pnt_ids.append(data[0]) + + elif "*ELEMENT_SHELL" in current_section: + data = line.split() + if data: + # check for floats - floats are a hint of options like THICKNESS + if ( + not data[2].isdigit() + or not data[3].isdigit() + or not data[4].isdigit() + or not data[5].isdigit() + ): + continue + elem_node_ids.append([data[2], data[3], data[4], data[5]]) + elem_ids.append(data[0]) + pnt_idx = {pnt_id: i for i, pnt_id in enumerate(pnt_ids)} + + elem_node_idx = np.array( + [[pnt_idx[elem_node_id[i]] for i in range(4)] for elem_node_id in elem_node_ids] + ) + + return point_coordinates, pnt_ids, elem_ids, elem_node_idx + + with open(keyfile, "r", encoding="utf-8") as file: + file_contents = file.read() + point_coordinates, pnt_ids, elem_ids, elem_node_idx = parse_contents(file_contents) + + return CaeShellMesh( + np.array(point_coordinates), + np.array(pnt_ids), + np.array(elem_ids), + np.array(elem_node_idx), + ) diff --git a/mesh2vec/test.py b/mesh2vec/test.py deleted file mode 100644 index faec627..0000000 --- a/mesh2vec/test.py +++ /dev/null @@ -1,56 +0,0 @@ -from mesh2vec.helpers import BFSAdjacency, BFSNumba, PurePythonBFS, MatMulAdjacency -from mesh2vec.mesh2vec_cae import Mesh2VecCae -from pathlib import Path -import time - -start = time.time() -matm = MatMulAdjacency() -a = Mesh2VecCae.from_ansa_shell( - 20, - Path("data/hat/Hatprofile.k"), - json_mesh_file=Path("data/hat/cached_hat_key.json"), - calc_strategy=matm, -) -print("MATMUL:", time.time() - start) -matm_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] -print(matm_neighbors) - - -start = time.time() -bfs = BFSAdjacency() -b = Mesh2VecCae.from_ansa_shell( - 20, - Path("data/hat/Hatprofile.k"), - json_mesh_file=Path("data/hat/cached_hat_key.json"), - calc_strategy=bfs, -) -print("BFS: ",time.time() - start) -bfs_neighbors = sorted(bfs.get_neighbors_exclusive(20, "4700000"))[:20] -print(bfs_neighbors) - -start = time.time() -pbfs = PurePythonBFS() -d = Mesh2VecCae.from_ansa_shell( - 20, - Path("data/hat/Hatprofile.k"), - json_mesh_file=Path("data/hat/cached_hat_key.json"), - calc_strategy=pbfs, -) -print("PurePythonBFS:", time.time() - start) -pbfs_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] -print(pbfs_neighbors) - - -start = time.time() -c = Mesh2VecCae.from_ansa_shell( - 20, - Path("data/hat/Hatprofile.k"), - json_mesh_file=Path("data/hat/cached_hat_key.json"), - calc_strategy=BFSNumba(), -) -print("NUMBA:", time.time() - start) -numba_neighbors = sorted(matm.get_neighbors_exclusive(20, "4700000"))[:20] -print(numba_neighbors) - -trued_neighbors = numba_neighbors==pbfs_neighbors==matm_neighbors==bfs_neighbors -print("IDENTICAL_NEIGHBORS: ", trued_neighbors) \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 8a43b72..b6b1856 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,59 +1,97 @@ +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. + [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] [[package]] name = "anyio" -version = "3.6.2" +version = "4.1.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.8" +files = [ + {file = "anyio-4.1.0-py3-none-any.whl", hash = "sha256:56a415fbc462291813a94528a779597226619c8e78af7de0507333f700011e5f"}, + {file = "anyio-4.1.0.tar.gz", hash = "sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da"}, +] [package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] -trio = ["trio (>=0.16,<0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" -category = "main" optional = false python-versions = "*" +files = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] [[package]] name = "argon2-cffi" -version = "21.3.0" -description = "The secure Argon2 password hashing algorithm." -category = "main" +version = "23.1.0" +description = "Argon2 for Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] [package.dependencies] argon2-cffi-bindings = "*" [package.extras] -dev = ["cogapp", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "pre-commit", "pytest", "sphinx", "sphinx-notfound-page", "tomli"] -docs = ["furo", "sphinx", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] [[package]] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] [package.dependencies] cffi = ">=1.0.1" @@ -64,22 +102,33 @@ tests = ["pytest"] [[package]] name = "arrow" -version = "1.2.3" +version = "1.3.0" description = "Better dates & times for Python" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] [package.dependencies] python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] [[package]] name = "astroid" -version = "2.14.2" +version = "2.15.8" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, + {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, +] [package.dependencies] lazy-object-proxy = ">=1.4.0" @@ -91,59 +140,78 @@ wrapt = [ [[package]] name = "asttokens" -version = "2.2.1" +version = "2.4.1" description = "Annotate AST trees with source code positions" -category = "main" optional = false python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] [package.dependencies] -six = "*" +six = ">=1.12.0" [package.extras] -test = ["astroid", "pytest"] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "attrs" -version = "22.2.0" +version = "23.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false -python-versions = ">=3.6" +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"}, +] [package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +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]"] [[package]] name = "babel" -version = "2.11.0" +version = "2.13.1" description = "Internationalization utilities" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, +] [package.dependencies] -pytz = ">=2015.7" +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" -category = "main" optional = false python-versions = "*" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] [[package]] name = "beautifulsoup4" -version = "4.11.2" +version = "4.12.2" description = "Screen-scraping library" -category = "main" optional = false python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] [package.dependencies] soupsieve = ">1.2" @@ -156,9 +224,22 @@ lxml = ["lxml"] name = "black" version = "22.12.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, + {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, + {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, + {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, + {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, + {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, + {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, + {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, + {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, + {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, + {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, + {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, +] [package.dependencies] click = ">=8.0.0" @@ -176,70 +257,249 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bleach" -version = "6.0.0" +version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] [package.dependencies] six = ">=1.9.0" webencodings = "*" [package.extras] -css = ["tinycss2 (>=1.1.0,<1.2)"] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "blinker" +version = "1.7.0" +description = "Fast, simple object-to-object and broadcast signaling" +optional = false +python-versions = ">=3.8" +files = [ + {file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"}, + {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, +] + +[[package]] +name = "boolean-py" +version = "4.0" +description = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL." +optional = false +python-versions = "*" +files = [ + {file = "boolean.py-4.0-py3-none-any.whl", hash = "sha256:2876f2051d7d6394a531d82dc6eb407faa0b01a0a0b3083817ccd7323b8d96bd"}, + {file = "boolean.py-4.0.tar.gz", hash = "sha256:17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"}, +] [[package]] name = "cachecontrol" -version = "0.12.11" +version = "0.13.1" description = "httplib2 caching for requests" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, + {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, +] [package.dependencies] -lockfile = {version = ">=0.9", optional = true, markers = "extra == \"filecache\""} +filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""} msgpack = ">=0.5.2" -requests = "*" +requests = ">=2.16.0" [package.extras] -filecache = ["lockfile (>=0.9)"] +dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "mypy", "pytest", "pytest-cov", "sphinx", "tox", "types-redis", "types-requests"] +filecache = ["filelock (>=3.8.0)"] redis = ["redis (>=2.10.5)"] [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.11.17" description = "Python package for providing Mozilla's CA Bundle." -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, + {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, +] [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] [package.dependencies] pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.0.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7.0" +files = [ + {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 = "check-wheel-contents" version = "0.3.4" description = "Check your wheels have the right contents" -category = "dev" optional = false python-versions = "~=3.6" +files = [ + {file = "check-wheel-contents-0.3.4.tar.gz", hash = "sha256:056cc04a66416e5a52b66c294199865081b163ef92abac723126d6838466c11d"}, + {file = "check_wheel_contents-0.3.4-py3-none-any.whl", hash = "sha256:bbd2ea64db5fb4700eca15f84dc3c0d620f5dbe48c6467f5a2ef010bda54a4cb"}, +] [package.dependencies] attrs = ">=18.1" @@ -251,23 +511,29 @@ wheel-filename = ">=1.1,<2.0" [[package]] name = "cleo" -version = "2.0.1" +version = "2.1.0" description = "Cleo allows you to create beautiful and testable command-line interfaces." -category = "main" optional = false python-versions = ">=3.7,<4.0" +files = [ + {file = "cleo-2.1.0-py3-none-any.whl", hash = "sha256:4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e"}, + {file = "cleo-2.1.0.tar.gz", hash = "sha256:0b2c880b5d13660a7ea651001fb4acb527696c01f15c9ee650f377aa543fd523"}, +] [package.dependencies] crashtest = ">=0.4.1,<0.5.0" -rapidfuzz = ">=2.2.0,<3.0.0" +rapidfuzz = ">=3.0.0,<4.0.0" [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} @@ -276,103 +542,203 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] [[package]] name = "comm" -version = "0.1.2" +version = "0.2.0" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.0-py3-none-any.whl", hash = "sha256:2da8d9ebb8dd7bfc247adaff99f24dce705638a8042b85cb995066793e391001"}, + {file = "comm-0.2.0.tar.gz", hash = "sha256:a517ea2ca28931c7007a7a99c562a0fa5883cfb48963140cf642c41c948498be"}, +] [package.dependencies] -traitlets = ">=5.3" +traitlets = ">=4" [package.extras] test = ["pytest"] [[package]] name = "contourpy" -version = "1.0.7" +version = "1.1.1" description = "Python library for calculating contours of 2D quadrilateral grids" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, + {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66045af6cf00e19d02191ab578a50cb93b2028c3eefed999793698e9ea768ae"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ebf42695f75ee1a952f98ce9775c873e4971732a87334b099dde90b6af6a916"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6aec19457617ef468ff091669cca01fa7ea557b12b59a7908b9474bb9674cf0"}, + {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:462c59914dc6d81e0b11f37e560b8a7c2dbab6aca4f38be31519d442d6cde1a1"}, + {file = "contourpy-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6d0a8efc258659edc5299f9ef32d8d81de8b53b45d67bf4bfa3067f31366764d"}, + {file = "contourpy-1.1.1-cp310-cp310-win32.whl", hash = "sha256:d6ab42f223e58b7dac1bb0af32194a7b9311065583cc75ff59dcf301afd8a431"}, + {file = "contourpy-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:549174b0713d49871c6dee90a4b499d3f12f5e5f69641cd23c50a4542e2ca1eb"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:407d864db716a067cc696d61fa1ef6637fedf03606e8417fe2aeed20a061e6b2"}, + {file = "contourpy-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe80c017973e6a4c367e037cb31601044dd55e6bfacd57370674867d15a899b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e30aaf2b8a2bac57eb7e1650df1b3a4130e8d0c66fc2f861039d507a11760e1b"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de23ca4f381c3770dee6d10ead6fff524d540c0f662e763ad1530bde5112532"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:566f0e41df06dfef2431defcfaa155f0acfa1ca4acbf8fd80895b1e7e2ada40e"}, + {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04c2f0adaf255bf756cf08ebef1be132d3c7a06fe6f9877d55640c5e60c72c5"}, + {file = "contourpy-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0c188ae66b772d9d61d43c6030500344c13e3f73a00d1dc241da896f379bb62"}, + {file = "contourpy-1.1.1-cp311-cp311-win32.whl", hash = "sha256:0683e1ae20dc038075d92e0e0148f09ffcefab120e57f6b4c9c0f477ec171f33"}, + {file = "contourpy-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:8636cd2fc5da0fb102a2504fa2c4bea3cbc149533b345d72cdf0e7a924decc45"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:560f1d68a33e89c62da5da4077ba98137a5e4d3a271b29f2f195d0fba2adcb6a"}, + {file = "contourpy-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24216552104ae8f3b34120ef84825400b16eb6133af2e27a190fdc13529f023e"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56de98a2fb23025882a18b60c7f0ea2d2d70bbbcfcf878f9067234b1c4818442"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:07d6f11dfaf80a84c97f1a5ba50d129d9303c5b4206f776e94037332e298dda8"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1eaac5257a8f8a047248d60e8f9315c6cff58f7803971170d952555ef6344a7"}, + {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19557fa407e70f20bfaba7d55b4d97b14f9480856c4fb65812e8a05fe1c6f9bf"}, + {file = "contourpy-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:081f3c0880712e40effc5f4c3b08feca6d064cb8cfbb372ca548105b86fd6c3d"}, + {file = "contourpy-1.1.1-cp312-cp312-win32.whl", hash = "sha256:059c3d2a94b930f4dafe8105bcdc1b21de99b30b51b5bce74c753686de858cb6"}, + {file = "contourpy-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f44d78b61740e4e8c71db1cf1fd56d9050a4747681c59ec1094750a658ceb970"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70e5a10f8093d228bb2b552beeb318b8928b8a94763ef03b858ef3612b29395d"}, + {file = "contourpy-1.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8394e652925a18ef0091115e3cc191fef350ab6dc3cc417f06da66bf98071ae9"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bd5680f844c3ff0008523a71949a3ff5e4953eb7701b28760805bc9bcff217"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66544f853bfa85c0d07a68f6c648b2ec81dafd30f272565c37ab47a33b220684"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0c02b75acfea5cab07585d25069207e478d12309557f90a61b5a3b4f77f46ce"}, + {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41339b24471c58dc1499e56783fedc1afa4bb018bcd035cfb0ee2ad2a7501ef8"}, + {file = "contourpy-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f29fb0b3f1217dfe9362ec55440d0743fe868497359f2cf93293f4b2701b8251"}, + {file = "contourpy-1.1.1-cp38-cp38-win32.whl", hash = "sha256:f9dc7f933975367251c1b34da882c4f0e0b2e24bb35dc906d2f598a40b72bfc7"}, + {file = "contourpy-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:498e53573e8b94b1caeb9e62d7c2d053c263ebb6aa259c81050766beb50ff8d9"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ba42e3810999a0ddd0439e6e5dbf6d034055cdc72b7c5c839f37a7c274cb4eba"}, + {file = "contourpy-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c06e4c6e234fcc65435223c7b2a90f286b7f1b2733058bdf1345d218cc59e34"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca6fab080484e419528e98624fb5c4282148b847e3602dc8dbe0cb0669469887"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93df44ab351119d14cd1e6b52a5063d3336f0754b72736cc63db59307dabb718"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eafbef886566dc1047d7b3d4b14db0d5b7deb99638d8e1be4e23a7c7ac59ff0f"}, + {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe0fab26d598e1ec07d72cf03eaeeba8e42b4ecf6b9ccb5a356fde60ff08b85"}, + {file = "contourpy-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f08e469821a5e4751c97fcd34bcb586bc243c39c2e39321822060ba902eac49e"}, + {file = "contourpy-1.1.1-cp39-cp39-win32.whl", hash = "sha256:bfc8a5e9238232a45ebc5cb3bfee71f1167064c8d382cadd6076f0d51cff1da0"}, + {file = "contourpy-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c84fdf3da00c2827d634de4fcf17e3e067490c4aea82833625c4c8e6cdea0887"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:229a25f68046c5cf8067d6d6351c8b99e40da11b04d8416bf8d2b1d75922521e"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a10dab5ea1bd4401c9483450b5b0ba5416be799bbd50fc7a6cc5e2a15e03e8a3"}, + {file = "contourpy-1.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4f9147051cb8fdb29a51dc2482d792b3b23e50f8f57e3720ca2e3d438b7adf23"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a75cc163a5f4531a256f2c523bd80db509a49fc23721b36dd1ef2f60ff41c3cb"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b53d5769aa1f2d4ea407c65f2d1d08002952fac1d9e9d307aa2e1023554a163"}, + {file = "contourpy-1.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11b836b7dbfb74e049c302bbf74b4b8f6cb9d0b6ca1bf86cfa8ba144aedadd9c"}, + {file = "contourpy-1.1.1.tar.gz", hash = "sha256:96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab"}, +] [package.dependencies] -numpy = ">=1.16" +numpy = {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""} [package.extras] -bokeh = ["bokeh", "chromedriver", "selenium"] -docs = ["furo", "sphinx-copybutton"] -mypy = ["contourpy[bokeh]", "docutils-stubs", "mypy (==0.991)", "types-Pillow"] -test = ["Pillow", "matplotlib", "pytest"] -test-no-images = ["pytest"] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.4.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "wurlitzer"] [[package]] name = "crashtest" version = "0.4.1" description = "Manage Python errors with ease" -category = "main" optional = false python-versions = ">=3.7,<4.0" +files = [ + {file = "crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"}, + {file = "crashtest-0.4.1.tar.gz", hash = "sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce"}, +] [[package]] name = "cycler" -version = "0.11.0" +version = "0.12.1" description = "Composable style cycles" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "cyclonedx-python-lib" -version = "3.1.5" +version = "4.2.3" description = "A library for producing CycloneDX SBOM (Software Bill of Materials) files." -category = "dev" optional = false -python-versions = ">=3.6,<4.0" +python-versions = ">=3.7,<4.0" +files = [ + {file = "cyclonedx_python_lib-4.2.3-py3-none-any.whl", hash = "sha256:e9b923af525b6acf7bab917a35360b4b562b85dc15fde9eaa500828949adf73a"}, + {file = "cyclonedx_python_lib-4.2.3.tar.gz", hash = "sha256:904068b55d1665f0ea96f38307603cc14f95c3b421f1687fc2411326aefde3a6"}, +] [package.dependencies] -packageurl-python = ">=0.9" -setuptools = ">=47.0.0" +license-expression = ">=30,<31" +packageurl-python = ">=0.11" +py-serializable = ">=0.11.1,<0.12.0" sortedcontainers = ">=2.4.0,<3.0.0" -toml = ">=0.10.0,<0.11.0" [[package]] name = "debugpy" -version = "1.6.6" +version = "1.8.0" description = "An implementation of the Debug Adapter Protocol for Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, + {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, + {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, + {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, + {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, + {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, + {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, + {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, + {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, + {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, + {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, + {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, + {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, + {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, + {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, + {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, + {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, + {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, +] [[package]] name = "decorator" version = "5.1.1" description = "Decorators for Humans" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] [[package]] name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] [[package]] name = "dill" -version = "0.3.6" -description = "serialize all of python" -category = "dev" +version = "0.3.7" +description = "serialize all of Python" optional = false python-versions = ">=3.7" +files = [ + {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, + {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, +] [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -381,57 +747,100 @@ graph = ["objgraph (>=1.7.2)"] name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +optional = false +python-versions = ">=3.6" +files = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] [[package]] name = "exceptiongroup" -version = "1.1.0" +version = "1.2.0" description = "Backport of PEP 654 (exception groups)" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] [package.extras] test = ["pytest (>=6)"] [[package]] name = "executing" -version = "1.2.0" +version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" -category = "main" optional = false -python-versions = "*" +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] [package.extras] -tests = ["asttokens", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] [[package]] name = "fastjsonschema" -version = "2.16.2" +version = "2.19.0" description = "Fastest Python implementation of JSON schema" -category = "main" optional = false python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.0-py3-none-any.whl", hash = "sha256:b9fd1a2dd6971dbc7fee280a95bd199ae0dd9ce22beb91cc75e9c1c528a5170e"}, + {file = "fastjsonschema-2.19.0.tar.gz", hash = "sha256:e25df6647e1bc4a26070b700897b07b542ec898dd4f1f6ea013e7f6a88417225"}, +] [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +[[package]] +name = "filelock" +version = "3.13.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + [[package]] name = "flask" -version = "2.2.3" +version = "2.3.3" description = "A simple framework for building complex web applications." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "flask-2.3.3-py3-none-any.whl", hash = "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b"}, + {file = "flask-2.3.3.tar.gz", hash = "sha256:09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc"}, +] [package.dependencies] -click = ">=8.0" +blinker = ">=1.6.2" +click = ">=8.1.3" importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""} -itsdangerous = ">=2.0" -Jinja2 = ">=3.0" -Werkzeug = ">=2.2.2" +itsdangerous = ">=2.1.2" +Jinja2 = ">=3.1.2" +Werkzeug = ">=2.3.7" [package.extras] async = ["asgiref (>=3.2)"] @@ -439,14 +848,57 @@ dotenv = ["python-dotenv"] [[package]] name = "fonttools" -version = "4.38.0" +version = "4.45.1" description = "Tools to manipulate font files" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.45.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:45fa321c458ea29224067700954ec44493ae869b47e7c5485a350a149a19fb53"}, + {file = "fonttools-4.45.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0dc7617d96b1e668eea9250e1c1fe62d0c78c3f69573ce7e3332cc40e6d84356"}, + {file = "fonttools-4.45.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ed3bda541e86725f6b4e1b94213f13ed1ae51a5a1f167028534cedea38c010"}, + {file = "fonttools-4.45.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f4a5870e3b56788fb196da8cf30d0dfd51a76dc3b907861d018165f76ae4c2"}, + {file = "fonttools-4.45.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a3c11d9687479f01eddef729aa737abcdea0a44fdaffb62a930a18892f186c9b"}, + {file = "fonttools-4.45.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:316cec50581e844c3ab69d7c82455b54c7cf18236b2f09e722faf665fbfcac58"}, + {file = "fonttools-4.45.1-cp310-cp310-win32.whl", hash = "sha256:e2277cba9f0b525e30de2a9ad3cb4219aa4bc697230c1645666b0deee9f914f0"}, + {file = "fonttools-4.45.1-cp310-cp310-win_amd64.whl", hash = "sha256:1b9e9ad2bcded9a1431afaa57c8d3c39143ac1f050862d66bddd863c515464a2"}, + {file = "fonttools-4.45.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff6a698bdd435d24c379f6e8a54908cd9bb7dda23719084d56bf8c87709bf3bd"}, + {file = "fonttools-4.45.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c980d60cd6ec1376206fe55013d166e5627ad0b149b5c81e74eaa913ab6134f"}, + {file = "fonttools-4.45.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a12dee6523c02ca78aeedd0a5e12bfa9b7b29896350edd5241542897b072ae23"}, + {file = "fonttools-4.45.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37cd1ced6efb3dd6fe82e9f9bf92fd74ac58a5aefc284045f59ecd517a5fb9ab"}, + {file = "fonttools-4.45.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e3d24248221bd7151dfff0d88b1b5da02dccd7134bd576ce8888199827bbaa19"}, + {file = "fonttools-4.45.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ba6c23591427844dfb0a13658f1718489de75de6a46b64234584c0d17573162d"}, + {file = "fonttools-4.45.1-cp311-cp311-win32.whl", hash = "sha256:cebcddbe9351b67166292b4f71ffdbfcce01ba4b07d4267824eb46b277aeb19a"}, + {file = "fonttools-4.45.1-cp311-cp311-win_amd64.whl", hash = "sha256:f22eb69996a0bd49f76bdefb30be54ce8dbb89a0d1246874d610f05c2aa2e69e"}, + {file = "fonttools-4.45.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:794de93e83297db7b4943f2431e206d8b1ea69cb3ae14638a49cc50332bf0db8"}, + {file = "fonttools-4.45.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4ba17822a6681d06849078daaf6e03eccc9f467efe7c4c60280e28a78e8e5df9"}, + {file = "fonttools-4.45.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e50f794d09df0675da8d9dbd7c66bfcab2f74a708343aabcad41936d26556891"}, + {file = "fonttools-4.45.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b07b857d4f9de3199a8c3d1b1bf2078c0f37447891ca1a8d9234106b9a27aff"}, + {file = "fonttools-4.45.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:777ba42b94a27bb7fb2b4082522fccfd345667c32a56011e1c3e105979af5b79"}, + {file = "fonttools-4.45.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:21e96b99878348c74aa58059b8578d7586f9519cbcdadacf56486737038aa043"}, + {file = "fonttools-4.45.1-cp312-cp312-win32.whl", hash = "sha256:5cbf02cda8465b69769d07385f5d11e7bba19954e7787792f46fe679ec755ebb"}, + {file = "fonttools-4.45.1-cp312-cp312-win_amd64.whl", hash = "sha256:800e354e0c3afaeb8d9552769773d02f228e98c37b8cb03041157c3d0687cffc"}, + {file = "fonttools-4.45.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6eb2c54f7a07c92108daabcf02caf31df97825738db02a28270633946bcda4d0"}, + {file = "fonttools-4.45.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:43a3d267334109ff849c37cf3629476b5feb392ef1d2e464a167b83de8cd599c"}, + {file = "fonttools-4.45.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e1aefc2bf3c43e0f33f995f828a7bbeff4adc9393a7760b11456dbcf14388f6"}, + {file = "fonttools-4.45.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f53a19dcdd5737440839b8394eeebb35da9ec8109f7926cb6456639b5b58e47"}, + {file = "fonttools-4.45.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a17706b9cc24b27721613fe5773d93331ab7f0ecaca9955aead89c6b843d3a7"}, + {file = "fonttools-4.45.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fb36e5f40191274a95938b40c0a1fa7f895e36935aea8709e1d6deff0b2d0d4f"}, + {file = "fonttools-4.45.1-cp38-cp38-win32.whl", hash = "sha256:46eabddec12066829b8a1efe45ae552ba2f1796981ecf538d5f68284c354c589"}, + {file = "fonttools-4.45.1-cp38-cp38-win_amd64.whl", hash = "sha256:b6de2f0fcd3302fb82f94801002cb473959e998c14c24ec28234adb674aed345"}, + {file = "fonttools-4.45.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:392d0e3cc23daee910193625f7cf1b387aff9dd5b6f1a5f4a925680acb6dcbc2"}, + {file = "fonttools-4.45.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4b9544b1346d99848ac0e9b05b5d45ee703d7562fc4c9c48cf4b781de9632e57"}, + {file = "fonttools-4.45.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8717db3e4895e4820ade64ea379187738827ee60748223cb0438ef044ee208c6"}, + {file = "fonttools-4.45.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29d5f298d616a93a4c5963682dc6cc8cc09f6d89cad2c29019fc5fb3b4d9472"}, + {file = "fonttools-4.45.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:cb472905da3049960e80fc1cf808231880d79727a8410e156bf3e5063a1c574f"}, + {file = "fonttools-4.45.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ba299f1fbaa2a1e33210aaaf6fa816d4059e4d3cfe2ae9871368d4ab548c1c6a"}, + {file = "fonttools-4.45.1-cp39-cp39-win32.whl", hash = "sha256:105099968b58a5b4cef6f3eb409db8ea8578b302a9d05e23fecba1b8b0177b5f"}, + {file = "fonttools-4.45.1-cp39-cp39-win_amd64.whl", hash = "sha256:847f3f49dd3423e5a678c098e2ba92c7f4955d4aab3044f6a507b0bb0ecb07e0"}, + {file = "fonttools-4.45.1-py3-none-any.whl", hash = "sha256:3bdd7dfca8f6c9f4779384064027e8477ad6a037d6a327b09381f43e0247c6f3"}, + {file = "fonttools-4.45.1.tar.gz", hash = "sha256:6e441286d55fe7ec7c4fb36812bf914924813776ff514b744b510680fc2733f2"}, +] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=14.0.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] interpolatable = ["munkres", "scipy"] lxml = ["lxml (>=4.0,<5)"] @@ -456,46 +908,133 @@ repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] type1 = ["xattr"] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=14.0.0)"] +unicode = ["unicodedata2 (>=15.1.0)"] woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] [[package]] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" -category = "main" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] [[package]] name = "grpcio" -version = "1.51.1" +version = "1.59.3" description = "HTTP/2-based RPC framework" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "grpcio-1.59.3-cp310-cp310-linux_armv7l.whl", hash = "sha256:aca028a6c7806e5b61e5f9f4232432c52856f7fcb98e330b20b6bc95d657bdcc"}, + {file = "grpcio-1.59.3-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:19ad26a7967f7999c8960d2b9fe382dae74c55b0c508c613a6c2ba21cddf2354"}, + {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:72b71dad2a3d1650e69ad42a5c4edbc59ee017f08c32c95694172bc501def23c"}, + {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c0f0a11d82d0253656cc42e04b6a149521e02e755fe2e4edd21123de610fd1d4"}, + {file = "grpcio-1.59.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60cddafb70f9a2c81ba251b53b4007e07cca7389e704f86266e22c4bffd8bf1d"}, + {file = "grpcio-1.59.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6c75a1fa0e677c1d2b6d4196ad395a5c381dfb8385f07ed034ef667cdcdbcc25"}, + {file = "grpcio-1.59.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e1d8e01438d5964a11167eec1edb5f85ed8e475648f36c834ed5db4ffba24ac8"}, + {file = "grpcio-1.59.3-cp310-cp310-win32.whl", hash = "sha256:c4b0076f0bf29ee62335b055a9599f52000b7941f577daa001c7ef961a1fbeab"}, + {file = "grpcio-1.59.3-cp310-cp310-win_amd64.whl", hash = "sha256:b1f00a3e6e0c3dccccffb5579fc76ebfe4eb40405ba308505b41ef92f747746a"}, + {file = "grpcio-1.59.3-cp311-cp311-linux_armv7l.whl", hash = "sha256:3996aaa21231451161dc29df6a43fcaa8b332042b6150482c119a678d007dd86"}, + {file = "grpcio-1.59.3-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:cb4e9cbd9b7388fcb06412da9f188c7803742d06d6f626304eb838d1707ec7e3"}, + {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8022ca303d6c694a0d7acfb2b472add920217618d3a99eb4b14edc7c6a7e8fcf"}, + {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b36683fad5664283755a7f4e2e804e243633634e93cd798a46247b8e54e3cb0d"}, + {file = "grpcio-1.59.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8239b853226e4824e769517e1b5232e7c4dda3815b200534500338960fcc6118"}, + {file = "grpcio-1.59.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0511af8653fbda489ff11d542a08505d56023e63cafbda60e6e00d4e0bae86ea"}, + {file = "grpcio-1.59.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e78dc982bda74cef2ddfce1c91d29b96864c4c680c634e279ed204d51e227473"}, + {file = "grpcio-1.59.3-cp311-cp311-win32.whl", hash = "sha256:6a5c3a96405966c023e139c3bcccb2c7c776a6f256ac6d70f8558c9041bdccc3"}, + {file = "grpcio-1.59.3-cp311-cp311-win_amd64.whl", hash = "sha256:ed26826ee423b11477297b187371cdf4fa1eca874eb1156422ef3c9a60590dd9"}, + {file = "grpcio-1.59.3-cp312-cp312-linux_armv7l.whl", hash = "sha256:45dddc5cb5227d30fa43652d8872dc87f086d81ab4b500be99413bad0ae198d7"}, + {file = "grpcio-1.59.3-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:1736496d74682e53dd0907fd515f2694d8e6a96c9a359b4080b2504bf2b2d91b"}, + {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ddbd1a16138e52e66229047624de364f88a948a4d92ba20e4e25ad7d22eef025"}, + {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fcfa56f8d031ffda902c258c84c4b88707f3a4be4827b4e3ab8ec7c24676320d"}, + {file = "grpcio-1.59.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2eb8f0c7c0c62f7a547ad7a91ba627a5aa32a5ae8d930783f7ee61680d7eb8d"}, + {file = "grpcio-1.59.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8d993399cc65e3a34f8fd48dd9ad7a376734564b822e0160dd18b3d00c1a33f9"}, + {file = "grpcio-1.59.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c0bd141f4f41907eb90bda74d969c3cb21c1c62779419782a5b3f5e4b5835718"}, + {file = "grpcio-1.59.3-cp312-cp312-win32.whl", hash = "sha256:33b8fd65d4e97efa62baec6171ce51f9cf68f3a8ba9f866f4abc9d62b5c97b79"}, + {file = "grpcio-1.59.3-cp312-cp312-win_amd64.whl", hash = "sha256:0e735ed002f50d4f3cb9ecfe8ac82403f5d842d274c92d99db64cfc998515e07"}, + {file = "grpcio-1.59.3-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ea40ce4404e7cca0724c91a7404da410f0144148fdd58402a5942971e3469b94"}, + {file = "grpcio-1.59.3-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:83113bcc393477b6f7342b9f48e8a054330c895205517edc66789ceea0796b53"}, + {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:73afbac602b8f1212a50088193601f869b5073efa9855b3e51aaaec97848fc8a"}, + {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d61de1950b0b0699917b686b1ca108690702fcc2df127b8c9c9320f93e069"}, + {file = "grpcio-1.59.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cd76057b5c9a4d68814610ef9226925f94c1231bbe533fdf96f6181f7d2ff9e"}, + {file = "grpcio-1.59.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:95d6fd804c81efe4879e38bfd84d2b26e339a0a9b797e7615e884ef4686eb47b"}, + {file = "grpcio-1.59.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0d42048b8a3286ea4134faddf1f9a59cf98192b94aaa10d910a25613c5eb5bfb"}, + {file = "grpcio-1.59.3-cp37-cp37m-win_amd64.whl", hash = "sha256:4619fea15c64bcdd9d447cdbdde40e3d5f1da3a2e8ae84103d94a9c1df210d7e"}, + {file = "grpcio-1.59.3-cp38-cp38-linux_armv7l.whl", hash = "sha256:95b5506e70284ac03b2005dd9ffcb6708c9ae660669376f0192a710687a22556"}, + {file = "grpcio-1.59.3-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:9e17660947660ccfce56c7869032910c179a5328a77b73b37305cd1ee9301c2e"}, + {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:00912ce19914d038851be5cd380d94a03f9d195643c28e3ad03d355cc02ce7e8"}, + {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e58b3cadaa3c90f1efca26ba33e0d408b35b497307027d3d707e4bcd8de862a6"}, + {file = "grpcio-1.59.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d787ecadea865bdf78f6679f6f5bf4b984f18f659257ba612979df97a298b3c3"}, + {file = "grpcio-1.59.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0814942ba1bba269db4e760a34388640c601dece525c6a01f3b4ff030cc0db69"}, + {file = "grpcio-1.59.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fb111aa99d3180c361a35b5ae1e2c63750220c584a1344229abc139d5c891881"}, + {file = "grpcio-1.59.3-cp38-cp38-win32.whl", hash = "sha256:eb8ba504c726befe40a356ecbe63c6c3c64c9a439b3164f5a718ec53c9874da0"}, + {file = "grpcio-1.59.3-cp38-cp38-win_amd64.whl", hash = "sha256:cdbc6b32fadab9bebc6f49d3e7ec4c70983c71e965497adab7f87de218e84391"}, + {file = "grpcio-1.59.3-cp39-cp39-linux_armv7l.whl", hash = "sha256:c82ca1e4be24a98a253d6dbaa216542e4163f33f38163fc77964b0f0d255b552"}, + {file = "grpcio-1.59.3-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:36636babfda14f9e9687f28d5b66d349cf88c1301154dc71c6513de2b6c88c59"}, + {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5f9b2e591da751ac7fdd316cc25afafb7a626dededa9b414f90faad7f3ccebdb"}, + {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a93a82876a4926bf451db82ceb725bd87f42292bacc94586045261f501a86994"}, + {file = "grpcio-1.59.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce31fa0bfdd1f2bb15b657c16105c8652186eab304eb512e6ae3b99b2fdd7d13"}, + {file = "grpcio-1.59.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:16da0e40573962dab6cba16bec31f25a4f468e6d05b658e589090fe103b03e3d"}, + {file = "grpcio-1.59.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1d1a17372fd425addd5812049fa7374008ffe689585f27f802d0935522cf4b7"}, + {file = "grpcio-1.59.3-cp39-cp39-win32.whl", hash = "sha256:52cc38a7241b5f7b4a91aaf9000fdd38e26bb00d5e8a71665ce40cfcee716281"}, + {file = "grpcio-1.59.3-cp39-cp39-win_amd64.whl", hash = "sha256:b491e5bbcad3020a96842040421e508780cade35baba30f402df9d321d1c423e"}, + {file = "grpcio-1.59.3.tar.gz", hash = "sha256:7800f99568a74a06ebdccd419dd1b6e639b477dcaf6da77ea702f8fb14ce5f80"}, +] [package.extras] -protobuf = ["grpcio-tools (>=1.51.1)"] +protobuf = ["grpcio-tools (>=1.59.3)"] [[package]] name = "h5py" -version = "3.8.0" +version = "3.10.0" description = "Read and write HDF5 files from Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "h5py-3.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b963fb772964fc1d1563c57e4e2e874022ce11f75ddc6df1a626f42bd49ab99f"}, + {file = "h5py-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:012ab448590e3c4f5a8dd0f3533255bc57f80629bf7c5054cf4c87b30085063c"}, + {file = "h5py-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:781a24263c1270a62cd67be59f293e62b76acfcc207afa6384961762bb88ea03"}, + {file = "h5py-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f42e6c30698b520f0295d70157c4e202a9e402406f50dc08f5a7bc416b24e52d"}, + {file = "h5py-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:93dd840bd675787fc0b016f7a05fc6efe37312a08849d9dd4053fd0377b1357f"}, + {file = "h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc"}, + {file = "h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd"}, + {file = "h5py-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90286b79abd085e4e65e07c1bd7ee65a0f15818ea107f44b175d2dfe1a4674b7"}, + {file = "h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52"}, + {file = "h5py-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684"}, + {file = "h5py-3.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c97d03f87f215e7759a354460fb4b0d0f27001450b18b23e556e7856a0b21c3"}, + {file = "h5py-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86df4c2de68257b8539a18646ceccdcf2c1ce6b1768ada16c8dcfb489eafae20"}, + {file = "h5py-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba9ab36be991119a3ff32d0c7cbe5faf9b8d2375b5278b2aea64effbeba66039"}, + {file = "h5py-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:2c8e4fda19eb769e9a678592e67eaec3a2f069f7570c82d2da909c077aa94339"}, + {file = "h5py-3.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:492305a074327e8d2513011fa9fffeb54ecb28a04ca4c4227d7e1e9616d35641"}, + {file = "h5py-3.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9450464b458cca2c86252b624279115dcaa7260a40d3cb1594bf2b410a2bd1a3"}, + {file = "h5py-3.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd6f6d1384a9f491732cee233b99cd4bfd6e838a8815cc86722f9d2ee64032af"}, + {file = "h5py-3.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3074ec45d3dc6e178c6f96834cf8108bf4a60ccb5ab044e16909580352010a97"}, + {file = "h5py-3.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:212bb997a91e6a895ce5e2f365ba764debeaef5d2dca5c6fb7098d66607adf99"}, + {file = "h5py-3.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5dfc65ac21fa2f630323c92453cadbe8d4f504726ec42f6a56cf80c2f90d6c52"}, + {file = "h5py-3.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d4682b94fd36ab217352be438abd44c8f357c5449b8995e63886b431d260f3d3"}, + {file = "h5py-3.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aece0e2e1ed2aab076c41802e50a0c3e5ef8816d60ece39107d68717d4559824"}, + {file = "h5py-3.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43a61b2c2ad65b1fabc28802d133eed34debcc2c8b420cb213d3d4ef4d3e2229"}, + {file = "h5py-3.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:ae2f0201c950059676455daf92700eeb57dcf5caaf71b9e1328e6e6593601770"}, + {file = "h5py-3.10.0.tar.gz", hash = "sha256:d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049"}, +] [package.dependencies] -numpy = ">=1.14.5" +numpy = ">=1.17.3" [[package]] name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, + {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, +] [package.dependencies] six = ">=1.9" @@ -509,27 +1048,93 @@ lxml = ["lxml"] [[package]] name = "idna" -version = "3.4" +version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "igraph" +version = "0.11.3" +description = "High performance graph data structures and algorithms" +optional = false +python-versions = ">=3.8" +files = [ + {file = "igraph-0.11.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ceb512a3a9710cf1749bb612a2087a0fd8f909c5c630dc365afa8291c908009e"}, + {file = "igraph-0.11.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4ec2ecbe6ce2811f0d9bb291d0a447ff92c3d2d51914245f0eadbcc172d280a5"}, + {file = "igraph-0.11.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3b561e1634654cb1352f8c040d903c153f79e37612523252436a261cea1ee97"}, + {file = "igraph-0.11.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23358cdcb6f7bf8b58363f3603b0d3b0ac375002d2786521382762a2a463294a"}, + {file = "igraph-0.11.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c92017c2958affd494440f1a4060dc2d744857a0007e3fbafeca6d0265080717"}, + {file = "igraph-0.11.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e9d61d8dde1d3b6b0762f2ebc1d923e4f8038fb69f4c00553d57b45b78dd8470"}, + {file = "igraph-0.11.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a1b0009229ce713b7585904d52f3c3626d8136c2844231b15d18c22e7ad1cc4c"}, + {file = "igraph-0.11.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:423190fbb934f8bdbf0418c0dbd258d70365d5eb87216b628b9531e0193baeda"}, + {file = "igraph-0.11.3-cp38-cp38-win32.whl", hash = "sha256:23e4eab6d06ad2f6a879a7fab7c6b5a77f6b08604ed5feaf23c3050abbe112e9"}, + {file = "igraph-0.11.3-cp38-cp38-win_amd64.whl", hash = "sha256:ec6610f6012c6d254a9c5c4f0024d3a7c7912067639b438b9edfb1a0e6eaaf38"}, + {file = "igraph-0.11.3-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:84318a9d2469f44f4d1882c66838fde52858cc49cb1270d81eb829bdada15921"}, + {file = "igraph-0.11.3-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:799bad487a42c1c8ce4d94c04d6f9c996096072e02f0494ca7ad4d73ca5692c7"}, + {file = "igraph-0.11.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17d4993815750bef109de185e1b4cdd39dcb6d189e2b2d402ab9fc55d9706b4c"}, + {file = "igraph-0.11.3-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5af03882341320c92aa85cc5681d29f1ed19eb2c8c8d10c8db5999cbcf70f83d"}, + {file = "igraph-0.11.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b132c9c23f4714ef6ec9eb641c0ee32204ae812ec5ae8e52b9f6ae606bd8455"}, + {file = "igraph-0.11.3-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d111eb8058abe113b1a45241a9d68f4b1b58a06bc8bf317af06c8594f654a654"}, + {file = "igraph-0.11.3-cp39-abi3-musllinux_1_1_i686.whl", hash = "sha256:5d38fa33d702cdc1df6b1346b448fc3564e4449285ece3abed7de92110c71d89"}, + {file = "igraph-0.11.3-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:14510f569bfc8ea7d2bf23017334b71bad4715c3ad11c14e4513d48f6af3cf40"}, + {file = "igraph-0.11.3-cp39-abi3-win32.whl", hash = "sha256:c07d5d32ff51a9b7286bd4804e84c9c13dc2338f3e2bf95e0598db924f4245be"}, + {file = "igraph-0.11.3-cp39-abi3-win_amd64.whl", hash = "sha256:52ab63b5f33816350bd6cbb39bd4da2c2a2a4b3628fb7775d5071a6c274b5c79"}, + {file = "igraph-0.11.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c1de38a025249d8e61c3e68c62d3332f389d3243aa7f5b44f5bd2ea49b967f5"}, + {file = "igraph-0.11.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b76a986419c639eb9d35ed01a556e6edf9185f17b099dd15689e9c69fb7ad9"}, + {file = "igraph-0.11.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b3d95b588d1241fd60c70eac91fe534b57517585afd79620eca6d7cfca7a2a7"}, + {file = "igraph-0.11.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2e6a4414613e80b921056e7c84ba4394a3ed5ce1b2e4d31105aef8a4dac7c21"}, + {file = "igraph-0.11.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:646804f1ed843382958afac01fd83f589fc9268173ef3441d088d9a50f7cb4f4"}, + {file = "igraph-0.11.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4816f57cd74d00c14f3fde320d0906d2c33ef8ebb679145826b478cd598913ed"}, + {file = "igraph-0.11.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e1aaa2c7b7ca2942fa39e26b9c70b4cf836b4ba2b5879518dfa18bd31d893ee"}, + {file = "igraph-0.11.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb17b4d5a903f375ed3535e464e32416c1aa3b643107f8313c604d182aa2abc"}, + {file = "igraph-0.11.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93888074f4c8bc00d75bcb0467987f325d3655fdda13e937de4627449a2e5863"}, + {file = "igraph-0.11.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:fec7529df2f7222d797e5e1ebea7848b4e868b10368b956b9099f630b863f4ef"}, + {file = "igraph-0.11.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2769514695c5b8c207b44676ed4e24f20d132e0aa7eba6a14404e18de08d8c9a"}, + {file = "igraph-0.11.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acce6e4cc0426fc473cbe2e85b63de6e15158405a5db1aa275c0cd68ac5de36c"}, + {file = "igraph-0.11.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94048fefae8d356fc9755b679e8c9fe2234a39a79453fb36dc58f0784e5a574b"}, + {file = "igraph-0.11.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2507621877ea5c909e44e3cecf926b99779a05253a723df391079785b42f39fe"}, + {file = "igraph-0.11.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:96eb5873d230e8389eb6e01144e4bea2cd96d33eab01ab985e8bf2d1cc297fbb"}, + {file = "igraph-0.11.3.tar.gz", hash = "sha256:e55df60f882a51b8e8c1c5e7e940c5f90685d75634ea6df63bebcc983397adfa"}, +] + +[package.dependencies] +texttable = ">=1.6.2" + +[package.extras] +cairo = ["cairocffi (>=1.2.0)"] +doc = ["Sphinx (>=7.0.0)", "pydoctor (>=23.4.0)", "sphinx-gallery (>=0.14.0)", "sphinx-rtd-theme (>=1.3.0)"] +matplotlib = ["matplotlib (>=3.6.0)"] +plotly = ["plotly (>=5.3.0)"] +plotting = ["cairocffi (>=1.2.0)"] +test = ["Pillow (>=9)", "cairocffi (>=1.2.0)", "matplotlib (>=3.6.0)", "networkx (>=2.5)", "numpy (>=1.19.0)", "pandas (>=1.1.0)", "plotly (>=5.3.0)", "pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)", "scipy (>=1.5.0)"] +test-musl = ["cairocffi (>=1.2.0)", "networkx (>=2.5)", "pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)"] [[package]] name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] [[package]] name = "importlib-metadata" -version = "6.0.0" +version = "6.8.0" description = "Read metadata from Python packages" -category = "main" optional = false -python-versions = ">=3.7" +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"}, +] [package.dependencies] zipp = ">=0.5" @@ -537,38 +1142,47 @@ zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +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"] [[package]] name = "importlib-resources" -version = "5.12.0" +version = "6.1.1" description = "Read resources from Python packages" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, + {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, +] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] [[package]] name = "ipykernel" -version = "6.21.2" +version = "6.27.1" description = "IPython Kernel for Jupyter" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.27.1-py3-none-any.whl", hash = "sha256:dab88b47f112f9f7df62236511023c9bdeef67abc73af7c652e4ce4441601686"}, + {file = "ipykernel-6.27.1.tar.gz", hash = "sha256:7d5d594b6690654b4d299edba5e872dc17bb7396a8d0609c97cb7b8a1c605de6"}, +] [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} @@ -576,7 +1190,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -594,11 +1208,14 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" [[package]] name = "ipython" -version = "8.10.0" +version = "8.12.3" description = "IPython: Productive Interactive Computing" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, + {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, +] [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} @@ -609,10 +1226,11 @@ jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} pickleshare = "*" -prompt-toolkit = ">=3.0.30,<3.1.0" +prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" +typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] @@ -631,17 +1249,23 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" -category = "main" optional = false python-versions = "*" +files = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] [[package]] name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] [package.dependencies] arrow = ">=0.15.0" @@ -650,9 +1274,12 @@ arrow = ">=0.15.0" name = "isort" version = "5.12.0" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] [package.extras] colors = ["colorama (>=0.4.3)"] @@ -664,33 +1291,42 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, + {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, +] [[package]] name = "jedi" -version = "0.18.2" +version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] [package.dependencies] -parso = ">=0.8.0,<0.9.0" +parso = ">=0.8.3,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" version = "3.1.2" 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"}, +] [package.dependencies] MarkupSafe = ">=2.0" @@ -700,39 +1336,50 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" -version = "1.2.0" +version = "1.3.2" description = "Lightweight pipelining with Python functions" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, + {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, +] [[package]] name = "jsonpointer" -version = "2.3" +version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] [[package]] name = "jsonschema" -version = "4.17.3" +version = "4.20.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, + {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, +] [package.dependencies] -attrs = ">=17.4.0" +attrs = ">=22.2.0" fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} -pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} @@ -740,55 +1387,81 @@ webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-n 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 (>=1.11)"] +[[package]] +name = "jsonschema-specifications" +version = "2023.11.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.11.1-py3-none-any.whl", hash = "sha256:f596778ab612b3fd29f72ea0d990393d0540a5aab18bf0407a46632eab540779"}, + {file = "jsonschema_specifications-2023.11.1.tar.gz", hash = "sha256:c9b234904ffe02f079bf91b14d79987faa685fd4b39c377a0996954c0090b9ca"}, +] + +[package.dependencies] +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +referencing = ">=0.31.0" + [[package]] name = "jupyter-client" -version = "8.0.3" +version = "7.4.9" description = "Jupyter protocol implementation and client libraries" -category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" +files = [ + {file = "jupyter_client-7.4.9-py3-none-any.whl", hash = "sha256:214668aaea208195f4c13d28eb272ba79f945fc0cf3f11c7092c20b2ca1980e7"}, + {file = "jupyter_client-7.4.9.tar.gz", hash = "sha256:52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392"}, +] [package.dependencies] -importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +entrypoints = "*" +jupyter-core = ">=4.9.2" +nest-asyncio = ">=1.5.4" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" -traitlets = ">=5.3" +traitlets = "*" [package.extras] -docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["codecov", "coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-core" -version = "5.2.0" +version = "5.5.0" description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.5.0-py3-none-any.whl", hash = "sha256:e11e02cd8ae0a9de5c6c44abf5727df9f2581055afe00b22183f621ba3585805"}, + {file = "jupyter_core-5.5.0.tar.gz", hash = "sha256:880b86053bf298a8724994f95e99b99130659022a4f7f45f563084b6223861d3"}, +] [package.dependencies] platformdirs = ">=2.5" -pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = ">=5.3" [package.extras] -docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-events" -version = "0.6.3" +version = "0.9.0" description = "Jupyter Event System library" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.9.0-py3-none-any.whl", hash = "sha256:d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf"}, + {file = "jupyter_events-0.9.0.tar.gz", hash = "sha256:81ad2e4bc710881ec274d31c6c50669d71bbaa5dd9d01e600b56faa85700d399"}, +] [package.dependencies] -jsonschema = {version = ">=3.2.0", extras = ["format-nongpl"]} +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} python-json-logger = ">=2.0.4" pyyaml = ">=5.3" +referencing = "*" rfc3339-validator = "*" rfc3986-validator = ">=0.1.1" traitlets = ">=5.3" @@ -796,47 +1469,54 @@ traitlets = ">=5.3" [package.extras] cli = ["click", "rich"] docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] -test = ["click", "coverage", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] [[package]] name = "jupyter-server" -version = "2.3.0" +version = "2.11.1" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.11.1-py3-none-any.whl", hash = "sha256:4b3a16e3ed16fd202588890f10b8ca589bd3e29405d128beb95935f059441373"}, + {file = "jupyter_server-2.11.1.tar.gz", hash = "sha256:fe80bab96493acf5f7d6cd9a1575af8fbd253dc2591aa4d015131a1e03b5799a"}, +] [package.dependencies] anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" -jupyter-events = ">=0.4.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.9.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" nbformat = ">=5.3.0" +overrides = "*" packaging = "*" prometheus-client = "*" pywinpty = {version = "*", markers = "os_name == \"nt\""} pyzmq = ">=24" -send2trash = "*" +send2trash = ">=1.8.2" terminado = ">=0.8.3" tornado = ">=6.2.0" traitlets = ">=5.6.0" websocket-client = "*" [package.extras] -docs = ["docutils (<0.20)", "ipykernel", "jinja2", "jupyter-client", "jupyter-server", "mistune (<1.0.0)", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] -test = ["ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] [[package]] name = "jupyter-server-terminals" version = "0.4.4" description = "A Jupyter Server Extension Providing Terminals." -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, + {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, +] [package.dependencies] pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} @@ -848,27 +1528,137 @@ test = ["coverage", "jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-cov", [[package]] name = "jupyterlab-pygments" -version = "0.2.2" +version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] [[package]] name = "kiwisolver" -version = "1.4.4" +version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] [[package]] name = "lasso-python" version = "1.5.2.post1" description = "A next-generation CAE Python Library." -category = "main" optional = false python-versions = "*" +files = [ + {file = "lasso_python-1.5.2.post1-py3-none-any.whl", hash = "sha256:423c73973054fcd17fd7264e7b7cb33af2a5b7ee7d52e435f4164b125fdcffae"}, +] [package.dependencies] attrs = "*" @@ -889,37 +1679,123 @@ sklearn = "*" name = "lazy-object-proxy" version = "1.9.0" description = "A fast and thorough lazy object proxy." -category = "dev" optional = false python-versions = ">=3.7" - -[[package]] -name = "livereload" +files = [ + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, +] + +[[package]] +name = "license-expression" +version = "30.1.1" +description = "license-expression is a comprehensive utility library to parse, compare, simplify and normalize license expressions (such as SPDX license expressions) using boolean logic." +optional = false +python-versions = ">=3.7" +files = [ + {file = "license-expression-30.1.1.tar.gz", hash = "sha256:42375df653ad85e6f5b4b0385138b2dbea1f5d66360783d8625c3e4f97f11f0c"}, + {file = "license_expression-30.1.1-py3-none-any.whl", hash = "sha256:8d7e5e2de0d04fc104a4f952c440e8f08a5ba63480a0dad015b294770b7e58ec"}, +] + +[package.dependencies] +"boolean.py" = ">=4.0" + +[package.extras] +docs = ["Sphinx (==5.1.0)", "doc8 (>=0.8.1)", "sphinx-rtd-theme (>=0.5.0)", "sphinxcontrib-apidoc (>=0.3.0)"] +testing = ["black", "isort", "pytest (>=6,!=7.0.0)", "pytest-xdist (>=2)", "twine"] + +[[package]] +name = "livereload" version = "2.6.3" description = "Python LiveReload is an awesome tool for web developers" -category = "dev" optional = false python-versions = "*" +files = [ + {file = "livereload-2.6.3-py2.py3-none-any.whl", hash = "sha256:ad4ac6f53b2d62bb6ce1a5e6e96f1f00976a32348afedcb4b6d68df2a1d346e4"}, + {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, +] [package.dependencies] six = "*" tornado = {version = "*", markers = "python_version > \"2.7\""} [[package]] -name = "lockfile" -version = "0.12.2" -description = "Platform-independent file locking module" -category = "dev" +name = "llvmlite" +version = "0.41.1" +description = "lightweight wrapper around basic LLVM functionality" optional = false -python-versions = "*" +python-versions = ">=3.8" +files = [ + {file = "llvmlite-0.41.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1e1029d47ee66d3a0c4d6088641882f75b93db82bd0e6178f7bd744ebce42b9"}, + {file = "llvmlite-0.41.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:150d0bc275a8ac664a705135e639178883293cf08c1a38de3bbaa2f693a0a867"}, + {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1eee5cf17ec2b4198b509272cf300ee6577229d237c98cc6e63861b08463ddc6"}, + {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd0338da625346538f1173a17cabf21d1e315cf387ca21b294ff209d176e244"}, + {file = "llvmlite-0.41.1-cp310-cp310-win32.whl", hash = "sha256:fa1469901a2e100c17eb8fe2678e34bd4255a3576d1a543421356e9c14d6e2ae"}, + {file = "llvmlite-0.41.1-cp310-cp310-win_amd64.whl", hash = "sha256:2b76acee82ea0e9304be6be9d4b3840208d050ea0dcad75b1635fa06e949a0ae"}, + {file = "llvmlite-0.41.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:210e458723436b2469d61b54b453474e09e12a94453c97ea3fbb0742ba5a83d8"}, + {file = "llvmlite-0.41.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:855f280e781d49e0640aef4c4af586831ade8f1a6c4df483fb901cbe1a48d127"}, + {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b67340c62c93a11fae482910dc29163a50dff3dfa88bc874872d28ee604a83be"}, + {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2181bb63ef3c607e6403813421b46982c3ac6bfc1f11fa16a13eaafb46f578e6"}, + {file = "llvmlite-0.41.1-cp311-cp311-win_amd64.whl", hash = "sha256:9564c19b31a0434f01d2025b06b44c7ed422f51e719ab5d24ff03b7560066c9a"}, + {file = "llvmlite-0.41.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5940bc901fb0325970415dbede82c0b7f3e35c2d5fd1d5e0047134c2c46b3281"}, + {file = "llvmlite-0.41.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8b0a9a47c28f67a269bb62f6256e63cef28d3c5f13cbae4fab587c3ad506778b"}, + {file = "llvmlite-0.41.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8afdfa6da33f0b4226af8e64cfc2b28986e005528fbf944d0a24a72acfc9432"}, + {file = "llvmlite-0.41.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8454c1133ef701e8c050a59edd85d238ee18bb9a0eb95faf2fca8b909ee3c89a"}, + {file = "llvmlite-0.41.1-cp38-cp38-win32.whl", hash = "sha256:2d92c51e6e9394d503033ffe3292f5bef1566ab73029ec853861f60ad5c925d0"}, + {file = "llvmlite-0.41.1-cp38-cp38-win_amd64.whl", hash = "sha256:df75594e5a4702b032684d5481db3af990b69c249ccb1d32687b8501f0689432"}, + {file = "llvmlite-0.41.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:04725975e5b2af416d685ea0769f4ecc33f97be541e301054c9f741003085802"}, + {file = "llvmlite-0.41.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bf14aa0eb22b58c231243dccf7e7f42f7beec48970f2549b3a6acc737d1a4ba4"}, + {file = "llvmlite-0.41.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92c32356f669e036eb01016e883b22add883c60739bc1ebee3a1cc0249a50828"}, + {file = "llvmlite-0.41.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24091a6b31242bcdd56ae2dbea40007f462260bc9bdf947953acc39dffd54f8f"}, + {file = "llvmlite-0.41.1-cp39-cp39-win32.whl", hash = "sha256:880cb57ca49e862e1cd077104375b9d1dfdc0622596dfa22105f470d7bacb309"}, + {file = "llvmlite-0.41.1-cp39-cp39-win_amd64.whl", hash = "sha256:92f093986ab92e71c9ffe334c002f96defc7986efda18397d0f08534f3ebdc4d"}, + {file = "llvmlite-0.41.1.tar.gz", hash = "sha256:f19f767a018e6ec89608e1f6b13348fa2fcde657151137cb64e56d48598a92db"}, +] [[package]] name = "loguru" version = "0.6.0" description = "Python logging made (stupidly) simple" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"}, + {file = "loguru-0.6.0.tar.gz", hash = "sha256:066bd06758d0a513e9836fd9c6b5a75bfb3fd36841f4b996bc60b547a309d41c"}, +] [package.dependencies] colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""} @@ -930,40 +1806,152 @@ dev = ["Sphinx (>=4.1.1)", "black (>=19.10b0)", "colorama (>=0.3.4)", "docutils [[package]] name = "markdown-it-py" -version = "2.1.0" +version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] [package.dependencies] mdurl = ">=0.1,<1.0" [package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] -code-style = ["pre-commit (==2.6)"] -compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"] -linkify = ["linkify-it-py (>=1.0,<2.0)"] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] plugins = ["mdit-py-plugins"] profiling = ["gprof2dot"] -rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.2" +version = "2.1.3" 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-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {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"}, +] [[package]] name = "matplotlib" -version = "3.7.0" +version = "3.7.4" description = "Python plotting package" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "matplotlib-3.7.4-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:b71079239bd866bf56df023e5146de159cb0c7294e508830901f4d79e2d89385"}, + {file = "matplotlib-3.7.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bf91a42f6274a64cb41189120b620c02e574535ff6671fa836cade7701b06fbd"}, + {file = "matplotlib-3.7.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f757e8b42841d6add0cb69b42497667f0d25a404dcd50bd923ec9904e38414c4"}, + {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dfee00aa4bd291e08bb9461831c26ce0da85ca9781bb8794f2025c6e925281"}, + {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3640f33632beb3993b698b1be9d1c262b742761d6101f3c27b87b2185d25c875"}, + {file = "matplotlib-3.7.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff539c4a17ecdf076ed808ee271ffae4a30dcb7e157b99ccae2c837262c07db6"}, + {file = "matplotlib-3.7.4-cp310-cp310-win32.whl", hash = "sha256:24b8f28af3e766195c09b780b15aa9f6710192b415ae7866b9c03dee7ec86370"}, + {file = "matplotlib-3.7.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fa193286712c3b6c3cfa5fe8a6bb563f8c52cc750006c782296e0807ce5e799"}, + {file = "matplotlib-3.7.4-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:b167f54cb4654b210c9624ec7b54e2b3b8de68c93a14668937e7e53df60770ec"}, + {file = "matplotlib-3.7.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7dfe6821f1944cb35603ff22e21510941bbcce7ccf96095beffaac890d39ce77"}, + {file = "matplotlib-3.7.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3c557d9165320dff3c5f2bb99bfa0b6813d3e626423ff71c40d6bc23b83c3339"}, + {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08372696b3bb45c563472a552a705bfa0942f0a8ffe084db8a4e8f9153fbdf9d"}, + {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81e1a7ac818000e8ac3ca696c3fdc501bc2d3adc89005e7b4e22ee5e9d51de98"}, + {file = "matplotlib-3.7.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:390920a3949906bc4b0216198d378f2a640c36c622e3584dd0c79a7c59ae9f50"}, + {file = "matplotlib-3.7.4-cp311-cp311-win32.whl", hash = "sha256:62e094d8da26294634da9e7f1856beee3978752b1b530c8e1763d2faed60cc10"}, + {file = "matplotlib-3.7.4-cp311-cp311-win_amd64.whl", hash = "sha256:f8fc2df756105784e650605e024d36dc2d048d68e5c1b26df97ee25d1bd41f9f"}, + {file = "matplotlib-3.7.4-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:568574756127791903604e315c11aef9f255151e4cfe20ec603a70f9dda8e259"}, + {file = "matplotlib-3.7.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7d479aac338195e2199a8cfc03c4f2f55914e6a120177edae79e0340a6406457"}, + {file = "matplotlib-3.7.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:32183d4be84189a4c52b4b8861434d427d9118db2cec32986f98ed6c02dcfbb6"}, + {file = "matplotlib-3.7.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0037d066cca1f4bda626c507cddeb6f7da8283bc6a214da2db13ff2162933c52"}, + {file = "matplotlib-3.7.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44856632ebce88abd8efdc0a0dceec600418dcac06b72ae77af0019d260aa243"}, + {file = "matplotlib-3.7.4-cp312-cp312-win_amd64.whl", hash = "sha256:632fc938c22117d4241411191cfb88ac264a4c0a9ac702244641ddf30f0d739c"}, + {file = "matplotlib-3.7.4-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:ce163be048613b9d1962273708cc97e09ca05d37312e670d166cf332b80bbaff"}, + {file = "matplotlib-3.7.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:e680f49bb8052ba3b2698e370155d2b4afb49f9af1cc611a26579d5981e2852a"}, + {file = "matplotlib-3.7.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0604880e4327114054199108b7390f987f4f40ee5ce728985836889e11a780ba"}, + {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1e6abcde6fc52475f9d6a12b9f1792aee171ce7818ef6df5d61cb0b82816e6e8"}, + {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f59a70e2ec3212033ef6633ed07682da03f5249379722512a3a2a26a7d9a738e"}, + {file = "matplotlib-3.7.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a9981b2a2dd9da06eca4ab5855d09b54b8ce7377c3e0e3957767b83219d652d"}, + {file = "matplotlib-3.7.4-cp38-cp38-win32.whl", hash = "sha256:83859ac26839660ecd164ee8311272074250b915ac300f9b2eccc84410f8953b"}, + {file = "matplotlib-3.7.4-cp38-cp38-win_amd64.whl", hash = "sha256:7a7709796ac59fe8debde68272388be6ed449c8971362eb5b60d280eac8dadde"}, + {file = "matplotlib-3.7.4-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:b1d70bc1ea1bf110bec64f4578de3e14947909a8887df4c1fd44492eca487955"}, + {file = "matplotlib-3.7.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c83f49e795a5de6c168876eea723f5b88355202f9603c55977f5356213aa8280"}, + {file = "matplotlib-3.7.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5c9133f230945fe10652eb33e43642e933896194ef6a4f8d5e79bb722bdb2000"}, + {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:798ff59022eeb276380ce9a73ba35d13c3d1499ab9b73d194fd07f1b0a41c304"}, + {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1707b20b25e90538c2ce8d4409e30f0ef1df4017cc65ad0439633492a973635b"}, + {file = "matplotlib-3.7.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e6227ca8492baeef873cdd8e169a318efb5c3a25ce94e69727e7f964995b0b1"}, + {file = "matplotlib-3.7.4-cp39-cp39-win32.whl", hash = "sha256:5661c8639aded7d1bbf781373a359011cb1dd09199dee49043e9e68dd16f07ba"}, + {file = "matplotlib-3.7.4-cp39-cp39-win_amd64.whl", hash = "sha256:55eec941a4743f0bd3e5b8ee180e36b7ea8e62f867bf2613937c9f01b9ac06a2"}, + {file = "matplotlib-3.7.4-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ab16868714e5cc90ec8f7ff5d83d23bcd6559224d8e9cb5227c9f58748889fe8"}, + {file = "matplotlib-3.7.4-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c698b33f9a3f0b127a8e614c8fb4087563bb3caa9c9d95298722fa2400cdd3f"}, + {file = "matplotlib-3.7.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be3493bbcb4d255cb71de1f9050ac71682fce21a56089eadbcc8e21784cb12ee"}, + {file = "matplotlib-3.7.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f8c725d1dd2901b2e7ec6cd64165e00da2978cc23d4143cb9ef745bec88e6b04"}, + {file = "matplotlib-3.7.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:286332f8f45f8ffde2d2119b9fdd42153dccd5025fa9f451b4a3b5c086e26da5"}, + {file = "matplotlib-3.7.4-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:116ef0b43aa00ff69260b4cce39c571e4b8c6f893795b708303fa27d9b9d7548"}, + {file = "matplotlib-3.7.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c90590d4b46458677d80bc3218f3f1ac11fc122baa9134e0cb5b3e8fc3714052"}, + {file = "matplotlib-3.7.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de7c07069687be64fd9d119da3122ba13a8d399eccd3f844815f0dc78a870b2c"}, + {file = "matplotlib-3.7.4.tar.gz", hash = "sha256:7cd4fef8187d1dd0d9dcfdbaa06ac326d396fb8c71c647129f0bf56835d77026"}, +] [package.dependencies] contourpy = ">=1.0.1" @@ -971,20 +1959,22 @@ cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} kiwisolver = ">=1.0.1" -numpy = ">=1.20" +numpy = ">=1.20,<2" packaging = ">=20.0" pillow = ">=6.2.0" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" -setuptools_scm = ">=7" [[package]] name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] [package.dependencies] traitlets = "*" @@ -993,41 +1983,131 @@ traitlets = "*" name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] [[package]] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] [[package]] name = "mistune" -version = "2.0.5" -description = "A sane Markdown parser with useful plugins and renderers" -category = "main" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" optional = false -python-versions = "*" +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] [[package]] name = "msgpack" -version = "1.0.4" +version = "1.0.7" description = "MessagePack serializer" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" +files = [ + {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862"}, + {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329"}, + {file = "msgpack-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee"}, + {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1"}, + {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681"}, + {file = "msgpack-1.0.7-cp310-cp310-win32.whl", hash = "sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9"}, + {file = "msgpack-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93"}, + {file = "msgpack-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b"}, + {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c"}, + {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e"}, + {file = "msgpack-1.0.7-cp311-cp311-win32.whl", hash = "sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1"}, + {file = "msgpack-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4"}, + {file = "msgpack-1.0.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672"}, + {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c"}, + {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"}, + {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"}, + {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0"}, + {file = "msgpack-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524"}, + {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf"}, + {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c"}, + {file = "msgpack-1.0.7-cp38-cp38-win32.whl", hash = "sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2"}, + {file = "msgpack-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81"}, + {file = "msgpack-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7"}, + {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd"}, + {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f"}, + {file = "msgpack-1.0.7-cp39-cp39-win32.whl", hash = "sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad"}, + {file = "msgpack-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3"}, + {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"}, +] [[package]] name = "mypy" version = "0.971" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, + {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, + {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, + {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, + {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, + {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, + {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, + {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, + {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, + {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, + {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, + {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, + {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, + {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, + {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, + {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, + {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, + {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, + {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, + {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, + {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, +] [package.dependencies] mypy-extensions = ">=0.4.3" @@ -1043,17 +2123,23 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] [[package]] name = "nbclassic" -version = "0.5.2" +version = "1.0.0" description = "Jupyter Notebook as a Jupyter Server extension." -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "nbclassic-1.0.0-py3-none-any.whl", hash = "sha256:f99e4769b4750076cd4235c044b61232110733322384a94a63791d2e7beacc66"}, + {file = "nbclassic-1.0.0.tar.gz", hash = "sha256:0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3"}, +] [package.dependencies] argon2-cffi = "*" @@ -1066,7 +2152,7 @@ jupyter-server = ">=1.8" nbconvert = ">=5" nbformat = "*" nest-asyncio = ">=1.5" -notebook-shim = ">=0.1.0" +notebook-shim = ">=0.2.3" prometheus-client = "*" pyzmq = ">=17" Send2Trash = ">=1.8.0" @@ -1081,48 +2167,54 @@ test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-jupyter", "pytest-p [[package]] name = "nbclient" -version = "0.7.2" +version = "0.9.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -category = "main" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, + {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, +] [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" nbformat = ">=5.1" -traitlets = ">=5.3" +traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] -docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme"] -test = ["ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" -version = "7.2.9" +version = "7.11.0" description = "Converting Jupyter Notebooks" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.11.0-py3-none-any.whl", hash = "sha256:d1d417b7f34a4e38887f8da5bdfd12372adf3b80f995d57556cb0972c68909fe"}, + {file = "nbconvert-7.11.0.tar.gz", hash = "sha256:abedc01cf543177ffde0bfc2a69726d5a478f6af10a332fc1bf29fcb4f0cf000"}, +] [package.dependencies] beautifulsoup4 = "*" -bleach = "*" +bleach = "!=5.0.0" defusedxml = "*" importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} jinja2 = ">=3.0" jupyter-core = ">=4.7" jupyterlab-pygments = "*" markupsafe = ">=2.0" -mistune = ">=2.0.3,<3" +mistune = ">=2.0.3,<4" nbclient = ">=0.5.0" -nbformat = ">=5.1" +nbformat = ">=5.7" packaging = "*" pandocfilters = ">=1.4.1" pygments = ">=2.4.1" tinycss2 = "*" -traitlets = ">=5.0" +traitlets = ">=5.1" [package.extras] all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] @@ -1130,16 +2222,19 @@ docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sp qtpdf = ["nbconvert[qtpng]"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pytest", "pytest-dependency"] -webpdf = ["pyppeteer (>=1,<1.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7)", "pytest"] +webpdf = ["playwright"] [[package]] name = "nbformat" -version = "5.7.3" +version = "5.9.2" description = "The Jupyter Notebook format" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, + {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, +] [package.dependencies] fastjsonschema = "*" @@ -1153,19 +2248,25 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nest-asyncio" -version = "1.5.6" +version = "1.5.8" description = "Patch asyncio to allow nested event loops" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.5.8-py3-none-any.whl", hash = "sha256:accda7a339a70599cb08f9dd09a67e0c2ef8d8d6f4c07f96ab203f2ae254e48d"}, + {file = "nest_asyncio-1.5.8.tar.gz", hash = "sha256:25aa2ca0d2a5b5531956b9e273b45cf664cae2b145101d73b86b199978d48fdb"}, +] [[package]] name = "networkx" version = "2.8.8" description = "Python package for creating and manipulating graphs and networks" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "networkx-2.8.8-py3-none-any.whl", hash = "sha256:e435dfa75b1d7195c7b8378c3859f0445cd88c6b0375c181ed66823a9ceb7524"}, + {file = "networkx-2.8.8.tar.gz", hash = "sha256:230d388117af870fce5647a3c52401fcf753e94720e6ea6b4197a5355648885e"}, +] [package.extras] default = ["matplotlib (>=3.4)", "numpy (>=1.19)", "pandas (>=1.3)", "scipy (>=1.8)"] @@ -1176,25 +2277,28 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "notebook" -version = "6.5.2" +version = "6.5.6" description = "A web-based notebook environment for interactive computing" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "notebook-6.5.6-py3-none-any.whl", hash = "sha256:c1e2eb2e3b6079a0552a04974883a48d04c3c05792170d64a4b23d707d453181"}, + {file = "notebook-6.5.6.tar.gz", hash = "sha256:b4625a4b7a597839dd3156b140d5ba2c7123761f98245a3290f67a8b8ee048d9"}, +] [package.dependencies] argon2-cffi = "*" ipykernel = "*" ipython-genutils = "*" jinja2 = "*" -jupyter-client = ">=5.3.4" +jupyter-client = ">=5.3.4,<8" jupyter-core = ">=4.6.1" nbclassic = ">=0.4.7" nbconvert = ">=5" nbformat = "*" nest-asyncio = ">=1.5" prometheus-client = "*" -pyzmq = ">=17" +pyzmq = ">=17,<25" Send2Trash = ">=1.8.0" terminado = ">=0.8.3" tornado = ">=6.1" @@ -1207,53 +2311,167 @@ test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixs [[package]] name = "notebook-shim" -version = "0.2.2" +version = "0.2.3" description = "A shim layer for notebook traits and config" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, + {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, +] [package.dependencies] jupyter-server = ">=1.8,<3" [package.extras] -test = ["pytest", "pytest-console-scripts", "pytest-tornasync"] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numba" +version = "0.58.1" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numba-0.58.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07f2fa7e7144aa6f275f27260e73ce0d808d3c62b30cff8906ad1dec12d87bbe"}, + {file = "numba-0.58.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7bf1ddd4f7b9c2306de0384bf3854cac3edd7b4d8dffae2ec1b925e4c436233f"}, + {file = "numba-0.58.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bc2d904d0319d7a5857bd65062340bed627f5bfe9ae4a495aef342f072880d50"}, + {file = "numba-0.58.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4e79b6cc0d2bf064a955934a2e02bf676bc7995ab2db929dbbc62e4c16551be6"}, + {file = "numba-0.58.1-cp310-cp310-win_amd64.whl", hash = "sha256:81fe5b51532478149b5081311b0fd4206959174e660c372b94ed5364cfb37c82"}, + {file = "numba-0.58.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bcecd3fb9df36554b342140a4d77d938a549be635d64caf8bd9ef6c47a47f8aa"}, + {file = "numba-0.58.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1eaa744f518bbd60e1f7ccddfb8002b3d06bd865b94a5d7eac25028efe0e0ff"}, + {file = "numba-0.58.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bf68df9c307fb0aa81cacd33faccd6e419496fdc621e83f1efce35cdc5e79cac"}, + {file = "numba-0.58.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:55a01e1881120e86d54efdff1be08381886fe9f04fc3006af309c602a72bc44d"}, + {file = "numba-0.58.1-cp311-cp311-win_amd64.whl", hash = "sha256:811305d5dc40ae43c3ace5b192c670c358a89a4d2ae4f86d1665003798ea7a1a"}, + {file = "numba-0.58.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ea5bfcf7d641d351c6a80e8e1826eb4a145d619870016eeaf20bbd71ef5caa22"}, + {file = "numba-0.58.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e63d6aacaae1ba4ef3695f1c2122b30fa3d8ba039c8f517784668075856d79e2"}, + {file = "numba-0.58.1-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6fe7a9d8e3bd996fbe5eac0683227ccef26cba98dae6e5cee2c1894d4b9f16c1"}, + {file = "numba-0.58.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:898af055b03f09d33a587e9425500e5be84fc90cd2f80b3fb71c6a4a17a7e354"}, + {file = "numba-0.58.1-cp38-cp38-win_amd64.whl", hash = "sha256:d3e2fe81fe9a59fcd99cc572002101119059d64d31eb6324995ee8b0f144a306"}, + {file = "numba-0.58.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c765aef472a9406a97ea9782116335ad4f9ef5c9f93fc05fd44aab0db486954"}, + {file = "numba-0.58.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9356e943617f5e35a74bf56ff6e7cc83e6b1865d5e13cee535d79bf2cae954"}, + {file = "numba-0.58.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:240e7a1ae80eb6b14061dc91263b99dc8d6af9ea45d310751b780888097c1aaa"}, + {file = "numba-0.58.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:45698b995914003f890ad839cfc909eeb9c74921849c712a05405d1a79c50f68"}, + {file = "numba-0.58.1-cp39-cp39-win_amd64.whl", hash = "sha256:bd3dda77955be03ff366eebbfdb39919ce7c2620d86c906203bed92124989032"}, + {file = "numba-0.58.1.tar.gz", hash = "sha256:487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa"}, +] + +[package.dependencies] +importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} +llvmlite = "==0.41.*" +numpy = ">=1.22,<1.27" [[package]] name = "numpy" -version = "1.24.2" +version = "1.24.4" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +] + +[[package]] +name = "overrides" +version = "7.4.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, + {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, +] [[package]] name = "packageurl-python" -version = "0.10.4" +version = "0.11.2" description = "A purl aka. Package URL parser and builder" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "packageurl-python-0.11.2.tar.gz", hash = "sha256:01fbf74a41ef85cf413f1ede529a1411f658bda66ed22d45d27280ad9ceba471"}, + {file = "packageurl_python-0.11.2-py3-none-any.whl", hash = "sha256:799acfe8d9e6e3534bbc19660be97d5b66754bc033e62c39f1e2f16323fcfa84"}, +] [package.extras] build = ["wheel"] -test = ["black", "isort", "pytest"] +lint = ["black", "isort", "mypy"] +sqlalchemy = ["sqlalchemy (>=2.0.0)"] +test = ["pytest"] [[package]] name = "packaging" -version = "23.0" +version = "23.2" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] [[package]] name = "pandas" version = "1.5.3" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.8" +files = [ + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, + {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, + {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, + {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, + {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, + {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, + {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, + {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, +] [package.dependencies] numpy = [ @@ -1271,17 +2489,23 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "pandocfilters" version = "1.5.0" description = "Utilities for writing pandoc filters in python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] [[package]] name = "parso" version = "0.8.3" description = "A Python Parser" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] [package.extras] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] @@ -1289,19 +2513,25 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pathspec" -version = "0.11.0" +version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] [[package]] name = "pexpect" -version = "4.8.0" +version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." -category = "main" optional = false python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] [package.dependencies] ptyprocess = ">=0.5" @@ -1310,73 +2540,143 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" -category = "main" optional = false python-versions = "*" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] [[package]] name = "pillow" -version = "9.4.0" +version = "10.1.0" description = "Python Imaging Library (Fork)" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, + {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, + {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, + {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, + {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, + {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, + {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, +] [package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "pip" -version = "23.0.1" +version = "23.3.1" description = "The PyPA recommended tool for installing Python packages." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pip-23.3.1-py3-none-any.whl", hash = "sha256:55eb67bb6171d37447e82213be585b75fe2b12b359e993773aca4de9247a052b"}, + {file = "pip-23.3.1.tar.gz", hash = "sha256:1fcaa041308d01f14575f6d0d2ea4b75a3e2871fe4f9c694976f908768e14174"}, +] [[package]] name = "pip-api" version = "0.0.30" description = "An unofficial, importable pip API" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pip-api-0.0.30.tar.gz", hash = "sha256:a05df2c7aa9b7157374bcf4273544201a0c7bae60a9c65bcf84f3959ef3896f3"}, + {file = "pip_api-0.0.30-py3-none-any.whl", hash = "sha256:2a0314bd31522eb9ffe8a99668b0d07fee34ebc537931e7b6483001dbedcbdc9"}, +] [package.dependencies] pip = "*" [[package]] name = "pip-audit" -version = "2.4.14" +version = "2.6.1" description = "A tool for scanning Python environments for known vulnerabilities" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pip_audit-2.6.1-py3-none-any.whl", hash = "sha256:8a32bb67dca6a76c244bbccebed562c0f6957b1fc9d34d59a9ec0fbff0672ae0"}, + {file = "pip_audit-2.6.1.tar.gz", hash = "sha256:55c9bd18b0fe3959f73397db08d257c6012ad1826825e3d74cb6c3f79e95c245"}, +] [package.dependencies] -CacheControl = {version = ">=0.12.10", extras = ["filecache"]} -cyclonedx-python-lib = ">=2.0.0,<2.5.0 || >2.5.0" +CacheControl = {version = ">=0.13.0", extras = ["filecache"]} +cyclonedx-python-lib = ">=4.0,<5.0" html5lib = ">=1.1" packaging = ">=23.0.0" pip-api = ">=0.0.28" pip-requirements-parser = ">=32.0.0" -resolvelib = ">=0.8.0" +requests = ">=2.31.0" rich = ">=12.4" toml = ">=0.10" [package.extras] dev = ["build", "bump (>=1.3.2)", "pip-audit[doc,lint,test]"] doc = ["pdoc"] -lint = ["black (>=22.3.0)", "interrogate", "isort", "mypy", "ruff (<0.0.228)", "types-html5lib", "types-requests", "types-toml"] +lint = ["black (>=22.3.0)", "interrogate", "isort", "mypy", "ruff (<0.0.281)", "types-html5lib", "types-requests", "types-toml"] test = ["coverage[toml]", "pretend", "pytest", "pytest-cov"] [[package]] name = "pip-requirements-parser" version = "32.0.1" description = "pip requirements parser - a mostly correct pip requirements parsing library because it uses pip's own code." -category = "dev" optional = false python-versions = ">=3.6.0" +files = [ + {file = "pip-requirements-parser-32.0.1.tar.gz", hash = "sha256:b4fa3a7a0be38243123cf9d1f3518da10c51bdb165a2b2985566247f9155a7d3"}, + {file = "pip_requirements_parser-32.0.1-py3-none-any.whl", hash = "sha256:4659bc2a667783e7a15d190f6fccf8b2486685b6dba4c19c3876314769c57526"}, +] [package.dependencies] packaging = "*" @@ -1390,40 +2690,53 @@ testing = ["aboutcode-toolkit (>=6.0.0)", "black", "pytest (>=6,!=7.0.0)", "pyte name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, + {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, +] [[package]] name = "platformdirs" -version = "3.0.0" +version = "4.0.0" 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" +files = [ + {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, + {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, +] [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +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)"] [[package]] name = "plotly" -version = "5.13.0" +version = "5.18.0" description = "An open-source, interactive data visualization library for Python" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "plotly-5.18.0-py3-none-any.whl", hash = "sha256:23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de"}, + {file = "plotly-5.18.0.tar.gz", hash = "sha256:360a31e6fbb49d12b007036eb6929521343d6bee2236f8459915821baefa2cbb"}, +] [package.dependencies] +packaging = "*" tenacity = ">=6.2.0" [[package]] name = "pluggy" -version = "1.0.0" +version = "1.3.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, +] [package.extras] dev = ["pre-commit", "tox"] @@ -1431,41 +2744,76 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "prometheus-client" -version = "0.16.0" +version = "0.19.0" description = "Python client for the Prometheus monitoring system." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.19.0-py3-none-any.whl", hash = "sha256:c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92"}, + {file = "prometheus_client-0.19.0.tar.gz", hash = "sha256:4585b0d1223148c27a225b10dbec5ae9bc4c81a99a3fa80774fa6209935324e1"}, +] [package.extras] twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.36" +version = "3.0.41" description = "Library for building powerful interactive command lines in Python" -category = "main" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.41-py3-none-any.whl", hash = "sha256:f36fe301fafb7470e86aaf90f036eef600a3210be4decf461a5b1ca8403d3cb2"}, + {file = "prompt_toolkit-3.0.41.tar.gz", hash = "sha256:941367d97fc815548822aa26c2a269fdc4eb21e9ec05fc5d447cf09bad5d75f0"}, +] [package.dependencies] wcwidth = "*" [[package]] name = "protobuf" -version = "4.22.0" +version = "4.25.1" description = "" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "protobuf-4.25.1-cp310-abi3-win32.whl", hash = "sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7"}, + {file = "protobuf-4.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b"}, + {file = "protobuf-4.25.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7"}, + {file = "protobuf-4.25.1-cp38-cp38-win32.whl", hash = "sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd"}, + {file = "protobuf-4.25.1-cp38-cp38-win_amd64.whl", hash = "sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0"}, + {file = "protobuf-4.25.1-cp39-cp39-win32.whl", hash = "sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510"}, + {file = "protobuf-4.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10"}, + {file = "protobuf-4.25.1-py3-none-any.whl", hash = "sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6"}, + {file = "protobuf-4.25.1.tar.gz", hash = "sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2"}, +] [[package]] name = "psutil" -version = "5.9.4" +version = "5.9.6" description = "Cross-platform lib for process and system monitoring in Python." -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:fb8a697f11b0f5994550555fcfe3e69799e5b060c8ecf9e2f75c69302cc35c0d"}, + {file = "psutil-5.9.6-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:91ecd2d9c00db9817a4b4192107cf6954addb5d9d67a969a4f436dbc9200f88c"}, + {file = "psutil-5.9.6-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:10e8c17b4f898d64b121149afb136c53ea8b68c7531155147867b7b1ac9e7e28"}, + {file = "psutil-5.9.6-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:18cd22c5db486f33998f37e2bb054cc62fd06646995285e02a51b1e08da97017"}, + {file = "psutil-5.9.6-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:ca2780f5e038379e520281e4c032dddd086906ddff9ef0d1b9dcf00710e5071c"}, + {file = "psutil-5.9.6-cp27-none-win32.whl", hash = "sha256:70cb3beb98bc3fd5ac9ac617a327af7e7f826373ee64c80efd4eb2856e5051e9"}, + {file = "psutil-5.9.6-cp27-none-win_amd64.whl", hash = "sha256:51dc3d54607c73148f63732c727856f5febec1c7c336f8f41fcbd6315cce76ac"}, + {file = "psutil-5.9.6-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c69596f9fc2f8acd574a12d5f8b7b1ba3765a641ea5d60fb4736bf3c08a8214a"}, + {file = "psutil-5.9.6-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92e0cc43c524834af53e9d3369245e6cc3b130e78e26100d1f63cdb0abeb3d3c"}, + {file = "psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:748c9dd2583ed86347ed65d0035f45fa8c851e8d90354c122ab72319b5f366f4"}, + {file = "psutil-5.9.6-cp36-cp36m-win32.whl", hash = "sha256:3ebf2158c16cc69db777e3c7decb3c0f43a7af94a60d72e87b2823aebac3d602"}, + {file = "psutil-5.9.6-cp36-cp36m-win_amd64.whl", hash = "sha256:ff18b8d1a784b810df0b0fff3bcb50ab941c3b8e2c8de5726f9c71c601c611aa"}, + {file = "psutil-5.9.6-cp37-abi3-win32.whl", hash = "sha256:a6f01f03bf1843280f4ad16f4bde26b817847b4c1a0db59bf6419807bc5ce05c"}, + {file = "psutil-5.9.6-cp37-abi3-win_amd64.whl", hash = "sha256:6e5fb8dc711a514da83098bc5234264e551ad980cec5f85dabf4d38ed6f15e9a"}, + {file = "psutil-5.9.6-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:daecbcbd29b289aac14ece28eca6a3e60aa361754cf6da3dfb20d4d32b6c7f57"}, + {file = "psutil-5.9.6.tar.gz", hash = "sha256:e4b92ddcd7dd4cdd3f900180ea1e104932c7bce234fb88976e2a3b296441225a"}, +] [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] @@ -1474,17 +2822,23 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" -category = "main" optional = false python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] [[package]] name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" -category = "main" optional = false python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] [package.extras] tests = ["pytest"] @@ -1493,25 +2847,82 @@ tests = ["pytest"] name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + +[[package]] +name = "py-serializable" +version = "0.11.1" +description = "Library for serializing and deserializing Python Objects to and from JSON and XML." +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "py-serializable-0.11.1.tar.gz", hash = "sha256:ba0e1287b9e4f645a5334f1913abd8e647e7250209f84f55dce3909498a6f586"}, + {file = "py_serializable-0.11.1-py3-none-any.whl", hash = "sha256:79e21f0672822e6200b15f45ce9f636e8126466f62dbd7d488c67313c72b5c3e"}, +] + +[package.dependencies] +defusedxml = ">=0.7.1,<0.8.0" [[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.5" +version = "1.10.13" description = "Data validation and settings management using python type hints" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737"}, + {file = "pydantic-1.10.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01"}, + {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548"}, + {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8"}, + {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69"}, + {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17"}, + {file = "pydantic-1.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f"}, + {file = "pydantic-1.10.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653"}, + {file = "pydantic-1.10.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe"}, + {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9"}, + {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80"}, + {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580"}, + {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0"}, + {file = "pydantic-1.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0"}, + {file = "pydantic-1.10.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132"}, + {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5"}, + {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8"}, + {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87"}, + {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f"}, + {file = "pydantic-1.10.13-cp37-cp37m-win_amd64.whl", hash = "sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33"}, + {file = "pydantic-1.10.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261"}, + {file = "pydantic-1.10.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599"}, + {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127"}, + {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f"}, + {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78"}, + {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953"}, + {file = "pydantic-1.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f"}, + {file = "pydantic-1.10.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6"}, + {file = "pydantic-1.10.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691"}, + {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd"}, + {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1"}, + {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96"}, + {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d"}, + {file = "pydantic-1.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d"}, + {file = "pydantic-1.10.13-py3-none-any.whl", hash = "sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687"}, + {file = "pydantic-1.10.13.tar.gz", hash = "sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340"}, +] [package.dependencies] typing-extensions = ">=4.2.0" @@ -1522,33 +2933,43 @@ email = ["email-validator (>=1.0.3)"] [[package]] name = "pyglet" -version = "1.5.27" +version = "1.5.28" description = "Cross-platform windowing and multimedia library" -category = "main" optional = false python-versions = "*" +files = [ + {file = "pyglet-1.5.28-py3-none-any.whl", hash = "sha256:ea312a553c266a0f45a9c209f565e3c02371c83d89fd8931422c6475ce4ecbae"}, + {file = "pyglet-1.5.28.zip", hash = "sha256:68bff532226b0e8f54dfcc2f6df7d0e463b451fae97fe9fa4af4131d34afbc00"}, +] [[package]] name = "pygments" -version = "2.14.0" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylint" -version = "2.16.2" +version = "2.17.7" description = "python code static checker" -category = "dev" optional = false python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, + {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, +] [package.dependencies] -astroid = ">=2.14.2,<=2.16.0-dev0" +astroid = ">=2.15.8,<=2.17.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, @@ -1567,33 +2988,30 @@ testutils = ["gitpython (>3)"] [[package]] name = "pyparsing" -version = "3.0.9" +version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] -[[package]] -name = "pyrsistent" -version = "0.19.3" -description = "Persistent/Functional/Immutable data structures" -category = "main" -optional = false -python-versions = ">=3.7" - [[package]] name = "pytest" -version = "7.2.1" +version = "7.4.3" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, + {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, +] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" @@ -1602,120 +3020,376 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" - -[package.dependencies] +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"}, +] + +[package.dependencies] six = ">=1.5" [[package]] name = "python-json-logger" -version = "2.0.6" +version = "2.0.7" description = "A python library adding a json log formatter" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] [[package]] name = "pytz" -version = "2022.7.1" +version = "2023.3.post1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] [[package]] name = "pywin32" -version = "305" +version = "306" description = "Python for Window Extensions" -category = "main" optional = false python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] [[package]] name = "pywinpty" -version = "2.0.10" +version = "2.0.12" description = "Pseudo terminal support for Windows from Python." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.12-cp310-none-win_amd64.whl", hash = "sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575"}, + {file = "pywinpty-2.0.12-cp311-none-win_amd64.whl", hash = "sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722"}, + {file = "pywinpty-2.0.12-cp312-none-win_amd64.whl", hash = "sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca"}, + {file = "pywinpty-2.0.12-cp38-none-win_amd64.whl", hash = "sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d"}, + {file = "pywinpty-2.0.12-cp39-none-win_amd64.whl", hash = "sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4"}, + {file = "pywinpty-2.0.12.tar.gz", hash = "sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd"}, +] [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" +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-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {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-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {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-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {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-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {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-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {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"}, +] [[package]] name = "pyzmq" -version = "25.0.0" +version = "24.0.1" description = "Python bindings for 0MQ" -category = "main" optional = false python-versions = ">=3.6" +files = [ + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066"}, + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1"}, + {file = "pyzmq-24.0.1-cp310-cp310-win32.whl", hash = "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd"}, + {file = "pyzmq-24.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1"}, + {file = "pyzmq-24.0.1-cp311-cp311-win32.whl", hash = "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2"}, + {file = "pyzmq-24.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8"}, + {file = "pyzmq-24.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win32.whl", hash = "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be"}, + {file = "pyzmq-24.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win32.whl", hash = "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f"}, + {file = "pyzmq-24.0.1-cp38-cp38-win32.whl", hash = "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58"}, + {file = "pyzmq-24.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58"}, + {file = "pyzmq-24.0.1-cp39-cp39-win32.whl", hash = "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333"}, + {file = "pyzmq-24.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066"}, + {file = "pyzmq-24.0.1.tar.gz", hash = "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77"}, +] [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} +py = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "rapidfuzz" -version = "2.13.7" +version = "3.5.2" description = "rapid fuzzy string matching" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "rapidfuzz-3.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1a047d6e58833919d742bbc0dfa66d1de4f79e8562ee195007d3eae96635df39"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:22877c027c492b7dc7e3387a576a33ed5aad891104aa90da2e0844c83c5493ef"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e0f448b0eacbcc416feb634e1232a48d1cbde5e60f269c84e4fb0912f7bbb001"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d05146497672f869baf41147d5ec1222788c70e5b8b0cfcd6e95597c75b5b96b"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f2df3968738a38d2a0058b5e721753f5d3d602346a1027b0dde31b0476418f3"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5afc1fcf1830f9bb87d3b490ba03691081b9948a794ea851befd2643069a30c1"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84be69ea65f64fa01e5c4976be9826a5aa949f037508887add42da07420d65d6"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8658c1045766e87e0038323aa38b4a9f49b7f366563271f973c8890a98aa24b5"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:852b3f93c15fce58b8dc668bd54123713bfdbbb0796ba905ea5df99cfd083132"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:12424a06ad9bd0cbf5f7cea1015e78d924a0034a0e75a5a7b39c0703dcd94095"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b4e9ded8e80530bd7205a7a2b01802f934a4695ca9e9fbe1ce9644f5e0697864"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:affb8fe36157c2dc8a7bc45b6a1875eb03e2c49167a1d52789144bdcb7ab3b8c"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1d33a622572d384f4c90b5f7a139328246ab5600141e90032b521c2127bd605"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-win32.whl", hash = "sha256:2cf9f2ed4a97b388cffd48d534452a564c2491f68f4fd5bc140306f774ceb63a"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:6541ffb70097885f7302cd73e2efd77be99841103023c2f9408551f27f45f7a5"}, + {file = "rapidfuzz-3.5.2-cp310-cp310-win_arm64.whl", hash = "sha256:1dd2542e5103fb8ca46500a979ae14d1609dcba11d2f9fe01e99eec03420e193"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bff7d3127ebc5cd908f3a72f6517f31f5247b84666137556a8fcc5177c560939"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fdfdb3685b631d8efbb6d6d3d86eb631be2b408d9adafcadc11e63e3f9c96dec"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:97b043fe8185ec53bb3ff0e59deb89425c0fc6ece6e118939963aab473505801"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a4a7832737f87583f3863dc62e6f56dd4a9fefc5f04a7bdcb4c433a0f36bb1b"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d876dba9a11fcf60dcf1562c5a84ef559db14c2ceb41e1ad2d93cd1dc085889"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa4c0612893716bbb6595066ca9ecb517c982355abe39ba9d1f4ab834ace91ad"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:120316824333e376b88b284724cfd394c6ccfcb9818519eab5d58a502e5533f0"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9cdbe8e80cc186d55f748a34393533a052d855357d5398a1ccb71a5021b58e8d"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1062425c8358a547ae5ebad148f2e0f02417716a571b803b0c68e4d552e99d32"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:66be181965aff13301dd5f9b94b646ce39d99c7fe2fd5de1656f4ca7fafcb38c"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:53df7aea3cf301633cfa2b4b2c2d2441a87dfc878ef810e5b4eddcd3e68723ad"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:76639dca5eb0afc6424ac5f42d43d3bd342ac710e06f38a8c877d5b96de09589"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:27689361c747b5f7b8a26056bc60979875323f1c3dcaaa9e2fec88f03b20a365"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-win32.whl", hash = "sha256:99c9fc5265566fb94731dc6826f43c5109e797078264e6389a36d47814473692"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:666928ee735562a909d81bd2f63207b3214afd4ca41f790ab3025d066975c814"}, + {file = "rapidfuzz-3.5.2-cp311-cp311-win_arm64.whl", hash = "sha256:d55de67c48f06b7772541e8d4c062a2679205799ce904236e2836cb04c106442"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:04e1e02b182283c43c866e215317735e91d22f5d34e65400121c04d5ed7ed859"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:365e544aba3ac13acf1a62cb2e5909ad2ba078d0bfc7d69b1f801dfd673b9782"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b61f77d834f94b0099fa9ed35c189b7829759d4e9c2743697a130dd7ba62259f"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43fb368998b9703fa8c63db292a8ab9e988bf6da0c8a635754be8e69da1e7c1d"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25510b5d142c47786dbd27cfd9da7cae5bdea28d458379377a3644d8460a3404"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf3093443751e5a419834162af358d1e31dec75f84747a91dbbc47b2c04fc085"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fbaf546f15a924613f89d609ff66b85b4f4c2307ac14d93b80fe1025b713138"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32d580df0e130ed85400ff77e1c32d965e9bc7be29ac4072ab637f57e26d29fb"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:358a0fbc49343de20fee8ebdb33c7fa8f55a9ff93ff42d1ffe097d2caa248f1b"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fb379ac0ddfc86c5542a225d194f76ed468b071b6f79ff57c4b72e635605ad7d"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7fb21e182dc6d83617e88dea002963d5cf99cf5eabbdbf04094f503d8fe8d723"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:c04f9f1310ce414ab00bdcbf26d0906755094bfc59402cb66a7722c6f06d70b2"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6da61cc38c1a95efc5edcedf258759e6dbab73191651a28c5719587f32a56ad"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-win32.whl", hash = "sha256:f823fd1977071486739f484e27092765d693da6beedaceece54edce1dfeec9b2"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:a8162d81486de85ab1606e48e076431b66d44cf431b2b678e9cae458832e7147"}, + {file = "rapidfuzz-3.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:dfc63fabb7d8da8483ca836bae7e55766fe39c63253571e103c034ba8ea80950"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:df8fae2515a1e4936affccac3e7d506dd904de5ff82bc0b1433b4574a51b9bfb"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dd6384780c2a16097d47588844cd677316a90e0f41ef96ff485b62d58de79dcf"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:467a4d730ae3bade87dba6bd769e837ab97e176968ce20591fe8f7bf819115b1"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54576669c1502b751b534bd76a4aeaaf838ed88b30af5d5c1b7d0a3ca5d4f7b5"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abafeb82f85a651a9d6d642a33dc021606bc459c33e250925b25d6b9e7105a2e"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73e14617a520c0f1bc15eb78c215383477e5ca70922ecaff1d29c63c060e04ca"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7cdf92116e9dfe40da17f921cdbfa0039dde9eb158914fa5f01b1e67a20b19cb"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1962d5ccf8602589dbf8e85246a0ee2b4050d82fade1568fb76f8a4419257704"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:db45028eae2fda7a24759c69ebeb2a7fbcc1a326606556448ed43ee480237a3c"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b685abb8b6d97989f6c69556d7934e0e533aa8822f50b9517ff2da06a1d29f23"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:40139552961018216b8cd88f6df4ecbbe984f907a62a5c823ccd907132c29a14"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:0fef4705459842ef8f79746d6f6a0b5d2b6a61a145d7d8bbe10b2e756ea337c8"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6b2ad5516f7068c7d9cbcda8ac5906c589e99bc427df2e1050282ee2d8bc2d58"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-win32.whl", hash = "sha256:2da3a24c2f7dfca7f26ba04966b848e3bbeb93e54d899908ff88dfe3e1def9dc"}, + {file = "rapidfuzz-3.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:e3f2be79d4114d01f383096dbee51b57df141cb8b209c19d0cf65f23a24e75ba"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:089a7e96e5032821af5964d8457fcb38877cc321cdd06ad7c5d6e3d852264cb9"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:75d8a52bf8d1aa2ac968ae4b21b83b94fc7e5ea3dfbab34811fc60f32df505b2"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2bacce6bbc0362f0789253424269cc742b1f45e982430387db3abe1d0496e371"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5fd627e604ddc02db2ddb9ddc4a91dd92b7a6d6378fcf30bb37b49229072b89"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2e8b369f23f00678f6e673572209a5d3b0832f4991888e3df97af7b8b9decf3"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c29958265e4c2b937269e804b8a160c027ee1c2627d6152655008a8b8083630e"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00be97f9219355945c46f37ac9fa447046e6f7930f7c901e5d881120d1695458"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada0d8d57e0f556ef38c24fee71bfe8d0db29c678bff2acd1819fc1b74f331c2"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de89585268ed8ee44e80126814cae63ff6b00d08416481f31b784570ef07ec59"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:908ff2de9c442b379143d1da3c886c63119d4eba22986806e2533cee603fe64b"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:54f0061028723c026020f5bb20649c22bc8a0d9f5363c283bdc5901d4d3bff01"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b581107ec0c610cdea48b25f52030770be390db4a9a73ca58b8d70fa8a5ec32e"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1d5a686ea258931aaa38019204bdc670bbe14b389a230b1363d84d6cf4b9dc38"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-win32.whl", hash = "sha256:97f811ca7709c6ee8c0b55830f63b3d87086f4abbcbb189b4067e1cd7014db7b"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:58ee34350f8c292dd24a050186c0e18301d80da904ef572cf5fda7be6a954929"}, + {file = "rapidfuzz-3.5.2-cp39-cp39-win_arm64.whl", hash = "sha256:c5075ce7b9286624cafcf36720ef1cfb2946d75430b87cb4d1f006e82cd71244"}, + {file = "rapidfuzz-3.5.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:af5221e4f7800db3e84c46b79dba4112e3b3cc2678f808bdff4fcd2487073846"}, + {file = "rapidfuzz-3.5.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8501d7875b176930e6ed9dbc1bc35adb37ef312f6106bd6bb5c204adb90160ac"}, + {file = "rapidfuzz-3.5.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e414e1ca40386deda4291aa2d45062fea0fbaa14f95015738f8bb75c4d27f862"}, + {file = "rapidfuzz-3.5.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2059cd73b7ea779a9307d7a78ed743f0e3d33b88ccdcd84569abd2953cd859f"}, + {file = "rapidfuzz-3.5.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:58e3e21f6f13a7cca265cce492bc797425bd4cb2025fdd161a9e86a824ad65ce"}, + {file = "rapidfuzz-3.5.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b847a49377e64e92e11ef3d0a793de75451526c83af015bdafdd5d04de8a058a"}, + {file = "rapidfuzz-3.5.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a42c7a8c62b29c4810e39da22b42524295fcb793f41c395c2cb07c126b729e83"}, + {file = "rapidfuzz-3.5.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51b5166be86e09e011e92d9862b1fe64c4c7b9385f443fb535024e646d890460"}, + {file = "rapidfuzz-3.5.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f808dcb0088a7a496cc9895e66a7b8de55ffea0eb9b547c75dfb216dd5f76ed"}, + {file = "rapidfuzz-3.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d4b05a8f4ab7e7344459394094587b033fe259eea3a8720035e8ba30e79ab39b"}, + {file = "rapidfuzz-3.5.2.tar.gz", hash = "sha256:9e9b395743e12c36a3167a3a9fd1b4e11d92fb0aa21ec98017ee6df639ed385e"}, +] [package.extras] full = ["numpy"] +[[package]] +name = "referencing" +version = "0.31.1" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.31.1-py3-none-any.whl", hash = "sha256:c19c4d006f1757e3dd75c4f784d38f8698d87b649c54f9ace14e5e8c9667c01d"}, + {file = "referencing-0.31.1.tar.gz", hash = "sha256:81a1471c68c9d5e3831c30ad1dd9815c45b558e596653db751a2bfdd17b3b9ec"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + [[package]] name = "requests" -version = "2.28.2" +version = "2.31.0" description = "Python HTTP for Humans." -category = "dev" optional = false -python-versions = ">=3.7, <4" +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<1.27" +urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] -[[package]] -name = "resolvelib" -version = "0.9.0" -description = "Resolve abstract dependencies into concrete ones" -category = "dev" -optional = false -python-versions = "*" - -[package.extras] -examples = ["html5lib", "packaging", "pygraphviz", "requests"] -lint = ["black", "flake8", "isort", "mypy", "types-requests"] -release = ["build", "towncrier", "twine"] -test = ["commentjson", "packaging", "pytest"] - [[package]] name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] [package.dependencies] six = "*" @@ -1724,33 +3398,169 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] [[package]] name = "rich" -version = "13.3.1" +version = "13.7.0" 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.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, + {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, +] [package.dependencies] -markdown-it-py = ">=2.1.0,<3.0.0" -pygments = ">=2.14.0,<3.0.0" +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] +[[package]] +name = "rpds-py" +version = "0.13.2" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.13.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1ceebd0ae4f3e9b2b6b553b51971921853ae4eebf3f54086be0565d59291e53d"}, + {file = "rpds_py-0.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:46e1ed994a0920f350a4547a38471217eb86f57377e9314fbaaa329b71b7dfe3"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee353bb51f648924926ed05e0122b6a0b1ae709396a80eb583449d5d477fcdf7"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:530190eb0cd778363bbb7596612ded0bb9fef662daa98e9d92a0419ab27ae914"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d311e44dd16d2434d5506d57ef4d7036544fc3c25c14b6992ef41f541b10fb"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e72f750048b32d39e87fc85c225c50b2a6715034848dbb196bf3348aa761fa1"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db09b98c7540df69d4b47218da3fbd7cb466db0fb932e971c321f1c76f155266"}, + {file = "rpds_py-0.13.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2ac26f50736324beb0282c819668328d53fc38543fa61eeea2c32ea8ea6eab8d"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:12ecf89bd54734c3c2c79898ae2021dca42750c7bcfb67f8fb3315453738ac8f"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a44c8440183b43167fd1a0819e8356692bf5db1ad14ce140dbd40a1485f2dea"}, + {file = "rpds_py-0.13.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcef4f2d3dc603150421de85c916da19471f24d838c3c62a4f04c1eb511642c1"}, + {file = "rpds_py-0.13.2-cp310-none-win32.whl", hash = "sha256:ee6faebb265e28920a6f23a7d4c362414b3f4bb30607141d718b991669e49ddc"}, + {file = "rpds_py-0.13.2-cp310-none-win_amd64.whl", hash = "sha256:ac96d67b37f28e4b6ecf507c3405f52a40658c0a806dffde624a8fcb0314d5fd"}, + {file = "rpds_py-0.13.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:b5f6328e8e2ae8238fc767703ab7b95785521c42bb2b8790984e3477d7fa71ad"}, + {file = "rpds_py-0.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:729408136ef8d45a28ee9a7411917c9e3459cf266c7e23c2f7d4bb8ef9e0da42"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65cfed9c807c27dee76407e8bb29e6f4e391e436774bcc769a037ff25ad8646e"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aefbdc934115d2f9278f153952003ac52cd2650e7313750390b334518c589568"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48db29bd47814671afdd76c7652aefacc25cf96aad6daefa82d738ee87461e2"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c55d7f2d817183d43220738270efd3ce4e7a7b7cbdaefa6d551ed3d6ed89190"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aadae3042f8e6db3376d9e91f194c606c9a45273c170621d46128f35aef7cd0"}, + {file = "rpds_py-0.13.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5feae2f9aa7270e2c071f488fab256d768e88e01b958f123a690f1cc3061a09c"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51967a67ea0d7b9b5cd86036878e2d82c0b6183616961c26d825b8c994d4f2c8"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d0c10d803549427f427085ed7aebc39832f6e818a011dcd8785e9c6a1ba9b3e"}, + {file = "rpds_py-0.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:603d5868f7419081d616dab7ac3cfa285296735e7350f7b1e4f548f6f953ee7d"}, + {file = "rpds_py-0.13.2-cp311-none-win32.whl", hash = "sha256:b8996ffb60c69f677245f5abdbcc623e9442bcc91ed81b6cd6187129ad1fa3e7"}, + {file = "rpds_py-0.13.2-cp311-none-win_amd64.whl", hash = "sha256:5379e49d7e80dca9811b36894493d1c1ecb4c57de05c36f5d0dd09982af20211"}, + {file = "rpds_py-0.13.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8a776a29b77fe0cc28fedfd87277b0d0f7aa930174b7e504d764e0b43a05f381"}, + {file = "rpds_py-0.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2a1472956c5bcc49fb0252b965239bffe801acc9394f8b7c1014ae9258e4572b"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f252dfb4852a527987a9156cbcae3022a30f86c9d26f4f17b8c967d7580d65d2"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0d320e70b6b2300ff6029e234e79fe44e9dbbfc7b98597ba28e054bd6606a57"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ade2ccb937060c299ab0dfb2dea3d2ddf7e098ed63ee3d651ebfc2c8d1e8632a"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9d121be0217787a7d59a5c6195b0842d3f701007333426e5154bf72346aa658"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fa6bd071ec6d90f6e7baa66ae25820d57a8ab1b0a3c6d3edf1834d4b26fafa2"}, + {file = "rpds_py-0.13.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c918621ee0a3d1fe61c313f2489464f2ae3d13633e60f520a8002a5e910982ee"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:25b28b3d33ec0a78e944aaaed7e5e2a94ac811bcd68b557ca48a0c30f87497d2"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:31e220a040b89a01505128c2f8a59ee74732f666439a03e65ccbf3824cdddae7"}, + {file = "rpds_py-0.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:15253fff410873ebf3cfba1cc686a37711efcd9b8cb30ea21bb14a973e393f60"}, + {file = "rpds_py-0.13.2-cp312-none-win32.whl", hash = "sha256:b981a370f8f41c4024c170b42fbe9e691ae2dbc19d1d99151a69e2c84a0d194d"}, + {file = "rpds_py-0.13.2-cp312-none-win_amd64.whl", hash = "sha256:4c4e314d36d4f31236a545696a480aa04ea170a0b021e9a59ab1ed94d4c3ef27"}, + {file = "rpds_py-0.13.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:80e5acb81cb49fd9f2d5c08f8b74ffff14ee73b10ca88297ab4619e946bcb1e1"}, + {file = "rpds_py-0.13.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:efe093acc43e869348f6f2224df7f452eab63a2c60a6c6cd6b50fd35c4e075ba"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c2a61c0e4811012b0ba9f6cdcb4437865df5d29eab5d6018ba13cee1c3064a0"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:751758d9dd04d548ec679224cc00e3591f5ebf1ff159ed0d4aba6a0746352452"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ba8858933f0c1a979781272a5f65646fca8c18c93c99c6ddb5513ad96fa54b1"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfdfbe6a36bc3059fff845d64c42f2644cf875c65f5005db54f90cdfdf1df815"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa0379c1935c44053c98826bc99ac95f3a5355675a297ac9ce0dfad0ce2d50ca"}, + {file = "rpds_py-0.13.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5593855b5b2b73dd8413c3fdfa5d95b99d657658f947ba2c4318591e745d083"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2a7bef6977043673750a88da064fd513f89505111014b4e00fbdd13329cd4e9a"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:3ab96754d23372009638a402a1ed12a27711598dd49d8316a22597141962fe66"}, + {file = "rpds_py-0.13.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e06cfea0ece444571d24c18ed465bc93afb8c8d8d74422eb7026662f3d3f779b"}, + {file = "rpds_py-0.13.2-cp38-none-win32.whl", hash = "sha256:5493569f861fb7b05af6d048d00d773c6162415ae521b7010197c98810a14cab"}, + {file = "rpds_py-0.13.2-cp38-none-win_amd64.whl", hash = "sha256:b07501b720cf060c5856f7b5626e75b8e353b5f98b9b354a21eb4bfa47e421b1"}, + {file = "rpds_py-0.13.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:881df98f0a8404d32b6de0fd33e91c1b90ed1516a80d4d6dc69d414b8850474c"}, + {file = "rpds_py-0.13.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d79c159adea0f1f4617f54aa156568ac69968f9ef4d1e5fefffc0a180830308e"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38d4f822ee2f338febcc85aaa2547eb5ba31ba6ff68d10b8ec988929d23bb6b4"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5d75d6d220d55cdced2f32cc22f599475dbe881229aeddba6c79c2e9df35a2b3"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d97e9ae94fb96df1ee3cb09ca376c34e8a122f36927230f4c8a97f469994bff"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67a429520e97621a763cf9b3ba27574779c4e96e49a27ff8a1aa99ee70beb28a"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:188435794405c7f0573311747c85a96b63c954a5f2111b1df8018979eca0f2f0"}, + {file = "rpds_py-0.13.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:38f9bf2ad754b4a45b8210a6c732fe876b8a14e14d5992a8c4b7c1ef78740f53"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a6ba2cb7d676e9415b9e9ac7e2aae401dc1b1e666943d1f7bc66223d3d73467b"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:eaffbd8814bb1b5dc3ea156a4c5928081ba50419f9175f4fc95269e040eff8f0"}, + {file = "rpds_py-0.13.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a4c1058cdae6237d97af272b326e5f78ee7ee3bbffa6b24b09db4d828810468"}, + {file = "rpds_py-0.13.2-cp39-none-win32.whl", hash = "sha256:b5267feb19070bef34b8dea27e2b504ebd9d31748e3ecacb3a4101da6fcb255c"}, + {file = "rpds_py-0.13.2-cp39-none-win_amd64.whl", hash = "sha256:ddf23960cb42b69bce13045d5bc66f18c7d53774c66c13f24cf1b9c144ba3141"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:97163a1ab265a1073a6372eca9f4eeb9f8c6327457a0b22ddfc4a17dcd613e74"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:25ea41635d22b2eb6326f58e608550e55d01df51b8a580ea7e75396bafbb28e9"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d59d4d451ba77f08cb4cd9268dec07be5bc65f73666302dbb5061989b17198"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7c564c58cf8f248fe859a4f0fe501b050663f3d7fbc342172f259124fb59933"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61dbc1e01dc0c5875da2f7ae36d6e918dc1b8d2ce04e871793976594aad8a57a"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdb82eb60d31b0c033a8e8ee9f3fc7dfbaa042211131c29da29aea8531b4f18f"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d204957169f0b3511fb95395a9da7d4490fb361763a9f8b32b345a7fe119cb45"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c45008ca79bad237cbc03c72bc5205e8c6f66403773929b1b50f7d84ef9e4d07"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:79bf58c08f0756adba691d480b5a20e4ad23f33e1ae121584cf3a21717c36dfa"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e86593bf8637659e6a6ed58854b6c87ec4e9e45ee8a4adfd936831cef55c2d21"}, + {file = "rpds_py-0.13.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:d329896c40d9e1e5c7715c98529e4a188a1f2df51212fd65102b32465612b5dc"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4a5375c5fff13f209527cd886dc75394f040c7d1ecad0a2cb0627f13ebe78a12"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:06d218e4464d31301e943b65b2c6919318ea6f69703a351961e1baaf60347276"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1f41d32a2ddc5a94df4b829b395916a4b7f103350fa76ba6de625fcb9e773ac"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6bc568b05e02cd612be53900c88aaa55012e744930ba2eeb56279db4c6676eb3"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d94d78418203904730585efa71002286ac4c8ac0689d0eb61e3c465f9e608ff"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bed0252c85e21cf73d2d033643c945b460d6a02fc4a7d644e3b2d6f5f2956c64"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:244e173bb6d8f3b2f0c4d7370a1aa341f35da3e57ffd1798e5b2917b91731fd3"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7f55cd9cf1564b7b03f238e4c017ca4794c05b01a783e9291065cb2858d86ce4"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f03a1b3a4c03e3e0161642ac5367f08479ab29972ea0ffcd4fa18f729cd2be0a"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:f5f4424cb87a20b016bfdc157ff48757b89d2cc426256961643d443c6c277007"}, + {file = "rpds_py-0.13.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c82bbf7e03748417c3a88c1b0b291288ce3e4887a795a3addaa7a1cfd9e7153e"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c0095b8aa3e432e32d372e9a7737e65b58d5ed23b9620fea7cb81f17672f1fa1"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4c2d26aa03d877c9730bf005621c92da263523a1e99247590abbbe252ccb7824"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96f2975fb14f39c5fe75203f33dd3010fe37d1c4e33177feef1107b5ced750e3"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4dcc5ee1d0275cb78d443fdebd0241e58772a354a6d518b1d7af1580bbd2c4e8"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61d42d2b08430854485135504f672c14d4fc644dd243a9c17e7c4e0faf5ed07e"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d3a61e928feddc458a55110f42f626a2a20bea942ccedb6fb4cee70b4830ed41"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7de12b69d95072394998c622cfd7e8cea8f560db5fca6a62a148f902a1029f8b"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:87a90f5545fd61f6964e65eebde4dc3fa8660bb7d87adb01d4cf17e0a2b484ad"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:9c95a1a290f9acf7a8f2ebbdd183e99215d491beea52d61aa2a7a7d2c618ddc6"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:35f53c76a712e323c779ca39b9a81b13f219a8e3bc15f106ed1e1462d56fcfe9"}, + {file = "rpds_py-0.13.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:96fb0899bb2ab353f42e5374c8f0789f54e0a94ef2f02b9ac7149c56622eaf31"}, + {file = "rpds_py-0.13.2.tar.gz", hash = "sha256:f8eae66a1304de7368932b42d801c67969fd090ddb1a7a24f27b435ed4bed68f"}, +] + [[package]] name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" -category = "main" optional = false python-versions = "<3.12,>=3.8" +files = [ + {file = "scipy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019"}, + {file = "scipy-1.10.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e"}, + {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f"}, + {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2"}, + {file = "scipy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"}, + {file = "scipy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd"}, + {file = "scipy-1.10.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5"}, + {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35"}, + {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d"}, + {file = "scipy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f"}, + {file = "scipy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35"}, + {file = "scipy-1.10.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88"}, + {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1"}, + {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f"}, + {file = "scipy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415"}, + {file = "scipy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9"}, + {file = "scipy-1.10.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6"}, + {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353"}, + {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601"}, + {file = "scipy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea"}, + {file = "scipy-1.10.1.tar.gz", hash = "sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5"}, +] [package.dependencies] numpy = ">=1.19.5,<1.27.0" @@ -1762,103 +3572,95 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo [[package]] name = "send2trash" -version = "1.8.0" -description = "Send file to trash natively under Mac OS X, Windows and Linux." -category = "main" +version = "1.8.2" +description = "Send file to trash natively under Mac OS X, Windows and Linux" optional = false -python-versions = "*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, + {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, +] [package.extras] nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] -[[package]] -name = "setuptools" -version = "67.3.2" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" -optional = false -python-versions = ">=3.7" - -[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 (<5)", "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-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "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"] - -[[package]] -name = "setuptools-scm" -version = "7.1.0" -description = "the blessed package to manage your versions by scm tags" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -packaging = ">=20.0" -setuptools = "*" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} -typing-extensions = "*" - -[package.extras] -test = ["pytest (>=6.2)", "virtualenv (>20)"] -toml = ["setuptools (>=42)"] - [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] [[package]] name = "sklearn" -version = "0.0.post1" +version = "0.0.post11" description = "deprecated sklearn package, use scikit-learn instead" -category = "main" optional = false python-versions = "*" +files = [ + {file = "sklearn-0.0.post11.tar.gz", hash = "sha256:af035c4f0b970b7fc2d3856079aa1aa1032df3d7f65048a9d87114abf13c4629"}, +] [[package]] name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] [[package]] name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] [[package]] name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "dev" optional = false python-versions = "*" +files = [ + {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, + {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, +] [[package]] name = "soupsieve" -version = "2.4" +version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] [[package]] name = "sphinx" version = "5.3.0" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, + {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, +] [package.dependencies] alabaster = ">=0.7,<0.8" @@ -1888,9 +3690,12 @@ test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] name = "sphinx-autobuild" version = "2021.3.14" description = "Rebuild Sphinx documentation on changes, with live-reload in the browser." -category = "dev" optional = false python-versions = ">=3.6" +files = [ + {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, + {file = "sphinx_autobuild-2021.3.14-py3-none-any.whl", hash = "sha256:8fe8cbfdb75db04475232f05187c776f46f6e9e04cacf1e49ce81bdac649ccac"}, +] [package.dependencies] colorama = "*" @@ -1904,25 +3709,31 @@ test = ["pytest", "pytest-cov"] name = "sphinx-gallery" version = "0.11.1" description = "A Sphinx extension that builds an HTML version of any Python script and puts it into an examples gallery." -category = "dev" optional = false python-versions = ">=3.7" +files = [ + {file = "sphinx-gallery-0.11.1.tar.gz", hash = "sha256:56ccb29a0c2c4767d2a66617ba6ea7893e3a3885b6d972c62783a3b45b583ea5"}, + {file = "sphinx_gallery-0.11.1-py3-none-any.whl", hash = "sha256:b165cb366a5768a0f36e60e5bc6828fbf55fd1831e71645310167375223aa25c"}, +] [package.dependencies] sphinx = ">=3" [[package]] name = "sphinx-rtd-theme" -version = "1.2.0" +version = "1.3.0" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, + {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, +] [package.dependencies] docutils = "<0.19" -sphinx = ">=1.6,<7" -sphinxcontrib-jquery = {version = ">=2.0.0,<3.0.0 || >3.0.0", markers = "python_version > \"3\""} +sphinx = ">=1.6,<8" +sphinxcontrib-jquery = ">=4,<5" [package.extras] dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] @@ -1931,9 +3742,12 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1943,9 +3757,12 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1955,9 +3772,12 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -1965,22 +3785,28 @@ test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jquery" -version = "2.0.0" +version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" +files = [ + {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, + {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, +] [package.dependencies] -setuptools = "*" +Sphinx = ">=1.8" [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] [package.extras] test = ["flake8", "mypy", "pytest"] @@ -1989,9 +3815,12 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -2001,9 +3830,12 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" optional = false python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] @@ -2011,11 +3843,14 @@ test = ["pytest"] [[package]] name = "stack-data" -version = "0.6.2" +version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" -category = "main" optional = false python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] [package.dependencies] asttokens = ">=2.1.0" @@ -2027,22 +3862,28 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "tenacity" -version = "8.2.1" +version = "8.2.3" description = "Retry code until it succeeds" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "tenacity-8.2.3-py3-none-any.whl", hash = "sha256:ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c"}, + {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, +] [package.extras] doc = ["reno", "sphinx", "tornado (>=4.5)"] [[package]] name = "terminado" -version = "0.17.1" +version = "0.18.0" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.0-py3-none-any.whl", hash = "sha256:87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e"}, + {file = "terminado-0.18.0.tar.gz", hash = "sha256:1ea08a89b835dd1b8c0c900d92848147cef2537243361b2e3f4dc15df9b6fded"}, +] [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} @@ -2052,14 +3893,29 @@ tornado = ">=6.1.0" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "texttable" +version = "1.7.0" +description = "module to create simple ASCII tables" +optional = false +python-versions = "*" +files = [ + {file = "texttable-1.7.0-py2.py3-none-any.whl", hash = "sha256:72227d592c82b3d7f672731ae73e4d1f88cd8e2ef5b075a7a7f01a23a3743917"}, + {file = "texttable-1.7.0.tar.gz", hash = "sha256:2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638"}, +] [[package]] name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] [package.dependencies] webencodings = ">=0.4" @@ -2072,1972 +3928,332 @@ test = ["flake8", "isort", "pytest"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] [[package]] name = "tomlkit" -version = "0.11.6" +version = "0.12.3" description = "Style preserving TOML library" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"}, + {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, +] [[package]] name = "tornado" -version = "6.2" +version = "6.4" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "main" optional = false -python-versions = ">= 3.7" +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, +] [[package]] name = "traitlets" -version = "5.9.0" +version = "5.14.0" description = "Traitlets Python configuration system" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.0-py3-none-any.whl", hash = "sha256:f14949d23829023013c47df20b4a76ccd1a85effb786dc060f34de7948361b33"}, + {file = "traitlets-5.14.0.tar.gz", hash = "sha256:fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772"}, +] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "trimesh" -version = "3.20.0" +version = "3.23.5" description = "Import, export, process, analyze and view triangular meshes." -category = "main" optional = false python-versions = "*" +files = [ + {file = "trimesh-3.23.5-py3-none-any.whl", hash = "sha256:9cfc592c7ad6475ebfe51c90b0a1e686d627735cea6e6e18e40745be3ecfaab9"}, + {file = "trimesh-3.23.5.tar.gz", hash = "sha256:bdfd669eccc4b3faff2328200a49408cd5ecad9f19b6022c4adb554bbb3a2621"}, +] [package.dependencies] numpy = "*" [package.extras] -all = ["chardet", "colorlog", "glooey", "jsonschema", "lxml", "mapbox-earcut", "meshio", "msgpack", "networkx", "pillow", "psutil", "pycollada", "pyglet (<2)", "python-fcl", "requests", "rtree", "scikit-image", "scipy", "setuptools", "shapely", "svg.path", "sympy", "xatlas", "xxhash"] -easy = ["chardet", "colorlog", "jsonschema", "lxml", "mapbox-earcut", "msgpack", "networkx", "pillow", "pycollada", "requests", "rtree", "scipy", "setuptools", "shapely", "svg.path", "sympy", "xxhash"] -test = ["autopep8", "coveralls", "ezdxf", "pyinstrument", "pytest", "pytest-cov", "ruff"] +all = ["chardet", "colorlog", "embreex", "jsonschema", "lxml", "mapbox-earcut", "networkx", "pillow", "psutil", "pycollada", "pyglet (<2)", "python-fcl", "requests", "rtree", "scikit-image", "scipy", "setuptools", "shapely", "svg.path", "xatlas", "xxhash"] +easy = ["chardet", "colorlog", "embreex", "jsonschema", "lxml", "mapbox-earcut", "networkx", "pillow", "pycollada", "requests", "rtree", "scipy", "setuptools", "shapely", "svg.path", "xxhash"] +recommends = ["glooey", "meshio", "sympy"] +test = ["autopep8 (<2)", "coveralls", "ezdxf", "pyinstrument", "pymeshlab", "pytest", "pytest-cov", "ruff"] + +[[package]] +name = "types-python-dateutil" +version = "2.8.19.14" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = "*" +files = [ + {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, + {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, +] [[package]] name = "typing-extensions" -version = "4.5.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, +] [[package]] name = "uri-template" -version = "1.2.0" +version = "1.3.0" description = "RFC 6570 URI Template Processor" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] [package.extras] -dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-noqa", "flake8-requirements", "flake8-type-annotations", "flake8-use-fstring", "mypy", "pep8-naming"] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] [[package]] name = "urllib3" -version = "1.26.14" +version = "2.1.0" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "dev" 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-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, +] [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)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "wcwidth" -version = "0.2.6" +version = "0.2.12" description = "Measures the displayed width of unicode strings in a terminal" -category = "main" optional = false python-versions = "*" +files = [ + {file = "wcwidth-0.2.12-py2.py3-none-any.whl", hash = "sha256:f26ec43d96c8cbfed76a5075dac87680124fa84e0855195a6184da9c187f133c"}, + {file = "wcwidth-0.2.12.tar.gz", hash = "sha256:f01c104efdf57971bcb756f054dd58ddec5204dd15fa31d6503ea57947d97c02"}, +] [[package]] name = "webcolors" -version = "1.12" -description = "A library for working with color names and color values formats defined by HTML and CSS." -category = "main" +version = "1.13" +description = "A library for working with the color formats defined by HTML and CSS." optional = false python-versions = ">=3.7" +files = [ + {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, + {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["pytest", "pytest-cov"] [[package]] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" -category = "main" optional = false python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] [[package]] name = "websocket-client" -version = "1.5.1" +version = "1.6.4" description = "WebSocket client for Python with low level API options" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "websocket-client-1.6.4.tar.gz", hash = "sha256:b3324019b3c28572086c4a319f91d1dcd44e6e11cd340232978c684a7650d0df"}, + {file = "websocket_client-1.6.4-py3-none-any.whl", hash = "sha256:084072e0a7f5f347ef2ac3d8698a5e0b4ffbfcab607628cadabc650fc9a83a24"}, +] [package.extras] -docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] [[package]] name = "werkzeug" -version = "2.2.3" +version = "2.3.8" description = "The comprehensive WSGI web application library." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "werkzeug-2.3.8-py3-none-any.whl", hash = "sha256:bba1f19f8ec89d4d607a3bd62f1904bd2e609472d93cd85e9d4e178f472c3748"}, + {file = "werkzeug-2.3.8.tar.gz", hash = "sha256:554b257c74bbeb7a0d254160a4f8ffe185243f52a52035060b761ca62d977f03"}, +] [package.dependencies] MarkupSafe = ">=2.1.1" [package.extras] -watchdog = ["watchdog"] +watchdog = ["watchdog (>=2.3)"] [[package]] name = "wheel-filename" version = "1.4.1" description = "Parse wheel filenames" -category = "dev" optional = false python-versions = "~=3.6" +files = [ + {file = "wheel-filename-1.4.1.tar.gz", hash = "sha256:e2e1eb0780910a0148358252aad6394cc674250686c56c39aa379493438370b3"}, + {file = "wheel_filename-1.4.1-py3-none-any.whl", hash = "sha256:a53d8ece58822eb27b3a8841c6b4bebf357f19ff0dd83ce9179756f64a4bc0df"}, +] [[package]] name = "win32-setctime" version = "1.1.0" description = "A small Python utility to set file creation time on Windows" -category = "main" optional = false python-versions = ">=3.5" +files = [ + {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, + {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, +] [package.extras] dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] [[package]] name = "wrapt" -version = "1.14.1" +version = "1.16.0" description = "Module for decorators, wrappers and monkey patching." -category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] [[package]] name = "zipp" -version = "3.14.0" +version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +files = [ + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, +] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "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"] [metadata] -lock-version = "1.1" +lock-version = "2.0" python-versions = ">=3.8, <3.12" -content-hash = "493fbc05dca876d0f1c1cbb03c096f361b6ee7af61de55e42816143dc63d4abc" - -[metadata.files] -alabaster = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, -] -anyio = [ - {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, - {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, -] -appnope = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, -] -argon2-cffi = [ - {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, - {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, -] -argon2-cffi-bindings = [ - {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, - {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, -] -arrow = [ - {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, - {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, -] -astroid = [ - {file = "astroid-2.14.2-py3-none-any.whl", hash = "sha256:0e0e3709d64fbffd3037e4ff403580550f14471fd3eaae9fa11cc9a5c7901153"}, - {file = "astroid-2.14.2.tar.gz", hash = "sha256:a3cf9f02c53dd259144a7e8f3ccd75d67c9a8c716ef183e0c1f291bc5d7bb3cf"}, -] -asttokens = [ - {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, - {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, -] -attrs = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, -] -babel = [ - {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, - {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, -] -backcall = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] -beautifulsoup4 = [ - {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"}, - {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"}, -] -black = [ - {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, - {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, - {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, - {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, - {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, - {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, - {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, - {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, - {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, - {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, - {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, - {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, -] -bleach = [ - {file = "bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"}, - {file = "bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414"}, -] -cachecontrol = [ - {file = "CacheControl-0.12.11-py2.py3-none-any.whl", hash = "sha256:2c75d6a8938cb1933c75c50184549ad42728a27e9f6b92fd677c3151aa72555b"}, - {file = "CacheControl-0.12.11.tar.gz", hash = "sha256:a5b9fcc986b184db101aa280b42ecdcdfc524892596f606858e0b7a8b4d9e144"}, -] -certifi = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] -cffi = [ - {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"}, -] -charset-normalizer = [ - {file = "charset-normalizer-3.0.1.tar.gz", hash = "sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-win32.whl", hash = "sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b"}, - {file = "charset_normalizer-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-win32.whl", hash = "sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3"}, - {file = "charset_normalizer-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-win32.whl", hash = "sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41"}, - {file = "charset_normalizer-3.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-win32.whl", hash = "sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154"}, - {file = "charset_normalizer-3.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-win32.whl", hash = "sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e"}, - {file = "charset_normalizer-3.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-win32.whl", hash = "sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8"}, - {file = "charset_normalizer-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59"}, - {file = "charset_normalizer-3.0.1-py3-none-any.whl", hash = "sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24"}, -] -check-wheel-contents = [ - {file = "check-wheel-contents-0.3.4.tar.gz", hash = "sha256:056cc04a66416e5a52b66c294199865081b163ef92abac723126d6838466c11d"}, - {file = "check_wheel_contents-0.3.4-py3-none-any.whl", hash = "sha256:bbd2ea64db5fb4700eca15f84dc3c0d620f5dbe48c6467f5a2ef010bda54a4cb"}, -] -cleo = [ - {file = "cleo-2.0.1-py3-none-any.whl", hash = "sha256:6eb133670a3ed1f3b052d53789017b6e50fca66d1287e6e6696285f4cb8ea448"}, - {file = "cleo-2.0.1.tar.gz", hash = "sha256:eb4b2e1f3063c11085cebe489a6e9124163c226575a3c3be69b2e51af4a15ec5"}, -] -click = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] -colorama = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] -comm = [ - {file = "comm-0.1.2-py3-none-any.whl", hash = "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666"}, - {file = "comm-0.1.2.tar.gz", hash = "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062"}, -] -contourpy = [ - {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:95c3acddf921944f241b6773b767f1cbce71d03307270e2d769fd584d5d1092d"}, - {file = "contourpy-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc1464c97579da9f3ab16763c32e5c5d5bb5fa1ec7ce509a4ca6108b61b84fab"}, - {file = "contourpy-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8acf74b5d383414401926c1598ed77825cd530ac7b463ebc2e4f46638f56cce6"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c71fdd8f1c0f84ffd58fca37d00ca4ebaa9e502fb49825484da075ac0b0b803"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f99e9486bf1bb979d95d5cffed40689cb595abb2b841f2991fc894b3452290e8"}, - {file = "contourpy-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87f4d8941a9564cda3f7fa6a6cd9b32ec575830780677932abdec7bcb61717b0"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e20e5a1908e18aaa60d9077a6d8753090e3f85ca25da6e25d30dc0a9e84c2c6"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a877ada905f7d69b2a31796c4b66e31a8068b37aa9b78832d41c82fc3e056ddd"}, - {file = "contourpy-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6381fa66866b0ea35e15d197fc06ac3840a9b2643a6475c8fff267db8b9f1e69"}, - {file = "contourpy-1.0.7-cp310-cp310-win32.whl", hash = "sha256:3c184ad2433635f216645fdf0493011a4667e8d46b34082f5a3de702b6ec42e3"}, - {file = "contourpy-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:3caea6365b13119626ee996711ab63e0c9d7496f65641f4459c60a009a1f3e80"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed33433fc3820263a6368e532f19ddb4c5990855e4886088ad84fd7c4e561c71"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:38e2e577f0f092b8e6774459317c05a69935a1755ecfb621c0a98f0e3c09c9a5"}, - {file = "contourpy-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae90d5a8590e5310c32a7630b4b8618cef7563cebf649011da80874d0aa8f414"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:130230b7e49825c98edf0b428b7aa1125503d91732735ef897786fe5452b1ec2"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58569c491e7f7e874f11519ef46737cea1d6eda1b514e4eb5ac7dab6aa864d02"}, - {file = "contourpy-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54d43960d809c4c12508a60b66cb936e7ed57d51fb5e30b513934a4a23874fae"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:152fd8f730c31fd67fe0ffebe1df38ab6a669403da93df218801a893645c6ccc"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9056c5310eb1daa33fc234ef39ebfb8c8e2533f088bbf0bc7350f70a29bde1ac"}, - {file = "contourpy-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a9d7587d2fdc820cc9177139b56795c39fb8560f540bba9ceea215f1f66e1566"}, - {file = "contourpy-1.0.7-cp311-cp311-win32.whl", hash = "sha256:4ee3ee247f795a69e53cd91d927146fb16c4e803c7ac86c84104940c7d2cabf0"}, - {file = "contourpy-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:5caeacc68642e5f19d707471890f037a13007feba8427eb7f2a60811a1fc1350"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd7dc0e6812b799a34f6d12fcb1000539098c249c8da54f3566c6a6461d0dbad"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0f9d350b639db6c2c233d92c7f213d94d2e444d8e8fc5ca44c9706cf72193772"}, - {file = "contourpy-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e96a08b62bb8de960d3a6afbc5ed8421bf1a2d9c85cc4ea73f4bc81b4910500f"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:031154ed61f7328ad7f97662e48660a150ef84ee1bc8876b6472af88bf5a9b98"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e9ebb4425fc1b658e13bace354c48a933b842d53c458f02c86f371cecbedecc"}, - {file = "contourpy-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efb8f6d08ca7998cf59eaf50c9d60717f29a1a0a09caa46460d33b2924839dbd"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6c180d89a28787e4b73b07e9b0e2dac7741261dbdca95f2b489c4f8f887dd810"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b8d587cc39057d0afd4166083d289bdeff221ac6d3ee5046aef2d480dc4b503c"}, - {file = "contourpy-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:769eef00437edf115e24d87f8926955f00f7704bede656ce605097584f9966dc"}, - {file = "contourpy-1.0.7-cp38-cp38-win32.whl", hash = "sha256:62398c80ef57589bdbe1eb8537127321c1abcfdf8c5f14f479dbbe27d0322e66"}, - {file = "contourpy-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:57119b0116e3f408acbdccf9eb6ef19d7fe7baf0d1e9aaa5381489bc1aa56556"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:30676ca45084ee61e9c3da589042c24a57592e375d4b138bd84d8709893a1ba4"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e927b3868bd1e12acee7cc8f3747d815b4ab3e445a28d2e5373a7f4a6e76ba1"}, - {file = "contourpy-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:366a0cf0fc079af5204801786ad7a1c007714ee3909e364dbac1729f5b0849e5"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89ba9bb365446a22411f0673abf6ee1fea3b2cf47b37533b970904880ceb72f3"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71b0bf0c30d432278793d2141362ac853859e87de0a7dee24a1cea35231f0d50"}, - {file = "contourpy-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7281244c99fd7c6f27c1c6bfafba878517b0b62925a09b586d88ce750a016d2"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b6d0f9e1d39dbfb3977f9dd79f156c86eb03e57a7face96f199e02b18e58d32a"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7f6979d20ee5693a1057ab53e043adffa1e7418d734c1532e2d9e915b08d8ec2"}, - {file = "contourpy-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5dd34c1ae752515318224cba7fc62b53130c45ac6a1040c8b7c1a223c46e8967"}, - {file = "contourpy-1.0.7-cp39-cp39-win32.whl", hash = "sha256:c5210e5d5117e9aec8c47d9156d1d3835570dd909a899171b9535cb4a3f32693"}, - {file = "contourpy-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:60835badb5ed5f4e194a6f21c09283dd6e007664a86101431bf870d9e86266c4"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ce41676b3d0dd16dbcfabcc1dc46090aaf4688fd6e819ef343dbda5a57ef0161"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a011cf354107b47c58ea932d13b04d93c6d1d69b8b6dce885e642531f847566"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31a55dccc8426e71817e3fe09b37d6d48ae40aae4ecbc8c7ad59d6893569c436"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69f8ff4db108815addd900a74df665e135dbbd6547a8a69333a68e1f6e368ac2"}, - {file = "contourpy-1.0.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:efe99298ba37e37787f6a2ea868265465410822f7bea163edcc1bd3903354ea9"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a1e97b86f73715e8670ef45292d7cc033548266f07d54e2183ecb3c87598888f"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc331c13902d0f50845099434cd936d49d7a2ca76cb654b39691974cb1e4812d"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24847601071f740837aefb730e01bd169fbcaa610209779a78db7ebb6e6a7051"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abf298af1e7ad44eeb93501e40eb5a67abbf93b5d90e468d01fc0c4451971afa"}, - {file = "contourpy-1.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:64757f6460fc55d7e16ed4f1de193f362104285c667c112b50a804d482777edd"}, - {file = "contourpy-1.0.7.tar.gz", hash = "sha256:d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e"}, -] -crashtest = [ - {file = "crashtest-0.4.1-py3-none-any.whl", hash = "sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"}, - {file = "crashtest-0.4.1.tar.gz", hash = "sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce"}, -] -cycler = [ - {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, - {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, -] -cyclonedx-python-lib = [ - {file = "cyclonedx_python_lib-3.1.5-py3-none-any.whl", hash = "sha256:8981ca462fba91469c268d684a03f72c89c7a807674d884f83a28d8c2822a9b6"}, - {file = "cyclonedx_python_lib-3.1.5.tar.gz", hash = "sha256:1ccd482024a30b95c4fffb3fe567a9df97b705f34c1075f8abde8537867600c3"}, -] -debugpy = [ - {file = "debugpy-1.6.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664"}, - {file = "debugpy-1.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e"}, - {file = "debugpy-1.6.6-cp310-cp310-win32.whl", hash = "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494"}, - {file = "debugpy-1.6.6-cp310-cp310-win_amd64.whl", hash = "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917"}, - {file = "debugpy-1.6.6-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110"}, - {file = "debugpy-1.6.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca"}, - {file = "debugpy-1.6.6-cp37-cp37m-win32.whl", hash = "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b"}, - {file = "debugpy-1.6.6-cp37-cp37m-win_amd64.whl", hash = "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305"}, - {file = "debugpy-1.6.6-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e"}, - {file = "debugpy-1.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c"}, - {file = "debugpy-1.6.6-cp38-cp38-win32.whl", hash = "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32"}, - {file = "debugpy-1.6.6-cp38-cp38-win_amd64.whl", hash = "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225"}, - {file = "debugpy-1.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6"}, - {file = "debugpy-1.6.6-cp39-cp39-win32.whl", hash = "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe"}, - {file = "debugpy-1.6.6-cp39-cp39-win_amd64.whl", hash = "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1"}, - {file = "debugpy-1.6.6-py2.py3-none-any.whl", hash = "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115"}, - {file = "debugpy-1.6.6.zip", hash = "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67"}, -] -decorator = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] -defusedxml = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] -dill = [ - {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, - {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, -] -docutils = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, -] -exceptiongroup = [ - {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, - {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, -] -executing = [ - {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, - {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, -] -fastjsonschema = [ - {file = "fastjsonschema-2.16.2-py3-none-any.whl", hash = "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c"}, - {file = "fastjsonschema-2.16.2.tar.gz", hash = "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18"}, -] -flask = [ - {file = "Flask-2.2.3-py3-none-any.whl", hash = "sha256:c0bec9477df1cb867e5a67c9e1ab758de9cb4a3e52dd70681f59fa40a62b3f2d"}, - {file = "Flask-2.2.3.tar.gz", hash = "sha256:7eb373984bf1c770023fce9db164ed0c3353cd0b53f130f4693da0ca756a2e6d"}, -] -fonttools = [ - {file = "fonttools-4.38.0-py3-none-any.whl", hash = "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb"}, - {file = "fonttools-4.38.0.zip", hash = "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1"}, -] -fqdn = [ - {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, - {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, -] -grpcio = [ - {file = "grpcio-1.51.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:cc2bece1737b44d878cc1510ea04469a8073dbbcdd762175168937ae4742dfb3"}, - {file = "grpcio-1.51.1-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:e223a9793522680beae44671b9ed8f6d25bbe5ddf8887e66aebad5e0686049ef"}, - {file = "grpcio-1.51.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:24ac1154c4b2ab4a0c5326a76161547e70664cd2c39ba75f00fc8a2170964ea2"}, - {file = "grpcio-1.51.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4ef09f8997c4be5f3504cefa6b5c6cc3cf648274ce3cede84d4342a35d76db6"}, - {file = "grpcio-1.51.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8a0b77e992c64880e6efbe0086fe54dfc0bbd56f72a92d9e48264dcd2a3db98"}, - {file = "grpcio-1.51.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:eacad297ea60c72dd280d3353d93fb1dcca952ec11de6bb3c49d12a572ba31dd"}, - {file = "grpcio-1.51.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:16c71740640ba3a882f50b01bf58154681d44b51f09a5728180a8fdc66c67bd5"}, - {file = "grpcio-1.51.1-cp310-cp310-win32.whl", hash = "sha256:29cb97d41a4ead83b7bcad23bdb25bdd170b1e2cba16db6d3acbb090bc2de43c"}, - {file = "grpcio-1.51.1-cp310-cp310-win_amd64.whl", hash = "sha256:9ff42c5620b4e4530609e11afefa4a62ca91fa0abb045a8957e509ef84e54d30"}, - {file = "grpcio-1.51.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:bc59f7ba87972ab236f8669d8ca7400f02a0eadf273ca00e02af64d588046f02"}, - {file = "grpcio-1.51.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3c2b3842dcf870912da31a503454a33a697392f60c5e2697c91d133130c2c85d"}, - {file = "grpcio-1.51.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22b011674090594f1f3245960ced7386f6af35485a38901f8afee8ad01541dbd"}, - {file = "grpcio-1.51.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d680356a975d9c66a678eb2dde192d5dc427a7994fb977363634e781614f7c"}, - {file = "grpcio-1.51.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:094e64236253590d9d4075665c77b329d707b6fca864dd62b144255e199b4f87"}, - {file = "grpcio-1.51.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:257478300735ce3c98d65a930bbda3db172bd4e00968ba743e6a1154ea6edf10"}, - {file = "grpcio-1.51.1-cp311-cp311-win32.whl", hash = "sha256:5a6ebcdef0ef12005d56d38be30f5156d1cb3373b52e96f147f4a24b0ddb3a9d"}, - {file = "grpcio-1.51.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f9b0023c2c92bebd1be72cdfca23004ea748be1813a66d684d49d67d836adde"}, - {file = "grpcio-1.51.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:cd3baccea2bc5c38aeb14e5b00167bd4e2373a373a5e4d8d850bd193edad150c"}, - {file = "grpcio-1.51.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:17ec9b13cec4a286b9e606b48191e560ca2f3bbdf3986f91e480a95d1582e1a7"}, - {file = "grpcio-1.51.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:fbdbe9a849854fe484c00823f45b7baab159bdd4a46075302281998cb8719df5"}, - {file = "grpcio-1.51.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31bb6bc7ff145e2771c9baf612f4b9ebbc9605ccdc5f3ff3d5553de7fc0e0d79"}, - {file = "grpcio-1.51.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e473525c28251558337b5c1ad3fa969511e42304524a4e404065e165b084c9e4"}, - {file = "grpcio-1.51.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6f0b89967ee11f2b654c23b27086d88ad7bf08c0b3c2a280362f28c3698b2896"}, - {file = "grpcio-1.51.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7942b32a291421460d6a07883033e392167d30724aa84987e6956cd15f1a21b9"}, - {file = "grpcio-1.51.1-cp37-cp37m-win32.whl", hash = "sha256:f96ace1540223f26fbe7c4ebbf8a98e3929a6aa0290c8033d12526847b291c0f"}, - {file = "grpcio-1.51.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f1fec3abaf274cdb85bf3878167cfde5ad4a4d97c68421afda95174de85ba813"}, - {file = "grpcio-1.51.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:0e1a9e1b4a23808f1132aa35f968cd8e659f60af3ffd6fb00bcf9a65e7db279f"}, - {file = "grpcio-1.51.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:6df3b63538c362312bc5fa95fb965069c65c3ea91d7ce78ad9c47cab57226f54"}, - {file = "grpcio-1.51.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:172405ca6bdfedd6054c74c62085946e45ad4d9cec9f3c42b4c9a02546c4c7e9"}, - {file = "grpcio-1.51.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:506b9b7a4cede87d7219bfb31014d7b471cfc77157da9e820a737ec1ea4b0663"}, - {file = "grpcio-1.51.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb93051331acbb75b49a2a0fd9239c6ba9528f6bdc1dd400ad1cb66cf864292"}, - {file = "grpcio-1.51.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5dca372268c6ab6372d37d6b9f9343e7e5b4bc09779f819f9470cd88b2ece3c3"}, - {file = "grpcio-1.51.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:471d39d3370ca923a316d49c8aac66356cea708a11e647e3bdc3d0b5de4f0a40"}, - {file = "grpcio-1.51.1-cp38-cp38-win32.whl", hash = "sha256:75e29a90dc319f0ad4d87ba6d20083615a00d8276b51512e04ad7452b5c23b04"}, - {file = "grpcio-1.51.1-cp38-cp38-win_amd64.whl", hash = "sha256:f1158bccbb919da42544a4d3af5d9296a3358539ffa01018307337365a9a0c64"}, - {file = "grpcio-1.51.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:59dffade859f157bcc55243714d57b286da6ae16469bf1ac0614d281b5f49b67"}, - {file = "grpcio-1.51.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:dad6533411d033b77f5369eafe87af8583178efd4039c41d7515d3336c53b4f1"}, - {file = "grpcio-1.51.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:4c4423ea38a7825b8fed8934d6d9aeebdf646c97e3c608c3b0bcf23616f33877"}, - {file = "grpcio-1.51.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0dc5354e38e5adf2498312f7241b14c7ce3484eefa0082db4297189dcbe272e6"}, - {file = "grpcio-1.51.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97d67983189e2e45550eac194d6234fc38b8c3b5396c153821f2d906ed46e0ce"}, - {file = "grpcio-1.51.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:538d981818e49b6ed1e9c8d5e5adf29f71c4e334e7d459bf47e9b7abb3c30e09"}, - {file = "grpcio-1.51.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9235dcd5144a83f9ca6f431bd0eccc46b90e2c22fe27b7f7d77cabb2fb515595"}, - {file = "grpcio-1.51.1-cp39-cp39-win32.whl", hash = "sha256:aacb54f7789ede5cbf1d007637f792d3e87f1c9841f57dd51abf89337d1b8472"}, - {file = "grpcio-1.51.1-cp39-cp39-win_amd64.whl", hash = "sha256:2b170eaf51518275c9b6b22ccb59450537c5a8555326fd96ff7391b5dd75303c"}, - {file = "grpcio-1.51.1.tar.gz", hash = "sha256:e6dfc2b6567b1c261739b43d9c59d201c1b89e017afd9e684d85aa7a186c9f7a"}, -] -h5py = [ - {file = "h5py-3.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:533d7dad466ddb7e3b30af274b630eb7c1a6e4ddf01d1c373a0334dc2152110a"}, - {file = "h5py-3.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c873ba9fd4fa875ad62ce0e4891725e257a8fe7f5abdbc17e51a5d54819be55c"}, - {file = "h5py-3.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98a240cd4c1bfd568aaa52ec42d263131a2582dab82d74d3d42a0d954cac12be"}, - {file = "h5py-3.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3389b63222b1c7a158bb7fe69d11ca00066740ec5574596d47a2fe5317f563a"}, - {file = "h5py-3.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:7f3350fc0a8407d668b13247861c2acd23f7f5fe7d060a3ad9b0820f5fcbcae0"}, - {file = "h5py-3.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db03e3f2c716205fbdabb34d0848459840585225eb97b4f08998c743821ca323"}, - {file = "h5py-3.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:36761693efbe53df179627a775476dcbc37727d6e920958277a7efbc18f1fb73"}, - {file = "h5py-3.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a506fc223def428f4329e7e1f9fe1c8c593eab226e7c0942c8d75308ad49950"}, - {file = "h5py-3.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33b15aae79e9147aebe1d0e54099cbcde8d65e3e227cd5b59e49b1272aa0e09d"}, - {file = "h5py-3.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:9f6f6ffadd6bfa9b2c5b334805eb4b19ca0a5620433659d8f7fb86692c40a359"}, - {file = "h5py-3.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8f55d9c6c84d7d09c79fb85979e97b81ec6071cc776a97eb6b96f8f6ec767323"}, - {file = "h5py-3.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b685453e538b2b5934c58a644ac3f3b3d0cec1a01b6fb26d57388e9f9b674ad0"}, - {file = "h5py-3.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:377865821fe80ad984d003723d6f8890bd54ceeb5981b43c0313b9df95411b30"}, - {file = "h5py-3.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0fef76e10b9216657fa37e7edff6d8be0709b25bd5066474c229b56cf0098df9"}, - {file = "h5py-3.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:26ffc344ec9984d2cd3ca0265007299a8bac8d85c1ad48f4639d8d3aed2af171"}, - {file = "h5py-3.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bacaa1c16810dd2b3e4417f8e730971b7c4d53d234de61fe4a918db78e80e1e4"}, - {file = "h5py-3.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bae730580ae928de409d63cbe4fdca4c82c3ad2bed30511d19d34e995d63c77e"}, - {file = "h5py-3.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f47f757d1b76f0ecb8aa0508ec8d1b390df67a8b67ee2515dc1b046f3a1596ea"}, - {file = "h5py-3.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f891b17e3a3e974e93f9e34e7cca9f530806543571ce078998676a555837d91d"}, - {file = "h5py-3.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:290e00fa2de74a10688d1bac98d5a9cdd43f14f58e562c580b5b3dfbd358ecae"}, - {file = "h5py-3.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:03890b1c123d024fb0239a3279737d5432498c1901c354f8b10d8221d1d16235"}, - {file = "h5py-3.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7865de06779b14d98068da387333ad9bf2756b5b579cc887fac169bc08f87c3"}, - {file = "h5py-3.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49bc857635f935fa30e92e61ac1e87496df8f260a6945a3235e43a9890426866"}, - {file = "h5py-3.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:5fd2252d1fc364ba0e93dd0b7089f4906b66805cb4e6aca7fa8874ac08649647"}, - {file = "h5py-3.8.0.tar.gz", hash = "sha256:6fead82f0c4000cf38d53f9c030780d81bfa0220218aee13b90b7701c937d95f"}, -] -html5lib = [ - {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, - {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, -] -idna = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] -imagesize = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] -importlib-metadata = [ - {file = "importlib_metadata-6.0.0-py3-none-any.whl", hash = "sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad"}, - {file = "importlib_metadata-6.0.0.tar.gz", hash = "sha256:e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d"}, -] -importlib-resources = [ - {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, - {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, -] -iniconfig = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] -ipykernel = [ - {file = "ipykernel-6.21.2-py3-none-any.whl", hash = "sha256:430d00549b6aaf49bd0f5393150691edb1815afa62d457ee6b1a66b25cb17874"}, - {file = "ipykernel-6.21.2.tar.gz", hash = "sha256:6e9213484e4ce1fb14267ee435e18f23cc3a0634e635b9fb4ed4677b84e0fdf8"}, -] -ipython = [ - {file = "ipython-8.10.0-py3-none-any.whl", hash = "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345"}, - {file = "ipython-8.10.0.tar.gz", hash = "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e"}, -] -ipython-genutils = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] -isoduration = [ - {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, - {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, -] -isort = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] -itsdangerous = [ - {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, - {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, -] -jedi = [ - {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, - {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, -] -jinja2 = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] -joblib = [ - {file = "joblib-1.2.0-py3-none-any.whl", hash = "sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385"}, - {file = "joblib-1.2.0.tar.gz", hash = "sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"}, -] -jsonpointer = [ - {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, - {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, -] -jsonschema = [ - {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, - {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, -] -jupyter-client = [ - {file = "jupyter_client-8.0.3-py3-none-any.whl", hash = "sha256:be48ac6bd659cbbddb7a674cf06b3b8afbf53f228253cf58bde604c03bd487b0"}, - {file = "jupyter_client-8.0.3.tar.gz", hash = "sha256:ed65498bea6d876ef9d8da3e0db3dd33c5d129f5b2645f56ae03993782966bd0"}, -] -jupyter-core = [ - {file = "jupyter_core-5.2.0-py3-none-any.whl", hash = "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0"}, - {file = "jupyter_core-5.2.0.tar.gz", hash = "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f"}, -] -jupyter-events = [ - {file = "jupyter_events-0.6.3-py3-none-any.whl", hash = "sha256:57a2749f87ba387cd1bfd9b22a0875b889237dbf2edc2121ebb22bde47036c17"}, - {file = "jupyter_events-0.6.3.tar.gz", hash = "sha256:9a6e9995f75d1b7146b436ea24d696ce3a35bfa8bfe45e0c33c334c79464d0b3"}, -] -jupyter-server = [ - {file = "jupyter_server-2.3.0-py3-none-any.whl", hash = "sha256:b15078954120886d580e19d1746e2b62a3dc7bd082cb4716115c25fcd7061b00"}, - {file = "jupyter_server-2.3.0.tar.gz", hash = "sha256:29d6657bfb160b0e39b9030d67f33f918a188f2eba28065314a933b327fef872"}, -] -jupyter-server-terminals = [ - {file = "jupyter_server_terminals-0.4.4-py3-none-any.whl", hash = "sha256:75779164661cec02a8758a5311e18bb8eb70c4e86c6b699403100f1585a12a36"}, - {file = "jupyter_server_terminals-0.4.4.tar.gz", hash = "sha256:57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d"}, -] -jupyterlab-pygments = [ - {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, - {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, -] -kiwisolver = [ - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6"}, - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c"}, - {file = "kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de"}, - {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32"}, - {file = "kiwisolver-1.4.4-cp310-cp310-win32.whl", hash = "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408"}, - {file = "kiwisolver-1.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2"}, - {file = "kiwisolver-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5"}, - {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750"}, - {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4"}, - {file = "kiwisolver-1.4.4-cp311-cp311-win32.whl", hash = "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e"}, - {file = "kiwisolver-1.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-win32.whl", hash = "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3"}, - {file = "kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0"}, - {file = "kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d"}, - {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c"}, - {file = "kiwisolver-1.4.4-cp38-cp38-win32.whl", hash = "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191"}, - {file = "kiwisolver-1.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897"}, - {file = "kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac"}, - {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9"}, - {file = "kiwisolver-1.4.4-cp39-cp39-win32.whl", hash = "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea"}, - {file = "kiwisolver-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a"}, - {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb"}, - {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2"}, - {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b"}, - {file = "kiwisolver-1.4.4.tar.gz", hash = "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"}, -] -lasso-python = [ - {file = "lasso_python-1.5.2.post1-py3-none-any.whl", hash = "sha256:423c73973054fcd17fd7264e7b7cb33af2a5b7ee7d52e435f4164b125fdcffae"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, -] -livereload = [ - {file = "livereload-2.6.3-py2.py3-none-any.whl", hash = "sha256:ad4ac6f53b2d62bb6ce1a5e6e96f1f00976a32348afedcb4b6d68df2a1d346e4"}, - {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, -] -lockfile = [ - {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"}, - {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"}, -] -loguru = [ - {file = "loguru-0.6.0-py3-none-any.whl", hash = "sha256:4e2414d534a2ab57573365b3e6d0234dfb1d84b68b7f3b948e6fb743860a77c3"}, - {file = "loguru-0.6.0.tar.gz", hash = "sha256:066bd06758d0a513e9836fd9c6b5a75bfb3fd36841f4b996bc60b547a309d41c"}, -] -markdown-it-py = [ - {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, - {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, -] -markupsafe = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, -] -matplotlib = [ - {file = "matplotlib-3.7.0-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:3da8b9618188346239e51f1ea6c0f8f05c6e218cfcc30b399dd7dd7f52e8bceb"}, - {file = "matplotlib-3.7.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c0592ba57217c22987b7322df10f75ef95bc44dce781692b4b7524085de66019"}, - {file = "matplotlib-3.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:21269450243d6928da81a9bed201f0909432a74e7d0d65db5545b9fa8a0d0223"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb2e76cd429058d8954121c334dddfcd11a6186c6975bca61f3f248c99031b05"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de20eb1247725a2f889173d391a6d9e7e0f2540feda24030748283108b0478ec"}, - {file = "matplotlib-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5465735eaaafd1cfaec3fed60aee776aeb3fd3992aa2e49f4635339c931d443"}, - {file = "matplotlib-3.7.0-cp310-cp310-win32.whl", hash = "sha256:092e6abc80cdf8a95f7d1813e16c0e99ceda8d5b195a3ab859c680f3487b80a2"}, - {file = "matplotlib-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:4f640534ec2760e270801056bc0d8a10777c48b30966eef78a7c35d8590915ba"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f336e7014889c38c59029ebacc35c59236a852e4b23836708cfd3f43d1eaeed5"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a10428d4f8d1a478ceabd652e61a175b2fdeed4175ab48da4a7b8deb561e3fa"}, - {file = "matplotlib-3.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46ca923e980f76d34c1c633343a72bb042d6ba690ecc649aababf5317997171d"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c849aa94ff2a70fb71f318f48a61076d1205c6013b9d3885ade7f992093ac434"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:827e78239292e561cfb70abf356a9d7eaf5bf6a85c97877f254009f20b892f89"}, - {file = "matplotlib-3.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:691ef1f15360e439886186d0db77b5345b24da12cbc4fc57b26c4826db4d6cab"}, - {file = "matplotlib-3.7.0-cp311-cp311-win32.whl", hash = "sha256:21a8aeac39b4a795e697265d800ce52ab59bdeb6bb23082e2d971f3041074f02"}, - {file = "matplotlib-3.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:01681566e95b9423021b49dea6a2395c16fa054604eacb87f0f4c439750f9114"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cf119eee4e57389fba5ac8b816934e95c256535e55f0b21628b4205737d1de85"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:21bd4033c40b95abd5b8453f036ed5aa70856e56ecbd887705c37dce007a4c21"}, - {file = "matplotlib-3.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:111ef351f28fd823ed7177632070a6badd6f475607122bc9002a526f2502a0b5"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f91d35b3ef51d29d9c661069b9e4ba431ce283ffc533b981506889e144b5b40e"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a776462a4a63c0bfc9df106c15a0897aa2dbab6795c693aa366e8e283958854"}, - {file = "matplotlib-3.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0dfd4a0cbd151f6439e6d7f8dca5292839ca311e7e650596d073774847ca2e4f"}, - {file = "matplotlib-3.7.0-cp38-cp38-win32.whl", hash = "sha256:56b7b79488209041a9bf7ddc34f1b069274489ce69e34dc63ae241d0d6b4b736"}, - {file = "matplotlib-3.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:8665855f3919c80551f377bc16df618ceabf3ef65270bc14b60302dce88ca9ab"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:f910d924da8b9fb066b5beae0b85e34ed1b6293014892baadcf2a51da1c65807"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cf6346644e8fe234dc847e6232145dac199a650d3d8025b3ef65107221584ba4"}, - {file = "matplotlib-3.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d1e52365d8d5af699f04581ca191112e1d1220a9ce4386b57d807124d8b55e6"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c869b646489c6a94375714032e5cec08e3aa8d3f7d4e8ef2b0fb50a52b317ce6"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4ddac5f59e78d04b20469bc43853a8e619bb6505c7eac8ffb343ff2c516d72f"}, - {file = "matplotlib-3.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb0304c1cd802e9a25743414c887e8a7cd51d96c9ec96d388625d2cd1c137ae3"}, - {file = "matplotlib-3.7.0-cp39-cp39-win32.whl", hash = "sha256:a06a6c9822e80f323549c6bc9da96d4f233178212ad9a5f4ab87fd153077a507"}, - {file = "matplotlib-3.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:cb52aa97b92acdee090edfb65d1cb84ea60ab38e871ba8321a10bbcebc2a3540"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3493b48e56468c39bd9c1532566dff3b8062952721b7521e1f394eb6791495f4"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d0dcd1a0bf8d56551e8617d6dc3881d8a1c7fb37d14e5ec12cbb293f3e6170a"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51fb664c37714cbaac69c16d6b3719f517a13c96c3f76f4caadd5a0aa7ed0329"}, - {file = "matplotlib-3.7.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4497d88c559b76da320b7759d64db442178beeea06a52dc0c629086982082dcd"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9d85355c48ef8b9994293eb7c00f44aa8a43cad7a297fbf0770a25cdb2244b91"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03eb2c8ff8d85da679b71e14c7c95d16d014c48e0c0bfa14db85f6cdc5c92aad"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71b751d06b2ed1fd017de512d7439c0259822864ea16731522b251a27c0b2ede"}, - {file = "matplotlib-3.7.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b51ab8a5d5d3bbd4527af633a638325f492e09e45e78afdf816ef55217a09664"}, - {file = "matplotlib-3.7.0.tar.gz", hash = "sha256:8f6efd313430d7ef70a38a3276281cb2e8646b3a22b3b21eb227da20e15e6813"}, -] -matplotlib-inline = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, -] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] -mdurl = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] -mistune = [ - {file = "mistune-2.0.5-py2.py3-none-any.whl", hash = "sha256:bad7f5d431886fcbaf5f758118ecff70d31f75231b34024a1341120340a65ce8"}, - {file = "mistune-2.0.5.tar.gz", hash = "sha256:0246113cb2492db875c6be56974a7c893333bf26cd92891c85f63151cee09d34"}, -] -msgpack = [ - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db"}, - {file = "msgpack-1.0.4-cp310-cp310-win32.whl", hash = "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef"}, - {file = "msgpack-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075"}, - {file = "msgpack-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae"}, - {file = "msgpack-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6"}, - {file = "msgpack-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661"}, - {file = "msgpack-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236"}, - {file = "msgpack-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44"}, - {file = "msgpack-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243"}, - {file = "msgpack-1.0.4-cp38-cp38-win32.whl", hash = "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2"}, - {file = "msgpack-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae"}, - {file = "msgpack-1.0.4-cp39-cp39-win32.whl", hash = "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c"}, - {file = "msgpack-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce"}, - {file = "msgpack-1.0.4.tar.gz", hash = "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"}, -] -mypy = [ - {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"}, - {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"}, - {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"}, - {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"}, - {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"}, - {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"}, - {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"}, - {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"}, - {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"}, - {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"}, - {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"}, - {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"}, - {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"}, - {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"}, - {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"}, - {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"}, - {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"}, - {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"}, - {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"}, - {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"}, - {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"}, -] -mypy-extensions = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] -nbclassic = [ - {file = "nbclassic-0.5.2-py3-none-any.whl", hash = "sha256:6403a996562dadefa7fee9c49e17b663b5fd508241de5df655b90011cf3342d9"}, - {file = "nbclassic-0.5.2.tar.gz", hash = "sha256:40f11bbcc59e8956c3d5ef132dec8e5a853e893ecf831e791d54da0d8a50d79d"}, -] -nbclient = [ - {file = "nbclient-0.7.2-py3-none-any.whl", hash = "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c"}, - {file = "nbclient-0.7.2.tar.gz", hash = "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547"}, -] -nbconvert = [ - {file = "nbconvert-7.2.9-py3-none-any.whl", hash = "sha256:495638c5e06005f4a5ce828d8a81d28e34f95c20f4384d5d7a22254b443836e7"}, - {file = "nbconvert-7.2.9.tar.gz", hash = "sha256:a42c3ac137c64f70cbe4d763111bf358641ea53b37a01a5c202ed86374af5234"}, -] -nbformat = [ - {file = "nbformat-5.7.3-py3-none-any.whl", hash = "sha256:22a98a6516ca216002b0a34591af5bcb8072ca6c63910baffc901cfa07fefbf0"}, - {file = "nbformat-5.7.3.tar.gz", hash = "sha256:4b021fca24d3a747bf4e626694033d792d594705829e5e35b14ee3369f9f6477"}, -] -nest-asyncio = [ - {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, - {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, -] -networkx = [ - {file = "networkx-2.8.8-py3-none-any.whl", hash = "sha256:e435dfa75b1d7195c7b8378c3859f0445cd88c6b0375c181ed66823a9ceb7524"}, - {file = "networkx-2.8.8.tar.gz", hash = "sha256:230d388117af870fce5647a3c52401fcf753e94720e6ea6b4197a5355648885e"}, -] -notebook = [ - {file = "notebook-6.5.2-py3-none-any.whl", hash = "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4"}, - {file = "notebook-6.5.2.tar.gz", hash = "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0"}, -] -notebook-shim = [ - {file = "notebook_shim-0.2.2-py3-none-any.whl", hash = "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949"}, - {file = "notebook_shim-0.2.2.tar.gz", hash = "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f"}, -] -numpy = [ - {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, - {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253"}, - {file = "numpy-1.24.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978"}, - {file = "numpy-1.24.2-cp310-cp310-win32.whl", hash = "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9"}, - {file = "numpy-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a"}, - {file = "numpy-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281"}, - {file = "numpy-1.24.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910"}, - {file = "numpy-1.24.2-cp311-cp311-win32.whl", hash = "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95"}, - {file = "numpy-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2"}, - {file = "numpy-1.24.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a"}, - {file = "numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96"}, - {file = "numpy-1.24.2-cp38-cp38-win32.whl", hash = "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d"}, - {file = "numpy-1.24.2-cp38-cp38-win_amd64.whl", hash = "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a"}, - {file = "numpy-1.24.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb"}, - {file = "numpy-1.24.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780"}, - {file = "numpy-1.24.2-cp39-cp39-win32.whl", hash = "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468"}, - {file = "numpy-1.24.2-cp39-cp39-win_amd64.whl", hash = "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"}, - {file = "numpy-1.24.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f"}, - {file = "numpy-1.24.2.tar.gz", hash = "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22"}, -] -packageurl-python = [ - {file = "packageurl-python-0.10.4.tar.gz", hash = "sha256:5c91334f942cd55d45eb0c67dd339a535ef90e25f05b9ec016ad188ed0ef9048"}, - {file = "packageurl_python-0.10.4-py3-none-any.whl", hash = "sha256:bf8a1ffe755634776f6563904d792fb0aa13b377fc86115c36fe17f69b6e59db"}, -] -packaging = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, -] -pandas = [ - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, - {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, - {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, - {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, - {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, - {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, - {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, - {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, - {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, - {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, - {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, - {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, - {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, - {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, - {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, - {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, -] -pandocfilters = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, -] -parso = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, -] -pathspec = [ - {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, - {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, -] -pexpect = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, -] -pickleshare = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] -pillow = [ - {file = "Pillow-9.4.0-1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1"}, - {file = "Pillow-9.4.0-1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12"}, - {file = "Pillow-9.4.0-1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd"}, - {file = "Pillow-9.4.0-1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9"}, - {file = "Pillow-9.4.0-1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858"}, - {file = "Pillow-9.4.0-1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab"}, - {file = "Pillow-9.4.0-1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9"}, - {file = "Pillow-9.4.0-2-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0"}, - {file = "Pillow-9.4.0-2-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f"}, - {file = "Pillow-9.4.0-2-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c"}, - {file = "Pillow-9.4.0-2-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848"}, - {file = "Pillow-9.4.0-2-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1"}, - {file = "Pillow-9.4.0-2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33"}, - {file = "Pillow-9.4.0-2-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157"}, - {file = "Pillow-9.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5"}, - {file = "Pillow-9.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28"}, - {file = "Pillow-9.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35"}, - {file = "Pillow-9.4.0-cp310-cp310-win32.whl", hash = "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a"}, - {file = "Pillow-9.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133"}, - {file = "Pillow-9.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4"}, - {file = "Pillow-9.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8"}, - {file = "Pillow-9.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a"}, - {file = "Pillow-9.4.0-cp311-cp311-win32.whl", hash = "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c"}, - {file = "Pillow-9.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee"}, - {file = "Pillow-9.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4"}, - {file = "Pillow-9.4.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5"}, - {file = "Pillow-9.4.0-cp37-cp37m-win32.whl", hash = "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e"}, - {file = "Pillow-9.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9"}, - {file = "Pillow-9.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d"}, - {file = "Pillow-9.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f"}, - {file = "Pillow-9.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628"}, - {file = "Pillow-9.4.0-cp38-cp38-win32.whl", hash = "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d"}, - {file = "Pillow-9.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569"}, - {file = "Pillow-9.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503"}, - {file = "Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2"}, - {file = "Pillow-9.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153"}, - {file = "Pillow-9.4.0-cp39-cp39-win32.whl", hash = "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c"}, - {file = "Pillow-9.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df"}, - {file = "Pillow-9.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a"}, - {file = "Pillow-9.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9"}, - {file = "Pillow-9.4.0.tar.gz", hash = "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e"}, -] -pip = [ - {file = "pip-23.0.1-py3-none-any.whl", hash = "sha256:236bcb61156d76c4b8a05821b988c7b8c35bf0da28a4b614e8d6ab5212c25c6f"}, - {file = "pip-23.0.1.tar.gz", hash = "sha256:cd015ea1bfb0fcef59d8a286c1f8bebcb983f6317719d415dc5351efb7cd7024"}, -] -pip-api = [ - {file = "pip-api-0.0.30.tar.gz", hash = "sha256:a05df2c7aa9b7157374bcf4273544201a0c7bae60a9c65bcf84f3959ef3896f3"}, - {file = "pip_api-0.0.30-py3-none-any.whl", hash = "sha256:2a0314bd31522eb9ffe8a99668b0d07fee34ebc537931e7b6483001dbedcbdc9"}, -] -pip-audit = [ - {file = "pip_audit-2.4.14-py3-none-any.whl", hash = "sha256:f9632b9f67bcf3fda78ef7651a03c8ed926d1eaeda474dcbdcb26a5518dd6ffc"}, - {file = "pip_audit-2.4.14.tar.gz", hash = "sha256:1259629fe24302e257052e977146f56bebf34927740d5efd184aaafa3b1b3b38"}, -] -pip-requirements-parser = [ - {file = "pip-requirements-parser-32.0.1.tar.gz", hash = "sha256:b4fa3a7a0be38243123cf9d1f3518da10c51bdb165a2b2985566247f9155a7d3"}, - {file = "pip_requirements_parser-32.0.1-py3-none-any.whl", hash = "sha256:4659bc2a667783e7a15d190f6fccf8b2486685b6dba4c19c3876314769c57526"}, -] -pkgutil-resolve-name = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] -platformdirs = [ - {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, - {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, -] -plotly = [ - {file = "plotly-5.13.0-py2.py3-none-any.whl", hash = "sha256:4ac5db72176ce144f1fcde8d1ef7bdbccf5bb7a53e3d366b16fcd7c85319fdfd"}, - {file = "plotly-5.13.0.tar.gz", hash = "sha256:81a3aae4021d5ab91790fc71c3433791f41bfc71586e857f7777f429a955039a"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -prometheus-client = [ - {file = "prometheus_client-0.16.0-py3-none-any.whl", hash = "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab"}, - {file = "prometheus_client-0.16.0.tar.gz", hash = "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"}, - {file = "prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"}, -] -protobuf = [ - {file = "protobuf-4.22.0-cp310-abi3-win32.whl", hash = "sha256:b2fea9dc8e3c0f32c38124790ef16cba2ee0628fe2022a52e435e1117bfef9b1"}, - {file = "protobuf-4.22.0-cp310-abi3-win_amd64.whl", hash = "sha256:a33a273d21852f911b8bda47f39f4383fe7c061eb1814db2c76c9875c89c2491"}, - {file = "protobuf-4.22.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:e894e9ae603e963f0842498c4cd5d39c6a60f0d7e4c103df50ee939564298658"}, - {file = "protobuf-4.22.0-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:7c535d126e7dcc714105ab20b418c4fedbd28f8b8afc42b7350b1e317bbbcc71"}, - {file = "protobuf-4.22.0-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:86c3d20428b007537ba6792b475c0853bba7f66b1f60e610d913b77d94b486e4"}, - {file = "protobuf-4.22.0-cp37-cp37m-win32.whl", hash = "sha256:1669cb7524221a8e2d9008d0842453dbefdd0fcdd64d67672f657244867635fb"}, - {file = "protobuf-4.22.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ab4d043865dd04e6b09386981fe8f80b39a1e46139fb4a3c206229d6b9f36ff6"}, - {file = "protobuf-4.22.0-cp38-cp38-win32.whl", hash = "sha256:29288813aacaa302afa2381db1d6e0482165737b0afdf2811df5fa99185c457b"}, - {file = "protobuf-4.22.0-cp38-cp38-win_amd64.whl", hash = "sha256:e474b63bab0a2ea32a7b26a4d8eec59e33e709321e5e16fb66e766b61b82a95e"}, - {file = "protobuf-4.22.0-cp39-cp39-win32.whl", hash = "sha256:47d31bdf58222dd296976aa1646c68c6ee80b96d22e0a3c336c9174e253fd35e"}, - {file = "protobuf-4.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:c27f371f0159feb70e6ea52ed7e768b3f3a4c5676c1900a7e51a24740381650e"}, - {file = "protobuf-4.22.0-py3-none-any.whl", hash = "sha256:c3325803095fb4c2a48649c321d2fbde59f8fbfcb9bfc7a86df27d112831c571"}, - {file = "protobuf-4.22.0.tar.gz", hash = "sha256:652d8dfece122a24d98eebfef30e31e455d300efa41999d1182e015984ac5930"}, -] -psutil = [ - {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, - {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, - {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, - {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, - {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, - {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, - {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, - {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, - {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, - {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, - {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, -] -ptyprocess = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] -pure-eval = [ - {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, - {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pydantic = [ - {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, - {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, - {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, - {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, - {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, - {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, - {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, - {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, - {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, - {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, -] -pyglet = [ - {file = "pyglet-1.5.27-py3-none-any.whl", hash = "sha256:7ce2eb5a299cda92fcc099f533520cdaa2f157a175d6c1442a2ae4d769284d2d"}, - {file = "pyglet-1.5.27.zip", hash = "sha256:4d00e067451f3b10fd51b69764fddab65444372a2da344ee2b35f0a8e6ebf005"}, -] -pygments = [ - {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, - {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, -] -pylint = [ - {file = "pylint-2.16.2-py3-none-any.whl", hash = "sha256:ff22dde9c2128cd257c145cfd51adeff0be7df4d80d669055f24a962b351bbe4"}, - {file = "pylint-2.16.2.tar.gz", hash = "sha256:13b2c805a404a9bf57d002cd5f054ca4d40b0b87542bdaba5e05321ae8262c84"}, -] -pyparsing = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, -] -pyrsistent = [ - {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"}, -] -pytest = [ - {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, - {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, -] -python-dateutil = [ - {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"}, -] -python-json-logger = [ - {file = "python-json-logger-2.0.6.tar.gz", hash = "sha256:ed33182c2b438a366775c25c1219ebbd5bd7f71694c644d6b3b3861e19565ae3"}, - {file = "python_json_logger-2.0.6-py3-none-any.whl", hash = "sha256:3af8e5b907b4a5b53cae249205ee3a3d3472bd7ad9ddfaec136eec2f2faf4995"}, -] -pytz = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, -] -pywin32 = [ - {file = "pywin32-305-cp310-cp310-win32.whl", hash = "sha256:421f6cd86e84bbb696d54563c48014b12a23ef95a14e0bdba526be756d89f116"}, - {file = "pywin32-305-cp310-cp310-win_amd64.whl", hash = "sha256:73e819c6bed89f44ff1d690498c0a811948f73777e5f97c494c152b850fad478"}, - {file = "pywin32-305-cp310-cp310-win_arm64.whl", hash = "sha256:742eb905ce2187133a29365b428e6c3b9001d79accdc30aa8969afba1d8470f4"}, - {file = "pywin32-305-cp311-cp311-win32.whl", hash = "sha256:19ca459cd2e66c0e2cc9a09d589f71d827f26d47fe4a9d09175f6aa0256b51c2"}, - {file = "pywin32-305-cp311-cp311-win_amd64.whl", hash = "sha256:326f42ab4cfff56e77e3e595aeaf6c216712bbdd91e464d167c6434b28d65990"}, - {file = "pywin32-305-cp311-cp311-win_arm64.whl", hash = "sha256:4ecd404b2c6eceaca52f8b2e3e91b2187850a1ad3f8b746d0796a98b4cea04db"}, - {file = "pywin32-305-cp36-cp36m-win32.whl", hash = "sha256:48d8b1659284f3c17b68587af047d110d8c44837736b8932c034091683e05863"}, - {file = "pywin32-305-cp36-cp36m-win_amd64.whl", hash = "sha256:13362cc5aa93c2beaf489c9c9017c793722aeb56d3e5166dadd5ef82da021fe1"}, - {file = "pywin32-305-cp37-cp37m-win32.whl", hash = "sha256:a55db448124d1c1484df22fa8bbcbc45c64da5e6eae74ab095b9ea62e6d00496"}, - {file = "pywin32-305-cp37-cp37m-win_amd64.whl", hash = "sha256:109f98980bfb27e78f4df8a51a8198e10b0f347257d1e265bb1a32993d0c973d"}, - {file = "pywin32-305-cp38-cp38-win32.whl", hash = "sha256:9dd98384da775afa009bc04863426cb30596fd78c6f8e4e2e5bbf4edf8029504"}, - {file = "pywin32-305-cp38-cp38-win_amd64.whl", hash = "sha256:56d7a9c6e1a6835f521788f53b5af7912090674bb84ef5611663ee1595860fc7"}, - {file = "pywin32-305-cp39-cp39-win32.whl", hash = "sha256:9d968c677ac4d5cbdaa62fd3014ab241718e619d8e36ef8e11fb930515a1e918"}, - {file = "pywin32-305-cp39-cp39-win_amd64.whl", hash = "sha256:50768c6b7c3f0b38b7fb14dd4104da93ebced5f1a50dc0e834594bff6fbe1271"}, -] -pywinpty = [ - {file = "pywinpty-2.0.10-cp310-none-win_amd64.whl", hash = "sha256:4c7d06ad10f6e92bc850a467f26d98f4f30e73d2fe5926536308c6ae0566bc16"}, - {file = "pywinpty-2.0.10-cp311-none-win_amd64.whl", hash = "sha256:7ffbd66310b83e42028fc9df7746118978d94fba8c1ebf15a7c1275fdd80b28a"}, - {file = "pywinpty-2.0.10-cp37-none-win_amd64.whl", hash = "sha256:38cb924f2778b5751ef91a75febd114776b3af0ae411bc667be45dd84fc881d3"}, - {file = "pywinpty-2.0.10-cp38-none-win_amd64.whl", hash = "sha256:902d79444b29ad1833b8d5c3c9aabdfd428f4f068504430df18074007c8c0de8"}, - {file = "pywinpty-2.0.10-cp39-none-win_amd64.whl", hash = "sha256:3c46aef80dd50979aff93de199e4a00a8ee033ba7a03cadf0a91fed45f0c39d7"}, - {file = "pywinpty-2.0.10.tar.gz", hash = "sha256:cdbb5694cf8c7242c2ecfaca35c545d31fa5d5814c3d67a4e628f803f680ebea"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -pyzmq = [ - {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e"}, - {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47"}, - {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c"}, - {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9"}, - {file = "pyzmq-25.0.0-cp310-cp310-win32.whl", hash = "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70"}, - {file = "pyzmq-25.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6"}, - {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2"}, - {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8"}, - {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c"}, - {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d"}, - {file = "pyzmq-25.0.0-cp311-cp311-win32.whl", hash = "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc"}, - {file = "pyzmq-25.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331"}, - {file = "pyzmq-25.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230"}, - {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2"}, - {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3"}, - {file = "pyzmq-25.0.0-cp36-cp36m-win32.whl", hash = "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc"}, - {file = "pyzmq-25.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287"}, - {file = "pyzmq-25.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab"}, - {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973"}, - {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b"}, - {file = "pyzmq-25.0.0-cp37-cp37m-win32.whl", hash = "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c"}, - {file = "pyzmq-25.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee"}, - {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb"}, - {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b"}, - {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e"}, - {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576"}, - {file = "pyzmq-25.0.0-cp38-cp38-win32.whl", hash = "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8"}, - {file = "pyzmq-25.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9"}, - {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2"}, - {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de"}, - {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9"}, - {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef"}, - {file = "pyzmq-25.0.0-cp39-cp39-win32.whl", hash = "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565"}, - {file = "pyzmq-25.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9"}, - {file = "pyzmq-25.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948"}, - {file = "pyzmq-25.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d"}, - {file = "pyzmq-25.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc"}, - {file = "pyzmq-25.0.0.tar.gz", hash = "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2"}, -] -rapidfuzz = [ - {file = "rapidfuzz-2.13.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b75dd0928ce8e216f88660ab3d5c5ffe990f4dd682fd1709dba29d5dafdde6de"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24d3fea10680d085fd0a4d76e581bfb2b1074e66e78fd5964d4559e1fcd2a2d4"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8109e0324d21993d5b2d111742bf5958f3516bf8c59f297c5d1cc25a2342eb66"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5f705652360d520c2de52bee11100c92f59b3e3daca308ebb150cbc58aecdad"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7496e8779905b02abc0ab4ba2a848e802ab99a6e20756ffc967a0de4900bd3da"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:24eb6b843492bdc63c79ee4b2f104059b7a2201fef17f25177f585d3be03405a"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:467c1505362823a5af12b10234cb1c4771ccf124c00e3fc9a43696512bd52293"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53dcae85956853b787c27c1cb06f18bb450e22cf57a4ad3444cf03b8ff31724a"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:46b9b8aa09998bc48dd800854e8d9b74bc534d7922c1d6e1bbf783e7fa6ac29c"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1fbad8fb28d98980f5bff33c7842efef0315d42f0cd59082108482a7e6b61410"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:43fb8cb030f888c3f076d40d428ed5eb4331f5dd6cf1796cfa39c67bf0f0fc1e"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:b6bad92de071cbffa2acd4239c1779f66851b60ffbbda0e4f4e8a2e9b17e7eef"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d00df2e4a81ffa56a6b1ec4d2bc29afdcb7f565e0b8cd3092fece2290c4c7a79"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-win32.whl", hash = "sha256:2c836f0f2d33d4614c3fbaf9a1eb5407c0fe23f8876f47fd15b90f78daa64c34"}, - {file = "rapidfuzz-2.13.7-cp310-cp310-win_amd64.whl", hash = "sha256:c36fd260084bb636b9400bb92016c6bd81fd80e59ed47f2466f85eda1fc9f782"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b34e8c0e492949ecdd5da46a1cfc856a342e2f0389b379b1a45a3cdcd3176a6e"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:875d51b3497439a72e2d76183e1cb5468f3f979ab2ddfc1d1f7dde3b1ecfb42f"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae33a72336059213996fe4baca4e0e4860913905c2efb7c991eab33b95a98a0a"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5585189b3d90d81ccd62d4f18530d5ac8972021f0aaaa1ffc6af387ff1dce75"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42085d4b154a8232767de8296ac39c8af5bccee6b823b0507de35f51c9cbc2d7"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:585206112c294e335d84de5d5f179c0f932837752d7420e3de21db7fdc476278"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f891b98f8bc6c9d521785816085e9657212621e93f223917fb8e32f318b2957e"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08590905a95ccfa43f4df353dcc5d28c15d70664299c64abcad8721d89adce4f"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b5dd713a1734574c2850c566ac4286594bacbc2d60b9170b795bee4b68656625"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:988f8f6abfba7ee79449f8b50687c174733b079521c3cc121d65ad2d38831846"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b3210869161a864f3831635bb13d24f4708c0aa7208ef5baac1ac4d46e9b4208"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f6fe570e20e293eb50491ae14ddeef71a6a7e5f59d7e791393ffa99b13f1f8c2"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6120f2995f5154057454c5de99d86b4ef3b38397899b5da1265467e8980b2f60"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-win32.whl", hash = "sha256:b20141fa6cee041917801de0bab503447196d372d4c7ee9a03721b0a8edf5337"}, - {file = "rapidfuzz-2.13.7-cp311-cp311-win_amd64.whl", hash = "sha256:ec55a81ac2b0f41b8d6fb29aad16e55417036c7563bad5568686931aa4ff08f7"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d005e058d86f2a968a8d28ca6f2052fab1f124a39035aa0523261d6baf21e1f"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe59a0c21a032024edb0c8e43f5dee5623fef0b65a1e3c1281836d9ce199af3b"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfc04f7647c29fb48da7a04082c34cdb16f878d3c6d098d62d5715c0ad3000c"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68a89bb06d5a331511961f4d3fa7606f8e21237467ba9997cae6f67a1c2c2b9e"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:effe182767d102cb65dfbbf74192237dbd22d4191928d59415aa7d7c861d8c88"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25b4cedf2aa19fb7212894ce5f5219010cce611b60350e9a0a4d492122e7b351"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3a9bd02e1679c0fd2ecf69b72d0652dbe2a9844eaf04a36ddf4adfbd70010e95"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5e2b3d020219baa75f82a4e24b7c8adcb598c62f0e54e763c39361a9e5bad510"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:cf62dacb3f9234f3fddd74e178e6d25c68f2067fde765f1d95f87b1381248f58"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:fa263135b892686e11d5b84f6a1892523123a00b7e5882eff4fbdabb38667347"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fa4c598ed77f74ec973247ca776341200b0f93ec3883e34c222907ce72cb92a4"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-win32.whl", hash = "sha256:c2523f8180ebd9796c18d809e9a19075a1060b1a170fde3799e83db940c1b6d5"}, - {file = "rapidfuzz-2.13.7-cp37-cp37m-win_amd64.whl", hash = "sha256:5ada0a14c67452358c1ee52ad14b80517a87b944897aaec3e875279371a9cb96"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ca8a23097c1f50e0fdb4de9e427537ca122a18df2eead06ed39c3a0bef6d9d3a"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9be02162af0376d64b840f2fc8ee3366794fc149f1e06d095a6a1d42447d97c5"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af4f7c3c904ca709493eb66ca9080b44190c38e9ecb3b48b96d38825d5672559"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f50d1227e6e2a0e3ae1fb1c9a2e1c59577d3051af72c7cab2bcc430cb5e18da"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c71d9d512b76f05fa00282227c2ae884abb60e09f08b5ca3132b7e7431ac7f0d"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b52ac2626945cd21a2487aeefed794c14ee31514c8ae69b7599170418211e6f6"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca00fafd2756bc9649bf80f1cf72c647dce38635f0695d7ce804bc0f759aa756"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d248a109699ce9992304e79c1f8735c82cc4c1386cd8e27027329c0549f248a2"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c88adbcb933f6b8612f6c593384bf824e562bb35fc8a0f55fac690ab5b3486e5"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c8601a66fbfc0052bb7860d2eacd303fcde3c14e87fdde409eceff516d659e77"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:27be9c63215d302ede7d654142a2e21f0d34ea6acba512a4ae4cfd52bbaa5b59"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3dcffe1f3cbda0dc32133a2ae2255526561ca594f15f9644384549037b355245"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8450d15f7765482e86ef9be2ad1a05683cd826f59ad236ef7b9fb606464a56aa"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-win32.whl", hash = "sha256:460853983ab88f873173e27cc601c5276d469388e6ad6e08c4fd57b2a86f1064"}, - {file = "rapidfuzz-2.13.7-cp38-cp38-win_amd64.whl", hash = "sha256:424f82c35dbe4f83bdc3b490d7d696a1dc6423b3d911460f5493b7ffae999fd2"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c3fbe449d869ea4d0909fc9d862007fb39a584fb0b73349a6aab336f0d90eaed"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:16080c05a63d6042643ae9b6cfec1aefd3e61cef53d0abe0df3069b9d4b72077"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dbcf5371ea704759fcce772c66a07647751d1f5dbdec7818331c9b31ae996c77"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:114810491efb25464016fd554fdf1e20d390309cecef62587494fc474d4b926f"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a84ab9ac9a823e7e93b4414f86344052a5f3e23b23aa365cda01393ad895bd"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81642a24798851b118f82884205fc1bd9ff70b655c04018c467824b6ecc1fabc"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3741cb0bf9794783028e8b0cf23dab917fa5e37a6093b94c4c2f805f8e36b9f"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:759a3361711586a29bc753d3d1bdb862983bd9b9f37fbd7f6216c24f7c972554"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1333fb3d603d6b1040e365dca4892ba72c7e896df77a54eae27dc07db90906e3"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:916bc2e6cf492c77ad6deb7bcd088f0ce9c607aaeabc543edeb703e1fbc43e31"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:23524635840500ce6f4d25005c9529a97621689c85d2f727c52eed1782839a6a"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:ebe303cd9839af69dd1f7942acaa80b1ba90bacef2e7ded9347fbed4f1654672"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fe56659ccadbee97908132135de4b875543353351e0c92e736b7c57aee298b5a"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-win32.whl", hash = "sha256:3f11a7eff7bc6301cd6a5d43f309e22a815af07e1f08eeb2182892fca04c86cb"}, - {file = "rapidfuzz-2.13.7-cp39-cp39-win_amd64.whl", hash = "sha256:e8914dad106dacb0775718e54bf15e528055c4e92fb2677842996f2d52da5069"}, - {file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f7930adf84301797c3f09c94b9c5a9ed90a9e8b8ed19b41d2384937e0f9f5bd"}, - {file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c31022d9970177f6affc6d5dd757ed22e44a10890212032fabab903fdee3bfe7"}, - {file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f42b82f268689f429def9ecfb86fa65ceea0eaf3fed408b570fe113311bf5ce7"}, - {file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b477b43ced896301665183a5e0faec0f5aea2373005648da8bdcb3c4b73f280"}, - {file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d63def9bbc6b35aef4d76dc740301a4185867e8870cbb8719ec9de672212fca8"}, - {file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c66546e30addb04a16cd864f10f5821272a1bfe6462ee5605613b4f1cb6f7b48"}, - {file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f799d1d6c33d81e983d3682571cc7d993ae7ff772c19b3aabb767039c33f6d1e"}, - {file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82f20c0060ffdaadaf642b88ab0aa52365b56dffae812e188e5bdb998043588"}, - {file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:042644133244bfa7b20de635d500eb9f46af7097f3d90b1724f94866f17cb55e"}, - {file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:75c45dcd595f8178412367e302fd022860ea025dc4a78b197b35428081ed33d5"}, - {file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3d8b081988d0a49c486e4e845a547565fee7c6e7ad8be57ff29c3d7c14c6894c"}, - {file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16ffad751f43ab61001187b3fb4a9447ec2d1aedeff7c5bac86d3b95f9980cc3"}, - {file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:020858dd89b60ce38811cd6e37875c4c3c8d7fcd8bc20a0ad2ed1f464b34dc4e"}, - {file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cda1e2f66bb4ba7261a0f4c2d052d5d909798fca557cbff68f8a79a87d66a18f"}, - {file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b6389c50d8d214c9cd11a77f6d501529cb23279a9c9cafe519a3a4b503b5f72a"}, - {file = "rapidfuzz-2.13.7.tar.gz", hash = "sha256:8d3e252d4127c79b4d7c2ae47271636cbaca905c8bb46d80c7930ab906cf4b5c"}, -] -requests = [ - {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, - {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, -] -resolvelib = [ - {file = "resolvelib-0.9.0-py2.py3-none-any.whl", hash = "sha256:597adcbdf81d62d0cde55d90faa8e79187ec0f18e5012df30bd7a751b26343ae"}, - {file = "resolvelib-0.9.0.tar.gz", hash = "sha256:40ab05117c3281b1b160105e10075094c5ab118315003c922b77673a365290e1"}, -] -rfc3339-validator = [ - {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, - {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, -] -rfc3986-validator = [ - {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, - {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, -] -rich = [ - {file = "rich-13.3.1-py3-none-any.whl", hash = "sha256:8aa57747f3fc3e977684f0176a88e789be314a99f99b43b75d1e9cb5dc6db9e9"}, - {file = "rich-13.3.1.tar.gz", hash = "sha256:125d96d20c92b946b983d0d392b84ff945461e5a06d3867e9f9e575f8697b67f"}, -] -scipy = [ - {file = "scipy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019"}, - {file = "scipy-1.10.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2"}, - {file = "scipy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d"}, - {file = "scipy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f"}, - {file = "scipy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601"}, - {file = "scipy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea"}, - {file = "scipy-1.10.1.tar.gz", hash = "sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5"}, -] -send2trash = [ - {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, - {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, -] -setuptools = [ - {file = "setuptools-67.3.2-py3-none-any.whl", hash = "sha256:bb6d8e508de562768f2027902929f8523932fcd1fb784e6d573d2cafac995a48"}, - {file = "setuptools-67.3.2.tar.gz", hash = "sha256:95f00380ef2ffa41d9bba85d95b27689d923c93dfbafed4aecd7cf988a25e012"}, -] -setuptools-scm = [ - {file = "setuptools_scm-7.1.0-py3-none-any.whl", hash = "sha256:73988b6d848709e2af142aa48c986ea29592bbcfca5375678064708205253d8e"}, - {file = "setuptools_scm-7.1.0.tar.gz", hash = "sha256:6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de278f27"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -sklearn = [ - {file = "sklearn-0.0.post1.tar.gz", hash = "sha256:76b9ed1623775168657b86b5fe966d45752e5c87f528de6240c38923b94147c5"}, -] -sniffio = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -sortedcontainers = [ - {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, - {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, -] -soupsieve = [ - {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"}, - {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, -] -sphinx = [ - {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, - {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, -] -sphinx-autobuild = [ - {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, - {file = "sphinx_autobuild-2021.3.14-py3-none-any.whl", hash = "sha256:8fe8cbfdb75db04475232f05187c776f46f6e9e04cacf1e49ce81bdac649ccac"}, -] -sphinx-gallery = [ - {file = "sphinx-gallery-0.11.1.tar.gz", hash = "sha256:56ccb29a0c2c4767d2a66617ba6ea7893e3a3885b6d972c62783a3b45b583ea5"}, - {file = "sphinx_gallery-0.11.1-py3-none-any.whl", hash = "sha256:b165cb366a5768a0f36e60e5bc6828fbf55fd1831e71645310167375223aa25c"}, -] -sphinx-rtd-theme = [ - {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"}, - {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, -] -sphinxcontrib-jquery = [ - {file = "sphinxcontrib-jquery-2.0.0.tar.gz", hash = "sha256:8fb65f6dba84bf7bcd1aea1f02ab3955ac34611d838bcc95d4983b805b234daa"}, - {file = "sphinxcontrib_jquery-2.0.0-py3-none-any.whl", hash = "sha256:ed47fa425c338ffebe3c37e1cdb56e30eb806116b85f01055b158c7057fdb995"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -stack-data = [ - {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, - {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, -] -tenacity = [ - {file = "tenacity-8.2.1-py3-none-any.whl", hash = "sha256:dd1b769ca7002fda992322939feca5bee4fa11f39146b0af14e0b8d9f27ea854"}, - {file = "tenacity-8.2.1.tar.gz", hash = "sha256:c7bb4b86425b977726a7b49971542d4f67baf72096597d283f3ffd01f33b92df"}, -] -terminado = [ - {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, - {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, -] -tinycss2 = [ - {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, - {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -tomlkit = [ - {file = "tomlkit-0.11.6-py3-none-any.whl", hash = "sha256:07de26b0d8cfc18f871aec595fda24d95b08fef89d147caa861939f37230bf4b"}, - {file = "tomlkit-0.11.6.tar.gz", hash = "sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73"}, -] -tornado = [ - {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, - {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, - {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, - {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, - {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, - {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, - {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, -] -traitlets = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, -] -trimesh = [ - {file = "trimesh-3.20.0-py3-none-any.whl", hash = "sha256:a874710af65b1c77ea5854e238e26b4af72e8ee8856d7ba624efec63e8b37995"}, - {file = "trimesh-3.20.0.tar.gz", hash = "sha256:2599772355f46dd4366a5cf6ce8ccfa3a03222f08b1c396494d45bf5c95818d1"}, -] -typing-extensions = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, -] -uri-template = [ - {file = "uri_template-1.2.0-py3-none-any.whl", hash = "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db"}, - {file = "uri_template-1.2.0.tar.gz", hash = "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06"}, -] -urllib3 = [ - {file = "urllib3-1.26.14-py2.py3-none-any.whl", hash = "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"}, - {file = "urllib3-1.26.14.tar.gz", hash = "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72"}, -] -wcwidth = [ - {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, - {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, -] -webcolors = [ - {file = "webcolors-1.12-py3-none-any.whl", hash = "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce"}, - {file = "webcolors-1.12.tar.gz", hash = "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9"}, -] -webencodings = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] -websocket-client = [ - {file = "websocket-client-1.5.1.tar.gz", hash = "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40"}, - {file = "websocket_client-1.5.1-py3-none-any.whl", hash = "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e"}, -] -werkzeug = [ - {file = "Werkzeug-2.2.3-py3-none-any.whl", hash = "sha256:56433961bc1f12533306c624f3be5e744389ac61d722175d543e1751285da612"}, - {file = "Werkzeug-2.2.3.tar.gz", hash = "sha256:2e1ccc9417d4da358b9de6f174e3ac094391ea1d4fbef2d667865d819dfd0afe"}, -] -wheel-filename = [ - {file = "wheel-filename-1.4.1.tar.gz", hash = "sha256:e2e1eb0780910a0148358252aad6394cc674250686c56c39aa379493438370b3"}, - {file = "wheel_filename-1.4.1-py3-none-any.whl", hash = "sha256:a53d8ece58822eb27b3a8841c6b4bebf357f19ff0dd83ce9179756f64a4bc0df"}, -] -win32-setctime = [ - {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, - {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, -] -wrapt = [ - {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59"}, - {file = "wrapt-1.14.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462"}, - {file = "wrapt-1.14.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320"}, - {file = "wrapt-1.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069"}, - {file = "wrapt-1.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656"}, - {file = "wrapt-1.14.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c"}, - {file = "wrapt-1.14.1-cp310-cp310-win32.whl", hash = "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8"}, - {file = "wrapt-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3"}, - {file = "wrapt-1.14.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d"}, - {file = "wrapt-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7"}, - {file = "wrapt-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00"}, - {file = "wrapt-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1"}, - {file = "wrapt-1.14.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1"}, - {file = "wrapt-1.14.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569"}, - {file = "wrapt-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed"}, - {file = "wrapt-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471"}, - {file = "wrapt-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d"}, - {file = "wrapt-1.14.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015"}, - {file = "wrapt-1.14.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a"}, - {file = "wrapt-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853"}, - {file = "wrapt-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456"}, - {file = "wrapt-1.14.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1"}, - {file = "wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0"}, - {file = "wrapt-1.14.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57"}, - {file = "wrapt-1.14.1-cp38-cp38-win32.whl", hash = "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5"}, - {file = "wrapt-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383"}, - {file = "wrapt-1.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735"}, - {file = "wrapt-1.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3"}, - {file = "wrapt-1.14.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe"}, - {file = "wrapt-1.14.1-cp39-cp39-win32.whl", hash = "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5"}, - {file = "wrapt-1.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb"}, - {file = "wrapt-1.14.1.tar.gz", hash = "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"}, -] -zipp = [ - {file = "zipp-3.14.0-py3-none-any.whl", hash = "sha256:188834565033387710d046e3fe96acfc9b5e86cbca7f39ff69cf21a4128198b7"}, - {file = "zipp-3.14.0.tar.gz", hash = "sha256:9e5421e176ef5ab4c0ad896624e87a7b2f07aca746c9b2aa305952800cb8eecb"}, -] +content-hash = "616997f5becffd637b1e397f159135017fb3ff9eadbbef4685260f3dbbeb3c88" diff --git a/pyproject.toml b/pyproject.toml index 8912747..2cedb6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,11 +21,13 @@ loguru = "^0.6.0" notebook = "^6.5.2" plotly = "^5.11.0" joblib = "^1.2.0" -pillow = "^9.3.0" +pillow = "^10.0.1" py = "^1.11.0" cleo = "^2.0.1" werkzeug = "^2.2.3" ipython = "^8.10.0" +numba = "^0.58.1" +igraph = "^0.11.3" [tool.poetry.dev-dependencies] pytest = "^7.2" diff --git a/scripts/discover_bottlenecks.ipynb b/scripts/discover_bottlenecks.ipynb deleted file mode 100644 index c2a2085..0000000 --- a/scripts/discover_bottlenecks.ipynb +++ /dev/null @@ -1,122 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3f4b82e7", - "metadata": {}, - "source": [ - "## Methodology\n", - "\n", - "Inspect calc_adjacencies in mesh2vec.mesh2vec.helpers.py from different angles to pinpoint bottlenck(s):\n", - "- Use time as measurement to find obvious bottlenecks\n", - "- Use a profiler (in this case: cProfile) to inspect statistics about each section (e.g.: number of function calls, cumulative time spent on function, ..)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8089532b", - "metadata": {}, - "outputs": [], - "source": [ - "STATS_OUTPUT_FILE = \"profile_stats.txt\"" - ] - }, - { - "cell_type": "markdown", - "id": "f7caade1", - "metadata": {}, - "source": [ - "### Imports" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7a8ff956", - "metadata": {}, - "outputs": [], - "source": [ - "# perf counter more accurate than using time.time()\n", - "from time import perf_counter\n", - "\n", - "from pstats import SortKey, Stats\n", - "import io\n", - "from cProfile import Profile\n", - "\n", - "from pathlib import Path\n", - "from mesh2vec.mesh2vec_cae import Mesh2VecCae" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d78841c7", - "metadata": {}, - "outputs": [], - "source": [ - "pr = Profile()\n", - "pr.enable()\n", - "Mesh2VecCae.from_ansa_shell(25,Path(\"../data/hat/Hatprofile.k\"),\n", - " json_mesh_file=Path(\"../data/hat/cached_hat_key.json\")) \n", - "pr.disable()\n", - "s = io.StringIO()\n", - "sortby = SortKey.CUMULATIVE\n", - "ps = Stats(pr, stream=s).sort_stats(sortby)\n", - "ps.print_stats()\n", - "\n", - "# write profiling stats to file\n", - "with open(STATS_OUTPUT_FILE, 'w+') as f:\n", - " f.write(s.getvalue())" - ] - }, - { - "cell_type": "markdown", - "id": "85e2e6d1", - "metadata": {}, - "source": [ - "## Interactive visualization of profiling results" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "66cb58db", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext snakeviz\n", - "%snakeviz Mesh2VecCae.from_ansa_shell(25,Path(\"../data/hat/Hatprofile.k\"),json_mesh_file=Path(\"../data/hat/cached_hat_key.json\"))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ac198351", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/scripts/generate_test_data.py b/scripts/generate_test_data.py deleted file mode 100644 index 636d935..0000000 --- a/scripts/generate_test_data.py +++ /dev/null @@ -1,7 +0,0 @@ -"""script code to generate test data""" -import math - -if __name__ == "__main__": - for i in range(15): - sq_i = math.sqrt(i) - print(f"vtx{i:02d}, {(i % 2) == 0}, {(i % 3) == 0}, {i * i}, {sq_i}") diff --git a/scripts/mesh2vec_times.png b/scripts/mesh2vec_times.png deleted file mode 100644 index 98cfda7a4005f58c616b5f07ea07e909230e75f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41634 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 diff --git a/scripts/plot_execution_time.ipynb b/scripts/plot_execution_time.ipynb deleted file mode 100644 index 9ed3505..0000000 --- a/scripts/plot_execution_time.ipynb +++ /dev/null @@ -1,125 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "05ed44a9", - "metadata": {}, - "outputs": [], - "source": [ - "from mesh2vec.mesh2vec_cae import Mesh2VecCae\n", - "from pathlib import Path\n", - "from functools import wraps\n", - "import time\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d4510390", - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "Credit: https://dev.to/kcdchennai/python-decorator-to-measure-execution-time-54hk\n", - "\"\"\"\n", - "\n", - "\n", - "def timeit(func):\n", - " @wraps(func)\n", - " def timeit_wrapper(*args, **kwargs):\n", - " # time.perf_counter() more accurate than time.time()\n", - " start_time = time.perf_counter()\n", - " result = func(*args, **kwargs)\n", - " end_time = time.perf_counter()\n", - " total_time = end_time - start_time\n", - " # result of construction irrelevant, we just want the elapsed time\n", - " return total_time\n", - " return timeit_wrapper\n", - "\n", - "\n", - "@timeit\n", - "def measure_from_ansa(distance):\n", - " \"\"\"\n", - " Collect time it takes to construct vector\n", - " \"\"\"\n", - " m2v = Mesh2VecCae.from_ansa_shell(\n", - " distance,\n", - " Path(\"../data/hat/Hatprofile.k\"),\n", - " json_mesh_file=Path(\"../data/hat/cached_hat_key.json\")\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "63d7ce86", - "metadata": {}, - "outputs": [], - "source": [ - "plot_dict = dict()\n", - "\n", - "for i in range(1, 41):\n", - " time_elapsed = measure_from_ansa(i)\n", - " plot_dict.update({str(i): time_elapsed})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d9fcead0", - "metadata": {}, - "outputs": [], - "source": [ - "plot_dict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d5bffb97", - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure(figsize=(12, 12))\n", - "plt.plot(plot_dict.keys(), plot_dict.values())\n", - "plt.xlabel(\"neighbors\")\n", - "plt.ylabel(\"construction time\")\n", - "\n", - "plt.savefig('mesh2vec_times.png')\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4c71e44b", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/scripts/profile_stats.txt b/scripts/profile_stats.txt deleted file mode 100644 index e0206b0..0000000 --- a/scripts/profile_stats.txt +++ /dev/null @@ -1,726 +0,0 @@ - 1107221 function calls (1078620 primitive calls) in 47.052 seconds - - Ordered by: cumulative time - - ncalls tottime percall cumtime percall filename:lineno(function) - 2 0.000 0.000 47.293 23.646 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3490(run_code) - 2 0.000 0.000 47.292 23.646 {built-in method builtins.exec} - 1 0.004 0.004 47.137 47.137 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:121(from_ansa_shell) - 1 0.044 0.044 46.760 46.760 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:32(__init__) - 1 0.095 0.095 46.637 46.637 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:34(__init__) - 1 2.928 2.928 46.387 46.387 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:8(calc_adjacencies) - 24 0.000 0.000 19.785 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:620(__matmul__) - 24 0.000 0.000 19.785 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:505(_mul_dispatch) - 24 0.001 0.000 19.784 0.824 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:506(_mul_sparse_matrix) - 209 19.751 0.095 19.751 0.095 {built-in method numpy.array} - 24 13.078 0.545 13.078 0.545 {built-in method scipy.sparse._sparsetools.csr_matmat} - 24 6.696 0.279 6.696 0.279 {built-in method scipy.sparse._sparsetools.csr_matmat_maxnnz} - 25 0.000 0.000 3.517 0.141 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:477(__sub__) - 25 0.004 0.000 3.516 0.141 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:361(_sub_sparse) - 25 0.001 0.000 3.512 0.140 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1237(_binopt) - 25 3.306 0.132 3.306 0.132 {built-in method scipy.sparse._sparsetools.csr_minus_csr} - 5 0.000 0.000 0.415 0.083 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:138(unique) - 5 0.008 0.002 0.403 0.081 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:323(_unique1d) - 5 0.390 0.078 0.390 0.078 {method 'sort' of 'numpy.ndarray' objects} - 101/100 0.001 0.000 0.211 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:25(__init__) - 101 0.001 0.000 0.203 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:135(check_format) - 126 0.001 0.000 0.199 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1167(prune) - 53 0.198 0.004 0.198 0.004 {method 'copy' of 'numpy.ndarray' objects} - 252 0.000 0.000 0.197 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/_lib/_util.py:144(_prune_array) - 1 0.000 0.000 0.194 0.194 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:669(_read_ansafile) - 1 0.000 0.000 0.183 0.183 /usr/lib/python3.10/json/__init__.py:299(loads) - 1 0.000 0.000 0.183 0.183 /usr/lib/python3.10/json/decoder.py:332(decode) - 1 0.183 0.183 0.183 0.183 /usr/lib/python3.10/json/decoder.py:343(raw_decode) - 1 0.002 0.002 0.155 0.155 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:223(from_ansa_json) - 1 0.012 0.012 0.099 0.099 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:235() - 1 0.047 0.047 0.059 0.059 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:79() - 1 0.016 0.016 0.057 0.057 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:33(check_hyper_edges) - 1 0.015 0.015 0.053 0.053 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:52(check_vtx_ids) - 28553 0.017 0.000 0.049 0.000 {built-in method builtins.all} - 28536 0.017 0.000 0.039 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:81() - 555553 0.030 0.000 0.030 0.000 {method 'append' of 'list' objects} - 140377 0.021 0.000 0.027 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:42() - 28535 0.022 0.000 0.022 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:84() - 6 0.000 0.000 0.017 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:609(__init__) - 4 0.001 0.000 0.017 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:423(dict_to_mgr) - 28599/64 0.007 0.000 0.016 0.000 {built-in method builtins.max} - 14 0.001 0.000 0.015 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:493(sanitize_array) - 4 0.000 0.000 0.014 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:100(arrays_to_mgr) - 28537 0.014 0.000 0.014 0.000 {method 'tolist' of 'numpy.ndarray' objects} - 28536 0.009 0.000 0.014 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/helpers.py:21() - 22 0.013 0.001 0.013 0.001 {built-in method numpy.asanyarray} - 7 0.000 0.000 0.012 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:120(maybe_convert_platform) - 4 0.001 0.000 0.011 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:588(_homogenize) -169951/169943 0.010 0.000 0.010 0.000 {built-in method builtins.isinstance} - 1 0.000 0.000 0.010 0.010 /usr/lib/python3.10/pathlib.py:1129(read_text) - 1 0.006 0.006 0.010 0.010 {method 'read' of '_io.TextIOWrapper' objects} - 232 0.002 0.000 0.009 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1269(_get_index_dtype) - 1 0.007 0.007 0.008 0.008 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:230() - 19 0.008 0.000 0.008 0.000 {pandas._libs.lib.maybe_convert_objects} - 232 0.004 0.000 0.007 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:147(get_index_dtype) - 1 0.006 0.006 0.006 0.006 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:229() - 1 0.006 0.006 0.006 0.006 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:228() - 28023 0.004 0.000 0.006 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:54() - 2 0.000 0.000 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3955(__setitem__) - 1 0.000 0.000 0.005 0.005 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() - 2 0.005 0.003 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:168() - 2 0.000 0.000 0.005 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4164(_set_item) - 11 0.005 0.000 0.005 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1763(construct_1d_object_array_from_listlike) - 1 0.005 0.005 0.005 0.005 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:226() - 2 0.000 0.000 0.005 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4892(_sanitize_column) - 1 0.000 0.000 0.004 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:150(__init__) - 1 0.004 0.004 0.004 0.004 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:57() - 5 0.004 0.001 0.004 0.001 {method 'flatten' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.004 0.004 /usr/lib/python3.10/codecs.py:319(decode) - 1 0.004 0.004 0.004 0.004 {built-in method _codecs.utf_8_decode} - 3/2 0.000 0.000 0.003 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_decorators.py:323(wrapper) - 4 0.000 0.000 0.003 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2182(create_block_manager_from_column_arrays) - 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:227() - 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_base.py:74() - 1 0.003 0.003 0.003 0.003 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:171() - 2 0.000 0.000 0.002 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:380(tocsr) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh_features.py:119(_make_ids_unique) - 201 0.002 0.000 0.002 0.000 {built-in method numpy.empty} - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:57(new_method) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/arraylike.py:40(__eq__) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:6233(_cmp_method) - 2 0.002 0.001 0.002 0.001 {built-in method scipy.sparse._sparsetools.coo_tocsr} - 4 0.000 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2253(_form_blocks) - 2 0.000 0.000 0.002 0.001 /usr/lib/python3.10/codeop.py:117(__call__) - 2 0.002 0.001 0.002 0.001 {built-in method builtins.compile} - 12/8 0.000 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:430(__new__) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:231(comparison_op) - 464 0.002 0.000 0.002 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:685(__init__) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py:60(comp_method_OBJECT_ARRAY) - 1 0.002 0.002 0.002 0.002 {pandas._libs.ops.vec_compare} - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:5251(drop) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4475(drop) - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4512(_drop_axis) - 28029 0.002 0.000 0.002 0.000 {method 'keys' of 'dict' objects} - 1 0.000 0.000 0.002 0.002 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:146(concat) - 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:132(__init__) - 104 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:294(check_shape) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:565(get_result) - 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:211(isscalarlike) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:176(concatenate_managers) - 19 0.001 0.000 0.001 0.000 {method 'reduce' of 'numpy.ufunc' objects} - 2 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:273(_check) - 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1864(_consolidate_inplace) - 13 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:713(_sanitize_str_dtypes) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:689(reindex_indexer) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2319(_consolidate) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:774(_slice_take_blocks_ax0) - 2 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2361(_merge_blocks) - 6 0.001 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2305(_stack_arrays) - 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:861(take_nd) - 73 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1855(isscalar) - 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:57(take_nd) - 52 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:343(asformat) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_exceptions.py:11(check_distance_init_arg) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1983(warning) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_logger.py:1847(_log) - 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:120(_take_nd_ndarray) - 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:27(require) - 586 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:286(nnz) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:949(tocsr) - 50 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:124(_set_self) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4139(_set_item_mgr) - 6 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_asarray.py:108() - 8 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7396(_maybe_cast_data_without_dtype) - 6 0.001 0.000 0.001 0.000 {method 'upper' of 'str' objects} - 10 0.000 0.000 0.001 0.000 {method 'max' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_handler.py:98(emit) - 10 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:39(_amax) - 2 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1394(insert) - 235 0.000 0.000 0.001 0.000 :404(parent) - 4 0.000 0.000 0.001 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:708(_with_infer) - 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/tempfile.py:956(__init__) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_simple_sinks.py:15(write) - 1 0.000 0.000 0.001 0.001 /usr/lib/python3.10/tempfile.py:483(mkdtemp) - 1 0.000 0.000 0.001 0.001 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:393(tocoo) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:563(flush) - 578 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:107(_getnnz) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6844(insert) - 1 0.000 0.000 0.000 0.000 {built-in method posix.mkdir} - 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:20(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:589(wait) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:288(wait) - 8 0.000 0.000 0.000 0.000 {method 'acquire' of '_thread.lock' objects} - 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis0_object_object} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6901(drop) -1691/1640 0.000 0.000 0.000 0.000 {built-in method builtins.len} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3888(get_indexer) - 6 0.000 0.000 0.000 0.000 {method 'min' of 'numpy.ndarray' objects} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:43(_amin) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:389(__init__) - 94 0.000 0.000 0.000 0.000 /usr/lib/python3.10/abc.py:117(__instancecheck__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:631(_get_new_axes) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:219(vstack) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:633() - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:235(asarray_tuplesafe) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6032(get_indexer_for) - 778 0.000 0.000 0.000 0.000 {built-in method numpy.asarray} - 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:307() - 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:696(min) - 104 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:108(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1110(sum_duplicates) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1080(__get_has_canonical_format) - 2 0.000 0.000 0.000 0.000 {built-in method scipy.sparse._sparsetools.csr_has_canonical_format} - 232 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/getlimits.py:709(max) - 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:22(upcast) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1111(open) - 1 0.000 0.000 0.000 0.000 {built-in method io.open} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3758(__getitem__) - 151 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1461(issparse) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:648(_get_concat_axis) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:708(_concat_indexes) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5377(append) - 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:274(full) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5407(_concat) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5254(__contains__) - 107 0.000 0.000 0.000 0.000 {built-in method builtins.any} - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7277(ensure_index) - 235 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6576(_maybe_cast_listlike_indexer) - 575 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:1331() - 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:45(_instancecheck) - 94 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1007(__exit__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1010(cleanup) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:3194(_construct_result) - 1 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_object_object} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4274(_get_item_cache) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:262(__call__) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:342(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:229(eye) - 54 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:238(isshape) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:965(_rmtree) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:3703(_ixs) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:134(_get_option) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:688(rmtree) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2488(convert_to_index_sliceable) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1393(moveaxis) - 310 0.000 0.000 0.000 0.000 {built-in method builtins.getattr} - 1 0.000 0.000 0.000 0.000 {method 'format_map' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:638(_get_comb_axis) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:588(_dtype_to_subclass) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:78(get_objs_combined_axis) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5368(insert) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:13(__format__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:122(_get_combined_index) - 298 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:296(format) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_construct.py:26(spdiags) - 103 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:93(to_native) - 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_2d_axis1_int64_int64} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_dia.py:89(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1673(construct_1d_arraylike_from_scalar) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:627(_extract_index) - 171 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/generic.py:40(_check) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:116(_get_single_key) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:881(_engine) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:130(filterwarnings) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:259(__init__) - 51 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1591(_is_dtype_type) - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7372(maybe_extract_name) - 15 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:399(extract_array) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6285(_should_compare) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1178(maybe_infer_to_datetimelike) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:199() - 73 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:267(isdense) - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:181(_add_filter) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:71(_wrapreduction) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:278(_get_mgr_concatenation_plan) - 9 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:165(simplefilter) - 16 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1246(is_float_dtype) - 312 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:312() - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/mesh2vec/mesh2vec_cae.py:95() - 238 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:503(can_cast) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:310(reshape_uniq) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1330(normalize_axis_tuple) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:957(__new__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:626(write) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5844(__finalize__) - 5 0.000 0.000 0.000 0.000 {built-in method builtins.sorted} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:259(schedule) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:589(_from_parts) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:481() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1455(_insert_update_blklocs_and_blknos) - 80 0.000 0.000 0.000 0.000 {built-in method builtins.hash} - 3 0.000 0.000 0.000 0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1129(iget) - 216 0.000 0.000 0.000 0.000 {built-in method _operator.index} - 352 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:236(_swap) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:204(union_indexes) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:200(fill_value) - 1 0.000 0.000 0.000 0.000 {method 'fill' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2979(prod) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2421(is_boolean) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4257(_box_col_values) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:54(shape) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:303(maybe_iterable_to_list) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2745(inferred_type) - 101 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_data.py:23(_get_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:548(_schedule_flush) - 6 0.000 0.000 0.000 0.000 {built-in method builtins.next} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:645(na_value_for_dtype) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:569(_parse_args) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2324() - 1 0.000 0.000 0.000 0.000 {built-in method posix.rmdir} - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:458(__enter__) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:744(_try_cast) - 54 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5116(_get_engine_target) - 3 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:160(_consolidate_key) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5562(append) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:346(_name_get) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:997(__init__) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2120(get_block_type) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3975(_get_indexer) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:458(copy) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:4137(_check_setitem_copy) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:268(index_labels_to_array) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:690(_simple_new) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:81(aware_now) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3241(union) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1445(_insert_update_mgr_locs) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2161(new_block_2d) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/base.py:286(is_dtype) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/shutil.py:627(_rmtree_safe_fd) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:566(require_length_match) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1285(exists) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:172(blknos) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:71(concat_compat) - 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1487(is_ea_or_datetimelike_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6804(delete) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:501(is_categorical_dtype) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:4020(_check_indexing_method) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:249(compile) - 12 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:162(is_object_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:136(ones) - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:676(_sanitize_ndim) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5904(__setattr__) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:650(_warn_if_deprecated) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:1092(stat) - 12 0.000 0.000 0.000 0.000 :1053(_handle_fromlist) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/zmq/sugar/socket.py:545(send) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1846(is_consolidated) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5464(equals) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:108(isna) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:384(default_index) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1040(_verify_integrity) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:597(_get_root) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:56(parse_parts) - 5 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_datetimelike_array} - 29 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:946(__len__) - 21 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:56() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:292(__next__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2421(all) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/re.py:288(_compile) - 1 0.000 0.000 0.000 0.000 {built-in method posix.stat} - 13 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects} - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:585(is_dtype_equal) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:191(_isna) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:33(seterr) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:790(is_unsigned_integer_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:436(_promote_fields) - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:611(_get_deprecated_option) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1854(_consolidate_check) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1934(from_array) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1185(tile) - 106 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:77(get_op_result_name) - 32 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_list_like} - 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange} - 2 0.000 0.000 0.000 0.000 {method 'view' of 'numpy.ndarray' objects} - 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:461(ensure_wrapped_if_datetimelike) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2237(_grouping_func) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:430(__enter__) - 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_io._IOBase' objects} - 47 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr} - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:437(__init__) - 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:325(is_hashable) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:377(abspath) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3754(get_loc) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5172(delete) - 2 0.000 0.000 0.000 0.000 {method 'get_indexer' of 'pandas._libs.index.IndexEngine' objects} - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:49(__init__) - 13 0.000 0.000 0.000 0.000 /usr/lib/python3.10/warnings.py:477(__exit__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:60(__getitem__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_base.py:86(_csr_container) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:463(is_interval_dtype) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:173(_simple_new) - 4 0.000 0.000 0.000 0.000 {method 'strftime' of 'datetime.date' objects} - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:236(make_block_same_class) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:736(is_signed_integer_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2172(new_block) - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:621(__str__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2091(maybe_coerce_values) - 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:148() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:565(_set_axis) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:357(issubdtype) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2381(is_unique) - 1 0.000 0.000 0.000 0.000 {method 'sub' of 're.Pattern' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:506(choices) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2398(_fast_count_smallints) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:699(is_valid_na_for_dtype) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_coo.py:247(_getnnz) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:139(__exit__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:266(is_dict_like) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:684(is_integer_dtype) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:554(_take_preprocess_indexer_and_fill_value) - 1 0.000 0.000 0.000 0.000 {method 'any' of 'numpy.ndarray' objects} - 18 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:925(__len__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5304(__getitem__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/dtypes.py:1247(is_dtype) - 1 0.000 0.000 0.000 0.000 {built-in method posix.lstat} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:362(apply_if_callable) - 5 0.000 0.000 0.000 0.000 {built-in method builtins.sum} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1390(_indexed_same) - 6 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects} - 5/4 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1025(argsort) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1752(_validate_names) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:279(helper) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:661(name) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1380() - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:705(_combine_concat_plans) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_methods.py:55(_any) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:338(normpath) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:216(isintlike) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/frozen.py:70(__getitem__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:1267(_set_as_cached) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1725(validate_all_hashable) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1860() - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:631(__fspath__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2266(ensure_block_shape) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1768(ravel) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:708(_values) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1169(is_alive) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:579(_select_options) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:330(_name_includes_bit_suffix) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:268(_isna_array) - 28 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:146(classes) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:708(__get__) - 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:156() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:545(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:7456(unpack_nested_dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:53(_wrapfunc) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6205(_maybe_promote) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:476() - 13 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:733(_maybe_repeat) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1392() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:593(detach) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:1498(__len__) - 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1556(get_dtype) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:150(dirname) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:130(__enter__) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/common.py:99(_maybe_match_name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3737(_convert_can_do_setop) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:435(__exit__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:742(__iter__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/contextlib.py:102(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/random.py:519() - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2783(_is_multi) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/types.py:176(__get__) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numerictypes.py:283(issubclass_) - 10 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects} - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:564(_get_axis) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2069(internal_values) - 24 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_csr.py:169(tocsr) - 1 0.000 0.000 0.000 0.000 {built-in method posix.open} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:772(getenv) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:253(_sanitize_params) - 17 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6303(_is_comparable_dtype) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1420(is_1d_only_ea_dtype) - 2 0.000 0.000 0.000 0.000 {method 'match' of 're.Pattern' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:135(getdata) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/weakref.py:569(__init__) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/compilerop.py:180(extra_flags) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1278(is_bool_dtype) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:85(allows_duplicate_labels) - 16 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x55eceb2b19a0} - 14 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:870(_reset_identity) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:140(basename) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5204(_validate_fill_value) - 2 0.000 0.000 0.000 0.000 {pandas._libs.algos.take_1d_int64_int64} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1751(pandas_dtype) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:640(_info_axis) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1891(__init__) - 43 0.000 0.000 0.000 0.000 /usr/lib/python3.10/typing.py:1737(cast) - 39 0.000 0.000 0.000 0.000 {built-in method _warnings._filters_mutated} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:81(atleast_2d) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:309(_isna_string_dtype) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/_collections_abc.py:821(get) - 1 0.000 0.000 0.000 0.000 {built-in method now} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:1967(keys) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/calendar.py:79(__getitem__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:132(geterr) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:4234(_ensure_valid_index) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:2752(_is_all_dates) - 1 0.000 0.000 0.000 0.000 /tmp/ipykernel_28415/2631849376.py:1() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:236(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:71(join) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:125(_unpack_tuple) - 1 0.000 0.000 0.000 0.000 {method 'timetuple' of 'datetime.datetime' objects} - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/_config/config.py:638(_translate_key) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:874(shape) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:231(mgr_to_mgr) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:117(splitext) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_internal.py:525(_view_is_safe) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:16(_coo_container) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:108(_get_distinct_objs) - 9 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects} - 11 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1204(is_numeric_dtype) - 4 0.000 0.000 0.000 0.000 {method 'transpose' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3198(_get_reconciled_name_object) - 23 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:151(classes_and_not_datetimelike) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2250(extend_blocks) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:289() - 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:1080(copyto) - 30 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5090(_values) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1102(_wait_for_tstate_lock) - 4 0.000 0.000 0.000 0.000 {built-in method builtins.callable} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:830(_rename) - 1 0.000 0.000 0.000 0.000 {method 'argsort' of 'numpy.ndarray' objects} - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1154(needs_i8_conversion) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/array_algos/take.py:326(_get_take_nd_function) - 1 0.000 0.000 0.000 0.000 {built-in method time.localtime} - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_datetime.py:72(get) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:611(name) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:675(__getitem__) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1744() - 1 0.000 0.000 0.000 0.000 {built-in method posix.scandir} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:281(rng) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/inference.py:292() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:23(atleast_1d) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:608(_format_parsed_parts) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:555() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py:109(getdtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1061(from_blocks) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:41(_get_sep) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:453(_view) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:541(equals) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:482() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:309(__init__) - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1430(current_thread) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1042() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:26(_csr_container) - 10 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:550(_get_axis_number) - 2 0.000 0.000 0.000 0.000 {method 'timestamp' of 'datetime.datetime' objects} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:113() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3442(compare) - 20 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:213(mgr_locs) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:234(ident) - 8 0.000 0.000 0.000 0.000 {built-in method sys.intern} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexing.py:2656(check_deprecated_indexers) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:192(all_none) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/range.py:353(dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:2186(check_ndim) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:228(set_axis) - 9 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:1435() - 5 0.000 0.000 0.000 0.000 {method 'add' of 'pandas._libs.internals.BlockPlacement' objects} - 4 0.000 0.000 0.000 0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/ops/dispatch.py:13(should_extension_dispatch) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/posixpath.py:60(isabs) - 3 0.000 0.000 0.000 0.000 {built-in method posix.getpid} - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:574(_ensure_array) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/construction.py:488() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1001(__repr__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:328(_sanitize_and_check) - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2433(_using_copy_on_write) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/arraysetops.py:133(_unique_dispatcher) - 7 0.000 0.000 0.000 0.000 {method 'ravel' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:104() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/missing.py:460(array_equivalent) - 8 0.000 0.000 0.000 0.000 {built-in method numpy.core._multiarray_umath.normalize_axis_index} - 2 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.checknull} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:527(maybe_promote) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:413(_engine_type) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2372() - 19 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1734(name) - 2 0.000 0.000 0.000 0.000 {built-in method numpy.seterrobj} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:827(iget) - 5 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} - 1 0.000 0.000 0.000 0.000 {built-in method numpy.zeros} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/traitlets/traitlets.py:624(get) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:151(cast_scalar_indexer) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:354(__init__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1422(sanitize_to_nanoseconds) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:436(gettempdir) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1102(__set_has_canonical_format) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:121(_splitext) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5881() - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:137(_event_pipe) - 1 0.000 0.000 0.000 0.000 {built-in method posix.fstat} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:910(clean_reindex_fill_method) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3731(_assert_can_do_setop) - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/enum.py:801(value) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1048(is_numeric_v_string_like) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2407(_preprocess_slice_or_indexer) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:16(__format__) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:570(_get_block_manager_axis) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:215(_vhstack_dispatcher) - 1 0.000 0.000 0.000 0.000 {built-in method posix.close} - 2 0.000 0.000 0.000 0.000 {pandas._libs.internals.get_blkno_placements} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/base.py:58(_validate_set_axis) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:267(__exit__) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_dtype.py:24(_kind_name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:558(_get_axis_name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:682() - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:664(ndim) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/util/_validators.py:226(validate_bool_kwarg) - 1 0.000 0.000 0.000 0.000 {method 'replace' of 'datetime.datetime' objects} - 8 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:241(disallow_kwargs) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1455() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/ipykernel/iostream.py:521(_is_master_process) - 5 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_object} - 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py:90(get_shape) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:755(encode) - 4 0.000 0.000 0.000 0.000 {method 'join' of 'str' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:1433(is_extension_array_dtype) - 2 0.000 0.000 0.000 0.000 {method 'nonzero' of 'numpy.ndarray' objects} - 7 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_iterator} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:72() - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:332(attrs) - 4 0.000 0.000 0.000 0.000 {built-in method numpy.geterrobj} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:500(dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:103() - 11 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:353(flags) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:110() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5402() - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3176(ndim) - 4 0.000 0.000 0.000 0.000 {method 'rfind' of 'str' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:1820(_get_names) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:857(axes) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:264(__enter__) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:188(blklocs) - 7 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:153(concatenate) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:224(_infer_return_type) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:233(is_single_block) - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:986(dtype) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/construction.py:861(is_empty_data) - 10 0.000 0.000 0.000 0.000 {built-in method posix.fspath} - 6 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/flags.py:53(allows_duplicate_labels) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:1231(user_global_ns) - 9 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_platform_int} - 6 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:207(_arrays_for_stack_dispatcher) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:839(is_) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/concat.py:246(_maybe_reindex_columns_na_proxy) - 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.item_from_zerodim} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:756(infer_dtype_from_scalar) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5876() - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:276(_acquire_restore) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/cast.py:1931(np_can_hold_element) - 3 0.000 0.000 0.000 0.000 {method 'item' of 'numpy.ndarray' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:280() - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/blocks.py:823(shape) - 3 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1145(ident) - 5 0.000 0.000 0.000 0.000 {method 'copy' of 'dict' objects} - 2 0.000 0.000 0.000 0.000 /usr/lib/python3.10/pathlib.py:239(splitroot) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/generic.py:5888(__getattr__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:23(__init__) - 2 0.000 0.000 0.000 0.000 {method 'values' of 'collections.OrderedDict' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:273(_release_save) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/os.py:817(fsdecode) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/_ufunc_config.py:426(__init__) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:117() - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/numeric.py:1389(_moveaxis_dispatcher) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:92(is_nonempty) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:238(items) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/genericpath.py:87(samestat) - 7 0.000 0.000 0.000 0.000 {method 'group' of 're.Match' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/frame.py:600(_constructor) - 1 0.000 0.000 0.000 0.000 {method '__format__' of 'str' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:5411() - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/missing.py:107(clean_fill_method) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:279(_is_owned) - 8 0.000 0.000 0.000 0.000 {method 'random' of '_random.Random' objects} - 2 0.000 0.000 0.000 0.000 {method 'end' of 're.Match' objects} - 1 0.000 0.000 0.000 0.000 {built-in method builtins.divmod} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:8(__init__) - 1 0.000 0.000 0.000 0.000 {built-in method sys._getframe} - 2 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects} - 4 0.000 0.000 0.000 0.000 {built-in method builtins.id} - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2009(_block) - 5 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:196() - 8 0.000 0.000 0.000 0.000 {built-in method math.floor} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/common.py:537(is_string_or_object_np_dtype) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/codecs.py:260(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:625(_get_result_dim) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6193(_index_as_unique) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:109() - 4 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:553(is_set) - 2 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects} - 2 0.000 0.000 0.000 0.000 {built-in method numpy.promote_types} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5558(_append_dispatcher) - 2 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock} - 1 0.000 0.000 0.000 0.000 {method 'get' of '_contextvars.ContextVar' objects} - 5 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:349() - 2 0.000 0.000 0.000 0.000 {built-in method sys.audit} - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:6569(_maybe_cast_indexer) - 2 0.000 0.000 0.000 0.000 {built-in method io.text_encoding} - 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1257() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:51(__init__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:99(_check_closed) - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py:1142(__set_sorted) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:178(not_none) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:3172(_ndim_dispatcher) - 3 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/common.py:182() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/internals/managers.py:2381() - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:85(empty_like) - 1 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects} - 4 0.000 0.000 0.000 0.000 {method 'add' of 'set' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5364(_insert_dispatcher) - 4 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1764(_ravel_dispatcher) - 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/multiarray.py:892(bincount) - 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_float} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:1004(__enter__) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:37(current_process) - 2 0.000 0.000 0.000 0.000 {built-in method _thread.get_ident} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:108() - 1 0.000 0.000 0.000 0.000 {built-in method builtins.min} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/threading.py:1129(name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:3209(_validate_sort_keyword) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/shape_base.py:1181(_tile_dispatcher) - 1 0.000 0.000 0.000 0.000 {method 'total_seconds' of 'datetime.timedelta' objects} - 4 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:77(_atleast_2d_dispatcher) - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/multiprocessing/process.py:189(name) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/reshape/concat.py:701(_maybe_check_integrity) - 2 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:368(_get_candidate_names) - 2 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.lock' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/dtypes/concat.py:116() - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/series.py:546(_constructor) - 1 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects} - 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_bool} - 1 0.000 0.000 0.000 0.000 {built-in method builtins.abs} - 1 0.000 0.000 0.000 0.000 /usr/lib/python3.10/tempfile.py:424(_gettempdir) - 1 0.000 0.000 0.000 0.000 {method 'encode' of 'str' objects} - 1 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2974(_prod_dispatcher) - 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects} - 2 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/base.py:324(ndim) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/lib/function_base.py:5168(_delete_dispatcher) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:2416(_all_dispatcher) - 1 0.000 0.000 0.000 0.000 {method 'tzname' of 'datetime.timezone' objects} - 1 0.000 0.000 0.000 0.000 {built-in method numpy.ascontiguousarray} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/loguru/_recattrs.py:37(__init__) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/base.py:728(_constructor) - 1 0.000 0.000 0.000 0.000 {method '__exit__' of 'posix.ScandirIterator' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1021(_argsort_dispatcher) - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/pandas/core/indexes/api.py:281() - 1 0.000 0.000 0.000 0.000 {method '__enter__' of '_thread.lock' objects} - 1 0.000 0.000 0.000 0.000 {method 'release' of '_thread.lock' objects} - 1 0.000 0.000 0.000 0.000 {method 'utcoffset' of 'datetime.timezone' objects} - 1 0.000 0.000 0.000 0.000 /home/soeren/mesh2vec/.venv/lib/python3.10/site-packages/numpy/core/shape_base.py:19(_atleast_1d_dispatcher) - 1 0.000 0.000 0.000 0.000 {function FrozenList.__getitem__ at 0x7fddbdab1510} - - diff --git a/tests/test_mesh2vec_base.py b/tests/test_mesh2vec_base.py index c40f9a6..4a030a5 100644 --- a/tests/test_mesh2vec_base.py +++ b/tests/test_mesh2vec_base.py @@ -16,6 +16,26 @@ FeatureDoesNotExistException, ) +from mesh2vec.helpers import ( + MatMulAdjacency, + BFSAdjacency, + BFSNumba, + PurePythonBFS, + PurePythonDFS, + DFSNumba, + MatMulAdjacencySmart, +) + + +strategies = [ + MatMulAdjacency, + BFSAdjacency, + BFSNumba, + PurePythonBFS, + PurePythonDFS, + DFSNumba, + MatMulAdjacencySmart, +] # pylint: disable=protected-access def _csr_equal(csr_a: csr_matrix, csr_b: csr_matrix) -> bool: @@ -32,10 +52,7 @@ def test_init() -> None: hg = Mesh2VecBase(3, edges) assert hg._distance == 3 assert "y" in hg._vtx_ids_to_idx.keys() - assert _csr_equal(hg._adjacency_matrix_powers[2], hg._adjacency_matrix_powers[1]) - assert hg._adjacency_matrix_powers[3][0, 1] # a->b - assert hg._adjacency_matrix_powers[3][0, 2] # a->c - assert not hg._adjacency_matrix_powers[3][0, 3] # a->x + assert set(hg._neighborhoods[1][0]) == {1, 2} # a->b,c def test_invalid_hyperedges() -> None: @@ -71,14 +88,6 @@ def test_from_txt_file() -> None: assert hg._distance == 3 assert "vtx02" in hg._vtx_ids_to_idx.keys() - assert not _csr_equal(hg._adjacency_matrix_powers[2], hg._adjacency_matrix_powers[1]) - - assert _csr_a_gte_b(hg._adjacency_matrix_powers[2], hg._adjacency_matrix_powers[1]) - assert _csr_equal( - hg._adjacency_matrix_powers_exclusive[3], - hg._adjacency_matrix_powers[3] - hg._adjacency_matrix_powers[2], - ) - def test_from_csv_file() -> None: """test import of csv file creates a consistent hypergraph""" @@ -86,7 +95,7 @@ def test_from_csv_file() -> None: # write pair-wise connectivity to csv connections = [] - connectivity_list = [x[:].indices for x in hg1._adjacency_matrix_powers[1]] + connectivity_list = [x for x in hg1._neighborhoods[1]] for vtx_a, vtx_a_neigbors in enumerate(connectivity_list): for vtx_b in vtx_a_neigbors: connections.append([hg1._vtx_idx_to_ids[vtx_a], hg1._vtx_idx_to_ids[vtx_b]]) @@ -98,9 +107,8 @@ def test_from_csv_file() -> None: # adj_mat must be equal for i in range(1, 3 + 1): - assert all( - hg2._adjacency_matrix_powers[i].indices == hg1._adjacency_matrix_powers[i].indices - ) + for j in range(13): + assert all(hg2._neighborhoods[i][j] == hg1._neighborhoods[i][j]) # hyper edges of hg1 that are not fully contained in larger other hyper edge form a clique # and should be contained in hyper edges of hg2 @@ -119,10 +127,11 @@ def test_from_csv_file() -> None: assert sorted(hyper_edge) in sorted_hg2_hyper_edges -def test_get_nbh() -> None: +@pytest.mark.parametrize("strategy", strategies) +def test_get_nbh(strategy) -> None: """test get_nbh""" edges = {"first": ["a", "b", "c"], "second": ["x", "y"], "third": ["x", "a"]} - hg = Mesh2VecBase(3, edges) + hg = Mesh2VecBase(3, edges, calc_strategy=strategy) assert {"b"} == set(hg.get_nbh("b", 0)) assert {"a", "c"} == set(hg.get_nbh("b", 1)) assert {"x"} == set(hg.get_nbh("y", 1)) @@ -264,10 +273,11 @@ def test_aggregates_raise_feature_not_available() -> None: _ = hg.aggregate_categorical("f_not_exist", 1) -def test_aggregate_simple() -> None: +@pytest.mark.parametrize("strategy", strategies) +def test_aggregate_simple(strategy) -> None: """test aggregation with simple graph""" edges = {"first": ["a", "b", "c"], "second": ["x", "y"]} - hg = Mesh2VecBase(3, edges) + hg = Mesh2VecBase(3, edges, calc_strategy=strategy) df1 = pd.DataFrame({"vtx_id": ["a", "b", "c", "x", "y"], "f1": [2, 4, 8, 16, 32]}) hg.add_features_from_dataframe(df1) name = hg.aggregate("f1", 1, np.mean) @@ -284,17 +294,13 @@ def test_aggregate_simple_two_dists() -> None: hg = Mesh2VecBase(3, edges) df1 = pd.DataFrame({"vtx_id": ["a", "b", "c", "x", "y"], "f1": [2, 4, 8, 16, 32]}) hg.add_features_from_dataframe(df1) - names = hg.aggregate("f1", [1, 1], np.mean) + names = hg.aggregate("f1", [1, 2], np.mean) assert hg._aggregated_features[names[0]].iloc[0] == np.mean([4, 8]) assert hg._aggregated_features[names[0]].iloc[1] == np.mean([2, 8]) assert hg._aggregated_features[names[0]].iloc[2] == np.mean([2, 4]) assert hg._aggregated_features[names[0]].iloc[3] == np.mean([32]) assert hg._aggregated_features[names[0]].iloc[4] == np.mean([16]) - assert hg._aggregated_features[names[1]].iloc[0] == np.mean([4, 8]) - assert hg._aggregated_features[names[1]].iloc[1] == np.mean([2, 8]) - assert hg._aggregated_features[names[1]].iloc[2] == np.mean([2, 4]) - assert hg._aggregated_features[names[1]].iloc[3] == np.mean([32]) - assert hg._aggregated_features[names[1]].iloc[4] == np.mean([16]) + assert hg._aggregated_features[names[1]].iloc[0] == 0 def test_aggregate_complex() -> None: diff --git a/tests/test_mesh2vec_cae.py b/tests/test_mesh2vec_cae.py index 5ce0567..c2be107 100644 --- a/tests/test_mesh2vec_cae.py +++ b/tests/test_mesh2vec_cae.py @@ -2,6 +2,7 @@ from pathlib import Path from functools import partial +from tempfile import TemporaryDirectory import numpy as np import pandas as pd from scipy.sparse import csr_matrix @@ -93,6 +94,36 @@ def test_shell_from_ansa() -> None: assert len(m2v.vtx_ids()) == 6400 +def test_from_keyfile_shell() -> None: + """test ansa shell is loaded""" + m2v = Mesh2VecCae.from_keyfile_shell( + 4, + Path("data/hat/Hatprofile.k"), + ) + + m2v_ansa = Mesh2VecCae.from_ansa_shell( + 4, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), + ) + all( + [ + sorted(m2v._hyper_edges[k]) == sorted(m2v_ansa._hyper_edges[k]) + for k in m2v._hyper_edges.keys() + ] + ) + set(m2v.vtx_ids()) == set(m2v_ansa.vtx_ids()) + + +def test_patch2vec() -> None: + m2v = Mesh2VecCae.from_keyfile_shell( + 4, + Path("/home/markus/Downloads/Patch2.key"), + ) + name = m2v.add_features_from_ansa(["num_border"])[0] + name = m2v.aggregate(name, 2, np.mean) + + def test_shell_from_ansa_partid() -> None: """test ansa shell is loaded with and without partid""" m2v1 = Mesh2VecCae.from_ansa_shell( @@ -171,6 +202,22 @@ def test_add_feature_from_d3plot_accumulated() -> None: ) +def test_save_load() -> None: + """test saving and loading works""" + m2v = Mesh2VecCae.from_d3plot_shell(3, Path("data/hat/HAT.d3plot")) + d3plot_data = D3plot(Path("data/hat/HAT.d3plot").as_posix()) + axis_0_sum = partial(np.sum, axis=0) + axis_0_sum.__name__ = "axis0sum" # type: ignore + for feature in features_reduced: + m2v.add_feature_from_d3plot( + feature, d3plot_data, timestep=1, shell_layer=axis_0_sum, history_var_index=1 + ) + with TemporaryDirectory() as tmpdir: + m2v.save(Path(tmpdir) / "test.h5") + m2v_loaded = Mesh2VecCae.load(Path(tmpdir) / "test.h5") + assert m2v_loaded._features.equals(m2v._features) + + def test_add_feature_from_d3plot_to_ansa_shell() -> None: """test adding features from ansa works""" ansafile = Path("data/hat/Hatprofile.k") From b6f1fbf830438b90653a7003d32a141363c7517c Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Thu, 30 Nov 2023 08:49:13 +0100 Subject: [PATCH 17/27] add: numba and igraph --- poetry.lock | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 31fbbe7..b6b1856 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1753,6 +1753,39 @@ files = [ six = "*" tornado = {version = "*", markers = "python_version > \"2.7\""} +[[package]] +name = "llvmlite" +version = "0.41.1" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.8" +files = [ + {file = "llvmlite-0.41.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1e1029d47ee66d3a0c4d6088641882f75b93db82bd0e6178f7bd744ebce42b9"}, + {file = "llvmlite-0.41.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:150d0bc275a8ac664a705135e639178883293cf08c1a38de3bbaa2f693a0a867"}, + {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1eee5cf17ec2b4198b509272cf300ee6577229d237c98cc6e63861b08463ddc6"}, + {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd0338da625346538f1173a17cabf21d1e315cf387ca21b294ff209d176e244"}, + {file = "llvmlite-0.41.1-cp310-cp310-win32.whl", hash = "sha256:fa1469901a2e100c17eb8fe2678e34bd4255a3576d1a543421356e9c14d6e2ae"}, + {file = "llvmlite-0.41.1-cp310-cp310-win_amd64.whl", hash = "sha256:2b76acee82ea0e9304be6be9d4b3840208d050ea0dcad75b1635fa06e949a0ae"}, + {file = "llvmlite-0.41.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:210e458723436b2469d61b54b453474e09e12a94453c97ea3fbb0742ba5a83d8"}, + {file = "llvmlite-0.41.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:855f280e781d49e0640aef4c4af586831ade8f1a6c4df483fb901cbe1a48d127"}, + {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b67340c62c93a11fae482910dc29163a50dff3dfa88bc874872d28ee604a83be"}, + {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2181bb63ef3c607e6403813421b46982c3ac6bfc1f11fa16a13eaafb46f578e6"}, + {file = "llvmlite-0.41.1-cp311-cp311-win_amd64.whl", hash = "sha256:9564c19b31a0434f01d2025b06b44c7ed422f51e719ab5d24ff03b7560066c9a"}, + {file = "llvmlite-0.41.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5940bc901fb0325970415dbede82c0b7f3e35c2d5fd1d5e0047134c2c46b3281"}, + {file = "llvmlite-0.41.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8b0a9a47c28f67a269bb62f6256e63cef28d3c5f13cbae4fab587c3ad506778b"}, + {file = "llvmlite-0.41.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8afdfa6da33f0b4226af8e64cfc2b28986e005528fbf944d0a24a72acfc9432"}, + {file = "llvmlite-0.41.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8454c1133ef701e8c050a59edd85d238ee18bb9a0eb95faf2fca8b909ee3c89a"}, + {file = "llvmlite-0.41.1-cp38-cp38-win32.whl", hash = "sha256:2d92c51e6e9394d503033ffe3292f5bef1566ab73029ec853861f60ad5c925d0"}, + {file = "llvmlite-0.41.1-cp38-cp38-win_amd64.whl", hash = "sha256:df75594e5a4702b032684d5481db3af990b69c249ccb1d32687b8501f0689432"}, + {file = "llvmlite-0.41.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:04725975e5b2af416d685ea0769f4ecc33f97be541e301054c9f741003085802"}, + {file = "llvmlite-0.41.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bf14aa0eb22b58c231243dccf7e7f42f7beec48970f2549b3a6acc737d1a4ba4"}, + {file = "llvmlite-0.41.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92c32356f669e036eb01016e883b22add883c60739bc1ebee3a1cc0249a50828"}, + {file = "llvmlite-0.41.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24091a6b31242bcdd56ae2dbea40007f462260bc9bdf947953acc39dffd54f8f"}, + {file = "llvmlite-0.41.1-cp39-cp39-win32.whl", hash = "sha256:880cb57ca49e862e1cd077104375b9d1dfdc0622596dfa22105f470d7bacb309"}, + {file = "llvmlite-0.41.1-cp39-cp39-win_amd64.whl", hash = "sha256:92f093986ab92e71c9ffe334c002f96defc7986efda18397d0f08534f3ebdc4d"}, + {file = "llvmlite-0.41.1.tar.gz", hash = "sha256:f19f767a018e6ec89608e1f6b13348fa2fcde657151137cb64e56d48598a92db"}, +] + [[package]] name = "loguru" version = "0.6.0" @@ -4223,4 +4256,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.8, <3.12" -content-hash = "d0c50e7153f79c7126e6e17dc4cee88b7fc9eb2526622983f715af1d8e861ac2" +content-hash = "616997f5becffd637b1e397f159135017fb3ff9eadbbef4685260f3dbbeb3c88" From 9fa757a1e13be0b99d84c8a6fb9cd009a109ac33 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 10:24:53 +0100 Subject: [PATCH 18/27] cleanups --- docs/examples/plot_stress.py | 36 ++++++++++++++------------------ mesh2vec/mesh2vec_base.py | 14 ++++++------- mesh2vec/mesh2vec_cae.py | 40 ++++++++++++++++++++---------------- mesh2vec/mesh_features.py | 8 +++++++- tests/test_mesh2vec_base.py | 2 +- tests/test_mesh2vec_cae.py | 39 +++++++++++++++++++---------------- 6 files changed, 73 insertions(+), 66 deletions(-) diff --git a/docs/examples/plot_stress.py b/docs/examples/plot_stress.py index 08bbc9d..e409db8 100644 --- a/docs/examples/plot_stress.py +++ b/docs/examples/plot_stress.py @@ -10,6 +10,9 @@ from lasso.dyna import ArrayType from mesh2vec.mesh2vec_cae import Mesh2VecCae +import os + +os.chdir(os.path.dirname(__file__)) # %% # Load Shell from ANSA, simulation results from d3plot @@ -19,37 +22,28 @@ Path("../../data/hat/Hatprofile.k"), json_mesh_file=Path("../../data/hat/cached_hat_key.json"), ) -name = hg.add_feature_from_d3plot( + + +def y_all_layers(v): + """get y stress component of all layers""" + return v[:, 1] + + +fature_name = hg.add_feature_from_d3plot( ArrayType.element_shell_stress, Path("../../data/hat/HAT.d3plot"), - timestep=-1, - shell_layer=np.mean, + timestep=1, + shell_layer=y_all_layers, ) -# %% -# Plot Feature locally -# ------------------------ -hg.add_features_from_dataframe( - pd.DataFrame( - { - "vtx_id": hg.vtx_ids(), - "y-stress": [v for v in hg.features()[name]], - } - ) -) -name = hg.aggregate("y-stress", 0, np.mean) -fig = hg.get_visualization_plotly(str(name)) -fig.update_layout(title=name) -fig - # %% # Aggregate Feature and plot # --------------------------- -name = hg.aggregate("y-stress", 1, np.mean) +name = hg.aggregate(fature_name, 1, lambda x: np.mean(np.mean(x))) fig = hg.get_visualization_plotly(str(name)) fig.update_layout(title=name) -fig.show() +fig # %% diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 138aeb8..22b5e0b 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -228,7 +228,7 @@ def aggregate_categorical( feature_categories = np.unique(self._features[feature]) for distance in dist_list: - values = self._collect_feature_values(feature, distance, default_value, aggr=np.array) + values = self._collect_feature_values(feature, distance, default_value, aggr=None) for category in feature_categories: feature_name = f"{feature}-cat-{category}-{distance}" @@ -406,16 +406,16 @@ def _collect_feature_values( return feature if ref_values is None: - try: # fast: use nan_to_num over the whole array + if not aggr is None: # fast: use nan_to_num over the whole array return np.nan_to_num( [aggr(feature[neighborhood]) for neighborhood in self._neighborhoods[dist]], default_value, ).tolist() - except ValueError: # slow: use nan_to_num for each element (different dimensions) - return [ - np.nan_to_num(aggr(feature[neighborhood]), default_value) - for neighborhood in self._neighborhoods[dist] - ] + # slow: use nan_to_num for each neighborhood (not aggregatted - different length) + return [ + np.nan_to_num((feature[neighborhood]), default_value) + for neighborhood in self._neighborhoods[dist] + ] # compare to reference value is needed ref_values_list = ref_values.tolist() diff --git a/mesh2vec/mesh2vec_cae.py b/mesh2vec/mesh2vec_cae.py index c260306..9f00b0e 100644 --- a/mesh2vec/mesh2vec_cae.py +++ b/mesh2vec/mesh2vec_cae.py @@ -258,6 +258,7 @@ def add_features_from_ansa( ansa_executable: Optional[Path] = None, ansa_script: Optional[Path] = None, verbose: bool = False, + allow_addtional_ansa_features: bool = False, ) -> List[str]: """ Add values derived or calculated from ANSA shell elements (currently restricted to @@ -278,6 +279,8 @@ def add_features_from_ansa( * midpoint x,y,z * normal vector x,y,z (ansafile is required) * area (ansafile is required) + * custom features from your customized ansa_script (scalar values only, + allow_addtional_ansa_features must be True) Example: >>> from pathlib import Path @@ -293,15 +296,19 @@ def add_features_from_ansa( >>> print(f'{m2v._features["warpage"][14]:.4f}') 0.0188 """ - okay_ansa = ["aspect", "warpage", "normal", "area"] + # pylint: disable=too-many-locals + okay_ansa = ["aspect", "warpage", "normal", "area", "skew"] okay_inplace = ["num_border", "is_tria", "midpoint"] for feature in features: if not feature in okay_ansa + okay_inplace: - raise ValueError( - f"Feature {feature} is unknown. " - f"All features must be in {okay_ansa+okay_inplace}" - ) + if not allow_addtional_ansa_features: + okay_ansa.append(feature) + else: + raise ValueError( + f"Feature {feature} is unknown and allow_addtional_ansa_features is False" + f"All features must be in {okay_ansa+okay_inplace}" + ) if ansa_executable is not None: os.environ["ANSA_EXECUTABLE"] = str(ansa_executable) @@ -321,10 +328,7 @@ def _err_to_nan(elements: List[Dict[Any, Any]], name: str) -> np.ndarray: element_metrics = pd.DataFrame( { "vtx_id": mesh.element_uid.tolist(), - "warpage": _err_to_nan(elements, "warpage"), - "skew": _err_to_nan(elements, "skew"), - "aspect": _err_to_nan(elements, "aspect"), - "area": _err_to_nan(elements, "area"), + **{k: _err_to_nan(elements, k) for k in okay_ansa if k != "normal"}, "normal": [e["normal"] for e in elements], } ) @@ -438,11 +442,8 @@ def _get_d3plot_layer_array_names() -> List[str]: ArrayType.element_shell_strain, ]: if callable(shell_layer): - new_feature = [ - v.tolist() - for v in np.squeeze(d3plot_data.arrays[feature][timestep, :, :, :]) - ] - new_feature = [shell_layer(x) for x in new_feature] + new_feature = np.squeeze(d3plot_data.arrays[feature][timestep, :, :, :]) + new_feature = [shell_layer(x).tolist() for x in new_feature] else: new_feature = [ v.tolist() @@ -632,7 +633,6 @@ def get_visualization_trimesh(self, feature: str) -> trimesh.Trimesh: Get a trimesh with face colored by feature values Use trimesh_mesh.show(smooth=False, flags={"cull": False}) to visualize. """ - max_v = 1 / max(self._aggregated_features[feature]) df = self._element_info.merge(self._aggregated_features[["vtx_id", feature]], on="vtx_id") assert len(df) == len(self._mesh.element_node_idxs) @@ -644,14 +644,18 @@ def get_visualization_trimesh(self, feature: str) -> trimesh.Trimesh: element_node_idxs, feature_values ) + omin = tri_features.min() + omax = tri_features.max() + tri_features_scaled = (tri_features - omin) / (omax - omin) + trimeh_mesh = trimesh.Trimesh( vertices=self._mesh.point_coordinates / np.max(self._mesh.point_coordinates), faces=tri_faces, ) - trimeh_mesh.visual.face_colors = [ - [254 - 254 * x * max_v, 254 * x * max_v, 0, 254] for x in tri_features - ] + trimeh_mesh.visual.face_colors = np.array( + [np.array([254 - 254 * x, 254 * x, 0, 254]) for x in tri_features_scaled] + ) return trimeh_mesh diff --git a/mesh2vec/mesh_features.py b/mesh2vec/mesh_features.py index 086b502..c83ebe0 100644 --- a/mesh2vec/mesh_features.py +++ b/mesh2vec/mesh_features.py @@ -238,7 +238,13 @@ def from_ansa_json(elements: List[Any], nodes: List[Any]) -> "CaeShellMesh": @staticmethod def from_keyfile(keyfile: str) -> "CaeShellMesh": - """create CaeShellMesh from keyfile""" + """create CaeShellMesh from keyfile + Example: + >>> from mesh2vec.mesh_features import CaeShellMesh + >>> mesh = CaeShellMesh.from_keyfile("data/hat/Hatprofile.k") + >>> print(mesh.point_coordinates.shape) + (6400, 3) + """ def parse_contents(file_contents): lines = file_contents.split("\n") diff --git a/tests/test_mesh2vec_base.py b/tests/test_mesh2vec_base.py index 4a030a5..fbfdf79 100644 --- a/tests/test_mesh2vec_base.py +++ b/tests/test_mesh2vec_base.py @@ -95,7 +95,7 @@ def test_from_csv_file() -> None: # write pair-wise connectivity to csv connections = [] - connectivity_list = [x for x in hg1._neighborhoods[1]] + connectivity_list = hg1._neighborhoods[1].copy() for vtx_a, vtx_a_neigbors in enumerate(connectivity_list): for vtx_b in vtx_a_neigbors: connections.append([hg1._vtx_idx_to_ids[vtx_a], hg1._vtx_idx_to_ids[vtx_b]]) diff --git a/tests/test_mesh2vec_cae.py b/tests/test_mesh2vec_cae.py index c2be107..6fc27ce 100644 --- a/tests/test_mesh2vec_cae.py +++ b/tests/test_mesh2vec_cae.py @@ -106,22 +106,8 @@ def test_from_keyfile_shell() -> None: Path("data/hat/Hatprofile.k"), json_mesh_file=Path("data/hat/cached_hat_key.json"), ) - all( - [ - sorted(m2v._hyper_edges[k]) == sorted(m2v_ansa._hyper_edges[k]) - for k in m2v._hyper_edges.keys() - ] - ) - set(m2v.vtx_ids()) == set(m2v_ansa.vtx_ids()) - - -def test_patch2vec() -> None: - m2v = Mesh2VecCae.from_keyfile_shell( - 4, - Path("/home/markus/Downloads/Patch2.key"), - ) - name = m2v.add_features_from_ansa(["num_border"])[0] - name = m2v.aggregate(name, 2, np.mean) + all(sorted(v) == sorted(m2v_ansa._hyper_edges[k]) for k, v in m2v._hyper_edges.items()) + assert set(m2v.vtx_ids()) == set(m2v_ansa.vtx_ids()) def test_shell_from_ansa_partid() -> None: @@ -228,12 +214,29 @@ def test_add_feature_from_d3plot_to_ansa_shell() -> None: ansafile, json_mesh_file=json_mesh_file, ) - m2v.add_feature_from_d3plot( + + m2v.add_features_from_ansa( + ["normal"], + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path("data/hat/cached_hat_key.json"), + ) + name = m2v.aggregate_angle_diff(2) + assert isinstance(name, str) + assert m2v._aggregated_features[name][4] == pytest.approx(0.41053, 0.001) + # m2v.get_visualization_trimesh(name).show() + + axis_0_sum = partial(np.sum, axis=0) + axis_0_sum.__name__ = "axis0sum" # type: ignore + + name_strain = m2v.add_feature_from_d3plot( ArrayType.element_shell_strain, Path("data/hat/HAT.d3plot"), timestep=1, - shell_layer=0, + shell_layer=axis_0_sum, ) + print(m2v._features[name_strain].shape) + name = m2v.aggregate(name_strain, 1, lambda x: np.mean(np.mean(x))) + print(m2v._aggregated_features[name].shape) def test_aggregate_angle_diff() -> None: From 9594db7a6e3ad8c52b3cf2b292019a2d736a208c Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 10:53:24 +0100 Subject: [PATCH 19/27] +docs --- docs/examples/plot_stress.py | 13 +++++-------- mesh2vec/mesh2vec_base.py | 14 ++++++++++++++ mesh2vec/mesh2vec_cae.py | 29 ++++++++++++++++++++++++++++- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/docs/examples/plot_stress.py b/docs/examples/plot_stress.py index e409db8..0b8d3b8 100644 --- a/docs/examples/plot_stress.py +++ b/docs/examples/plot_stress.py @@ -10,9 +10,6 @@ from lasso.dyna import ArrayType from mesh2vec.mesh2vec_cae import Mesh2VecCae -import os - -os.chdir(os.path.dirname(__file__)) # %% # Load Shell from ANSA, simulation results from d3plot @@ -24,16 +21,16 @@ ) -def y_all_layers(v): - """get y stress component of all layers""" - return v[:, 1] +def mean_over_components_all_layers(v): + """get mean over all components and all layers""" + return np.mean(v, axis=-1) fature_name = hg.add_feature_from_d3plot( ArrayType.element_shell_stress, Path("../../data/hat/HAT.d3plot"), - timestep=1, - shell_layer=y_all_layers, + timestep=-1, + shell_layer=mean_over_components_all_layers, ) diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index 22b5e0b..df29472 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -97,6 +97,13 @@ def __init__( def save(self, path: Path): """ Save the Mesh2Vec object to a file with joblib + Args: + path: path to the file + Example: + >>> from pathlib import Path + >>> from mesh2vec.mesh2vec_base import Mesh2VecBase + >>> hg = Mesh2VecBase(3, {"first": ["a", "b", "c"], "second": ["x", "y"]}) + >>> hg.save(Path("/tmp/hg.joblib")) """ joblib.dump(self, path) @@ -104,6 +111,13 @@ def save(self, path: Path): def load(path: Path): """ Load the Mesh2Vec object from a file with joblib + Args: + path: path to the file + Example: + >>> from pathlib import Path + >>> from mesh2vec.mesh2vec_base import Mesh2VecBase + >>> hg.save(Path("/tmp/hg.joblib")) + >>> hg = Mesh2VecBase.load(Path("/tmp/hg.joblib")) """ return joblib.load(path) diff --git a/mesh2vec/mesh2vec_cae.py b/mesh2vec/mesh2vec_cae.py index 9f00b0e..e41424b 100644 --- a/mesh2vec/mesh2vec_cae.py +++ b/mesh2vec/mesh2vec_cae.py @@ -230,6 +230,15 @@ def from_keyfile_shell(distance: int, keyfile: Path) -> "Mesh2VecCae": """ Read the given keyfile and use the shell elements to generate a hypergraph, using mesh nodes as hyperedges, and adjacent elements as hypervertices. + Args: + distance: the maximum distance for neighborhood generation and feature aggregation + keyfile: path to keyfile + Example: + >>> from pathlib import Path + >>> from mesh2vec.mesh2vec_cae import Mesh2VecCae + >>> m2v = Mesh2VecCae.from_keyfile_shell(4, Path("data/hat/Hatprofile.k")) + >>> len(m2v._hyper_edges) + 6666 """ mesh = CaeShellMesh.from_keyfile(keyfile) element_info = pd.DataFrame({"element_id": mesh.element_ids}) @@ -293,6 +302,7 @@ def add_features_from_ansa( ... ["aspect", "warpage"], ... Path("data/hat/Hatprofile.k"), ... json_mesh_file=Path("data/hat/cached_hat_key.json")) + ['aspect', 'warpage'] >>> print(f'{m2v._features["warpage"][14]:.4f}') 0.0188 """ @@ -508,7 +518,7 @@ def add_feature_from_d3plot( feature: name of the feature to add (a shell_array name of lasso.dyna.ArrayType) d3plot: path to d3plot file or loaded d3plot data timestep: timestep to extract (required for time dependend arrays, ignored otherwise) - shell_layer: integration point index or function to accumulate over all integration + shell_layer: integration point index or callabe to accumulate over all integration points (required for layerd arrays, ignored otherwise) history_var_index: index of the history variable to extract (required for element_shell_history_vars, ignored otherwise) @@ -523,8 +533,24 @@ def add_feature_from_d3plot( ... ArrayType.element_shell_strain, ... Path("data/hat/HAT.d3plot"), ... timestep=1, shell_layer=0) + >>> # print eps_xx, eps_yy, eps_zz, eps_xy, eps_yz, eps_xz of layer 0 >>> print([f'{v:.4f}' for v in m2v.features()[name][42]]) ['0.0010', '-0.0003', '-0.0000', '-0.0012', '-0.0000', '-0.0003'] + + Example: + >>> from pathlib import Path + >>> from lasso.dyna import ArrayType + >>> from mesh2vec.mesh2vec_cae import Mesh2VecCae + >>> m2v = Mesh2VecCae.from_d3plot_shell(3, Path("data/hat/HAT.d3plot")) + >>> def mean_over_components_all_layers(v): + ... return np.mean(v, axis=-1) + >>> name = m2v.add_feature_from_d3plot( + ... ArrayType.element_shell_strain, + ... Path("data/hat/HAT.d3plot"), + ... timestep=-1, shell_layer=mean_over_components_all_layers) + >>> # print mean of all components for each layer (0,1) + >>> print([f'{v:.4f}' for v in m2v.features()[name][42]]) + ['0.0002', '0.0001'] """ d3plot_data = D3plot(d3plot.as_posix()) if not isinstance(d3plot, D3plot) else d3plot @@ -588,6 +614,7 @@ def aggregate_angle_diff( ... ["normal"], ... Path("data/hat/Hatprofile.k"), ... json_mesh_file=Path("data/hat/cached_hat_key.json")) + ['normal'] >>> name = m2v.aggregate_angle_diff(2) >>> print(f'{ m2v._aggregated_features[name][14]:.4f}') 0.6275 From 653e1d192997421be3d2ae28080f543abed7da7c Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 10:57:13 +0100 Subject: [PATCH 20/27] script folder --- scripts/gemerate_test_data.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 scripts/gemerate_test_data.py diff --git a/scripts/gemerate_test_data.py b/scripts/gemerate_test_data.py new file mode 100644 index 0000000..b762d87 --- /dev/null +++ b/scripts/gemerate_test_data.py @@ -0,0 +1,7 @@ +"""script code to generate test data""" +import math + +if __name__ == "__main__": + for i in range(15): + sq_i = math.sqrt(i) + print(f"vtx{i:02d}, {(i % 2) == 0}, {(i % 3) == 0}, {i * i}, {sq_i}") \ No newline at end of file From 0b979f7cdb710c36cb957e36f5712f93a256e065 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:02:36 +0100 Subject: [PATCH 21/27] formatting --- scripts/gemerate_test_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/gemerate_test_data.py b/scripts/gemerate_test_data.py index b762d87..636d935 100644 --- a/scripts/gemerate_test_data.py +++ b/scripts/gemerate_test_data.py @@ -4,4 +4,4 @@ if __name__ == "__main__": for i in range(15): sq_i = math.sqrt(i) - print(f"vtx{i:02d}, {(i % 2) == 0}, {(i % 3) == 0}, {i * i}, {sq_i}") \ No newline at end of file + print(f"vtx{i:02d}, {(i % 2) == 0}, {(i % 3) == 0}, {i * i}, {sq_i}") From 4a29bc21436354194f858e15695259ed0f75d009 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:04:10 +0100 Subject: [PATCH 22/27] doctest back --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 99f5ad8..ca117b3 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -95,7 +95,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: test run: | - poetry run sphinx-build docs/source build/documentation/ -W -b html # autodocs contain tests && poetry run sphinx-build docs/source build/documentation/ -W -b doctest + poetry run sphinx-build docs/source build/documentation/ -W -b html && poetry run sphinx-build docs/source build/documentation/ -W -b doctest unit-tests: needs: [prepare-linux, prepare-win] From 5bf058a21542fe8e0aa09f943a440809a3dfaf24 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:05:36 +0100 Subject: [PATCH 23/27] authors updated --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2cedb6d..8924fbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "mesh2vec" version = "0.0.2" -authors = ["Markus Stoll "] +authors = ["Renumics GmbH "] packages = [ { include = "mesh2vec" } ] From 94e27b8f89e220d5466b8d0088eb42b3d027d3b6 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:27:38 +0100 Subject: [PATCH 24/27] evaluation 1.0.3 --- scripts/evaluation_1.0.3.py | 100 ++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 scripts/evaluation_1.0.3.py diff --git a/scripts/evaluation_1.0.3.py b/scripts/evaluation_1.0.3.py new file mode 100644 index 0000000..4dea99a --- /dev/null +++ b/scripts/evaluation_1.0.3.py @@ -0,0 +1,100 @@ +from mesh2vec.mesh2vec_cae import Mesh2VecCae +from pathlib import Path +import time +import numpy as np +import tracemalloc + +DIST = 30 +PATH = "data/hat/cached_hat_key.json" +PATH = "/home/markus/Downloads/test_data_internal/p210.key_tmp.json" + + +res = None +PROFILE_MEM = True + +### create neighbors +start = time.time() +if PROFILE_MEM: + tracemalloc.start() + +a = Mesh2VecCae.from_ansa_shell( + DIST, + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path(PATH), +) +print(f" calc_adjacencies:", time.time() - start) +if PROFILE_MEM: + current, peak = tracemalloc.get_traced_memory() + print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") + tracemalloc.stop() + +if PROFILE_MEM: + tracemalloc.start() +start = time.time() + +### load features from ansa +a.add_features_from_ansa( + ["warpage", "aspect", "normal", "area"], + Path("data/hat/Hatprofile.k"), + json_mesh_file=Path(PATH) +) +print(f" add_features_from_ansa:", time.time() - start) +if PROFILE_MEM: + current, peak = tracemalloc.get_traced_memory() + print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") + tracemalloc.stop() + + +### aggregate single feature for 1-30 neighbors +if PROFILE_MEM: + tracemalloc.start() +start = time.time() + +a.aggregate("warpage", range(DIST), np.mean) +print(f" 1 aggregate:", time.time() - start) +if PROFILE_MEM: + current, peak = tracemalloc.get_traced_memory() + print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") + tracemalloc.stop() + +### aggregate two features for 1-30 neighbors +if PROFILE_MEM: + tracemalloc.start() +start = time.time() + +a.aggregate("warpage", range(DIST), np.mean) +a.aggregate("aspect", range(DIST), np.mean) +print(f" 2 aggregate:", time.time() - start) +if PROFILE_MEM: + current, peak = tracemalloc.get_traced_memory() + print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") + tracemalloc.stop() + +### aggregate_angle_diff +if PROFILE_MEM: + tracemalloc.start() +start = time.time() + +a.aggregate_angle_diff(range(DIST), np.mean) + +print(f" aggregate_angle_diff:", time.time() - start) +if PROFILE_MEM: + current, peak = tracemalloc.get_traced_memory() + print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") + tracemalloc.stop() + + + +# calc_adjacencies: 41.01193881034851 +# add_features_from_ansa: 0.21686553955078125 +# 1 aggregate: 27.74431562423706 +# 2 aggregate: 55.777445554733276 +# aggregate_angle_diff: 427.60096430778503 + + +# calc_adjacencies: 40.979246377944946 +# Current memory usage is 11752.521761MB; Peak was 13671.121043MB +# add_features_from_ansa: 0.5271070003509521 +# Current memory usage is 5.953076MB; Peak was 53.423552MB +# 1 aggregate: 53.40042471885681 +# Current memory usage is 6.9341MB; Peak was 103.818146MB \ No newline at end of file From b10af9202690e3327688b9148461667a024da5b1 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:34:40 +0100 Subject: [PATCH 25/27] test fixes --- docs/examples/plot_stress.py | 1 - mesh2vec/mesh2vec_base.py | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/examples/plot_stress.py b/docs/examples/plot_stress.py index 0b8d3b8..a4d2279 100644 --- a/docs/examples/plot_stress.py +++ b/docs/examples/plot_stress.py @@ -6,7 +6,6 @@ # pylint: disable=pointless-statement from pathlib import Path import numpy as np -import pandas as pd from lasso.dyna import ArrayType from mesh2vec.mesh2vec_cae import Mesh2VecCae diff --git a/mesh2vec/mesh2vec_base.py b/mesh2vec/mesh2vec_base.py index df29472..4bbda33 100644 --- a/mesh2vec/mesh2vec_base.py +++ b/mesh2vec/mesh2vec_base.py @@ -103,7 +103,7 @@ def save(self, path: Path): >>> from pathlib import Path >>> from mesh2vec.mesh2vec_base import Mesh2VecBase >>> hg = Mesh2VecBase(3, {"first": ["a", "b", "c"], "second": ["x", "y"]}) - >>> hg.save(Path("/tmp/hg.joblib")) + >>> hg.save(Path("data/temp_hg.joblib")) """ joblib.dump(self, path) @@ -116,8 +116,8 @@ def load(path: Path): Example: >>> from pathlib import Path >>> from mesh2vec.mesh2vec_base import Mesh2VecBase - >>> hg.save(Path("/tmp/hg.joblib")) - >>> hg = Mesh2VecBase.load(Path("/tmp/hg.joblib")) + >>> hg.save(Path("data/temp_hg.joblib")) + >>> hg = Mesh2VecBase.load(Path("data/temp_hg.joblib")) """ return joblib.load(path) From 694a3cd063e84de429ccb282e2bd155f4cb46ea4 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:35:55 +0100 Subject: [PATCH 26/27] dont lint scripts --- .github/workflows/workflow.yml | 2 +- .gitignore | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index ca117b3..2c21e89 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -59,7 +59,7 @@ jobs: python-version: "3.9" - name: check run: | - poetry run pylint mesh2vec tests scripts docs/examples + poetry run pylint mesh2vec tests docs/examples audit: needs: [prepare-linux, prepare-win] diff --git a/.gitignore b/.gitignore index 12a5a6c..843e808 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ __pycache__ /data/*internal* .DS_Store .venv/ -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints +data/data/temp_hg.joblib \ No newline at end of file From 80eeca73880e98baddcd2527013b665a10178cfd Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Tue, 5 Dec 2023 11:45:40 +0100 Subject: [PATCH 27/27] formatting --- scripts/evaluation_1.0.3.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/evaluation_1.0.3.py b/scripts/evaluation_1.0.3.py index 4dea99a..c303e25 100644 --- a/scripts/evaluation_1.0.3.py +++ b/scripts/evaluation_1.0.3.py @@ -36,7 +36,7 @@ a.add_features_from_ansa( ["warpage", "aspect", "normal", "area"], Path("data/hat/Hatprofile.k"), - json_mesh_file=Path(PATH) + json_mesh_file=Path(PATH), ) print(f" add_features_from_ansa:", time.time() - start) if PROFILE_MEM: @@ -70,7 +70,7 @@ print(f"Current memory usage is {current / 10**6}MB; Peak was {peak / 10**6}MB") tracemalloc.stop() -### aggregate_angle_diff +### aggregate_angle_diff if PROFILE_MEM: tracemalloc.start() start = time.time() @@ -84,7 +84,6 @@ tracemalloc.stop() - # calc_adjacencies: 41.01193881034851 # add_features_from_ansa: 0.21686553955078125 # 1 aggregate: 27.74431562423706 @@ -97,4 +96,4 @@ # add_features_from_ansa: 0.5271070003509521 # Current memory usage is 5.953076MB; Peak was 53.423552MB # 1 aggregate: 53.40042471885681 -# Current memory usage is 6.9341MB; Peak was 103.818146MB \ No newline at end of file +# Current memory usage is 6.9341MB; Peak was 103.818146MB