From 7319462b975a7661bf831e95f4be45d58c8fa21b Mon Sep 17 00:00:00 2001 From: Sandrro Date: Thu, 19 Sep 2024 20:39:07 +0300 Subject: [PATCH 1/3] made fixes for docs --- docs/build/doctrees/404.doctree | Bin 3071 -> 3069 bytes .../build/doctrees/about/installation.doctree | Bin 2810 -> 2808 bytes .../build/doctrees/about/introduction.doctree | Bin 8174 -> 7733 bytes docs/build/doctrees/about/pipeline.doctree | Bin 9802 -> 9078 bytes docs/build/doctrees/environment.pickle | Bin 589580 -> 789864 bytes docs/build/doctrees/index.doctree | Bin 6521 -> 6522 bytes .../doctrees/modules/GeoDataGetter.doctree | Bin 3531 -> 29537 bytes .../doctrees/modules/Geocoder_special.doctree | Bin 64683 -> 63188 bytes .../doctrees/modules/OtherGeoObjects.doctree | Bin 20247 -> 57121 bytes .../doctrees/modules/StreetExtractor.doctree | Bin 24023 -> 23918 bytes docs/build/doctrees/modules/Streets.doctree | Bin 4376 -> 23015 bytes docs/build/doctrees/modules/VKParser.doctree | Bin 3174 -> 52364 bytes .../modules/city_services_extract.doctree | Bin 14518 -> 14220 bytes .../doctrees/modules/data_getter.doctree | Bin 5810 -> 5808 bytes .../modules/emotion_classifier.doctree | Bin 17248 -> 16931 bytes .../modules/event_dynamic_prediction.doctree | Bin 12931 -> 12827 bytes docs/build/doctrees/modules/geocoder.doctree | Bin 33275 -> 35617 bytes .../modules/regional_activity.doctree | Bin 4295 -> 4293 bytes .../doctrees/modules/semantic_graph.doctree | Bin 85419 -> 85264 bytes .../doctrees/modules/text_classifier.doctree | Bin 18687 -> 18566 bytes .../doctrees/modules/topic_modeler.doctree | Bin 5425 -> 5423 bytes .../doctrees/modules/visualize_graph.doctree | Bin 10282 -> 9544 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/404.html | 31 +- docs/build/html/_modules/index.html | 34 +- .../src/geocoder/city_objects_extractor.html | 76 +-- .../sloyka/src/geocoder/geocoder.html | 411 ++++----------- .../sloyka/src/geocoder/street_extractor.html | 124 ++--- .../sloyka/src/risks/emotion_classifier.html | 57 +- .../sloyka/src/risks/event_detector.html | 45 +- .../sloyka/src/risks/text_classifier.html | 45 +- .../semantic_graph_builder.html | 91 +--- .../utils/data_getter/geo_data_getter.html | 485 ++++++++++++++++++ .../src/utils/data_getter/street_getter.html | 441 ++++++++++++++++ .../src/utils/data_getter/vk_data_getter.html | 126 ++--- .../city_services_extract.html | 74 ++- .../src/visual/graph_visualization.html | 153 +++--- .../html/_sources/about/introduction.rst.txt | 2 +- .../html/_sources/about/pipeline.rst.txt | 5 +- .../_sources/modules/GeoDataGetter.rst.txt | 2 +- .../_sources/modules/Geocoder_special.rst.txt | 3 +- .../_sources/modules/OtherGeoObjects.rst.txt | 2 +- .../html/_sources/modules/Streets.rst.txt | 5 +- .../html/_sources/modules/VKParser.rst.txt | 2 +- .../modules/city_services_extract.rst.txt | 9 +- .../html/_sources/modules/geocoder.rst.txt | 6 +- .../_sources/modules/visualize_graph.rst.txt | 2 +- .../html/_static/documentation_options.js | 2 +- docs/build/html/_static/scripts/furo.js | 2 +- docs/build/html/_static/scripts/furo.js.map | 2 +- .../html/_static/styles/furo-extensions.css | 2 +- .../_static/styles/furo-extensions.css.map | 2 +- docs/build/html/_static/styles/furo.css | 2 +- docs/build/html/_static/styles/furo.css.map | 2 +- docs/build/html/about/installation.html | 31 +- docs/build/html/about/introduction.html | 31 +- docs/build/html/about/pipeline.html | 38 +- docs/build/html/genindex.html | 137 +++-- docs/build/html/index.html | 31 +- docs/build/html/modules/GeoDataGetter.html | 125 ++++- docs/build/html/modules/Geocoder_special.html | 52 +- docs/build/html/modules/OtherGeoObjects.html | 147 ++++-- docs/build/html/modules/StreetExtractor.html | 31 +- docs/build/html/modules/Streets.html | 128 +++-- docs/build/html/modules/VKParser.html | 230 ++++++++- .../html/modules/city_services_extract.html | 45 +- docs/build/html/modules/data_getter.html | 31 +- .../html/modules/emotion_classifier.html | 33 +- .../modules/event_dynamic_prediction.html | 31 +- docs/build/html/modules/geocoder.html | 43 +- .../build/html/modules/regional_activity.html | 31 +- docs/build/html/modules/semantic_graph.html | 31 +- docs/build/html/modules/text_classifier.html | 31 +- docs/build/html/modules/topic_modeler.html | 31 +- docs/build/html/modules/visualize_graph.html | 42 +- docs/build/html/objects.inv | Bin 1523 -> 1817 bytes docs/build/html/py-modindex.html | 29 +- docs/build/html/search.html | 31 +- docs/build/html/searchindex.js | 2 +- docs/source/about/introduction.rst | 2 +- docs/source/about/pipeline.rst | 5 +- docs/source/conf.py | 5 +- docs/source/modules/GeoDataGetter.rst | 2 +- docs/source/modules/Geocoder_special.rst | 3 +- docs/source/modules/OtherGeoObjects.rst | 2 +- docs/source/modules/Streets.rst | 5 +- docs/source/modules/VKParser.rst | 2 +- docs/source/modules/city_services_extract.rst | 9 +- docs/source/modules/geocoder.rst | 6 +- docs/source/modules/visualize_graph.rst | 2 +- 90 files changed, 2233 insertions(+), 1449 deletions(-) create mode 100644 docs/build/html/_modules/sloyka/src/utils/data_getter/geo_data_getter.html create mode 100644 docs/build/html/_modules/sloyka/src/utils/data_getter/street_getter.html diff --git a/docs/build/doctrees/404.doctree b/docs/build/doctrees/404.doctree index ade5e4e0981282f4be6948d1be988d781495b272..5084b28e90cf6c57992288d708798d9fcc8ff9dc 100644 GIT binary patch delta 108 zcmV-y0F(d!7yTCmfCZKEu>?*59wbIOTtjbUX>Mm+b8K&UYhheuZ)0;@b8mHWV`W^k zfdQ}s5OQyCbYF0CWoBu3l#Br{l#?$7N)m{S4Rd8{$HG>fpzMajVykQ`lkA!#i>Qb`X#BwCHgM;$)&lec_qdA$@wX%`o%fFi$pO^$_u9?BOj=O)kkR&5f@}%P-2E;?20ZhgE@*v48Vg Ow$DsVK<+}$7$yMzgeR^5 diff --git a/docs/build/doctrees/about/installation.doctree b/docs/build/doctrees/about/installation.doctree index afc2d43323c571a762147ad78dcccd7c750a4eee..285a6e8a14c9846808e6cc062918934e6d1c4841 100644 GIT binary patch delta 108 zcmV-y0F(dv75EhdfCZK9u>?v19y3NdTtjbUX>Mm+b8K&UYhheuZ)0;@b8mHWV`W^k zeF3im5OQyCbYF0CWoBu3l#Br{l#?n1N)m{S4Rd8Qb`X#BwCHgM;$)&lec_qdA$@wX%`o%fv1RiL O*3V2#K<*rl7$yMs4<~&9 diff --git a/docs/build/doctrees/about/introduction.doctree b/docs/build/doctrees/about/introduction.doctree index 63ee405eefaacedf4985629915c10167083feaeb..012555a37c8d7f81324de1de1839f64d5bd6dc42 100644 GIT binary patch delta 254 zcmaE7ztx7dfpw~u+(uSUMmb|Qs~G3}l+3*JnBtuL%Iw6Ll>Fr4nBx4>qU6+=&9#i; zeEhN*IvH}_LK)H-Co^O+m?tmdza$M26NZVECS{z}Y@AX%MI(cC@&y5%$-4wrLiLHj z)J!fEJPZ{Rg^M`}U51K@!Nrt?UqHpg;bOM(vYX9BSeONh^7BjL3yM5$IKx delta 612 zcmdmL^Uj{NfpzL*`HifejQTG6p~b01#rh?w#U=VK`N^fZsd**E`pNkzsrtn^`IXs; z`YHLz#rnnhrA5i9`kQkY#rgQ8Gfrm6WH4vQX6R(d`Awe0e@O~es5B|#tY+hs+9?_t ztdkE4=uBQMuo7KYvfyEKAyc8t=tAPcFSwD+o}9=dzgbI!m3gwGxQB>0V-Ig}YH~?l zX>NQ)T7FUP6mQ1Ov&9t{8Fy^nBk_%i3CP_nZO&Am!P&!CTv=R_nj4>+T3no%o;qdn z6qo}u*fQ8-fiBg93G_&XWR~QlDwO7>q!#65=A|l>(W_rObiUbkea+qSTjpHOB%=nh74y9Z%$@OYEfcNd{Rz+ayF7vdc=GaGxHSEQWHx` zi&BfZbfExdD=uk>jTzEedO$0RCo^)%XmVEM=2#UMBqpa$>ES2<8kSmAmO7<0Lpw_c zqs~G3}l+3*JnBtuL%Iw6Ll>Fr4nBx4>qU6+=&Gn2? z%-pgWIvH}_92wFX_LHBm9N|asc`{@&m^W`{mEe(u2nqoeod*e)CS_dKY@AX%MI(c? z=g#EUf;o%|lchvlCqEa~6ylna!5%v$Ll3UtHi`lx#!Ya3z~om#0+XvmbQs$vFBg$# z>R_DwK}u$_ftUtk%jARn=8TgjPZTqlTq-KgDv}|cRWo^_s3=qm_vC}3nvAO^zZO+z zT7%HG0<3KtP@6voSPLTq!{i1*jmZkaT7nQ?0EJ<`*sLv{!^n7Ja<+)nh$0A5H_6z^cC#BYyR{Xi zdhj5uhI3ZJU=X4 z7H;)!o)uC^=~GTpT%?MHsipLr89R>+iz*p2ixsMy6Qino4cTe(E_ubh?RMjq^sw%G(Dg$6xl%OvVfT`+cSRd{PtYn0(*f%P*zEIznGq{|LNo?nFP}XLAxQc%0uj zr%&*~OhAG6Es44?6Y-^jSm1>@hKh?e=_GI2>JztR(OGySZe(`&MeP=^p5T}li&2EZ zja)=Y*dXmdEu}$eCxRQ%gJKFf>nP4xhMgZCKW7&6ZVHt?M`eUYN)54jpD%>~CFVBo z@l{o6-Rwo3dPB`)YodTD%S+=M*C^WO3b3wRi1>t<%OLWvVOqUH>_kSk!`wqb9@^SkjXkaA-d#7AyUS|xEl#0fUK zZ4e7KChN!Z`fgfKGuUoPso@U0&YDyE zjt?Cg8g!i+E|2fjmM@!2wsMxI9?SCWVz^H}vF_zQ#E6M+GEXTFL^?UO>L}Jh?wbe-4 dcOT3)#{2&?L;K3GOFjhu?Sp8iF?6=2egVUeo0k9p diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index fa143e84f2b32709adb52b807f22947c4e33fa8e..6959e38dc2e7145f400ceb15248effaa564061cc 100644 GIT binary patch literal 789864 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ⅅ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 Qlbb*JFQ}4CryHIB1GGV(8UO$Q literal 589580 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 delta 230 zcmexm^wWr?fpu!$MwUuOeRKWL;?$yI{gTw;5`CBaFpk{o?%6qU2Ql&9fQzGIL93b pN^|2Y((;RPr+71Nz9^)?$oO~jC*f~QOhE2SF%2e0?#V)u833W2Mg;%> diff --git a/docs/build/doctrees/modules/GeoDataGetter.doctree b/docs/build/doctrees/modules/GeoDataGetter.doctree index 07943e3375ba08c6489b22fd2ac27913daf76ae7..b1ceb990bc77df65860207c9f92e426d1f779031 100644 GIT binary patch literal 29537 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 z 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 MIpz@mS_^ak1GH|FjQ{`u delta 257 zcmWm5ze@sP7yw|uw=QTfB7}zWgeWPO&#kpUFgUC;XcjrYc+>7a``$aqL8{F`Xm~H0 zqrV{TAF$cEIier51X)vymHYENy@}zHb#7e^(s!0EWLX}NG9*Jqp)6@H@>LL$^mIc> zI@X<5T{g5wl5}J|C6jG27TiMwNAL)3K$kN|zr5Dm$vC2)Cgp`e z0K7w!i8?Uj#jH3b8&xz zKewg9BX?9S}$pLSOgNULqFe&(&&om~l;pb^qRXb}>NR#*#S0g0!c_j;yZ z@0<6YUiaJG5t0y=g{7o%4u@x(pBQ6oz>bN*0h@%xj!huI$%z3UD~^54aZt>O9byv) z+ma0q`ELDmRd-ic_nSX~6P=^ke$`dC?!9&E*1flGRX;ZNlVAFq4eY;oSJ?AgoeMK= zv)So3y>J+BYjzuhMXwVL-#tA1_TeMLT0GHr&xhSXzu^tz4XDxZTkU4w>kRM5%bip| zYPG`|0bo3G`wO0G?vKU$XJ(xGtGsRlUG(c=&ug^Y_UzE#djBwnj1vuoI2aw zYK8zDZ*8>QFhn7q$2#sJf7;d@^wf_zw{f=b&GR~VXf=oN?gi1$QPIzE5O0m#1!^_) zC*v*cR>vEj+!&AdT+k2={mt=2Js}#u#wD#c-adQZZQW+8vv6P7?k=5m??bilKK}Z? z#cp%Z_QGRXx@P)eG#t$N6Y(f3Fak76|XZX@dU zr;j*I?_8_lCG8r$0Sdd}V!hRz1q&kQVdqr0;{hi9bHr)1qNO^-Fr0Ootwx0Mw@&xk zZo`|Nb>2K3MsDOy-~Y%F;NdMUVv@Ao&O!pcKM2E?+d&TzaHu!B?ZINFP7<9|p%>GK zndA@;b}=5folX~!(;^sO|K^unMb&4WX*Ochw;XX^CV7V038ZG7q>3|r%PkNkCbh@o zG1g+J#PE%}80yUDfV2UMH#%IfkJFQa(9j{I1v%b$e&}YU*@ZB?aWLl<3+lv$#r7Am!Snj(JT?>FfVQW3e{mx>yTv4j*xo0_HhGxoEzQ#G#|-E!INf=xjB7G{@Z?4| z+ot${K+TdKlByND@ql$QNRE}%Qrvu`n47hDJ0`_ZFofX{?;w=ec(UJ~&S?LFzeF?d zt%_m(Lr@)@m%D|}o$^i1c`ivC_^6Y1WctHc>3B@_l}!DM;xUUicJedymoYdWwJl0g zx;~7GKZoh@5pHN;Hq0(xCksA&EP*wtV99Bu7b*JwLot2+zsl(!qVBV7PVZylMy%`& zI*n+M)3h78jpIY(&1(Go&&B=48+&HfVWo+Quo8~Ptg>R_-&*?C>=77~-h8vW=(ak;cvEi)h8_x{r5;QPvAD1* z!ieO(#M@DanRD~4#_*|l0?L@1U&B+-@Jq9NRXRl)>se6s?VRux4`UfqgZ&#fY_QN) z%-0R^o~oi#K+20uo$BP55Azl5>L2f@Y39g_lARBuiKC6;iB7*9vpPZ&v*)g z61*Z|TCpintf=-H3_wO>O`A{Sypp6{{#2B`#Y&l3`2=r5BTU<;l{PS{nV@Y4{`H(f zfS!@SOU39RJ8!+ zO_kdRXGd{8K=1m`F#3GcJ^vK$4^QOJy@ zCQ-$9-nG>NcR6i8k+hTZR4Y+B|C3fy3v~X+(Wr{f|7|;Pvoa9COQreCcHm}d7QmIx z-$KDq&LM+_U@sN3zHaYQ8&BQKEHwc+4x=iFudzW$$1CmQRm#%u*y*#ew333D*lb&- ztqP*5R9s^1qCi1#;AtChpD8>pr;_=l5|nGKSS&|@a1@uLKn_?V`Z>KZrB|2qrVACF zw^->ckj7aws-it!V+U^59s+o&sK3b$+$`z>xY8afUX@oK>F`w0ws*K(-NAYpRdx7m z1S+YHs{DM1oje;qE2)m56~0wahRcHm}hA%K@^i*MM0o26R-UzWCb z*52W|YKw2P5vZgss`7Ks7MmeZFx5ElO4{O}6~0wlR3+i4wF^55DNkg4nr)rS2_%22 zX>*gcr{(AgPGe;~VXqj!U=gwJR-GdA$Yl^)pZJNrPl|Ku#svr#36fazpfx>NRz~HxnM?TieI5p?*wms3#BD?m-w989V;F z;&D7-bA1?JDqG4t4Vf%NyZ6Bv8i|A$o(ZBc=hZGHzaWDMJ95Y?qP=7U1CW9~ncKWMkvPBbu`tVi7ju{jEd!Gna)yWW9t11lAEi041zAL6_Q zx~FLK2r6_#%yR%5-A<&ZSLsPX6EuJeeYfZ98$~a9o!<%_w#Vi4`rUIaY%4jgGf$h2 z$n9|3$Sq+h39ZFm+jAtVrARNgxtaoxSf_xVH$cPmR;qny{qifYYjHs!2sXb=M#9TP zR!?X0?}%?fwi!}}>evGHyr_2AsoA6>$?$NHY2bI8$ZC3VrTR0eZqhkU2^rwtgX@r; zlEsBG$^5(0{Hyu*$b$G%IV;l*YclQVCz6^wGF0+7Po`AK*N3d~RrBBHzdtpFWw-`e zAi)Qcw$BgGSW3(X6UsLUZWLxGN!+29HQa+w5E(4LCU_$rCA=~rUV+|?FE$V7Fj2?B z0x(gES3@_edxQ6&CRe|~Sv&@9{7DU2&_hWjjr*>kPY}L9e?t26WooICi{gwJ{rE5# zP>o{g6dF0gv@M?T#e^jjB|~ZT@*!5M(`Ja7jMPF z$#OD+Z_!VdjHUnXbdU1v(Wm0AovwV`DT|L%rsxt9HKxQ%`Fjs)i1iQYl%mqE4ibae zni$F=f<*m=UKAk*g&Q)jVObbL*&huP2a0Nij{q5 zJ(RtUNSUU;KT!>;6;ftrokx3ar|E_>jc(tYnI~g&=7bx$x6{*M=jbiYqp&_i9XvJh zj@JUfq#~O?HD4_kld2avxAY=4srHWXX=|QT_Jv|s(l%ayerHw*r;L}J4Jt2g2Q|nt zP`S2AeqSbaFZiK^Xk((dc|+@3G{UsfHXF?eCNH%EH~ahoc&X2SyB)aM=NG^gVEn$@)y|2ZIX zYw=&=Nw*gDg+!W)`wfJ^ZkKkV6ksrXiulg__fk9Y#O=Z#cS154mmJQd(1Cg3%=f#C zPUL$|-)nRiI<3%aNVO}`R9(=H!8gXm%(+M9kx<*q9 znl&of25VF@a};Yd_%>8a@Ky8~{1rX@EPc!Foy-{;uhzh!^_j{W@(`}2>8KNEa$${+~h^&BAQA0{=8=8$Tbs%h-WaI#(FkHSI8jOc7-6rm|^L z#m8g$Q}Ji>I9FO`{uFHVd=HGV`I@?U@EulH!*mOcDjzn5r&fp@A67%*c-eAryabI# z!_jW;q)iwl8o}R@l&o(wMy*MysZhAQDr|Gh>odT9b(hy$!FayB-iarDc}>qzxxijx z)&XjXl?=ub`wilC(Gpur$71fjhpm(65dWsd6ul(&Jq5s-N_OCz;>=&K%Z{%&QI}O+ zXr1#q&fTZ)a_&6gz=vgeC|Pb-9j+4eAF&I1X8q)`^WaZ}{DD2EM0+@76Y=DH%WF6J z=8igr!GnbCP%(S2nc3=;b-cy83(3^S-=VWuu)53BMSFTPC*}RBN9Ccm?k+~bknohG2 z|6OhmvcN@v9UI0r3J&SCX$PQ-n3KjNsbWRkPySTQ`H7L36LaP~iGRQmxa>|%%Y&t2 z7U>dayL0Z(hIqF`)m!ZOZrDmWR+}k#SzyYZ6`CK;fVSImKhM$pAVagbs_p^v2qT@= z@-Fn+E#yEV2$&r3%ALLlJ_^`rzv)T+a96;!O>)3X`MnA6HXgRI4hNQWXO1NX`83qIlH}7q&}s;??JJ4uH6`52iK-pyqcm5Y;H?!Vz!I-Y z_DeQ!kqwqKc~zHH4Ltml*5S1v(8}ViFkx9NRA}Smx8l`1Mv^RHYCTSkbW@0EIwPIst^m}@knA}*BW(9Bh3#>Mh`K>)ODOMpqz&9 zHO_`ki?4?IP*!kNk@)4d5ov5L(ZxzMD;q8V&P?7p@3bPP6&|5~u(Xm+QSY0ni9O@o zjh6lM2s_K_Y$Y~$(Mh2C4tQAt*H>W|-s>NM2T3+&=yV4W>uLJDyEN^1ZI7-C10v*B zFxATpG$!&OI8w2cVB^v`g z!7mOpDACW=>9^ZnDCz8AqA{j5~o@pgYk=&YK zY|1pTZ^|fYgO?K+o;>iuWV{cS2nt6`Wy@@5^|=rU;ZfTXoAFXo!k!fkZ?Mu(uyJx4 zjo@dNX3KbX;O1-@0lZWoLpyM@KnmcBHRBq~vXL8vdgN=xuqW)@YQgQ4U0HT1%M0{8 znUqRcUY5+;*$`zWsX6zF^Q71!l#`UQWbQVB)o9LV$ruGacpIYqiL9%LL*B$^?-chx zzBb%vy`-bEsVldNvsr$*0z=4*5ZNqdZmd`O^F{dusW|mnp_;v zeGO0gZkwig(178twIRG&mY% z=|>Nw^daLB7k+l%X^70NjLTunV%H6jOa)<3u9-J-$;7DM$iYmD%=9oDf7DHOJ`{N) zdy@|0^&ahvGqOzzzO>*~fl@R#B$xXRKsq*uP}ktsLuN_##xf~V=lKH72>j7ade!hYy-TP6xUOGSOM1ouwG~Y++ zZ}>jD0jZkr6Tc}*%{QkTeT(Te2ADwq$(PyeK!f zzlA=zx&6QBiJ9B%X(i@1r)eeT_K8I|YWVd9oc`_Mst1<(U)}OfZV0%sn#pbGtkC-A z^U)S}zdo7g2Dmj&5{WB5X(G-v@Lr>kGRJAyxl#!Bqg^XLRwql)=kZ&?$3#_@z(a4tFrN=KXWp%YQ{%ukO zvN&g6;L{#SO@;4EmxJ#OBjangY0@eEN`it*2s<{I>vmr5a@*7^UTqc9xz%<9h*;g# z_AP+OSKE0!>8q`AV#|g13L9zK8Z5bvHFy&ZKvDcLljncSU8Hc?EjK)IpG^=RImFuQ zc35r_MJ8Q!Dmpmn0?)#X;{pX)VoIM&Of8)>t!rhG3Z@q+;rPHv z@i5Tq0S8?*(1w?Vqg|zC2{|g5(ehP-40dcV!x{bRFT$6>qXY1%&IYwi~R_z zTE4&~xz|G6lHZC~uN+C(#M1T(YE-tgr7oFz{8lF#(B*xZ$vx*Gfs{||`EH*DAT(2m zonwS7xXneFLVOogtZ#f-o1`?+j#LeZRm{`pi$|eQ;}PcwW=Q$jPG3=3>UvJ8_x|d3rFJ#A3B)^}o(23BJqmx1>N{g>6blIT${^zlAhi68265(?ejT|nQLiIuffO&hO1nN zJ**Q5NaD$eDk@aI8CB#MuxG{dTEe#xg5y`CQI%AOm)L=uQym2G(o}~NcHrhz2LW8M zCVc}QTb1)GVY-rH-o17dv<<%0f>@Tey>{2+-NObhJ+BHjKscw;3y$t4>Kh;q1FLO- z?AP^7v0UOyg;E_!@zjeHqaU&}+MK#^j$>7Npx{Y6aI=&O;H6UfQ+D8HDHXt#lxp#t z0uj|}D7O8gz4PVD=jtcq`~n-QN^;40Gm2c=>!vrl)G`trB=Qls4Q3zUo2rjJnZ;mjW9i95O-7;)y(CqP;CG zfLaO%PO=#eoMe8^fwSBs&-3OFqEGI?IrPL5dDznm9Jqkfw30-g+k1TvUr=e_C<{yC z;W^>UNaeYyS}KpRyFy1!c&L^yaMWNf^Fy>o$ThivluzN=Z)_l~mx8xS25+>=pxwp! z;iPT6v>s_Z1(aqJdDPw)Gfk9Zl6j%5nam4w7R+lCYDaKPUV}!q>8Ts7cT}jGHV)JP z1g|3O);9}ArHYsbrtpSKg?4TkI}S2dcNseehT;2Jn=@hsv?QMkz`?0JnA?uBe3 zQMKEn^i^Edfo-O9UZ1|L!S0W|f7=D)>oO zbyczoz6Vgcd=-x`p(-Zhcd5}RlkvW~j;PBUU#KmDVqKU=1HP z6*uSts!6uC5qOyZ!O^AFDl|i83mK?o=yDwsyct_d^4bNl#Ulfn}=z*$qp+=)DrLne8G0INHxysn-hFtK6U}^OPR2{hzd#+z$SVhuNw?b7R0mROcB%nm( zdHRWTjpWGM8;R(p^sLqB8q!Y~doAfF^qxmAe+iWF=p}nvLG)4t_m-P}qDL;(`G$3g zT&nI?5V`yzQLjckjH9>e@$mK@3wHpu!lY zLOU13{MR63bz_*{14JIf+`6kchN+=#jbW;K+IF1eJxrc|L&H!phIu{}!*m@6n>k|? zs?>s!{N~`q2&7DPJ&c)h1G)Q`u8@v%az_sa>hspW(n7m1B*j`N8*<o6H?n-KONNNP~u*xpIzfOsD`f#8ol8A$=5DAx|ZaU`llQ1XY- z$PkpIVqJplK}pNez*8AOcDF?YB2O};imU4O>!^Xq*8;X~xRUzH1R@ijqymvSmKXw& zhB^l*f>1o*YSL!g+D%YlIA34FDJ}X)@>|hxzJgU0Hq63@t|ta$0w-KNK@@{ z;w%$L4!OWhOHn?=RZN;#=(EF0M>p3i$6Al05`-t-_aG_ro zbQvM1k~dN^ASx>-ev>*9L62&TjwO5^!D)XH8dW(FakCw`IoDhOpOc$x@kU1mZSbTp zKWPVU&NUan6=Qa1IVf0{U+T12u0rB|I}%!!Wop4II}@?`Ip=TWLsrVw2kiuzxhjBb zXAd4uhU{T&$lhiLZkC6tn7`8w+=_XAw6~B()lh%G9eTxqZf=61Gl37CMlOy8M#GqQ zv#e|LIbSjchWTtr)hYFBb|TFz?9Ive->fn5-&^4a#{t64#x$-%AtDM@ zN%*R@3*Sn@Z8`~jWW+8~RvP};+DkwmpGpxD?+pjNUbm0yw-?=h^x&Y2l07eGA`+Z4D2B`jXRoz)tqtKwD**ql?XncZAz%dY zC}rBL9dk3&1aNJ*&8q$mJ8<)GSH=8ZJ8&!Jh7rxE`lcOv#SvXiRnPg7Q4VHRUv)`5%iH6^X4SBm0)Y^AthO?U?yVSlxXbNC)Be52>_Wnbc(1=rH!`ew4wl_31M8bx~x^Hvm+ zxxAH~KzeoaR{j%4kms#DjVJx=9ScLtER~%)>RL{UwvqI~Gib-FmH_*KQ#Uk5Ai0*u!jfdiWe%5?)O9E>{3SiSO5};+u`3@Vt;< zw-6kV{D-3bnkQ)dY zS!B%Jum(=1_F7FSO^H*)N91d4LnD~W$Ky>-O^cIIvA)f2&)48#0vV;sgeI=cfU<9C zi;Rsc7+S?ub?bH1jE$=RTi>^(iJQsTNVt;9*vK)(kg;K?b1~%-7{*u4qimyMm8@+T zkCm{9sy@!MkvFlbrFS?VgEH~bnMJHbT+7N-4Men$uTr+~sc^G|QVY4>ZDBtYoo@sl zx>Oa9uO^|dXUOLyl!|p&b_rz;j1bU_%hbsLvLhwr^DINExT-Fn!AnrNdSXG)L-i8* zOn8!#&m2n(@@c4ZCCR6Kpw$p&+gB3RdrG)9x~Lw;r6;vsbLIq=zuWuRElw1valy-^ zz!mO8ei(@ALRCD#nt=Wsqb?_)RIJ0Y3+R+ijGRB|LNy4V$$++_DMa?u49()ID-qd$ z3)m$hn{X*5vN(lm4cKiQ*8Rnk>p5N z41dnploNL{3ffqD(Sn?NYW=9 zu?MM9nIo3E$>TN}!~u~E{G(`8 zaa@U6t30kFBm;kFB;3&D2#kXH4>k$jOz+k4+91z zYsn|s0NPhQAr_ygP*qHK;_*mgVb?bzXIKVslF`EjcY!_=&-^zemZUE~%X$Hch)Ml*KQKy8HB9&YdUt?HLH8%uL=H(c6xmt zRSuml>h|dt$A!Mz^IMHckv92R0ZwH{6&{2( z;#)&T0M$R&0Kfc}O5b&07Ki>3hW*B#r7KqOR?VY}_S@WE`!R)`N!#@~bz4Ab_LkDa zl|RM6xujA_SN45{!wEY^I8AU38db>~`bT!)=3Ej1yfh2um3H9fL?mlvNGYqh>@30B-HLvi4P3@vHs_;oP8F{+dUC^+Ca@ayR5!gju4ZB2 z5EJ?4_}brN|MnlW5qqQpYspx6bPQZ{0yAIN>mGY`1+ZD`6{aC5v~y_)+rWU;O+)x7 zAo4VXkK;*CLnv5yWMYE40@z5NmZ~6S8Y8kDeNe2|n5vNS|KiW3oj-KKyrzcNiTd4E z)2ZQF!~t%rU!vTYJ#$46+<(WzJ7<1C`fw*0!} z@%W3+12MP`&Oi>8u7n_^?>{ZZQXc!wC{j)1Y4-ahHG+PFEPN`F1$#?jze~}9{VoM6 zXTO);(EmH=liTlKrYCk_m_4n;e&;m7elK1hhy$Ds{}kWr@E_u8KHa9qDHv=ka~EDLYoV-T}A?lt>>m__{ug!Otnp3*C6 zLG7;tFY|UzyvqbD(9_<6Z&GW18h4xQQv?3z8Q^Kjsl{6^0NY`VO`_&7-ip6R>352c zG!){{(w_mEEjXIi&?&3sIW(n+|bo`()ux7+d8yU=U58m(yf6nlN%?RSPxvZnIP zoT3Y;_|N)>{Hq`ebe|%zu1t!!A1s?-1erEfQdEl-eE)#w@59MvOhvsIkwxM2)Y&!Z zZW|oB6!l(s|Bz6++IRfTLP`m>E%6IL6%J9ux11+6+3=e6xg~Z{?(mUeaLL6Ov#Bt? z#8|7>PCD%ePi$HVTR-#`M$Rq;M3(oWchGRL=g5sP0SwGALOd~LED0o#)s;z?P@ zYvSjC(B2sDYzz?n>)@0chjl8Rk|mVcHarz?!!knmzlXzkPqW(?M6Gr>GvCLz#k~$B zX8c~aJ;2GfcMthdz<9hnh>!+1Jmnug6;CX99k1_3-98{qApDQd6uXN({Mg>_b|avQ z&jVi=#v6|fC*Bzj3)-s{Lz;lMfh_VU!Hzh_xgPt()V$vaog)-1PIjzPL}TCoY$a? zF(||MK;}&bL~sYhG2Y4HDja0%%hNA1jpN-!17t7s!J;;38pb=?Zf9ZO;xm|JM-1al z9#Tm6_B~qt>rJl*$w4l=|{OC2uZva1c_U9WJ@KmC}Un{}W-W`eT zS+76S@}hax2Nc3FKU!>~vx&%^!z^k>{_y0s_yA;b5tm7b$(d+Ds85oRr{dk=5{%Ca zb-%UXxA8xnjBa;H^rzT?*}6C}`y>w1sspt3cDLaQ)*eVM`sVWuTxKjp?X!a(y4VTq zqE-a{b2ac3q^H|xb><-hLN6fy9T!~;<}%ezo_H>WQ~;ZG!0wNo--~1#=^+ z^W~1o%^n~H$%>$E0Rtc3CT$*HlqzL+lv6RF%_l#`Nu@Tax_Tj?b)tMR4h zKyWdpe6SaP2Jr;FrbU^p7_7pR>^)8^UxYOTE77&ADwfVy`=^8VY(dix(4Pr7jlnMZ z^9=p@Q~LA5ZTRERpB)qUvzPvCpwIM<(I5J*SU}$$3+U4<0e!k9pbHKIx&Setl<|O4 z$^-J+m@_(vcj!{Y*sue}0$=JtD=#5sA?tAl>Ln!MtQ1nWIM;0_g2@W^WeStp6Df!j zvRBsVq7;1S{eCpWEZ(1mCEj59g(_=w2c&MW)*(-+%>@LD+1A@c`MWV{PYmzDwCuTk zOz=gl;*dn%VWQFWVtkr?XShVyRm;+3CHBV*H;3~gY}UTy4h(po1RLqHbTff-NSZiD zg^6>>X@w5fRyd2&hLNclu)Ka1vJ=jwtx4VZCZkboo&E}mnWbtxCRWvr@fL0zZn^W+ y?RV4CmRLA62R(3@zM-(gEasE literal 64683 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 Mu?ro@jp>>H1GO&800000 diff --git a/docs/build/doctrees/modules/OtherGeoObjects.doctree b/docs/build/doctrees/modules/OtherGeoObjects.doctree index 8e0a17de2e196db93e9c842e680f428cd6ad2615..4383ba9caacd647c9428eac245cd5a160b8ae703 100644 GIT binary patch literal 57121 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 NdZ^Ht(;XC3{|nI`Fg5@H literal 20247 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 delta 513 zcmaF2i}CtyMwSNFsb@B_s50t%>W3Dm78UE4q!yRxyW}UA=BDPA6zeDFr=;o^=j2yr zC+erL#dZ@&z{4$qTq#H{WOJW>uO;l={sJxQ=iTsTOE< z?B?&noLnplS!GO<8!VM38_HQTD`aI)ekiWHd7&H=o6>BeYz3O+H(Az@XS1FMC1o1)&dR&hT_SNCi0wz7#SEc6tZ$TCNrAKPiBeL LXUv{#5^DtjfnK_) diff --git a/docs/build/doctrees/modules/Streets.doctree b/docs/build/doctrees/modules/Streets.doctree index 85d7be35984b6609c7909c91b8cc70d7ce03abf0..bd47615f18201b2e74407b3073db67a9e0fd9afc 100644 GIT binary patch literal 23015 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 F{{lTkMU(&l delta 897 zcmZ{j&rcIU6vvsR+gc3LViOBOixg`;*o6oOni#2p#H2AuN$C=PG~4Zv2XuF_vm0rG zB8f&1>%qJ=G4bTV3kfEM#Jd+SUi2R@-n@8G<5_3hZc!t*neTk_zMuDI=F1^@HZ0x~ zpLT~|i@ik3N(Dx1Ofo4mrD;R8G^(3SQjH3gSk74D7w{N84yL4eB(2_ik_Wmetr4jdm z_<~D3T!vvt;C(5HpQBOas<`Q@I5r+%h6VQ!;<*5q=B+XmJr?l0eWqa96YTE4h`jiJ z)FX&p4m{!H=O%}GzsUR6BDzm z!#QI2(d{j&nxz_Dqcy6lv{EY9OS+;_K7BaAm$Sd{&CTl(ZtZ5=s9RcTd(Eh6PL3Rg z=Hf(vPlx0AAA*o0m@0f9fdd$1cF?V0*0(5YlzGIU*S*X^NWwlO@%F+u0luPE>?bLF zSbR=qaIa?&r{sumji3^blYOkqV|`Pkql5R+AZ~Twv&tJ;f}zW2r_U7hCOxeTt?L#3 zJQZ`@(9_;@k3DbCc|&REuDZD~yt^3e>9l<=x?_to`TT4ipU9DcfCaIQ|KRwoGR3!Y uRA?~u<4-v&?s95|V{$^+@rw4wmbhs9o1evjgzc-Y>y!_%Sr=a|PW}c=7BKn% diff --git a/docs/build/doctrees/modules/VKParser.doctree b/docs/build/doctrees/modules/VKParser.doctree index 120600f092c3baac50dd4b2bf6f7c1d17b5f2f34..e3d07dfe527cc4b8701380f48f4c9c3bd892306d 100644 GIT binary patch literal 52364 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 Xbuw+oX?9vyrzu&?UL>^s!rcD@v5`~> delta 326 zcmXAkO-lk%7)H5cGZEw>5lTvn4AC|>kZ>hPv?wOpxeA$Vyz++59h*A?x{wlD1PwvF z)1sdt{sJ+G)J;@S{eaeeAhfF~_vaj*$Gr}`&B-V7)!uYl4imaT^MYA|+DzDV)6^Y< zaa&N`EHNsoW}{N1B~uqvn2x10iW!o|3Tcrd+TFskO56ym*O+c=7ArH0ah;X4gNDY7 z2J@O8Br;^ToZ;?oF)H%KRk|dR2{q}POau5~n)L+4F z)R_3soCyduy(B~-0a-|3@a{u`V+{1Ocpi)3Zl6o=ifx`!;2DQu_O@as9 z8LWojG1c-@NsvK-$$|$jcrn-xz_-B5_1IV&`Pu@;hcol=?keNU9>m>=>LF+TUI$`+ IEkDfs0^@9e>i_@% diff --git a/docs/build/doctrees/modules/city_services_extract.doctree b/docs/build/doctrees/modules/city_services_extract.doctree index fb32248c02ff9fffca0bf0004f37e9e13808762f..c4815e1b8f3aab3a2f298ed29ae5d4a8c681f018 100644 GIT binary patch literal 14220 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 Y09eglgc?D{U6W(Pq!|}Xt`M^V07xe~u>b%7 delta 182 zcmdm>yGfU&fpzNgjV#iP`mXw+#i>Qb`X#BwCHgM;$)&lec_qdA$@wX%`o%f^$_u9?BOj=O)kkR&5f@}%P-2E;?1~Oj!%J+(Q30j z|2HNkAlFRDo{7<8a+%0-#>JDw)L9lVGB8ZmW09TgAto@nOjMp@9#Eh(DQo`ZxuQvo Y`#?%|Ba{d-?wA}UCe1i+a+#PF0Is1p-T(jq diff --git a/docs/build/doctrees/modules/emotion_classifier.doctree b/docs/build/doctrees/modules/emotion_classifier.doctree index 6322205423199702e0865fbdc1048216f5cba4dd..d8ffb76e5f9100c43b4837e9d809054f43176af0 100644 GIT binary patch delta 1776 zcmb7FUrbw780VZ)>7ajDv5Htq*T0a`meS2_Y``e680s2{O=PjymG-jR3$)PN5?Ep) z5go+)LcY5PquG|shi##A&3!OoOLXyJ#$*H&hRG5Q(L@uC$&9*(B^uAUWo>mnz{}Tj zzVG|}&Ub#_cTcz9Lsu4&@@?gX#y~;YicH5&c18NriDc?*gr7{$PsAdLbexay>0Bnx zL?B<^B+a53WM!Yq+ezm$@kl1gPw){y4GplZ_e(LwVWmEtOwG5O6U=Nf&U8ED(>bSf zUFAmBbGs%QlGxhM(Ekv@QMIk@0*?G)LX zQIYKs{^N$Lnh!MU$|~WM_P$vu7yJaXvwK%u5Z@A8Su?QZFPomR2iD@oh> zAFcX+Y(d~q7?+OPK)%&P^bu~NZ<=O0Jlv>>G#H3Y$&1XNbomGaDY`v`(Hec z${|fuu{=zpiu&)Y)ylI%wx!h*wz^K{b;-S+2*BW!o$ zTNwIuLu9jVcM+n;_F=qP1Z>EF@5_J<_|D3rxT28RRnNE*-xFjYySMBOH_Yhj4COyVw=cgHw>!n*&g5l#kdq}#LYl<`> zh}9ecU;CO>*i%~#Ah=g>oK{urXp|g6r;BuSZ%h;T9A)vNSy=J9P=?r|oMlFC1|EAq zHI^Mu$$1*?b&S+qF3EY7$T_B-p*0nyjKD?TBEDHx@r`mUPgT@JN*CZ}6rgc++PHqo zcbA$0YQCgqu(Uc!R?D#Jw}HXmP*da!(a!{e{sF6uy-$;6>{baYugcghe;9xJq%57X zjkNuNG9wPeFj|7(@jqVHRuk4{PD6gU zT56QkU}AE@KKe@1k>TkB#?jOzIdfUgTF$Y0I?m0kgR6z}-2;1h?P0Lz*`^Q~T#kMu z+-WKg?XP?^xg6i~Cprbm-fvI=`cC-J4fwpT1FoE~qgB`+XjCb4V_cpT1RwQ&jPA)P zUy&4_`7Ut^)sx8-BL?>g&lLZWMEUj1u_lh958`|^T=z9WEbt2Y8Eyoe=qG}0g}=#a J6&(Ft{{V(SGDH9X delta 1723 zcmb7FZ)jUp6z_RS+N{l=uC`jbB~4z^BxX%sT4N{M+N9czLE5ev3!B|)n~lxem|?G}raN625u06E@s-hx*xsAZiRz3w z1pM4qc@C+O%CBG(9xS(bp#jt8I+GSe?Xs95YCk4U7Q@erh2o&5RiugmMT(UEqkls= zue_!NB$xC6=PkQ%!CI)O($mDVo~JNqyM_s`L$%oZ4co{TBb6rgPR$~>(?#Z?tW0uC z28ky{y2SJojjCF=%uLrdFrEkexDH=g zg~xmze9LFEZsblzIJ_F3M7RH>k!f+M`bmx)!FT;9s_G48W#lC~6XL?Z{fm|nR&iqj zBo{e~mjd5I0Nr6H_SM^Jq#ioyfB=L{%#f}G4gJZqt4gOL>Qi|{8#reNJOkbVO$_>WgDQH9>V_wkW1Y$>oD z^!5#4CNd4nkGJpChW*NV`>bSusr9Q=z`>TNql@u=&BQ?_ZZdIbZH4Dry$z&?Zf7SX zr!=N{x=4oIES{Xg`z@z+f?Lc(Be=azz*dZaBR%*|>k0U2Ex~f>X*%>DRsNZM0QYeq znyS7>u@WzNXhl|L!!M(^z^*Pl%K=_)J6xN9l2sNn#oWaB;N2j6Ijn`?-jZgPWWS~8A}=0qj2qg1Z{MilKSq*Eb`p&swWS6Ld+ Y+u03w@ocA`yQ8yw+8Lp7?so3`2OT&Q>Hq)$ diff --git a/docs/build/doctrees/modules/event_dynamic_prediction.doctree b/docs/build/doctrees/modules/event_dynamic_prediction.doctree index b2ea3a2f82e84fa812d6e504f5d8e8f901d8a630..8587362d27ce744449813e84dc91bea360cbd620 100644 GIT binary patch delta 405 zcmZopot?tcz&cf6Ba1MjoTHmnjB|cUW?p(saZY|^c4ACQesXb4aeir0a%#-vwR{Sj z(-;#Ol@l=3L6sL5CC3zH7H1d7Ox`DAx7m{U28VJ!QHp&xPvUvbLagG+zXWe67ZYW0 z$mS?v14d#LZ{8;&C@N5tpI;JRP?VaMSuv%DQGd$hvzlH)9X-6osmUdIrMdAHY57ID zQ#v+lYbh`?PT%aK{f&vSW3!810rA12X0VEpk$dt*Lv?lz76yjWq{PXFOj462jr1AW JCVLuL0RXtCm!$vz delta 426 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 literal 33275 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 K4uoG|{(k^)<$Kfs diff --git a/docs/build/doctrees/modules/regional_activity.doctree b/docs/build/doctrees/modules/regional_activity.doctree index f3311f82dc844d072e70833c501b8c8812cc12cd..5e1a7d194c2e452322029080cfd8b63508a353ae 100644 GIT binary patch delta 137 zcmV;40CxY!A;lpCfCZJhu>>ap9y&%kTtjbUX>Mm+b8K&UYhheuZ)0;@b8mHWV`W^k zS^<^^5OQyCbYF0CWoBu3l#Br{l#}iVN)m{S4Rd8Qb`X#BwCHgM;$)&lec_qdA$@wX%`o%f`t)u}}WU;UVJ9*uz_#np~1snj2q{mS2=R#hY=nH>Uz4W5ebg nuFp(NKyCuBAQNNXyi(`uOON)|IV&zfk8!(u- zHuvwWcjKs?qLHDHwOMLC84MosSD$;&x)y$=HzZ2iS})LEb?KffftpeQvh zvtmjQqyCiXdtDg4ggSb7i&K+J@=9~#E7J0da;J1`mv&`TU}VhSZsW%Ijft^iyNM@b o0ci^Gl18Q}s7nGR|aFnoLmBHe}Be-|V%}KwN1hky;`)i|j0N6P!B5 zmjMiFr)Xp-WNnt3ys=$dJ;OIcsfTEjwk9$jb)IhF!ssF5&Dg_RoSIycSDG7Nk(OVS zJH?xE`y>}e1xCi)?VDX0zcDcZ1y*@57LX8^+vj>Q9$;jAI6cmXQJv|Y;^d2y<)<(6 OVbo{5GyR$mqZI%E?BZ-A(`8T%<8ZvS#Wt3*fdkbVJ zWUQXNP(x<2wI~lz>WPpA6I4nVD0L4iWzG*#&JPq*%TUZ<-rOMC!=zk9*nvQM9X2;e zbZ`-?cyfb;=;n#aqD;yS#F-A%ATW8pCjVwjwW;jN9VBSt)fL;Ep?8c$xs3!(`9>m> zGxS6!%Uk(w)-Z8qRqiET^XB)K4_O6@^7BjL3yM zuQWHlA}zltcS^@*9R~$Q#;Kcq9ltR#c5HTaNn~PNJbAg>YNr1zlLI`|nEtR#_Lr8M zJj>mH`xgrXLupdhZy+`KqnqO7Z|)I{Qj`5X)S1Ltp^5~VvP34Y^pIx!HTkHA6#xdQ B>NNlW delta 709 zcmZph$oPLEBTED8)Gr%Zlo|Cs^+StOi;DG2Qj1IUUGkGlb5rw5iuIH8Q&RPdbMh;* z6ZKQ_lZ*9>^Gl18Q}s8yGPbiR6%*7nnO{?J^FQ_}%tWf4{EyvkGZRlBE2F^X5J5vm zW`&H^lNXB1Og_NIGI@g#2T*vYkOdP^_#U$GWED|uZiNiB48;uQ45f_H$qx*yH%}7{ zVNz-)%85X04JZE>71|sxQN~589xr7HCZ&m_*ds7mPm6E!W7TQwN;65*cVAC@Gqc`N z7NzN==~J)}+3at;lvQaSsrsZhH(4HIog8KFA>z&0!&{u1T#{Fs8()!@Uz9t=n{o3N zdj&@B$t(;EJ$$J}MfpXO7di-U{^W3zi3uoq#yOFRap7b=x7DnFfl7)eC-NyWD`fqe ztY9TSS=K{vvXQ$y_Ya^>Ch9yUfgTtjbUX>Mm+b8K&UYhheuZ)0;@b8mHWV`W^k zQUM4I5OQyCbYF0CWoBu3l#Br{l#^HuN)m{S4Rd8Fpk{o?%6qU2Ql&5n#5Jd>k&Jw&`2dw7delS}eSbK@)0@{4k(cr$L^%B#T0xMTA* pzRyfdK<+8QO-zi6lWRrPS>+fR7)mEMibzjBB4WTOGx@8C6#$tFEtvoS diff --git a/docs/build/doctrees/modules/visualize_graph.doctree b/docs/build/doctrees/modules/visualize_graph.doctree index 379b1387d7b3c916208e3d76a7ea311db5521325..8ae8ad0f344d1d8fcf25e2752d78c6aa25f95630 100644 GIT binary patch delta 1867 zcma)7T}&fY6z&~5&>t$LENr(++o7e>ZXL4l~n=?EQwJc$~HqO+_|=$Zl|*@ zxcIZl?n0Qz${AirTwNc{#%PL0-3OC>a@FW2Mt$@}U)2~jG107NriF!~k%zf=?z!iD z=R4oIbLZ{TpN{b_^BY5v_xK(XIPrKQIV{gg`T3-hl^329le2PKNh-2hOlOkiGvu2( z_wYGMQN^sZm`TkS#R7%L_=m`YAi5&%{@ShYtbVw|4|Qhu;a1_5Vmes~NNFLCTkaH2m6m;b3rM&(t94H24HjXQ)N9&t{Z#Dlg_TI_R-i^d&t? zd97)mf5Ws+>c*`F0k`bL&;_&T~UI7>A2kRam*c_+(>^sGn zeo^}V4gssNwH<9PVAC<&cgSR`Nb{+JnopNhu_Vd)-NZ>^JBTEp!5Jk5h&z2Ti+0~m zq*4&mdx|B(PK*F&o!tZEd0nJ!Sg;o#-?XmM0R4#y^mA0~9>qFrf*A;JHitZM&0OzP z$$0qrPz=V7HV$cAVL{g#ikZ36LLsATd^#&CimurWi&&h`l=Mol=0uB9$fTt?DXp() z_QFB}o^{0!+wi3lG=W@L9kE!D&Ruxd(Nq4`nII$%&8~AiYsC#%bNM5qhR5b*%#kX| z)%I%5HBE)DUB8j1kY;a;4$_cz(8J`d!7&dL71$K4H(enz0`}Q*CPl_z(%lC)-46Jq z!l;6AT-2X#XmrnFhhH!Hw1kxoIGWs>l^yX4>szN$ZXC zjLscx$H*7EY22>TaFH#TYW0urBl0CuU?1YJ%sw(+4NB}|9CmfIN(QAMvE53*_nt7h z2*Zb;#_^GsW8@{w7Pc*6G|J9k+#3$l$|8dkmLuV`mvofn0lWi*hmNB$xY}a%Ra?Yy zh!Ub3cq15*FJdIza36v2kxQh_aBeh?{~#u6K~H$iC)lfrISwYgp#x=p()TbqUYj}o zADMsfH4`iR;p>50-X3giRntdnHPsw*a#m7v{o`Um|6grSRoDmZW-TXcYKfb**tS(P zB($50cR2Vg@($ly zXR#!U-BwDrl%AZiDs%Fhf Q`HYUg6TF$a;g{~jKMG!20{{R3 delta 2244 zcmb7GU1%It6waN^COeyKy1UslKh0*RyZPC~G_%`E8Y7Xmv@~s+;DZ+YiQ{B5$=%!C zoz2cnG)SP;{OUj-&h(`PL$!kVAV}z=#UO&Bs1&Lo`Y06yg`(htQ16||n%!(|E1E8zR8vM)$?2MyQl}MB%cu(% zWN}(eX`-eYg_I(0j-xxS$f@aq{E9SNkn>oYQ8Q^H8}Ak3>70;Nr;UsPbJg9|y_R_t zu2**j2P&N5ZTIuh#YZNFL0>nBHH)HH5h3p6&dWOP7gR&f8@e=;&L|@jYEFSKYVJiZ z?=}43g8&YBg#JK9RtwioS~y`=THvB*HQfGCP$9mv&b#9Q!+f-(WL%70G6k5QZ}so4 z&UTFBn;->_K$G{0zQDAir6esqE2(*~hCk2|IKD6WKO{a-xd$yA8ADhg3HWQ@Dw?1H`+0JXVGzg}xamK{ z^Jd+Yk;y1Jc>Qf&K9kmTDXlA6_}1T^NbV>p#5KLpD;zo`JcAX1ZAn2_1)YA|KG}>w zcP5+&boZ5LTO_n}YT0r`6UZEcBNEktbAfhLorK8=acjqkP2+>ug`*QVGGR=?NL>_M z!C~~KQ_PyPdKr>U5fFTC*r@ZtjbLjqP7NksP-b+wFstYmG2xqF!j0I<$R4LjSQ)HHQkc_p!uYSo* z@@ymp9!HOAQ9Ka1h8<$E&LXx3JJAniWPM*kRxL+1pe+=B zs)DZ{>0p;Bj+%#zV;}({PJvh_>MU(0ST2HEuCAJViC&cx%if)6(d%c*(ZB z=nT#VHd5)8Dc&AC^M(v8)w$IloiWf)m6?z2OvPrtk);hU=g?o;9 zK30pLqzTWn$~)lY#%g{$>nRQKDT|k`6wfS-QPmUWyuqpgKWG@YqJ2V2hO&i1H*+tB$?)rR(yVd*aah - - Page Not Found - sloyka 0.1.0 documentation + + Page Not Found - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
@@ -207,7 +194,7 @@
- sloyka 0.1.0 documentation + sloyka 0.2.1 documentation
- + \ No newline at end of file diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index 8026f93..2d5b4e7 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -4,11 +4,11 @@ - - Overview: module code - sloyka 0.1.0 documentation + + Overview: module code - sloyka 0.2.1 documentation - - + + @@ -88,19 +88,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -179,7 +166,7 @@ - + - + \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html b/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html index a96e67f..0ea86f3 100644 --- a/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html +++ b/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html @@ -4,11 +4,11 @@ - - sloyka.src.geocoder.city_objects_extractor - sloyka 0.1.0 documentation + + sloyka.src.geocoder.city_objects_extractor - sloyka 0.2.1 documentation - - + + @@ -88,19 +88,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -179,7 +166,7 @@
@@ -206,7 +193,7 @@
- sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -290,7 +277,6 @@

Source code for sloyka.src.geocoder.city_objects_extractor

from typing import List import re import pandas as pd -import osmnx as ox from shapely.geometry import Point, Polygon, MultiPolygon from loguru import logger import pymorphy2 @@ -411,20 +397,23 @@

Source code for sloyka.src.geocoder.city_objects_extractor

@staticmethod def restoration_of_normal_form(other_geo_obj, osm_combined_df, threshold=0.7) -> List[str]: """ - This function compares the extracted location entity with an OSM array and returns a normalized form if the percentage of similarity is at least 70%. + This function compares the extracted location entity with an OSM array + and returns a normalized form if the percentage of similarity is at least 70%. """ osm_name_obj = osm_combined_df["name"].tolist() similarity_matrix = np.zeros((len(other_geo_obj), len(osm_name_obj))) def extract_numbers(s): return re.findall(r"\d+", s) + + percents = 100 for i, word1 in enumerate(other_geo_obj): numbers_from_extraction = extract_numbers(word1) for j, word2 in enumerate(osm_name_obj): numbers_from_OSM_name = extract_numbers(word2) if numbers_from_extraction == numbers_from_OSM_name: - similarity = fuzz.ratio(word1, word2) / 100.0 + similarity = fuzz.ratio(word1, word2) / percents else: similarity = 0 similarity_matrix[i, j] = similarity @@ -440,10 +429,13 @@

Source code for sloyka.src.geocoder.city_objects_extractor

return restoration_list
+
+[docs] @staticmethod - def find_num_city_obj(text, NUM_CITY_OBJ) -> List[str]: + def find_num_city_obj(text) -> List[str]: """ - This function searches for urban objects in the text, the names of which are represented as a number. For example, "school No. 6". + This function searches for urban objects in the text, + the names of which are represented as a number. For example, "school No. 6". """ text = str(text) text = text.lower() @@ -464,8 +456,11 @@

Source code for sloyka.src.geocoder.city_objects_extractor

else: num_obj_list_clear[key] = obj - return list(num_obj_list_clear.values()) + return list(num_obj_list_clear.values())
+ +
+[docs] @staticmethod def combine_city_obj(df_obj) -> pd.DataFrame: """ @@ -473,8 +468,11 @@

Source code for sloyka.src.geocoder.city_objects_extractor

""" df_obj["other_geo_obj"] = df_obj["other_geo_obj"] + df_obj["other_geo_obj_num"] df_obj.drop(columns=["other_geo_obj_num"], inplace=True) - return df_obj + return df_obj
+ +
+[docs] @staticmethod def expand_toponym(df_obj) -> pd.DataFrame: """ @@ -485,8 +483,11 @@

Source code for sloyka.src.geocoder.city_objects_extractor

lambda x: x if isinstance(x, list) and x else None ) expanded_df = expanded_df.explode("other_geo_obj").reset_index(drop=True) - return expanded_df + return expanded_df
+ +
+[docs] @staticmethod def find_geometry(toponym, osm_combined_df) -> Point: """ @@ -498,8 +499,11 @@

Source code for sloyka.src.geocoder.city_objects_extractor

if not match.empty: return match.iloc[0, 1] else: - return None + return None
+ +
+[docs] @staticmethod def find_geo_obj_tag(toponym, osm_combined_df) -> str: """ @@ -511,11 +515,15 @@

Source code for sloyka.src.geocoder.city_objects_extractor

if not match.empty: return match.iloc[0, -1] else: - return None + return None
+ +
+[docs] @staticmethod def get_unique_part_types(df): - return df["other_geo_obj"].unique() + return df["other_geo_obj"].unique()
+
[docs] @@ -530,7 +538,7 @@

Source code for sloyka.src.geocoder.city_objects_extractor

df_obj["other_geo_obj"] = df_obj[text_column].apply(OtherGeoObjects.extract_geo_obj) df_obj["other_geo_obj_num"] = df_obj[text_column].apply( - lambda x: OtherGeoObjects.find_num_city_obj(x, NUM_CITY_OBJ) + lambda x: OtherGeoObjects.find_num_city_obj(x) ) df_obj = OtherGeoObjects.combine_city_obj(df_obj) @@ -583,9 +591,9 @@

Source code for sloyka.src.geocoder.city_objects_extractor

+
- + \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html b/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html index 387b2ab..a39cebf 100644 --- a/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html +++ b/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html @@ -4,11 +4,11 @@ - - sloyka.src.geocoder.geocoder - sloyka 0.1.0 documentation + + sloyka.src.geocoder.geocoder - sloyka 0.2.1 documentation - - + + @@ -88,19 +88,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -179,7 +166,7 @@
@@ -206,7 +193,7 @@
- sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -214,15 +201,21 @@
@@ -206,7 +193,7 @@
- sloyka 0.1.0 documentation + sloyka 0.2.1 documentation -
-
+
- + \ No newline at end of file diff --git a/docs/build/html/modules/Geocoder_special.html b/docs/build/html/modules/Geocoder_special.html index 9f359fd..2bee8c5 100644 --- a/docs/build/html/modules/Geocoder_special.html +++ b/docs/build/html/modules/Geocoder_special.html @@ -5,11 +5,11 @@ - - Geocoder - sloyka 0.1.0 documentation + + Geocoder - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
@@ -207,7 +194,7 @@
- sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -297,12 +284,13 @@

Geocoder

-class sloyka.src.geocoder.geocoder.Geocoder(df, model_path: str = 'Geor111y/flair-ner-addresses-extractor', device: str = 'cpu', osm_id: int = None, city_tags: dict = {'place': ['state']})[source]
+class sloyka.src.geocoder.geocoder.Geocoder(df, model_path: str = 'Geor111y/flair-ner-addresses-extractor', device: str = 'cpu', osm_id: int | None = None, city_tags: dict = {'place': ['state']}, stemmer_lang: str = 'russian', text_column_name: str = 'text')[source]

This class provides a functionality of simple geocoder

assign_street()[source]
-
+

Simple workaround

+
@@ -310,11 +298,6 @@

Function simply creates gdf from the recognised geocoded geometries.

-
-
-dir_path = '/Users/test/Documents/code/sloyka/sloyka/src/geocoder'
-
-
get_df_areas(osm_id, tags)[source]
@@ -356,11 +339,6 @@ names dictionary (df).

-
-
-global_crs: int = 4326
-
-
match_group_to_area(group_name, df_areas)[source]
@@ -434,7 +412,7 @@
-run(df: DataFrame = None, tags: dict | None = None, text_column: str = 'text', group_column: str | None = 'group_name', search_for_objects=False)[source]
+run(df: DataFrame | None = None, tags: dict | None = None, group_column: str | None = 'group_name', search_for_objects=False)[source]

Runs the data processing pipeline on the input DataFrame.

Parameters:
@@ -469,7 +447,7 @@
-

Back to all Geocoding

+

Back to all geocoder

@@ -530,11 +508,9 @@
  • Geocoder
  • -
    +
    - + \ No newline at end of file diff --git a/docs/build/html/modules/OtherGeoObjects.html b/docs/build/html/modules/OtherGeoObjects.html index 30d6e7a..6d03f1e 100644 --- a/docs/build/html/modules/OtherGeoObjects.html +++ b/docs/build/html/modules/OtherGeoObjects.html @@ -5,11 +5,11 @@ - - OtherGeoObjects - sloyka 0.1.0 documentation + + OtherGeoObjects - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -295,34 +282,113 @@

    OtherGeoObjects

    +
    +
    +class sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects[source]
    +
    +
    +static calculate_centroid(geometry) Point[source]
    +

    Calculates the centroid for polygons.

    +
    + +
    +
    +static combine_city_obj(df_obj) DataFrame[source]
    +

    Combines the found named urban objects and urban objects whose names are in the form of numbers.

    +
    + +
    +
    +static expand_toponym(df_obj) DataFrame[source]
    +

    Splits the list of found entities into different rows for further analysis.

    +
    + +
    +
    +static extract_geo_obj(text) List[str][source]
    +

    The function extracts location entities from the text, using the Natasha library.

    +
    + +
    +
    +static find_geo_obj_tag(toponym, osm_combined_df) str[source]
    +

    Finds the geo_obj_tag in the OSM array by the name of the city object.

    +
    + +
    +
    +static find_geometry(toponym, osm_combined_df) Point[source]
    +

    Finds the coordinate in the OSM array by the name of the city object.

    +
    + +
    +
    +static find_num_city_obj(text) List[str][source]
    +

    This function searches for urban objects in the text, +the names of which are represented as a number. For example, “school No. 6”.

    +
    +
    -static OtherGeoObjects.get_and_process_osm_data(osm_id: int, tags: dict) DataFrame[source]
    +static get_and_process_osm_data(osm_id: int, tags: dict) DataFrame[source]

    Retrieves and processes OSM data for different urban objects.

    +
    +
    +static get_unique_part_types(df)[source]
    +
    + +
    +
    +static restoration_of_normal_form(other_geo_obj, osm_combined_df, threshold=0.7) List[str][source]
    +

    This function compares the extracted location entity with an OSM array +and returns a normalized form if the percentage of similarity is at least 70%.

    +
    + +
    +
    +static run(osm_id: int, df: DataFrame, text_column: str) DataFrame[source]
    +

    Launches the module for extracting urban objects from texts that do not relate to streets.

    +
    +
    -static OtherGeoObjects.run_osm_dfs(osm_id: int) DataFrame[source]
    +static run_osm_dfs(osm_id: int) DataFrame[source]

    Collects dataframes with OSM spatial data, finds centroids and combines them into one.

    +
    +
    -
    -static OtherGeoObjects.calculate_centroid(geometry) Point[source]
    +
    +static OtherGeoObjects.get_and_process_osm_data(osm_id: int, tags: dict) DataFrame[source]
    +

    Retrieves and processes OSM data for different urban objects.

    +
    + +
    +
    +static OtherGeoObjects.run_osm_dfs(osm_id: int) DataFrame[source]
    +

    Collects dataframes with OSM spatial data, finds centroids and combines them into one.

    +
    + +
    +
    +static OtherGeoObjects.calculate_centroid(geometry) Point[source]

    Calculates the centroid for polygons.

    -
    -static OtherGeoObjects.extract_geo_obj(text) List[str][source]
    +
    +static OtherGeoObjects.extract_geo_obj(text) List[str][source]

    The function extracts location entities from the text, using the Natasha library.

    -
    -static OtherGeoObjects.restoration_of_normal_form(other_geo_obj, osm_combined_df, threshold=0.7) List[str][source]
    -

    This function compares the extracted location entity with an OSM array and returns a normalized form if the percentage of similarity is at least 70%.

    +
    +static OtherGeoObjects.restoration_of_normal_form(other_geo_obj, osm_combined_df, threshold=0.7) List[str][source]
    +

    This function compares the extracted location entity with an OSM array +and returns a normalized form if the percentage of similarity is at least 70%.

    @@ -382,11 +448,26 @@ -
    +
    - + \ No newline at end of file diff --git a/docs/build/html/modules/StreetExtractor.html b/docs/build/html/modules/StreetExtractor.html index 2b2c22a..af7c170 100644 --- a/docs/build/html/modules/StreetExtractor.html +++ b/docs/build/html/modules/StreetExtractor.html @@ -5,11 +5,11 @@ - - StreetExtractor - sloyka 0.1.0 documentation + + StreetExtractor - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -430,9 +417,9 @@
    -
    +
    - + \ No newline at end of file diff --git a/docs/build/html/modules/Streets.html b/docs/build/html/modules/Streets.html index 9b7e525..4bde4ae 100644 --- a/docs/build/html/modules/Streets.html +++ b/docs/build/html/modules/Streets.html @@ -5,11 +5,11 @@ - - Streets - sloyka 0.1.0 documentation + + Streets - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -192,7 +179,7 @@
    -
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -287,7 +274,7 @@ -
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -303,7 +290,7 @@ category using multiple models.

    -class sloyka.src.risks.emotion_classifier.EmotionRecognizer(model_name=Text.Bert_Large, device=None)[source]
    +class sloyka.src.risks.emotion_classifier.EmotionRecognizer(model_name=Text.Bert_Tiny, device='cpu')[source]

    This class is designed to categorise input texts into emotion categories.

    Attributes:

    @@ -417,9 +404,9 @@

    Example

    -
    + - + \ No newline at end of file diff --git a/docs/build/html/modules/event_dynamic_prediction.html b/docs/build/html/modules/event_dynamic_prediction.html index 95b1c25..1387f5a 100644 --- a/docs/build/html/modules/event_dynamic_prediction.html +++ b/docs/build/html/modules/event_dynamic_prediction.html @@ -5,11 +5,11 @@ - - Event detector - sloyka 0.1.0 documentation + + Event detector - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -393,9 +380,9 @@
    - + - + \ No newline at end of file diff --git a/docs/build/html/modules/geocoder.html b/docs/build/html/modules/geocoder.html index f27980b..6c7c2f1 100644 --- a/docs/build/html/modules/geocoder.html +++ b/docs/build/html/modules/geocoder.html @@ -5,11 +5,11 @@ - - Geocoding - sloyka 0.1.0 documentation + + Geocoding - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -293,19 +280,19 @@
    -
    -

    Geocoding

    -

    To perform classification with generalized linear models, see -Geocoder.

    +
    +
    +

    Geocoding

    +

    To perform classification with generalized linear models, see Geocoder.

    Geocoder

    -class sloyka.src.geocoder.geocoder.Geocoder(df, model_path: str = 'Geor111y/flair-ner-addresses-extractor', device: str = 'cpu', osm_id: int = None, city_tags: dict = {'place': ['state']})[source]
    +class sloyka.src.geocoder.geocoder.Geocoder(df, model_path: str = 'Geor111y/flair-ner-addresses-extractor', device: str = 'cpu', osm_id: int | None = None, city_tags: dict = {'place': ['state']}, stemmer_lang: str = 'russian', text_column_name: str = 'text')[source]

    This class provides a functionality of simple geocoder

    -run(df: DataFrame = None, tags: dict | None = None, text_column: str = 'text', group_column: str | None = 'group_name', search_for_objects=False)[source]
    +run(df: DataFrame | None = None, tags: dict | None = None, group_column: str | None = 'group_name', search_for_objects=False)[source]

    Runs the data processing pipeline on the input DataFrame.

    Parameters:
    @@ -453,9 +440,9 @@

    more:< - + - + \ No newline at end of file diff --git a/docs/build/html/modules/regional_activity.html b/docs/build/html/modules/regional_activity.html index 25a80b0..a2a1e1c 100644 --- a/docs/build/html/modules/regional_activity.html +++ b/docs/build/html/modules/regional_activity.html @@ -5,11 +5,11 @@ - - Regional activity - sloyka 0.1.0 documentation + + Regional activity - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -350,9 +337,9 @@
    - + - + \ No newline at end of file diff --git a/docs/build/html/modules/semantic_graph.html b/docs/build/html/modules/semantic_graph.html index d8382c5..cef9a05 100644 --- a/docs/build/html/modules/semantic_graph.html +++ b/docs/build/html/modules/semantic_graph.html @@ -5,11 +5,11 @@ - - Semantic graph - sloyka 0.1.0 documentation + + Semantic graph - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -472,9 +459,9 @@
    - + - + \ No newline at end of file diff --git a/docs/build/html/modules/text_classifier.html b/docs/build/html/modules/text_classifier.html index 1b80282..b1e9e08 100644 --- a/docs/build/html/modules/text_classifier.html +++ b/docs/build/html/modules/text_classifier.html @@ -5,11 +5,11 @@ - - Text Classifier - sloyka 0.1.0 documentation + + Text Classifier - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -416,9 +403,9 @@
    - + - + \ No newline at end of file diff --git a/docs/build/html/modules/topic_modeler.html b/docs/build/html/modules/topic_modeler.html index acad63c..9164883 100644 --- a/docs/build/html/modules/topic_modeler.html +++ b/docs/build/html/modules/topic_modeler.html @@ -5,11 +5,11 @@ - - Topic Modelling - sloyka 0.1.0 documentation + + Topic Modelling - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -356,9 +343,9 @@
    - + - + \ No newline at end of file diff --git a/docs/build/html/modules/visualize_graph.html b/docs/build/html/modules/visualize_graph.html index 649e3ef..4103e68 100644 --- a/docs/build/html/modules/visualize_graph.html +++ b/docs/build/html/modules/visualize_graph.html @@ -5,11 +5,11 @@ - - Graph visualization - sloyka 0.1.0 documentation + + Graph visualization - sloyka 0.2.1 documentation - - + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -298,15 +285,12 @@

    The function results in an interactive map, which will display graph nodes grouped by clusters. Each cluster will have its own color and name. Node markers will have a random offset to avoid overlapping.

    -
    -sloyka.src.visual.graph_visualization.draw_graph_folium(graph_path, output_file=None)[source]
    +
    +sloyka.src.visual.graph_visualization.visualize_graph(G, zoom: int)[source]

    Visualizes a graph from the given graph_path using Folium and MarkerCluster.

    Parameters:
    -
      -
    • graph_path (str) – The path to the graphml file.

    • -
    • output_file (str, optional) – The file to save the visualization to. Defaults to None.

    • -
    +

    output_file (str, optional) – The file to save the visualization to. Defaults to None.

    Returns:

    The folium map object representing the visualized graph.

    @@ -374,7 +358,7 @@ -
    + - + \ No newline at end of file diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 03cef36629273cb3df376aa65f7e877cb4360695..25f830635e953675dab8534bac8cd9e5f0dcbed5 100644 GIT binary patch delta 1724 zcmV;t21EJt3z-g(Is-5+GLbqve_G9Q+cprs^C{R#uVmsjr`$S@>(Qi+J+YG>F%St+ zs7ZnaKqbnluhG}*lN3J$#h-;_Nu+YJu)uyFfL$(j0gIe%pK&aB5@&=ZEG0ZnsN5p9 z{EH+~Ao5LeoJhvwd$}h3mau!<6IR=INsfgGufl?*bxy?V7Gf=n{MFB4e-wz5@#6&N zNu6U!P(n({8BH~1LFAgH9nPVep{D6CXOgpGNlQiD41YQGnX4w>DqN;WvWk`4;)1lM z2PwVdmP^xL&tqOuwcLglNt|75$&Of&@$F?<%euI{XJtep?OGLQ2@wJ@QJ@q{e2lH% zoIi!Sq<_~0RhUa8w-pf=f7<{~gc4&(S&7&Rm5diSM=SN`m@RmF<|OJ8WScZ}DiUkn zl{jW;S02{($8GcD^w>XwiWLgYN+cvFM1r$*Ly@RRLUDd9L&AwZMY41?3%qvfbcL{D z5wj8GWJB`V(1j$$EZ_x}$r@#x)s;HZ%pT3dLwH6s11+gk`e-Iwe^;Ei@Tu2=N?Z^z zH=s>v!hba)gP#a zYSWPJO9f|Pv|EX#)q?}}C=SIPFtE96u>s}#0i=4dxQKv&crQx+$D(*ll% zSxnm>y%0LSv7%2Te_>fkzr$yukLzR-mBTbY5#A7vRnT*4E6xg3)VZWpPLP@b$>GQ} z=cJn96Yy?S&4*GViSx&?A?=W@3XC*SSuIIvq6uDL&K`JtqnqzdtC{=Aj(e$&=kUhd z6Nsexzz+HRV9eni8Y(=g_I29?Yk!dA6!5s|+9Ev=+@|Tcf0}$j`|e;5=i}7bIb^kq zGU{W6CgNmbK?+<-<)j(M)q2oG%bMn?#~BBjdwlUl9PuM5i~w>JG zz!W5=>M_Oif0ET@>P_KiU`;vQ?Ay_KSXZh9t~n7lP4HZ$&O^QTp6L|ICb4WH7Zjf5#`Zc)GcJoSErqad&h7`3e28 zxLZ8U%$2aBP^q)fN2DIG;y!nth|nA$4e8uG2QGjnXR4Tx>Wr9uUF@sAP@ySWZc)k# zOv||$MZLU)(R99jDW0kgO|!BnmpE@J&20}YGy966R5nye+yxO>D}W>Sl?+D^#@Agb z6x;W(e@{j0?%ednNOvluZN9`@I4PLQP1P>w2M3po|DdTa83 z8F?~`mve8ZsBs?KQp+~zcii5W4SnB@AcqTOKXN=k(M+qlv^QN>`?)m9+c$4RA=7s$ zOTy?XR87+tKH!XmADIk)*Y#6?RT(8;(^5#Bf9G~d9j$S%1zB_?ErjH1PKgg<*Xtm5 zk_Mu^P9CYd9;^|77QZNB;$H2=F{{wD~W2>9Bpv?8Z9 ze;5$BCj=O7{HBu)-jQHE__fLDMo!la)2P}6`)meQuRUP^eeEC?_z9YyQD6Jke8)Xm zurpQT@Et4tNph8okWjMl(S(fu{`psgYFw@J6QloApk@J>yV^#sqxoiRkg|qvX72I6 z12@^`LOgW$;{mv%-39r#e6Zm@b9=zXe=f1}0FMJhNRW?@{Mz%T1>r%@Ug1DEz!QEP z(beD0qpfQJ#a>z$e)(Y2%wTUUgmC;p6AY6;G=xxx!Lk=1{Q(ey@`On!CLZ!_5Psix z;QI=C0dN4=3xAETsvM@(2n~9I2=%i@cs;g^du&`mFi+NfSSxepGyOW(Q)7$Hj*Mmjy#pv&WK{-!F#OK| z7!rK>x2n-jbr=&xCl-1j+gm^vE)OAp9O;6OVp`Zuq=p_k_RKNv$TwdZQRK9Sp1OIi Sc2Ro-H!R27$o)SUYA|)wX+>fH delta 1427 zcmV;E1#J464)Y6;I*~m)e_73r+cprs>nT)huTru=PPuN@FWQ+7j(A3ywml6e% za^jr&8hyP!N%mf3(!B9XK^c@kM9gjQH-%R7*nbF7!n<;0y@ZfVddCHc(#%T*!qz zzf9>%dB3KHt;tHst|dnLC|qPGHK-Lh3%udR>XQp)YpWoVuiFc0Xbt+(mV*17sf$>8 z9iz_iv`yJQv)mp?D|vGcY6=`TV(mvS_!!?$r`2P~!w0`{e``%s?NseNMvZJ`v#qaZ zF}M<=gY%k;`Q7ps1aIKv9V)J$Y*kiEUzqqD;7cApv;il7I{?n71k z%5r|9x;?+`uC09Y_nPf?h6`P~dy05*!JAd+#5Jf5w~|;Sp!tH%Jd`#sFj(G=rC0_X zuzoJHvF>so$MI5T&c4Q4l>JO^fLJfMw$_*gH(h5bt)L9ZH*VIpps@?myyk-bk1I-i zwx4f%f5UZW8=Y|6!VCXFhni`c`*8*wC(AT)St zg4m5lh@GT|7@CTidK?L=zfo>o-;1)nKzda{e-|K}@-t%XhKfP^F+S{$cjl9B6^<2( zKAI3PouKG7KDfKy@SGvt4hop6x_fys((eoVd?(6Q(D0^$@B7$M8l7(+v;HpJU;U#C zLGMhhRuQ!(6SCMy;&9W>KHMePgFNWPTLoMnzk7(fMbwSc9I6Y&q1f5EE<*RC==pW+ ze}ox!?ollCDEh}@U;EyFn)hVcE@XY;kD~P_2qtUDjm#fCdHnnLKRUPby4toLUjL`8 zcAlJtz1@pyc$QTlq z>$Ch$+;Cuc*d<6l5l--Q8b^=yckB52f9ZiLjr%!{1sMlvhY+8=h2PzJ_a(I6wto( z;yj8oyz0jwk-or2ILLA@%M#rthK4nyxodLsyLmi(V;e5O5@_QIJ(d$WJ_8}ff9{*m zFouRPHOk5(`aHs`4_jMbHv9C72XaQVcqnh8xEQqO!PP(&TkpdLSqz^acQv1#TaP?4 zTLsn?T3HcPCV4QuC&nSsd*Gm2>{O?ms7G9wfE@n4jeLmZ<4hO5B5}fTK{d_Ld1lUW hXSsRfMMcz_X6ojt-LduzZjZO^2_6UL{tubiv&#xL(zXBq diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index faa2657..5980b36 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -4,10 +4,10 @@ - Python Module Index - sloyka 0.1.0 documentation + Python Module Index - sloyka 0.2.1 documentation - - + + @@ -87,19 +87,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -178,7 +165,7 @@
    @@ -205,7 +192,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -372,9 +359,9 @@

    Python Module Index

    - + - + \ No newline at end of file diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 48982df..69c81d3 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -5,11 +5,11 @@ - + -Search - sloyka 0.1.0 documentation - - +Search - sloyka 0.2.1 documentation + + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    @@ -207,7 +194,7 @@
    - sloyka 0.1.0 documentation + sloyka 0.2.1 documentation @@ -329,10 +316,10 @@
    - + - + diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index d8b071a..0ea7dd5 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"Advanced geocoding": [[12, null], [15, null]], "Data getter": [[12, "data-getter"]], "Emotion classifier": [[13, "module-sloyka.src.risks.emotion_classifier"]], "Event detector": [[14, "module-sloyka.src.risks.event_detector"]], "Example": [[13, "example"]], "General:": [[4, null]], "GeoDataGetter": [[5, "geodatagetter"]], "Geocoder": [[6, "geocoder"], [15, "id1"]], "Geocoding": [[15, "geocoding"]], "Graph visualization": [[20, "graph-visualization"]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[1, "installation"]], "Introduction": [[2, "introduction"]], "Main features": [[2, "main-features"]], "Main pipeline": [[3, "main-pipeline"]], "OtherGeoObjects": [[7, "othergeoobjects"], [15, "othergeoobjects"]], "Page Not Found": [[0, "page-not-found"]], "Regional activity": [[16, "regional-activity"]], "Semantic graph": [[17, "module-sloyka.src.semantic_graph.semantic_graph_builder"]], "Services extraction": [[11, "services-extraction"]], "StreetExtractor": [[8, "streetextractor"], [15, "streetextractor"]], "Streets": [[9, "streets"]], "Text Classifier": [[18, "text-classifier"]], "Topic Modelling": [[19, "topic-modelling"]], "VKparser": [[10, "vkparser"]], "Welcome to Sloyka\u2019s documentation!": [[4, "welcome-to-sloyka-s-documentation"]], "more:": [[12, "more"], [15, "more"]]}, "docnames": ["404", "about/installation", "about/introduction", "about/pipeline", "index", "modules/GeoDataGetter", "modules/Geocoder_special", "modules/OtherGeoObjects", "modules/StreetExtractor", "modules/Streets", "modules/VKParser", "modules/city_services_extract", "modules/data_getter", "modules/emotion_classifier", "modules/event_dynamic_prediction", "modules/geocoder", "modules/regional_activity", "modules/semantic_graph", "modules/text_classifier", "modules/topic_modeler", "modules/visualize_graph"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["404.rst", "about/installation.rst", "about/introduction.rst", "about/pipeline.rst", "index.rst", "modules/GeoDataGetter.rst", "modules/Geocoder_special.rst", "modules/OtherGeoObjects.rst", "modules/StreetExtractor.rst", "modules/Streets.rst", "modules/VKParser.rst", "modules/city_services_extract.rst", "modules/data_getter.rst", "modules/emotion_classifier.rst", "modules/event_dynamic_prediction.rst", "modules/geocoder.rst", "modules/regional_activity.rst", "modules/semantic_graph.rst", "modules/text_classifier.rst", "modules/topic_modeler.rst", "modules/visualize_graph.rst"], "indexentries": {"assign_street() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.assign_street", false]], "build_graph() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.build_graph", false]], "calculate_centroid() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.calculate_centroid", false]], "city_services (class in sloyka.src.utils.data_processing.city_services_extract)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services", false]], "classify_text() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.classify_text", false]], "convert_df_to_edge_df() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph static method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.convert_df_to_edge_df", false]], "create_gdf() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.create_gdf", false]], "dir_path (sloyka.src.geocoder.geocoder.geocoder attribute)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.dir_path", false]], "draw_graph_folium() (in module sloyka.src.visual.graph_visualization)": [[20, "sloyka.src.visual.graph_visualization.draw_graph_folium", false]], "emotionrecognizer (class in sloyka.src.risks.emotion_classifier)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer", false]], "eventdetection (class in sloyka.src.risks.event_detector)": [[14, "sloyka.src.risks.event_detector.EventDetection", false]], "extract_geo_obj() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.extract_geo_obj", false]], "extract_ner_street() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extract_ner_street", false]], "extract_toponym() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extract_toponym", false]], "extraction_services() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.extraction_services", false]], "extractor (sloyka.src.geocoder.street_extractor.streetextractor attribute)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extractor", false]], "geocoder (class in sloyka.src.geocoder.geocoder)": [[6, "sloyka.src.geocoder.geocoder.Geocoder", false], [15, "sloyka.src.geocoder.geocoder.Geocoder", false]], "get_and_process_osm_data() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.get_and_process_osm_data", false]], "get_df_areas() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_df_areas", false]], "get_level() (sloyka.src.geocoder.geocoder.geocoder static method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_level", false]], "get_stem() (sloyka.src.geocoder.geocoder.geocoder static method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_stem", false]], "global_crs (sloyka.src.geocoder.geocoder.geocoder attribute)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.global_crs", false]], "initialize_classifier() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.initialize_classifier", false]], "match_group_to_area() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.match_group_to_area", false]], "merge_to_initial_df() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.merge_to_initial_df", false]], "module": [[11, "module-sloyka.src.utils.data_processing.city_services_extract", false], [13, "module-sloyka.src.risks.emotion_classifier", false], [14, "module-sloyka.src.risks.event_detector", false], [17, "module-sloyka.src.semantic_graph.semantic_graph_builder", false], [18, "module-sloyka.src.risks.text_classifier", false], [20, "module-sloyka.src.visual.graph_visualization", false]], "othergeoobjects (class in sloyka.src.geocoder.city_objects_extractor)": [[15, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects", false]], "preprocess_area_names() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.preprocess_area_names", false]], "preprocess_group_name() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.preprocess_group_name", false]], "process_pipeline() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.process_pipeline", false]], "recognize_average_emotion_from_multiple_models() (sloyka.src.risks.emotion_classifier.emotionrecognizer method)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer.recognize_average_emotion_from_multiple_models", false]], "recognize_emotion() (sloyka.src.risks.emotion_classifier.emotionrecognizer method)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer.recognize_emotion", false]], "remove_last_letter() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.remove_last_letter", false]], "replace_with_most_similar() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.replace_with_most_similar", false]], "restoration_of_normal_form() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.restoration_of_normal_form", false]], "run() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[15, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run", false]], "run() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.run", false], [15, "sloyka.src.geocoder.geocoder.Geocoder.run", false]], "run() (sloyka.src.risks.event_detector.eventdetection method)": [[14, "sloyka.src.risks.event_detector.EventDetection.run", false]], "run() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.run", false]], "run_osm_dfs() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run_osm_dfs", false]], "run_text_classifier() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.run_text_classifier", false]], "run_text_classifier_topics() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.run_text_classifier_topics", false]], "semgraph (class in sloyka.src.semantic_graph.semantic_graph_builder)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph", false]], "set_global_repr_point() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.set_global_repr_point", false]], "sloyka.src.risks.emotion_classifier": [[13, "module-sloyka.src.risks.emotion_classifier", false]], "sloyka.src.risks.event_detector": [[14, "module-sloyka.src.risks.event_detector", false]], "sloyka.src.risks.text_classifier": [[18, "module-sloyka.src.risks.text_classifier", false]], "sloyka.src.semantic_graph.semantic_graph_builder": [[17, "module-sloyka.src.semantic_graph.semantic_graph_builder", false]], "sloyka.src.utils.data_processing.city_services_extract": [[11, "module-sloyka.src.utils.data_processing.city_services_extract", false]], "sloyka.src.visual.graph_visualization": [[20, "module-sloyka.src.visual.graph_visualization", false]], "streetextractor (class in sloyka.src.geocoder.street_extractor)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor", false], [15, "sloyka.src.geocoder.street_extractor.StreetExtractor", false]], "textclassifiers (class in sloyka.src.risks.text_classifier)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers", false]], "update_graph() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.update_graph", false]]}, "objects": {"sloyka.src.geocoder.city_objects_extractor": [[15, 0, 1, "", "OtherGeoObjects"]], "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects": [[7, 1, 1, "", "calculate_centroid"], [7, 1, 1, "", "extract_geo_obj"], [7, 1, 1, "", "get_and_process_osm_data"], [7, 1, 1, "", "restoration_of_normal_form"], [15, 1, 1, "", "run"], [7, 1, 1, "", "run_osm_dfs"]], "sloyka.src.geocoder.geocoder": [[15, 0, 1, "", "Geocoder"]], "sloyka.src.geocoder.geocoder.Geocoder": [[6, 1, 1, "", "assign_street"], [6, 1, 1, "", "create_gdf"], [6, 2, 1, "", "dir_path"], [6, 1, 1, "", "get_df_areas"], [6, 1, 1, "", "get_level"], [6, 1, 1, "", "get_stem"], [6, 2, 1, "", "global_crs"], [6, 1, 1, "", "match_group_to_area"], [6, 1, 1, "", "merge_to_initial_df"], [6, 1, 1, "", "preprocess_area_names"], [6, 1, 1, "", "preprocess_group_name"], [15, 1, 1, "", "run"], [6, 1, 1, "", "set_global_repr_point"]], "sloyka.src.geocoder.street_extractor": [[15, 0, 1, "", "StreetExtractor"]], "sloyka.src.geocoder.street_extractor.StreetExtractor": [[8, 1, 1, "", "extract_ner_street"], [8, 1, 1, "", "extract_toponym"], [8, 2, 1, "", "extractor"], [8, 1, 1, "", "process_pipeline"]], "sloyka.src.risks": [[13, 3, 0, "-", "emotion_classifier"], [14, 3, 0, "-", "event_detector"], [18, 3, 0, "-", "text_classifier"]], "sloyka.src.risks.emotion_classifier": [[13, 0, 1, "", "EmotionRecognizer"]], "sloyka.src.risks.emotion_classifier.EmotionRecognizer": [[13, 1, 1, "", "recognize_average_emotion_from_multiple_models"], [13, 1, 1, "", "recognize_emotion"]], "sloyka.src.risks.event_detector": [[14, 0, 1, "", "EventDetection"]], "sloyka.src.risks.event_detector.EventDetection": [[14, 1, 1, "", "run"]], "sloyka.src.risks.text_classifier": [[18, 0, 1, "", "TextClassifiers"]], "sloyka.src.risks.text_classifier.TextClassifiers": [[18, 1, 1, "", "classify_text"], [18, 1, 1, "", "initialize_classifier"], [18, 1, 1, "", "run_text_classifier"], [18, 1, 1, "", "run_text_classifier_topics"]], "sloyka.src.semantic_graph": [[17, 3, 0, "-", "semantic_graph_builder"]], "sloyka.src.semantic_graph.semantic_graph_builder": [[17, 0, 1, "", "Semgraph"]], "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph": [[17, 1, 1, "", "build_graph"], [17, 1, 1, "", "convert_df_to_edge_df"], [17, 1, 1, "", "update_graph"]], "sloyka.src.utils.data_processing": [[11, 3, 0, "-", "city_services_extract"]], "sloyka.src.utils.data_processing.city_services_extract": [[11, 0, 1, "", "City_services"]], "sloyka.src.utils.data_processing.city_services_extract.City_services": [[11, 1, 1, "", "extraction_services"], [11, 1, 1, "", "remove_last_letter"], [11, 1, 1, "", "replace_with_most_similar"], [11, 1, 1, "", "run"]], "sloyka.src.visual": [[20, 3, 0, "-", "graph_visualization"]], "sloyka.src.visual.graph_visualization": [[20, 4, 1, "", "draw_graph_folium"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "terms": {"": [2, 3], "0": [2, 7, 17], "000": 18, "1": [6, 17, 18, 19], "100": [], "131": [], "15": 19, "2": 6, "2024": 2, "3": 6, "4326": 6, "5": [], "50": [], "6": [2, 17], "7": 7, "70": 7, "75": 17, "90": 18, "A": [6, 8, 9, 12, 17], "And": [], "As": 17, "By": 3, "For": 17, "If": 6, "In": 18, "It": [6, 13, 14, 15, 17, 18, 19], "Its": 2, "Not": [], "The": [2, 3, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20], "To": [1, 15], "_collect_popul": 14, "_geocoder_speci": [], "_get_build": 14, "_get_road": 14, "_preprocess": 14, "about": [3, 16, 19], "access": 18, "access_token": [], "accord": 6, "account": 11, "accsess_token": [], "across": 3, "activ": [2, 3], "actual": 6, "ad": 13, "add": 6, "addit": [2, 19], "address": [6, 8, 15], "admin": [6, 15], "after": [2, 6, 15, 16, 17], "against": 6, "aggreg": [16, 17], "aggregate_data": 17, "aim": [2, 14, 17, 18, 19], "algorithm": 11, "all": [3, 6], "alreadi": [2, 3, 6], "also": [2, 6, 15], "amen": 18, "an": [6, 7, 13, 14, 15, 20], "analyz": [4, 13], "ani": [3, 6, 13, 17, 19], "api": [], "api_verison": [], "appdata": [], "appli": [3, 8, 13], "applic": [14, 17], "ar": [3, 6, 15, 17], "area": [3, 6, 15], "area_nam": 6, "area_name_process": 6, "area_stem": 6, "around": 8, "arrai": 7, "assess": [2, 3], "assign": [6, 15], "assign_street": 6, "attribut": [6, 13, 16, 17, 18], "augment": 2, "authent": [], "autoclass": 9, "autom": [], "automat": 13, "automodul": [], "avail": 13, "averag": 13, "avoid": 20, "back": [6, 13], "base": [5, 12, 14, 16, 17, 18], "basic": 16, "being": 18, "belong": 19, "below": 8, "bert": [17, 18], "bert_larg": 13, "bert_nam": 17, "bertop": [14, 19], "best": [6, 15], "between": [14, 17], "bool": 17, "box": 0, "build": [2, 14, 17], "build_graph": 17, "c": [], "cach": 6, "calcul": [7, 13], "calculate_centroid": 7, "call": [16, 18], "can": [2, 3, 13, 16], "care": 18, "carri": 3, "case": [3, 17, 18], "categor": 2, "categori": [13, 18], "categoris": 13, "centroid": [6, 7], "certain": 3, "chang": 11, "charact": 6, "character": 3, "chat": 2, "check": 6, "child": 17, "citi": [2, 4, 6, 11, 14, 18, 19], "citizen": 2, "city_cr": 14, "city_nam": 14, "city_objects_extractor": 15, "city_servic": 11, "city_services_extract": [11, 16], "city_tag": [6, 15], "class": [5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19], "classif": [15, 18], "classifi": [2, 3, 8, 16], "classify_text": 18, "clean": 17, "clean_from_digit": 17, "clean_from_dubl": 17, "clean_from_toponym": 17, "cluster": [14, 19, 20], "code": 6, "cointegr": 19, "collect": [2, 7, 14], "color": 20, "column": [2, 3, 6, 11, 13, 15, 17], "combin": 7, "comment": 2, "comments_to_datafram": [], "commun": [2, 3], "compar": 7, "comparison": 11, "compat": 13, "comprehens": [], "confid": 8, "connect": 14, "consist": 3, "construct": [2, 17], "contain": [6, 8, 12, 13, 14, 17, 18], "content": 8, "context": 14, "conveni": 17, "convert": 6, "convert_df_to_edge_df": 17, "convini": 17, "correctli": 18, "correspond": [6, 15], "cosin": 17, "couldn": 0, "count": [17, 18], "count_item": [], "counts_attribut": 17, "cpu": [6, 13, 15, 17], "creat": [6, 15, 16, 17, 19], "create_gdf": 6, "csv": 13, "cuda": 13, "custom": 8, "cutoff": [], "cutoff_d": [], "d": [], "dai": 19, "data": [2, 3, 4, 5, 6, 7, 9, 13, 14, 15, 16, 17, 19], "data_gett": 9, "data_process": 11, "datafram": [6, 7, 8, 11, 13, 15, 16, 17], "dataset": 3, "date": [2, 6, 15, 19], "deeppavlov": 17, "default": [6, 13, 15, 17, 20], "design": [11, 13, 16, 18, 19], "detector": [], "determin": 17, "devic": [6, 13, 15, 17, 18], "device_typ": 18, "df": [6, 8, 11, 13, 15], "df_area": 6, "dict": [6, 7, 15], "dictionari": 6, "didn": 6, "differ": [6, 7], "digit": [2, 17], "dir_path": 6, "direct": 17, "displai": 20, "distanc": 17, "divid": 3, "do": 15, "document": [2, 6], "domain": [], "don": 6, "done": 19, "draw_graph_folium": 20, "duplic": 17, "dure": 13, "dynam": 19, "each": [3, 6, 14, 15, 17, 19, 20], "effici": 18, "element": [2, 6], "embed": [17, 19], "embedding_model_nam": 19, "emot": [2, 3], "emotion_classifi": [13, 16], "emotionclassifi": 13, "emotionrecogn": 13, "empti": [], "enabl": 13, "end": 11, "end_dat": 19, "enrich": 2, "entiti": [2, 7, 11], "environ": 2, "evalu": 2, "event": [2, 18], "event_detector": 14, "eventdetect": 14, "exampl": 18, "exist": 2, "extract": [2, 3, 7, 8, 15, 17, 19], "extract_building_num": [], "extract_geo_obj": 7, "extract_ner_street": 8, "extract_toponym": 8, "extraction_servic": 11, "extractor": [6, 8, 15], "fail": 8, "fall": 13, "fals": [6, 15, 18], "famili": 18, "featur": [], "fetch": [], "file": 20, "filepath_to_popul": 14, "filter": [6, 15, 17], "final": [2, 6, 15, 17], "find": [0, 6, 7, 15], "finder": [], "first": [6, 8], "flag": 17, "flair": [6, 11, 15], "float": 17, "folium": 20, "follow": [13, 14, 17, 18, 19], "footprint": 2, "forecast": 3, "form": [6, 7, 15], "format": [], "found": [6, 8], "from": [2, 5, 6, 7, 8, 11, 12, 15, 17, 19, 20], "function": [3, 6, 7, 8, 15, 16, 17, 18, 19, 20], "further": [2, 3], "g": 17, "gdf": [6, 19], "gener": [2, 3, 14, 15], "geo": [], "geocod": [3, 8, 16, 17], "geodatafram": [2, 6, 14, 15, 16, 17, 19], "geodatagett": 12, "geograph": [6, 15], "geoloc": [3, 17], "geometri": [6, 7, 17], "geometry_column": 17, "geor111i": [6, 15], "geospati": [5, 12], "get": [2, 3, 14], "get_and_process_osm_data": 7, "get_com": [], "get_df_area": 6, "get_group_nam": [], "get_group_post_id": [], "get_level": 6, "get_owner_id_by_domain": [], "get_risk": 16, "get_stem": 6, "get_subcom": [], "getter": 3, "given": [5, 6, 12, 13, 15, 17, 20], "global": [6, 19], "global_cr": 6, "go": 0, "gpd": [6, 15, 17], "gpu": 13, "graph": [2, 3], "graph_path": 20, "graph_visu": 20, "graphml": 20, "group": [3, 6, 15, 20], "group_column": [6, 15], "group_nam": [6, 15], "ha": [13, 14, 17, 18, 19], "have": 20, "health": 18, "histgeodatagett": 6, "hold": 13, "homepag": 0, "hous": [6, 18], "howev": 3, "http": 2, "huggingfac": [13, 18], "huggingfacemodel": 13, "hypergraph": 2, "i": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 17, 18, 19], "id": [5, 6, 12, 15, 18], "id_column": 17, "ident": 4, "identifi": [8, 17, 18, 19], "import": 3, "includ": 16, "incom": 19, "index": 4, "indic": 17, "inf": [], "infer": [13, 17], "infin": [], "info": [3, 6], "inform": [16, 17], "initi": [6, 16, 18], "initial_df": 6, "initialize_classifi": 18, "input": [6, 8, 13, 15, 17, 18], "instal": 4, "instanti": 13, "int": [6, 7, 14, 15, 17, 18], "interact": 20, "interpret": 2, "introduct": 4, "is_top": 18, "its": 20, "june": 2, "keep": 6, "kei": 17, "key_score_filt": 17, "keybert": 17, "keyword": 17, "know": 6, "label": 3, "languag": 17, "last": 3, "launch": 15, "least": 7, "level": [6, 15, 18], "librari": [2, 3, 4, 7, 11, 17], "like": 13, "limit": 3, "linear": 15, "link": [2, 14], "list": [3, 7, 11], "locat": [2, 7, 17], "location_column": 17, "logistic_regress": [], "low": 18, "lowercas": 6, "m": [], "machin": 2, "mai": 19, "main": [4, 17, 18, 19], "major": 3, "mani": 18, "map": 20, "mark": 18, "marker": 20, "markerclust": 20, "match": [6, 15, 17], "match_group_to_area": 6, "maximum": [], "me": 2, "media": [2, 4], "member": 9, "mention": [2, 3, 8], "meow": [], "merg": [6, 15, 19], "merge_to_initial_df": 6, "messag": [2, 3, 6, 11, 14, 17, 18, 19], "method": [2, 3, 11, 13, 14, 17, 18, 19], "min_event_s": 14, "min_text": 19, "model": [2, 3, 6, 8, 13, 14, 15, 17, 18], "model_nam": 13, "model_path": [6, 15], "modul": [2, 4, 12, 13, 14, 15, 16, 17, 18, 19], "more": [3, 17], "most": [11, 13], "multipl": 13, "name": [6, 8, 11, 13, 15, 17, 20], "natasha": 7, "natashaextractor": 8, "ner": [6, 8, 15], "network": [2, 3, 12, 14], "new": [2, 11, 17], "node": [2, 17, 20], "none": [6, 8, 13, 15, 17, 18, 20], "normal": 7, "number": [6, 17, 18], "number_of_categori": 18, "number_of_messag": [], "nx": 17, "object": [2, 3, 6, 7, 8, 11, 14, 15, 18, 20], "obtain": [2, 3, 17], "offset": 20, "one": 7, "onli": [3, 6], "onlin": 3, "openstreetmap": [5, 6, 12], "option": [6, 8, 15, 20], "order": [3, 6], "origin": [6, 11], "osm": [5, 6, 7, 12, 15], "osm_combined_df": 7, "osm_id": [6, 7, 15], "other": [6, 13, 15, 16, 18], "other_geo_obj": 7, "otherwis": [3, 6, 8, 13], "out": [3, 6], "output_fil": 20, "overlap": 20, "own": 20, "owner": [], "owner_id": [], "packag": [], "page": 4, "panda": [], "param": 17, "paramet": [6, 8, 15, 17, 20], "parent": 17, "parents_stack_column": 17, "pars": 2, "parser": [], "particular": 2, "path": 20, "pd": [6, 8, 13, 15, 17], "per": 18, "percentag": 7, "perform": 15, "perisiqu": [], "pip": 1, "pipelin": [4, 6, 15, 18], "place": [2, 6, 15, 17], "point": [6, 7], "polygon": 7, "popul": 14, "posit": 8, "possibl": 3, "post": [2, 17, 19], "post_id": [], "post_id_column": 17, "post_num_limit": [], "pre": [8, 18], "predict": [2, 18], "preprocess": [6, 14, 15], "preprocess_area_nam": 6, "preprocess_group_nam": 6, "present": 8, "prevail": 13, "previous": [], "probabl": [11, 18], "process": [2, 6, 7, 8, 15, 16, 18, 19], "process_pipelin": 8, "process_top": 19, "processed_geodata": 16, "provid": [2, 6, 15, 16, 17], "proxim": 17, "public": 18, "python": [], "python311": [], "pytorch": 17, "qualiti": 2, "random": 20, "rang": [8, 19], "read_csv": 13, "receiv": [2, 3], "recogn": [6, 13], "recognis": 6, "recognit": [2, 13], "recognize_average_emotion_from_multiple_model": 13, "recognize_emot": 13, "refer": 17, "regard": 2, "region": [2, 3], "regional_act": 16, "regionalact": 16, "relat": [8, 15], "relationship": 17, "remov": [6, 8, 17], "remove_last_lett": 11, "replace_with_most_similar": 11, "repli": 2, "repositori": 18, "repository_id": 18, "repres": [6, 20], "request": [], "requir": 3, "restoration_of_normal_form": 7, "result": [2, 17, 19, 20], "retriev": [5, 6, 7, 12, 15], "return": [6, 7, 8, 13, 14, 15, 16, 17, 18, 20], "risk": [2, 3, 13, 14, 16, 18], "road": 14, "roadmap": 4, "roam": [], "row": 6, "rubert": [17, 18, 19], "run": [1, 3, 6, 11, 14, 15], "run_com": [], "run_osm_df": 7, "run_pars": [], "run_post": [], "run_text_classifi": 18, "run_text_classifier_top": 18, "russian": [17, 18], "save": 20, "scale": 6, "score": [8, 17], "search": [0, 4, 8], "search_for_object": [6, 15], "section": 3, "see": 15, "select": [3, 13], "semant": [2, 3, 14], "semantic_graph": 17, "semantic_graph_build": 17, "semantic_score_filt": 17, "semgraph": 17, "sentenc": 11, "seri": [6, 8], "servic": [2, 3], "set": [6, 13, 17], "set_global_repr_point": 6, "similar": 7, "simpl": [6, 15], "simpli": 6, "site": 3, "size": [], "skip": 3, "sloyka": [1, 2, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20], "sloyka_commun": 2, "so": 18, "social": [2, 3, 4, 12, 16], "some": [3, 19], "sorri": 0, "sourc": [6, 7, 8, 11, 13, 14, 15, 17, 18, 20], "spatial": [2, 7, 14], "special": 6, "specif": 18, "specifi": [6, 8, 17, 18, 19], "src": [6, 8, 9, 11, 13, 14, 15, 17, 18, 20], "stage": 2, "start_dat": 19, "state": [6, 15], "static": [6, 7, 8, 15, 17], "stem": 6, "step": 3, "stop": [], "stopword": 6, "store": [11, 16, 19], "str": [6, 7, 8, 14, 15, 17, 18, 20], "street": [6, 8, 12, 14, 15], "street_extractor": [8, 15], "street_nam": 8, "street_names_df": 6, "string": 11, "structur": 18, "subcom": [], "success": [], "synthesi": 3, "synthet": 18, "t": [0, 2, 6], "tag": [2, 3, 5, 6, 7, 12, 15], "take": [11, 18], "target_text": 14, "test": 6, "text": [2, 3, 6, 7, 8, 11, 13, 14, 15, 16, 17, 19], "text_address_extractor_by_rul": 8, "text_classifi": 18, "text_column": [6, 8, 11, 13, 15, 17], "text_type_column": 17, "textclassifi": 18, "textual": 2, "thank": 17, "thei": 3, "them": [2, 6, 7, 11], "theme": 18, "thi": [3, 5, 6, 7, 8, 12, 13, 14, 15, 17, 18], "those": 6, "three": 18, "threshold": [7, 8, 17], "timeout_limit": [], "tini": 18, "tiny2": [18, 19], "token": 18, "too": 18, "top": 17, "top_n": 17, "topic": [2, 3], "topicmodel": 19, "toponym": [8, 17], "toponym_column": 17, "toponym_name_column": 17, "toponym_type_column": 17, "train": [6, 8, 13, 18], "transform": [13, 18], "transport": 18, "true": [13, 17], "try": 0, "tupl": 6, "two": 2, "type": [6, 8, 11, 12, 15, 17, 18, 20], "undoc": 9, "uniqu": 17, "unknown_\u0436\u043a\u0445": 18, "unnecessari": 8, "up": 18, "updat": 17, "update_graph": 17, "upper": 18, "urban": [2, 3, 7, 14, 15, 18], "us": [0, 2, 4, 5, 7, 8, 11, 12, 13, 16, 17, 18, 19, 20], "user": [6, 16], "util": [9, 11, 18], "variou": 12, "veri": 3, "vernacular": 2, "version": 2, "visual": [2, 3], "vk": 12, "vk_data_gett": [], "vkontakt": 12, "vkparser": 12, "wa": 18, "wai": 6, "we": [0, 6], "well": [2, 11, 12], "were": [3, 18], "weren": 6, "where": 6, "which": [2, 3, 13, 14, 16, 17, 18, 19, 20], "whose": [], "wide": 19, "within": [2, 8], "word": [6, 15, 17], "word_info_column": 17, "words_scor": 17, "work": [9, 12], "y": [], "you": 3}, "titles": ["Page Not Found", "Installation", "Introduction", "Main pipeline", "Welcome to Sloyka\u2019s documentation!", "GeoDataGetter", "Geocoder", "OtherGeoObjects", "StreetExtractor", "Streets", "VKparser", "Services extraction", "Data getter", "Emotion classifier", "Event detector", "Geocoding", "Regional activity", "Semantic graph", "Text Classifier", "Topic Modelling", "Graph visualization"], "titleterms": {"": 4, "Not": 0, "about": [], "activ": 16, "advanc": [12, 15], "class": [], "classifi": [13, 18], "data": 12, "detector": 14, "document": 4, "emot": 13, "event": 14, "exampl": 13, "extract": 11, "featur": 2, "finder": [], "found": 0, "function": [], "gener": 4, "geo": [], "geocod": [6, 12, 15], "geodatagett": 5, "getter": 12, "graph": [17, 20], "indic": 4, "inner": [], "instal": 1, "introduct": 2, "main": [2, 3], "model": 19, "more": [12, 15], "object": [], "othergeoobject": [7, 15], "page": 0, "pipelin": 3, "receiv": [], "region": 16, "semant": 17, "servic": 11, "sloyka": 4, "street": 9, "streetextractor": [8, 15], "tabl": 4, "tag": [], "text": 18, "topic": 19, "visual": 20, "vkparser": 10, "welcom": 4, "work": []}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Advanced geocoding": [[12, null], [15, null]], "Data getter": [[12, "data-getter"]], "Emotion classifier": [[13, "module-sloyka.src.risks.emotion_classifier"]], "Event detector": [[14, "module-sloyka.src.risks.event_detector"]], "Example": [[13, "example"]], "General:": [[4, null]], "GeoDataGetter": [[5, "geodatagetter"]], "Geocoder": [[6, "geocoder"], [15, "id1"]], "Geocoding": [[15, "geocoding"]], "Graph visualization": [[20, "graph-visualization"]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[1, "installation"]], "Introduction": [[2, "introduction"]], "Main features": [[2, "main-features"]], "Main pipeline": [[3, "main-pipeline"]], "OtherGeoObjects": [[7, "othergeoobjects"], [15, "othergeoobjects"]], "Page Not Found": [[0, "page-not-found"]], "Regional activity": [[16, "regional-activity"]], "Semantic graph": [[17, "module-sloyka.src.semantic_graph.semantic_graph_builder"]], "Services extraction": [[11, "services-extraction"]], "StreetExtractor": [[8, "streetextractor"], [15, "streetextractor"]], "Streets": [[9, "streets"]], "Text Classifier": [[18, "text-classifier"]], "Topic Modelling": [[19, "topic-modelling"]], "VKparser": [[10, "vkparser"]], "Welcome to Sloyka\u2019s documentation!": [[4, "welcome-to-sloyka-s-documentation"]], "more:": [[12, "more"], [15, "more"]]}, "docnames": ["404", "about/installation", "about/introduction", "about/pipeline", "index", "modules/GeoDataGetter", "modules/Geocoder_special", "modules/OtherGeoObjects", "modules/StreetExtractor", "modules/Streets", "modules/VKParser", "modules/city_services_extract", "modules/data_getter", "modules/emotion_classifier", "modules/event_dynamic_prediction", "modules/geocoder", "modules/regional_activity", "modules/semantic_graph", "modules/text_classifier", "modules/topic_modeler", "modules/visualize_graph"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["404.rst", "about/installation.rst", "about/introduction.rst", "about/pipeline.rst", "index.rst", "modules/GeoDataGetter.rst", "modules/Geocoder_special.rst", "modules/OtherGeoObjects.rst", "modules/StreetExtractor.rst", "modules/Streets.rst", "modules/VKParser.rst", "modules/city_services_extract.rst", "modules/data_getter.rst", "modules/emotion_classifier.rst", "modules/event_dynamic_prediction.rst", "modules/geocoder.rst", "modules/regional_activity.rst", "modules/semantic_graph.rst", "modules/text_classifier.rst", "modules/topic_modeler.rst", "modules/visualize_graph.rst"], "indexentries": {"api_verison (sloyka.src.utils.data_getter.vk_data_getter.vkparser attribute)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.API_VERISON", false]], "assign_street() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.assign_street", false]], "build_graph() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.build_graph", false]], "calculate_centroid() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "id2", false], [7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.calculate_centroid", false]], "city_services (class in sloyka.src.utils.data_processing.city_services_extract)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services", false]], "classify_text() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.classify_text", false]], "clear_names() (sloyka.src.utils.data_getter.street_getter.streets static method)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets.clear_names", false]], "combine_city_obj() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.combine_city_obj", false]], "comments_to_dataframe() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.comments_to_dataframe", false]], "convert_df_to_edge_df() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph static method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.convert_df_to_edge_df", false]], "count_items (sloyka.src.utils.data_getter.vk_data_getter.vkparser attribute)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.COUNT_ITEMS", false]], "create_gdf() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.create_gdf", false]], "drop_words_from_name() (sloyka.src.utils.data_getter.street_getter.streets static method)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets.drop_words_from_name", false]], "emotionrecognizer (class in sloyka.src.risks.emotion_classifier)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer", false]], "eventdetection (class in sloyka.src.risks.event_detector)": [[14, "sloyka.src.risks.event_detector.EventDetection", false]], "expand_toponym() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.expand_toponym", false]], "extract_geo_obj() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "id3", false], [7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.extract_geo_obj", false]], "extract_ner_street() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extract_ner_street", false]], "extract_toponym() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extract_toponym", false]], "extraction_services() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.extraction_services", false]], "extractor (sloyka.src.geocoder.street_extractor.streetextractor attribute)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.extractor", false]], "find_geo_obj_tag() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.find_geo_obj_tag", false]], "find_geometry() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.find_geometry", false]], "find_num_city_obj() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.find_num_city_obj", false]], "find_toponim_words_from_name() (sloyka.src.utils.data_getter.street_getter.streets static method)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets.find_toponim_words_from_name", false]], "geocoder (class in sloyka.src.geocoder.geocoder)": [[6, "sloyka.src.geocoder.geocoder.Geocoder", false], [15, "sloyka.src.geocoder.geocoder.Geocoder", false]], "geodatagetter (class in sloyka.src.utils.data_getter.geo_data_getter)": [[5, "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter", false]], "get_and_process_osm_data() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "id0", false], [7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.get_and_process_osm_data", false]], "get_city_bounds() (sloyka.src.utils.data_getter.geo_data_getter.geodatagetter static method)": [[5, "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter.get_city_bounds", false]], "get_comments() (sloyka.src.utils.data_getter.vk_data_getter.vkparser method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.get_comments", false]], "get_df_areas() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_df_areas", false]], "get_drive_graph() (sloyka.src.utils.data_getter.geo_data_getter.geodatagetter static method)": [[5, "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter.get_drive_graph", false]], "get_features_from_id() (sloyka.src.utils.data_getter.geo_data_getter.geodatagetter static method)": [[5, "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter.get_features_from_id", false]], "get_group_name() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.get_group_name", false]], "get_group_post_ids() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.get_group_post_ids", false]], "get_level() (sloyka.src.geocoder.geocoder.geocoder static method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_level", false]], "get_osm_data() (sloyka.src.utils.data_getter.geo_data_getter.geodatagetter static method)": [[5, "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter.get_osm_data", false]], "get_owner_id_by_domain() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.get_owner_id_by_domain", false]], "get_stem() (sloyka.src.geocoder.geocoder.geocoder static method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.get_stem", false]], "get_street_names() (sloyka.src.utils.data_getter.street_getter.streets static method)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets.get_street_names", false]], "get_subcomments() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.get_subcomments", false]], "get_unique_part_types() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.get_unique_part_types", false]], "initialize_classifier() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.initialize_classifier", false]], "match_group_to_area() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.match_group_to_area", false]], "merge_to_initial_df() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.merge_to_initial_df", false]], "module": [[11, "module-sloyka.src.utils.data_processing.city_services_extract", false], [13, "module-sloyka.src.risks.emotion_classifier", false], [14, "module-sloyka.src.risks.event_detector", false], [17, "module-sloyka.src.semantic_graph.semantic_graph_builder", false], [18, "module-sloyka.src.risks.text_classifier", false], [20, "module-sloyka.src.visual.graph_visualization", false]], "othergeoobjects (class in sloyka.src.geocoder.city_objects_extractor)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects", false], [15, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects", false]], "preprocess_area_names() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.preprocess_area_names", false]], "preprocess_group_name() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.preprocess_group_name", false]], "process_pipeline() (sloyka.src.geocoder.street_extractor.streetextractor static method)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor.process_pipeline", false]], "recognize_average_emotion_from_multiple_models() (sloyka.src.risks.emotion_classifier.emotionrecognizer method)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer.recognize_average_emotion_from_multiple_models", false]], "recognize_emotion() (sloyka.src.risks.emotion_classifier.emotionrecognizer method)": [[13, "sloyka.src.risks.emotion_classifier.EmotionRecognizer.recognize_emotion", false]], "remove_last_letter() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.remove_last_letter", false]], "replace_with_most_similar() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.replace_with_most_similar", false]], "restoration_of_normal_form() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "id4", false], [7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.restoration_of_normal_form", false]], "run() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run", false], [15, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run", false]], "run() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.run", false], [15, "sloyka.src.geocoder.geocoder.Geocoder.run", false]], "run() (sloyka.src.risks.event_detector.eventdetection method)": [[14, "sloyka.src.risks.event_detector.EventDetection.run", false]], "run() (sloyka.src.utils.data_getter.street_getter.streets static method)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets.run", false]], "run() (sloyka.src.utils.data_processing.city_services_extract.city_services method)": [[11, "sloyka.src.utils.data_processing.city_services_extract.City_services.run", false]], "run_comments() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.run_comments", false]], "run_osm_dfs() (sloyka.src.geocoder.city_objects_extractor.othergeoobjects static method)": [[7, "id1", false], [7, "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run_osm_dfs", false]], "run_parser() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.run_parser", false]], "run_posts() (sloyka.src.utils.data_getter.vk_data_getter.vkparser static method)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.run_posts", false]], "run_text_classifier() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.run_text_classifier", false]], "run_text_classifier_topics() (sloyka.src.risks.text_classifier.textclassifiers method)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers.run_text_classifier_topics", false]], "semgraph (class in sloyka.src.semantic_graph.semantic_graph_builder)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph", false]], "set_global_repr_point() (sloyka.src.geocoder.geocoder.geocoder method)": [[6, "sloyka.src.geocoder.geocoder.Geocoder.set_global_repr_point", false]], "sloyka.src.risks.emotion_classifier": [[13, "module-sloyka.src.risks.emotion_classifier", false]], "sloyka.src.risks.event_detector": [[14, "module-sloyka.src.risks.event_detector", false]], "sloyka.src.risks.text_classifier": [[18, "module-sloyka.src.risks.text_classifier", false]], "sloyka.src.semantic_graph.semantic_graph_builder": [[17, "module-sloyka.src.semantic_graph.semantic_graph_builder", false]], "sloyka.src.utils.data_processing.city_services_extract": [[11, "module-sloyka.src.utils.data_processing.city_services_extract", false]], "sloyka.src.visual.graph_visualization": [[20, "module-sloyka.src.visual.graph_visualization", false]], "streetextractor (class in sloyka.src.geocoder.street_extractor)": [[8, "sloyka.src.geocoder.street_extractor.StreetExtractor", false], [15, "sloyka.src.geocoder.street_extractor.StreetExtractor", false]], "streets (class in sloyka.src.utils.data_getter.street_getter)": [[9, "sloyka.src.utils.data_getter.street_getter.Streets", false]], "textclassifiers (class in sloyka.src.risks.text_classifier)": [[18, "sloyka.src.risks.text_classifier.TextClassifiers", false]], "timeout_limit (sloyka.src.utils.data_getter.vk_data_getter.vkparser attribute)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser.TIMEOUT_LIMIT", false]], "update_graph() (sloyka.src.semantic_graph.semantic_graph_builder.semgraph method)": [[17, "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph.update_graph", false]], "visualize_graph() (in module sloyka.src.visual.graph_visualization)": [[20, "sloyka.src.visual.graph_visualization.visualize_graph", false]], "vkparser (class in sloyka.src.utils.data_getter.vk_data_getter)": [[10, "sloyka.src.utils.data_getter.vk_data_getter.VKParser", false]]}, "objects": {"sloyka.src.geocoder.city_objects_extractor": [[15, 0, 1, "", "OtherGeoObjects"]], "sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects": [[7, 1, 1, "id2", "calculate_centroid"], [7, 1, 1, "", "combine_city_obj"], [7, 1, 1, "", "expand_toponym"], [7, 1, 1, "id3", "extract_geo_obj"], [7, 1, 1, "", "find_geo_obj_tag"], [7, 1, 1, "", "find_geometry"], [7, 1, 1, "", "find_num_city_obj"], [7, 1, 1, "id0", "get_and_process_osm_data"], [7, 1, 1, "", "get_unique_part_types"], [7, 1, 1, "id4", "restoration_of_normal_form"], [15, 1, 1, "", "run"], [7, 1, 1, "id1", "run_osm_dfs"]], "sloyka.src.geocoder.geocoder": [[15, 0, 1, "", "Geocoder"]], "sloyka.src.geocoder.geocoder.Geocoder": [[6, 1, 1, "", "assign_street"], [6, 1, 1, "", "create_gdf"], [6, 1, 1, "", "get_df_areas"], [6, 1, 1, "", "get_level"], [6, 1, 1, "", "get_stem"], [6, 1, 1, "", "match_group_to_area"], [6, 1, 1, "", "merge_to_initial_df"], [6, 1, 1, "", "preprocess_area_names"], [6, 1, 1, "", "preprocess_group_name"], [15, 1, 1, "", "run"], [6, 1, 1, "", "set_global_repr_point"]], "sloyka.src.geocoder.street_extractor": [[15, 0, 1, "", "StreetExtractor"]], "sloyka.src.geocoder.street_extractor.StreetExtractor": [[8, 1, 1, "", "extract_ner_street"], [8, 1, 1, "", "extract_toponym"], [8, 2, 1, "", "extractor"], [8, 1, 1, "", "process_pipeline"]], "sloyka.src.risks": [[13, 3, 0, "-", "emotion_classifier"], [14, 3, 0, "-", "event_detector"], [18, 3, 0, "-", "text_classifier"]], "sloyka.src.risks.emotion_classifier": [[13, 0, 1, "", "EmotionRecognizer"]], "sloyka.src.risks.emotion_classifier.EmotionRecognizer": [[13, 1, 1, "", "recognize_average_emotion_from_multiple_models"], [13, 1, 1, "", "recognize_emotion"]], "sloyka.src.risks.event_detector": [[14, 0, 1, "", "EventDetection"]], "sloyka.src.risks.event_detector.EventDetection": [[14, 1, 1, "", "run"]], "sloyka.src.risks.text_classifier": [[18, 0, 1, "", "TextClassifiers"]], "sloyka.src.risks.text_classifier.TextClassifiers": [[18, 1, 1, "", "classify_text"], [18, 1, 1, "", "initialize_classifier"], [18, 1, 1, "", "run_text_classifier"], [18, 1, 1, "", "run_text_classifier_topics"]], "sloyka.src.semantic_graph": [[17, 3, 0, "-", "semantic_graph_builder"]], "sloyka.src.semantic_graph.semantic_graph_builder": [[17, 0, 1, "", "Semgraph"]], "sloyka.src.semantic_graph.semantic_graph_builder.Semgraph": [[17, 1, 1, "", "build_graph"], [17, 1, 1, "", "convert_df_to_edge_df"], [17, 1, 1, "", "update_graph"]], "sloyka.src.utils.data_getter.geo_data_getter": [[5, 0, 1, "", "GeoDataGetter"]], "sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter": [[5, 1, 1, "", "get_city_bounds"], [5, 1, 1, "", "get_drive_graph"], [5, 1, 1, "", "get_features_from_id"], [5, 1, 1, "", "get_osm_data"]], "sloyka.src.utils.data_getter.street_getter": [[9, 0, 1, "", "Streets"]], "sloyka.src.utils.data_getter.street_getter.Streets": [[9, 1, 1, "", "clear_names"], [9, 1, 1, "", "drop_words_from_name"], [9, 1, 1, "", "find_toponim_words_from_name"], [9, 1, 1, "", "get_street_names"], [9, 1, 1, "", "run"]], "sloyka.src.utils.data_getter.vk_data_getter": [[10, 0, 1, "", "VKParser"]], "sloyka.src.utils.data_getter.vk_data_getter.VKParser": [[10, 2, 1, "", "API_VERISON"], [10, 2, 1, "", "COUNT_ITEMS"], [10, 2, 1, "", "TIMEOUT_LIMIT"], [10, 1, 1, "", "comments_to_dataframe"], [10, 1, 1, "", "get_comments"], [10, 1, 1, "", "get_group_name"], [10, 1, 1, "", "get_group_post_ids"], [10, 1, 1, "", "get_owner_id_by_domain"], [10, 1, 1, "", "get_subcomments"], [10, 1, 1, "", "run_comments"], [10, 1, 1, "", "run_parser"], [10, 1, 1, "", "run_posts"]], "sloyka.src.utils.data_processing": [[11, 3, 0, "-", "city_services_extract"]], "sloyka.src.utils.data_processing.city_services_extract": [[11, 0, 1, "", "City_services"]], "sloyka.src.utils.data_processing.city_services_extract.City_services": [[11, 1, 1, "", "extraction_services"], [11, 1, 1, "", "remove_last_letter"], [11, 1, 1, "", "replace_with_most_similar"], [11, 1, 1, "", "run"]], "sloyka.src.visual": [[20, 3, 0, "-", "graph_visualization"]], "sloyka.src.visual.graph_visualization": [[20, 4, 1, "", "visualize_graph"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "terms": {"": [2, 3], "0": [2, 7, 17], "000": 18, "1": [6, 17, 18, 19], "100": 10, "131": 10, "15": [10, 19], "2": 6, "2024": 2, "3": 6, "5": 10, "50": 10, "6": [2, 7, 17], "7": 7, "70": 7, "75": 17, "90": 18, "A": [6, 8, 9, 10, 12, 17], "As": 17, "By": 3, "For": [7, 17], "If": 6, "In": 18, "It": [6, 13, 14, 15, 17, 18, 19], "Its": 2, "No": 7, "The": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20], "To": [1, 15], "_collect_popul": 14, "_get_build": 14, "_get_features_from_plac": 5, "_get_place_from_id": 5, "_get_road": 14, "_handle_error": 5, "_preprocess": 14, "_process_tag": 5, "about": [3, 16, 19], "access": [10, 18], "access_token": 10, "accord": 6, "account": 11, "accsess_token": 10, "across": 3, "activ": [2, 3], "actual": 6, "ad": 13, "add": 6, "addit": [2, 10, 19], "address": [6, 8, 9, 15], "admin": [6, 15], "after": [2, 6, 15, 16, 17], "against": 6, "aggreg": [16, 17], "aggregate_data": 17, "aim": [2, 14, 17, 18, 19], "algorithm": 11, "all": [3, 6], "almost": 9, "alreadi": [2, 3, 6], "also": [2, 6, 15], "amen": 18, "an": [5, 6, 7, 13, 14, 15, 20], "analysi": 7, "analyz": [4, 13], "ani": [3, 5, 6, 13, 17, 19], "api": [5, 10], "api_verison": 10, "appli": [3, 8, 13], "applic": [14, 17], "ar": [3, 6, 7, 9, 10, 15, 17], "area": [3, 6, 15], "area_nam": 6, "area_name_process": 6, "area_stem": 6, "around": 8, "arrai": 7, "assess": [2, 3], "assign": [6, 15], "assign_street": 6, "attribut": [6, 13, 16, 17, 18], "augment": 2, "authent": 10, "automat": 13, "avail": 13, "avenu": 9, "averag": 13, "avoid": 20, "back": [6, 13], "base": [5, 9, 10, 12, 14, 16, 17, 18], "basic": 16, "becaus": 9, "being": [10, 18], "belong": 19, "below": 8, "bert": [17, 18], "bert_larg": 13, "bert_nam": 17, "bert_tini": 13, "bertop": [14, 19], "best": [6, 15], "between": [9, 14, 17], "bool": 17, "boundari": 5, "box": 0, "build": [2, 14, 17], "build_graph": 17, "cach": 6, "calcul": [7, 13], "calculate_centroid": 7, "call": [10, 16, 18], "can": [2, 3, 13, 16], "care": 18, "carri": 3, "case": [3, 17, 18], "categor": 2, "categori": [5, 13, 18], "categoris": 13, "centroid": [5, 6, 7], "certain": 3, "chang": 11, "charact": 6, "character": 3, "chat": 2, "check": 6, "child": 17, "citi": [2, 4, 5, 6, 7, 9, 11, 14, 18, 19], "citizen": 2, "city_bound": 5, "city_cr": 14, "city_nam": 14, "city_objects_extractor": [7, 15], "city_servic": 11, "city_services_extract": [11, 16], "city_tag": [6, 15], "class": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "classif": [15, 18], "classifi": [2, 3, 8, 16], "classify_text": 18, "clean": 17, "clean_from_digit": 17, "clean_from_dubl": 17, "clean_from_toponym": 17, "clear_nam": 9, "cluster": [14, 19, 20], "cointegr": 19, "collect": [2, 7, 14], "color": 20, "column": [2, 3, 5, 6, 10, 11, 13, 15, 17], "combin": [7, 10], "combine_city_obj": 7, "comment": [2, 10], "comments_to_datafram": 10, "commun": [2, 3], "compar": 7, "comparison": 11, "compat": 13, "confid": 8, "connect": 14, "consist": 3, "construct": [2, 17], "contain": [5, 6, 8, 10, 12, 13, 14, 17, 18], "content": 8, "context": 14, "conveni": 17, "convert": [6, 10], "convert_df_to_edge_df": 17, "convini": 17, "coordin": 7, "correctli": 18, "correspond": [6, 15], "cosin": 17, "couldn": 0, "count": [17, 18], "count_item": 10, "counts_attribut": 17, "cpu": [6, 13, 15, 17], "creat": [6, 15, 16, 17, 19], "create_gdf": 6, "csv": 13, "cuda": 13, "custom": 8, "cutoff": 10, "cutoff_d": 10, "d": 10, "dai": 19, "data": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 16, 17, 19], "data_gett": [5, 9, 10], "data_process": 11, "databas": 9, "datafram": [5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17], "dataset": 3, "date": [2, 6, 10, 15, 19], "deeppavlov": 17, "default": [5, 6, 10, 13, 15, 17, 20], "design": [11, 13, 16, 18, 19], "determin": 17, "devic": [6, 13, 15, 17, 18], "device_typ": 18, "df": [6, 7, 8, 11, 13, 15], "df_area": 6, "df_obj": 7, "dict": [5, 6, 7, 10, 15], "dictionari": [6, 10], "didn": 6, "differ": [6, 7], "digit": [2, 17], "direct": 17, "displai": 20, "distanc": 17, "divid": 3, "do": [7, 9, 15], "document": 2, "domain": 10, "don": 6, "done": 19, "drop": 9, "drop_words_from_nam": 9, "duplic": 17, "dure": [5, 13], "dynam": 19, "e": 9, "each": [3, 5, 6, 10, 14, 15, 17, 19, 20], "edg": 5, "effici": 18, "element": [2, 6], "element_typ": 5, "embed": [17, 19], "embedding_model_nam": 19, "emot": [2, 3], "emotion_classifi": [13, 16], "emotionclassifi": 13, "emotionrecogn": 13, "enabl": 13, "encapsul": 9, "end": 11, "end_dat": 19, "enrich": 2, "entiti": [2, 7, 11], "environ": 2, "error": 5, "evalu": 2, "event": [2, 18], "event_detector": 14, "eventdetect": 14, "exact": 9, "exampl": [7, 18], "exist": 2, "expand_toponym": 7, "extract": [2, 3, 7, 8, 9, 15, 17, 19], "extract_geo_obj": 7, "extract_ner_street": 8, "extract_toponym": 8, "extraction_servic": 11, "extractor": [6, 8, 15], "fail": 8, "fall": 13, "fals": [6, 15, 18], "famili": 18, "featur": 5, "fetch": 10, "file": 20, "filepath_to_popul": 14, "filter": [5, 6, 15, 17], "final": [2, 6, 15, 17], "find": [0, 6, 7, 9, 15], "find_geo_obj_tag": 7, "find_geometri": 7, "find_num_city_obj": 7, "find_toponim_words_from_nam": 9, "first": [6, 8], "flag": 17, "flair": [6, 11, 15], "float": [10, 17], "folium": 20, "follow": [13, 14, 17, 18, 19], "footprint": 2, "forecast": 3, "form": [6, 7, 15], "format": 10, "found": [6, 7, 8, 9], "from": [2, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 19, 20], "function": [3, 6, 7, 8, 9, 10, 15, 16, 17, 18, 19, 20], "further": [2, 3, 7], "g": [9, 17, 20], "gdf": [6, 9, 19], "gener": [2, 3, 14, 15], "geo_data_gett": 5, "geo_obj_tag": 7, "geocod": [3, 7, 8, 9, 16, 17], "geodatafram": [2, 5, 6, 9, 14, 15, 16, 17, 19], "geodatagett": 12, "geograph": [6, 15], "geoloc": [3, 17], "geometri": [5, 6, 7, 17], "geometry_column": 17, "geor111i": [6, 15], "geospati": [5, 12], "get": [2, 3, 5, 9, 10, 14], "get_and_process_osm_data": 7, "get_city_bound": 5, "get_com": 10, "get_df_area": 6, "get_drive_graph": 5, "get_features_from_id": 5, "get_group_nam": 10, "get_group_post_id": 10, "get_level": 6, "get_osm_data": 5, "get_owner_id_by_domain": 10, "get_risk": 16, "get_stem": 6, "get_street_nam": 9, "get_subcom": 10, "get_unique_part_typ": 7, "getter": 3, "given": [5, 6, 9, 10, 12, 13, 15, 17, 20], "glebosol": 11, "global": [6, 19], "go": 0, "gpd": [5, 6, 15, 17], "gpu": 13, "graph": [2, 3], "graph_path": 20, "graph_visu": 20, "group": [3, 6, 10, 15, 20], "group_column": [6, 15], "group_nam": [6, 15], "ha": [13, 14, 17, 18, 19], "handl": 5, "have": 20, "health": 18, "histgeodatagett": 6, "hold": 13, "homepag": 0, "hous": [6, 18], "howev": 3, "http": 2, "huggingfac": [13, 18], "huggingfacemodel": 13, "hypergraph": 2, "i": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19], "id": [5, 6, 9, 10, 12, 15, 18], "id_column": 17, "ident": 4, "identifi": [8, 17, 18, 19], "import": 3, "includ": [5, 16], "incom": 19, "index": 4, "indic": 17, "inf": 10, "infer": [13, 17], "infin": 10, "info": [3, 6], "inform": [9, 10, 16, 17], "initi": [6, 16, 18], "initial_df": 6, "initialize_classifi": 18, "input": [6, 8, 9, 10, 13, 15, 17, 18], "instal": 4, "instanti": 13, "int": [5, 6, 7, 9, 10, 14, 15, 17, 18, 20], "interact": 20, "interpret": 2, "intersect": 5, "introduct": 4, "is_top": 18, "its": [10, 20], "june": 2, "keep": 6, "kei": 17, "key_score_filt": 17, "keybert": 17, "keyword": 17, "know": 6, "label": 3, "languag": 17, "last": 3, "later": 9, "launch": [7, 15], "least": 7, "level": [6, 15, 18], "librari": [2, 3, 4, 5, 7, 11, 17], "like": 13, "limit": [3, 10], "linear": 15, "link": [2, 14], "list": [3, 5, 7, 10, 11], "locat": [2, 7, 17], "location_column": 17, "low": 18, "lowercas": 6, "m": 10, "machin": 2, "mai": 19, "main": [4, 17, 18, 19], "major": 3, "mani": 18, "map": 20, "mark": 18, "marker": 20, "markerclust": 20, "match": [6, 9, 15, 17], "match_group_to_area": 6, "maximum": 10, "me": 2, "media": [2, 4, 10], "mention": [2, 3, 8], "merg": [6, 15, 19], "merge_to_initial_df": 6, "messag": [2, 3, 5, 6, 10, 11, 14, 17, 18, 19], "method": [2, 3, 5, 9, 10, 11, 13, 14, 17, 18, 19], "min_event_s": 14, "min_text": 19, "model": [2, 3, 6, 8, 13, 14, 15, 17, 18], "model_nam": [11, 13], "model_path": [6, 15], "modul": [2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 19], "more": [3, 17], "most": [11, 13], "multidigraph": 5, "multipl": 13, "name": [5, 6, 7, 8, 9, 11, 13, 15, 17, 20], "natasha": 7, "natashaextractor": 8, "necessari": 9, "need": 9, "ner": [6, 8, 15], "network": [2, 3, 5, 12, 14], "networkx": 5, "new": [2, 11, 17], "node": [2, 5, 17, 20], "nominatim": 9, "none": [6, 8, 9, 10, 13, 15, 17, 18, 20], "normal": 7, "number": [6, 7, 10, 17, 18], "number_of_categori": 18, "number_of_messag": 10, "nx": 17, "object": [2, 3, 5, 6, 7, 8, 11, 14, 15, 18, 20], "obtain": [2, 3, 17], "occur": 5, "offset": 20, "one": 7, "onli": [3, 6], "onlin": 3, "openstreetmap": [5, 6, 12], "option": [5, 6, 8, 15, 20], "order": [3, 6], "origin": [6, 11], "osm": [5, 6, 7, 9, 12, 15], "osm_combined_df": 7, "osm_id": [5, 6, 7, 9, 15], "osm_typ": 5, "osmid": 5, "osmnx": 5, "other": [6, 13, 15, 16, 18], "other_geo_obj": 7, "otherwis": [3, 6, 8, 13], "out": [3, 6], "output_fil": 20, "overlap": 20, "overpass": 5, "own": 20, "owner": 10, "owner_id": 10, "page": 4, "panda": [9, 10], "param": [10, 17], "paramet": [5, 6, 8, 9, 10, 15, 17, 20], "parent": 17, "parents_stack_column": 17, "pars": 2, "parser": 10, "part": 9, "particular": 2, "pd": [6, 8, 13, 15, 17], "per": 18, "percentag": 7, "perform": 15, "pip": 1, "pipelin": [4, 6, 15, 18], "place": [2, 5, 6, 15, 17], "point": [6, 7], "polygon": [5, 7], "popul": 14, "posit": [8, 10], "possibl": 3, "post": [2, 10, 17, 19], "post_id": 10, "post_id_column": 17, "post_num_limit": 10, "pre": [8, 9, 18], "predict": [2, 18], "preprocess": [6, 14, 15], "preprocess_area_nam": 6, "preprocess_group_nam": 6, "present": 8, "prevail": 13, "print": 5, "probabl": [11, 18], "process": [2, 5, 6, 7, 8, 9, 15, 16, 18, 19], "process_pipelin": 8, "process_top": 19, "processed_geodata": 16, "provid": [2, 5, 6, 15, 16, 17], "proxim": 17, "public": 18, "purpos": 9, "pytorch": 17, "qualiti": 2, "r": 5, "random": 20, "rang": [8, 19], "read_csv": 13, "receiv": [2, 3], "recogn": [6, 13], "recognis": [6, 9], "recognit": [2, 13], "recognize_average_emotion_from_multiple_model": 13, "recognize_emot": 13, "refer": 17, "regard": 2, "region": [2, 3], "regional_act": 16, "regionalact": 16, "relat": [7, 8, 15], "relationship": 17, "remov": [6, 8, 17], "remove_last_lett": 11, "replace_with_most_similar": 11, "repli": 2, "repositori": 18, "repository_id": 18, "repres": [5, 6, 7, 20], "request": 10, "requir": [3, 9], "restoration_of_normal_form": 7, "result": [2, 5, 17, 19, 20], "retriev": [5, 6, 7, 9, 10, 12, 15], "return": [5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 20], "risk": [2, 3, 13, 14, 16, 18], "road": 14, "roadmap": 4, "row": [6, 7], "rubert": [17, 18, 19], "run": [1, 3, 6, 7, 9, 10, 11, 14, 15], "run_com": 10, "run_osm_df": 7, "run_pars": 10, "run_post": 10, "run_text_classifi": 18, "run_text_classifier_top": 18, "russian": [6, 15, 17, 18], "save": 20, "scale": 6, "school": 7, "score": [8, 17], "search": [0, 4, 7, 8], "search_for_object": [6, 15], "section": 3, "see": 15, "segment": [5, 9], "select": [3, 5, 13], "selected_column": 5, "semant": [2, 3, 14], "semantic_graph": 17, "semantic_graph_build": 17, "semantic_score_filt": 17, "semgraph": 17, "sensit": 9, "sentenc": 11, "seri": [6, 8], "servic": [2, 3], "set": [6, 13, 17], "set_global_repr_point": 6, "similar": 7, "simpl": [6, 15], "simpli": 6, "site": 3, "size": 10, "skip": 3, "sloyka": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20], "sloyka_commun": 2, "so": 18, "social": [2, 3, 4, 10, 12, 16], "some": [3, 19], "sorri": 0, "sourc": [5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 20], "spatial": [2, 5, 7, 14], "special": 6, "specif": [5, 10, 18], "specifi": [5, 6, 8, 9, 10, 17, 18, 19], "split": 7, "src": [5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 20], "stage": 2, "start_dat": 19, "state": [6, 15], "static": [5, 6, 7, 8, 9, 10, 15, 17], "stem": 6, "stemmer_lang": [6, 15], "step": [3, 9, 10], "stop": 10, "stopword": 6, "store": [11, 16, 19], "str": [5, 6, 7, 8, 9, 10, 11, 14, 15, 17, 18, 20], "street": [5, 6, 7, 8, 12, 14, 15], "street_extractor": [8, 15], "street_gett": 9, "street_nam": 8, "street_names_df": 6, "streets_df": 9, "string": [9, 11], "structur": 18, "subcom": 10, "success": 10, "synthesi": 3, "synthet": 18, "t": [0, 2, 6], "tag": [2, 3, 5, 6, 7, 12, 15], "take": [11, 18], "target_text": 14, "text": [2, 3, 6, 7, 8, 11, 13, 14, 15, 16, 17, 19], "text_address_extractor_by_rul": 8, "text_classifi": 18, "text_column": [6, 7, 8, 11, 13, 15, 17], "text_column_nam": [6, 15], "text_type_column": 17, "textclassifi": 18, "textual": 2, "thank": 17, "thei": 3, "them": [2, 6, 7, 11], "theme": 18, "thi": [3, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 18], "those": 6, "three": 18, "threshold": [7, 8, 17], "timeout_limit": 10, "tini": 18, "tiny2": [18, 19], "token": [10, 18], "too": 18, "top": 17, "top_n": 17, "topic": [2, 3], "topicmodel": 19, "toponim": 9, "toponym": [7, 8, 17], "toponym_column": 17, "toponym_name_column": 17, "toponym_type_column": 17, "train": [6, 8, 13, 18], "transform": [13, 18], "transport": 18, "true": [13, 17], "try": 0, "tupl": 6, "two": 2, "type": [5, 6, 8, 9, 10, 11, 12, 15, 17, 18, 20], "uniqu": [9, 17], "unknown_\u0436\u043a\u0445": 18, "unnecessari": 8, "up": 18, "updat": 17, "update_graph": 17, "upper": 18, "urban": [2, 3, 7, 14, 15, 18], "us": [0, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20], "user": [10, 16], "util": [5, 9, 10, 11, 18], "variou": 12, "veri": [3, 9], "vernacular": 2, "version": 2, "visual": [2, 3], "visualize_graph": 20, "vk": [10, 12], "vk_data_gett": 10, "vkontakt": 12, "vkparser": 12, "wa": [10, 18], "wai": 6, "we": [0, 6, 9], "well": [2, 11, 12], "were": [3, 18], "weren": 6, "where": [5, 6], "which": [2, 3, 7, 13, 14, 16, 17, 18, 19, 20], "whose": [7, 10], "wide": 19, "within": [2, 8], "word": [6, 9, 15, 17], "word_info_column": 17, "words_scor": 17, "work": [9, 12], "workaround": 6, "x": 9, "y": 10, "you": 3, "zoom": 20}, "titles": ["Page Not Found", "Installation", "Introduction", "Main pipeline", "Welcome to Sloyka\u2019s documentation!", "GeoDataGetter", "Geocoder", "OtherGeoObjects", "StreetExtractor", "Streets", "VKparser", "Services extraction", "Data getter", "Emotion classifier", "Event detector", "Geocoding", "Regional activity", "Semantic graph", "Text Classifier", "Topic Modelling", "Graph visualization"], "titleterms": {"": 4, "Not": 0, "activ": 16, "advanc": [12, 15], "classifi": [13, 18], "data": 12, "detector": 14, "document": 4, "emot": 13, "event": 14, "exampl": 13, "extract": 11, "featur": 2, "found": 0, "gener": 4, "geocod": [6, 12, 15], "geodatagett": 5, "getter": 12, "graph": [17, 20], "indic": 4, "instal": 1, "introduct": 2, "main": [2, 3], "model": 19, "more": [12, 15], "othergeoobject": [7, 15], "page": 0, "pipelin": 3, "region": 16, "semant": 17, "servic": 11, "sloyka": 4, "street": 9, "streetextractor": [8, 15], "tabl": 4, "text": 18, "topic": 19, "visual": 20, "vkparser": 10, "welcom": 4}}) \ No newline at end of file diff --git a/docs/source/about/introduction.rst b/docs/source/about/introduction.rst index a31cce5..95c22a9 100644 --- a/docs/source/about/introduction.rst +++ b/docs/source/about/introduction.rst @@ -14,7 +14,7 @@ or to visualize already existing nodes and links and their further interpretatio SLOYKA also provides methods for modeling social risks regarding the emotional evaluation of mentioned places. Main features --------- +-------------- * Social media parsing: getting posts, comments and replys * City services and places extraction * Emotion and text classifiers categorizing diff --git a/docs/source/about/pipeline.rst b/docs/source/about/pipeline.rst index 0b6ee8a..c19fc24 100644 --- a/docs/source/about/pipeline.rst +++ b/docs/source/about/pipeline.rst @@ -1,5 +1,5 @@ Main pipeline -============ +=================== By selecting a limited urbanized area and a list of online communities in a social network, it is possible to run this dataset across all major library functions. However, in some cases, @@ -17,8 +17,7 @@ text data mentioning urban sites, otherwise the steps are very important - :ref: * Data tagging: Characterization of messages and urban objects, which can be carried out in any order: :ref:`emotion_classifier` :ref:`text_classifier` :ref:`city_services` :ref:`topic_modeler` -* Data modelling: Section consists of further synthesis of the obtained data, risk assessment and forecasting. -Each of the methods in this group requires certain labeling columns: :ref:`sem_graph` :ref:`regional_activity` +* Data modelling: Section consists of further synthesis of the obtained data, risk assessment and forecasting. Each of the methods in this group requires certain labeling columns: :ref:`sem_graph` :ref:`regional_activity` * Data visualization: The last step is applied to the already generated semantic graph - :ref:`graph_visualization` diff --git a/docs/source/conf.py b/docs/source/conf.py index ffb95b8..7fba588 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -7,7 +7,10 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information import os import sys -sys.path.insert(0, os.path.abspath('./sloyka')) + +folder = os.getcwd().split("\\docs")[0] +sys.path.append(folder) + project = 'sloyka' copyright = '2024, itmo_idu' diff --git a/docs/source/modules/GeoDataGetter.rst b/docs/source/modules/GeoDataGetter.rst index 359b53a..e007103 100644 --- a/docs/source/modules/GeoDataGetter.rst +++ b/docs/source/modules/GeoDataGetter.rst @@ -4,6 +4,6 @@ GeoDataGetter ========================== This class is used to retrieve geospatial data from OpenStreetMap (OSM) based on given OSM ID and tags. -.. autoclass:: sloyka.src.utils.data_getter.GeoDataGetter +.. autoclass:: sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter :members: :undoc-members: \ No newline at end of file diff --git a/docs/source/modules/Geocoder_special.rst b/docs/source/modules/Geocoder_special.rst index e2390e1..f8254b7 100644 --- a/docs/source/modules/Geocoder_special.rst +++ b/docs/source/modules/Geocoder_special.rst @@ -1,4 +1,5 @@ .. _Geocoder_special: + Geocoder ================== .. autoclass:: sloyka.src.geocoder.geocoder.Geocoder @@ -6,4 +7,4 @@ Geocoder :undoc-members: :no-members: run -Back to all :ref:`geocoder` \ No newline at end of file +Back to all :ref:`geocoder` diff --git a/docs/source/modules/OtherGeoObjects.rst b/docs/source/modules/OtherGeoObjects.rst index 332483c..061ae50 100644 --- a/docs/source/modules/OtherGeoObjects.rst +++ b/docs/source/modules/OtherGeoObjects.rst @@ -4,7 +4,7 @@ OtherGeoObjects ================== .. currentmodule:: sloyka.src.geocoder -.. autoclass:: city_objects_extractor.OtherGeoObjects +.. autoclass:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects :members: :undoc-members: diff --git a/docs/source/modules/Streets.rst b/docs/source/modules/Streets.rst index 24453b1..f04cb31 100644 --- a/docs/source/modules/Streets.rst +++ b/docs/source/modules/Streets.rst @@ -3,6 +3,7 @@ Streets ========================== A class for working with street data. -.. autoclass:: sloyka.src.utils.data_getter.Streets + +.. autoclass:: sloyka.src.utils.data_getter.street_getter.Streets :members: - :undoc-members: \ No newline at end of file + :undoc-members: diff --git a/docs/source/modules/VKParser.rst b/docs/source/modules/VKParser.rst index 2e20215..4020c27 100644 --- a/docs/source/modules/VKParser.rst +++ b/docs/source/modules/VKParser.rst @@ -2,6 +2,6 @@ VKparser ========================== -.. autoclass:: sloyka.src.utils.data_getter.VKParser +.. autoclass:: sloyka.src.utils.data_getter.vk_data_getter.VKParser :members: :undoc-members: \ No newline at end of file diff --git a/docs/source/modules/city_services_extract.rst b/docs/source/modules/city_services_extract.rst index 6e1be51..38388fd 100644 --- a/docs/source/modules/city_services_extract.rst +++ b/docs/source/modules/city_services_extract.rst @@ -3,9 +3,10 @@ Services extraction ========================== The City_services class is designed to extract city service names from text using a string comparison algorithm, taking into account - the changing service endings in the text. Using the flair library, the City_services.run() method in messages extracts named entities - from the Sentence object as a list, as well as the most probable service type, and stores them in new columns of the original DataFrame(). +the changing service endings in the text. Using the flair library, the City_services.run() method in messages extracts named entities +from the Sentence object as a list, as well as the most probable service type, and stores them in new columns of the original DataFrame(). + .. automodule:: sloyka.src.utils.data_processing.city_services_extract - :members: - :undoc-members: + :members: + :undoc-members: \ No newline at end of file diff --git a/docs/source/modules/geocoder.rst b/docs/source/modules/geocoder.rst index b5a6f00..4ef23d8 100644 --- a/docs/source/modules/geocoder.rst +++ b/docs/source/modules/geocoder.rst @@ -1,14 +1,14 @@ .. _geocoder: ================== + Geocoding ================== -To perform classification with generalized linear models, see -:ref:`Geocoder_special`. +To perform classification with generalized linear models, see :ref:`Geocoder_special`. Geocoder ------------------- .. autoclass:: sloyka.src.geocoder.geocoder.Geocoder - :members: run + :members: run OtherGeoObjects --------------------- diff --git a/docs/source/modules/visualize_graph.rst b/docs/source/modules/visualize_graph.rst index 4db45d1..f5e1255 100644 --- a/docs/source/modules/visualize_graph.rst +++ b/docs/source/modules/visualize_graph.rst @@ -6,4 +6,4 @@ The function results in an interactive map, which will display graph nodes group Each cluster will have its own color and name. Node markers will have a random offset to avoid overlapping. .. automodule:: sloyka.src.visual.graph_visualization - :members: draw_graph_folium \ No newline at end of file + :members: visualize_graph \ No newline at end of file From ed1b3bc0186e7af333effe6c7e8a9d5948313058 Mon Sep 17 00:00:00 2001 From: Sandrro Date: Fri, 20 Sep 2024 13:32:00 +0300 Subject: [PATCH 2/3] fixed docs --- docs/build/doctrees/404.doctree | Bin 3069 -> 0 bytes .../doctrees/about/includes/pipeline.doctree | Bin 3082 -> 0 bytes .../build/doctrees/about/installation.doctree | Bin 2808 -> 0 bytes .../build/doctrees/about/introduction.doctree | Bin 7733 -> 0 bytes docs/build/doctrees/about/pipeline.doctree | Bin 9078 -> 0 bytes docs/build/doctrees/environment.pickle | Bin 789864 -> 0 bytes docs/build/doctrees/index.doctree | Bin 6522 -> 0 bytes .../doctrees/modules/GeoDataGetter.doctree | Bin 29537 -> 0 bytes .../doctrees/modules/Geocoder_special.doctree | Bin 63188 -> 0 bytes .../doctrees/modules/OtherGeoObjects.doctree | Bin 57121 -> 0 bytes .../doctrees/modules/StreetExtractor.doctree | Bin 23918 -> 0 bytes docs/build/doctrees/modules/Streets.doctree | Bin 23015 -> 0 bytes docs/build/doctrees/modules/VKParser.doctree | Bin 52364 -> 0 bytes .../modules/city_services_extract.doctree | Bin 14220 -> 0 bytes .../doctrees/modules/data_getter.doctree | Bin 5808 -> 0 bytes .../modules/emotion_classifier.doctree | Bin 16931 -> 0 bytes .../modules/event_dynamic_prediction.doctree | Bin 12827 -> 0 bytes docs/build/doctrees/modules/geocoder.doctree | Bin 35617 -> 0 bytes .../modules/regional_activity.doctree | Bin 4293 -> 0 bytes .../doctrees/modules/semantic_graph.doctree | Bin 85264 -> 0 bytes .../doctrees/modules/text_classifier.doctree | Bin 18566 -> 0 bytes .../doctrees/modules/topic_modeler.doctree | Bin 5423 -> 0 bytes .../doctrees/modules/visualize_graph.doctree | Bin 9544 -> 0 bytes docs/build/html/.buildinfo | 4 - docs/build/html/404.html | 336 ------- docs/build/html/_images/etap.png | Bin 55936 -> 0 bytes docs/build/html/_images/sloyka_map.png | Bin 91137 -> 0 bytes docs/build/html/_modules/index.html | 325 ------ .../src/geocoder/city_objects_extractor.html | 599 ------------ .../sloyka/src/geocoder/geocoder.html | 700 ------------- .../sloyka/src/geocoder/street_extractor.html | 819 ---------------- .../sloyka/src/risks/emotion_classifier.html | 438 --------- .../sloyka/src/risks/event_detector.html | 819 ---------------- .../sloyka/src/risks/text_classifier.html | 395 -------- .../semantic_graph_builder.html | 585 ----------- .../utils/data_getter/geo_data_getter.html | 485 --------- .../src/utils/data_getter/street_getter.html | 441 --------- .../src/utils/data_getter/vk_data_getter.html | 634 ------------ .../city_services_extract.html | 371 ------- .../src/visual/graph_visualization.html | 379 ------- docs/build/html/_sources/404.rst.txt | 12 - .../_sources/about/includes/pipeline.rst.txt | 5 - .../html/_sources/about/installation.rst.txt | 8 - .../html/_sources/about/introduction.rst.txt | 26 - .../html/_sources/about/pipeline.rst.txt | 24 - docs/build/html/_sources/index.rst.txt | 61 -- .../_sources/modules/GeoDataGetter.rst.txt | 9 - .../_sources/modules/Geocoder_special.rst.txt | 10 - .../_sources/modules/OtherGeoObjects.rst.txt | 15 - .../_sources/modules/StreetExtractor.rst.txt | 8 - .../html/_sources/modules/Streets.rst.txt | 9 - .../html/_sources/modules/VKParser.rst.txt | 7 - .../modules/city_services_extract.rst.txt | 12 - .../html/_sources/modules/data_getter.rst.txt | 27 - .../modules/emotion_classifier.rst.txt | 17 - .../modules/event_dynamic_prediction.rst.txt | 9 - .../html/_sources/modules/geocoder.rst.txt | 31 - .../modules/regional_activity.rst.txt | 9 - .../_sources/modules/semantic_graph.rst.txt | 13 - .../_sources/modules/text_classifier.rst.txt | 14 - .../_sources/modules/topic_modeler.rst.txt | 21 - .../_sources/modules/visualize_graph.rst.txt | 9 - docs/build/html/_static/basic.css | 925 ------------------ docs/build/html/_static/custom.css | 426 -------- docs/build/html/_static/custom.js | 134 --- docs/build/html/_static/debug.css | 69 -- docs/build/html/_static/doctools.js | 156 --- .../html/_static/documentation_options.js | 13 - docs/build/html/_static/file.png | Bin 286 -> 0 bytes docs/build/html/_static/language_data.js | 199 ---- docs/build/html/_static/logo.png | Bin 234283 -> 0 bytes docs/build/html/_static/minus.png | Bin 90 -> 0 bytes docs/build/html/_static/plus.png | Bin 90 -> 0 bytes docs/build/html/_static/pygments.css | 258 ----- .../html/_static/scripts/furo-extensions.js | 0 docs/build/html/_static/scripts/furo.js | 3 - .../html/_static/scripts/furo.js.LICENSE.txt | 7 - docs/build/html/_static/scripts/furo.js.map | 1 - docs/build/html/_static/searchtools.js | 619 ------------ docs/build/html/_static/skeleton.css | 296 ------ docs/build/html/_static/sphinx_highlight.js | 154 --- .../html/_static/styles/furo-extensions.css | 2 - .../_static/styles/furo-extensions.css.map | 1 - docs/build/html/_static/styles/furo.css | 2 - docs/build/html/_static/styles/furo.css.map | 1 - docs/build/html/about/includes/pipeline.html | 334 ------- docs/build/html/about/installation.html | 344 ------- docs/build/html/about/introduction.html | 381 -------- docs/build/html/about/pipeline.html | 358 ------- docs/build/html/genindex.html | 673 ------------- docs/build/html/index.html | 361 ------- docs/build/html/modules/GeoDataGetter.html | 429 -------- docs/build/html/modules/Geocoder_special.html | 538 ---------- docs/build/html/modules/OtherGeoObjects.html | 487 --------- docs/build/html/modules/StreetExtractor.html | 425 -------- docs/build/html/modules/Streets.html | 423 -------- docs/build/html/modules/VKParser.html | 533 ---------- .../html/modules/city_services_extract.html | 393 -------- docs/build/html/modules/data_getter.html | 375 ------- .../html/modules/emotion_classifier.html | 412 -------- .../modules/event_dynamic_prediction.html | 388 -------- docs/build/html/modules/geocoder.html | 448 --------- .../build/html/modules/regional_activity.html | 345 ------- docs/build/html/modules/semantic_graph.html | 467 --------- docs/build/html/modules/text_classifier.html | 411 -------- docs/build/html/modules/topic_modeler.html | 351 ------- docs/build/html/modules/visualize_graph.html | 378 ------- docs/build/html/objects.inv | Bin 1817 -> 0 bytes docs/build/html/py-modindex.html | 367 ------- docs/build/html/search.html | 327 ------- docs/build/html/searchindex.js | 1 - docs/source/modules/Geocoder_special.rst | 1 + docs/source/modules/OtherGeoObjects.rst | 11 +- docs/source/modules/StreetExtractor.rst | 3 +- docs/source/modules/emotion_classifier.rst | 1 - docs/source/modules/geocoder.rst | 1 - sloyka/src/risks/emotion_classifier.py | 11 +- 117 files changed, 15 insertions(+), 20914 deletions(-) delete mode 100644 docs/build/doctrees/404.doctree delete mode 100644 docs/build/doctrees/about/includes/pipeline.doctree delete mode 100644 docs/build/doctrees/about/installation.doctree delete mode 100644 docs/build/doctrees/about/introduction.doctree delete mode 100644 docs/build/doctrees/about/pipeline.doctree delete mode 100644 docs/build/doctrees/environment.pickle delete mode 100644 docs/build/doctrees/index.doctree delete mode 100644 docs/build/doctrees/modules/GeoDataGetter.doctree delete mode 100644 docs/build/doctrees/modules/Geocoder_special.doctree delete mode 100644 docs/build/doctrees/modules/OtherGeoObjects.doctree delete mode 100644 docs/build/doctrees/modules/StreetExtractor.doctree delete mode 100644 docs/build/doctrees/modules/Streets.doctree delete mode 100644 docs/build/doctrees/modules/VKParser.doctree delete mode 100644 docs/build/doctrees/modules/city_services_extract.doctree delete mode 100644 docs/build/doctrees/modules/data_getter.doctree delete mode 100644 docs/build/doctrees/modules/emotion_classifier.doctree delete mode 100644 docs/build/doctrees/modules/event_dynamic_prediction.doctree delete mode 100644 docs/build/doctrees/modules/geocoder.doctree delete mode 100644 docs/build/doctrees/modules/regional_activity.doctree delete mode 100644 docs/build/doctrees/modules/semantic_graph.doctree delete mode 100644 docs/build/doctrees/modules/text_classifier.doctree delete mode 100644 docs/build/doctrees/modules/topic_modeler.doctree delete mode 100644 docs/build/doctrees/modules/visualize_graph.doctree delete mode 100644 docs/build/html/.buildinfo delete mode 100644 docs/build/html/404.html delete mode 100644 docs/build/html/_images/etap.png delete mode 100644 docs/build/html/_images/sloyka_map.png delete mode 100644 docs/build/html/_modules/index.html delete mode 100644 docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html delete mode 100644 docs/build/html/_modules/sloyka/src/geocoder/geocoder.html delete mode 100644 docs/build/html/_modules/sloyka/src/geocoder/street_extractor.html delete mode 100644 docs/build/html/_modules/sloyka/src/risks/emotion_classifier.html delete mode 100644 docs/build/html/_modules/sloyka/src/risks/event_detector.html delete mode 100644 docs/build/html/_modules/sloyka/src/risks/text_classifier.html delete mode 100644 docs/build/html/_modules/sloyka/src/semantic_graph/semantic_graph_builder.html delete mode 100644 docs/build/html/_modules/sloyka/src/utils/data_getter/geo_data_getter.html delete mode 100644 docs/build/html/_modules/sloyka/src/utils/data_getter/street_getter.html delete mode 100644 docs/build/html/_modules/sloyka/src/utils/data_getter/vk_data_getter.html delete mode 100644 docs/build/html/_modules/sloyka/src/utils/data_processing/city_services_extract.html delete mode 100644 docs/build/html/_modules/sloyka/src/visual/graph_visualization.html delete mode 100644 docs/build/html/_sources/404.rst.txt delete mode 100644 docs/build/html/_sources/about/includes/pipeline.rst.txt delete mode 100644 docs/build/html/_sources/about/installation.rst.txt delete mode 100644 docs/build/html/_sources/about/introduction.rst.txt delete mode 100644 docs/build/html/_sources/about/pipeline.rst.txt delete mode 100644 docs/build/html/_sources/index.rst.txt delete mode 100644 docs/build/html/_sources/modules/GeoDataGetter.rst.txt delete mode 100644 docs/build/html/_sources/modules/Geocoder_special.rst.txt delete mode 100644 docs/build/html/_sources/modules/OtherGeoObjects.rst.txt delete mode 100644 docs/build/html/_sources/modules/StreetExtractor.rst.txt delete mode 100644 docs/build/html/_sources/modules/Streets.rst.txt delete mode 100644 docs/build/html/_sources/modules/VKParser.rst.txt delete mode 100644 docs/build/html/_sources/modules/city_services_extract.rst.txt delete mode 100644 docs/build/html/_sources/modules/data_getter.rst.txt delete mode 100644 docs/build/html/_sources/modules/emotion_classifier.rst.txt delete mode 100644 docs/build/html/_sources/modules/event_dynamic_prediction.rst.txt delete mode 100644 docs/build/html/_sources/modules/geocoder.rst.txt delete mode 100644 docs/build/html/_sources/modules/regional_activity.rst.txt delete mode 100644 docs/build/html/_sources/modules/semantic_graph.rst.txt delete mode 100644 docs/build/html/_sources/modules/text_classifier.rst.txt delete mode 100644 docs/build/html/_sources/modules/topic_modeler.rst.txt delete mode 100644 docs/build/html/_sources/modules/visualize_graph.rst.txt delete mode 100644 docs/build/html/_static/basic.css delete mode 100644 docs/build/html/_static/custom.css delete mode 100644 docs/build/html/_static/custom.js delete mode 100644 docs/build/html/_static/debug.css delete mode 100644 docs/build/html/_static/doctools.js delete mode 100644 docs/build/html/_static/documentation_options.js delete mode 100644 docs/build/html/_static/file.png delete mode 100644 docs/build/html/_static/language_data.js delete mode 100644 docs/build/html/_static/logo.png delete mode 100644 docs/build/html/_static/minus.png delete mode 100644 docs/build/html/_static/plus.png delete mode 100644 docs/build/html/_static/pygments.css delete mode 100644 docs/build/html/_static/scripts/furo-extensions.js delete mode 100644 docs/build/html/_static/scripts/furo.js delete mode 100644 docs/build/html/_static/scripts/furo.js.LICENSE.txt delete mode 100644 docs/build/html/_static/scripts/furo.js.map delete mode 100644 docs/build/html/_static/searchtools.js delete mode 100644 docs/build/html/_static/skeleton.css delete mode 100644 docs/build/html/_static/sphinx_highlight.js delete mode 100644 docs/build/html/_static/styles/furo-extensions.css delete mode 100644 docs/build/html/_static/styles/furo-extensions.css.map delete mode 100644 docs/build/html/_static/styles/furo.css delete mode 100644 docs/build/html/_static/styles/furo.css.map delete mode 100644 docs/build/html/about/includes/pipeline.html delete mode 100644 docs/build/html/about/installation.html delete mode 100644 docs/build/html/about/introduction.html delete mode 100644 docs/build/html/about/pipeline.html delete mode 100644 docs/build/html/genindex.html delete mode 100644 docs/build/html/index.html delete mode 100644 docs/build/html/modules/GeoDataGetter.html delete mode 100644 docs/build/html/modules/Geocoder_special.html delete mode 100644 docs/build/html/modules/OtherGeoObjects.html delete mode 100644 docs/build/html/modules/StreetExtractor.html delete mode 100644 docs/build/html/modules/Streets.html delete mode 100644 docs/build/html/modules/VKParser.html delete mode 100644 docs/build/html/modules/city_services_extract.html delete mode 100644 docs/build/html/modules/data_getter.html delete mode 100644 docs/build/html/modules/emotion_classifier.html delete mode 100644 docs/build/html/modules/event_dynamic_prediction.html delete mode 100644 docs/build/html/modules/geocoder.html delete mode 100644 docs/build/html/modules/regional_activity.html delete mode 100644 docs/build/html/modules/semantic_graph.html delete mode 100644 docs/build/html/modules/text_classifier.html delete mode 100644 docs/build/html/modules/topic_modeler.html delete mode 100644 docs/build/html/modules/visualize_graph.html delete mode 100644 docs/build/html/objects.inv delete mode 100644 docs/build/html/py-modindex.html delete mode 100644 docs/build/html/search.html delete mode 100644 docs/build/html/searchindex.js diff --git a/docs/build/doctrees/404.doctree b/docs/build/doctrees/404.doctree deleted file mode 100644 index 5084b28e90cf6c57992288d708798d9fcc8ff9dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3069 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 I{e0N}57;`p^#A|> diff --git a/docs/build/doctrees/about/installation.doctree b/docs/build/doctrees/about/installation.doctree deleted file mode 100644 index 285a6e8a14c9846808e6cc062918934e6d1c4841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmaJ@TWcIQ6i#gK)$8>omlhJI2_;QJ<8`5ZD2CF9K%toKLmL7C7onZeuEc7jsibk% z4}ta}B?i4k{h9p_{WLQ>UT>Qk7LSgO&h`6_^n2^Czxy}JKfh~pF4ST~(^Tn{+2FgW zPKt~v7e0h%e}uQ;sqY#3#_GZ(EchGHNVt%xVJiF@{4lCJA?>I>-?1!lLaXLDZ}B$o z{2HF}o^LtfBwN|?gCCW3R7zT&iF#1mddU{i|Jv@mP{q^EDZIPD_kE8v;qp!2uA?0L zEh!WW<6=U6pE_s6q;SYCX0s_$8zb)|l3EKPzFUfB)mJwy@~g#!CUe84QK#@7M`v*> z@Lhh75BPn)$q)V4Kb)Ms(5XfdsanqMkl&($6_VNk+F#U!RbaZL8d*V zLT85Ne6=W_ywnftGY@|$jXr;93Uw07`rP#&-LETz@Q$nS#{5An0{;w|^G7J|=lDIw z?+Jd-kQM)uAMr!}91(3TvnnIok-{-UC7DQ_%vYm3$VJ|SSLM76?7z0Em|**R`#*vB z-XfDHHm4C}-P|zC%sD<=Qyp=4>ARAuSwUxzZB3}I%D5YWY^mCdCZyhHt1*s3J5B zqZuSUv?F0Lr5K-3s2O1@Dd`=2uW-|&Z;z~)1%LngCSk^CLpW8bWCk6Gp(ZZ)-Kz2{ zR$8T%;1Ab!)=cm}{jf566~OZ7{p%ZRC;eVb0Kl^x^^ql`c9!fxxl>SR1Jm2zGAz+1 zB`M1R8@Lg`%-FXRt)|EkjaRg)yP!HYQW!(UvPr?60aOICR$6;?`>Rj&GPi7-;ZPiY}5=Wlp+%@{IvJP4|A3i zP=tY^Nm;N#lwc+?5_#c2<<8~yKoK^Xr{@U`6#(E|HaZgm`fvG=gf=*bJNlXrol0HnS`^RqZ3dlbv&GQ{UHFEk%pN~ z0;HO`mwwM)C`T8hnW`AHQY&D6U^5Dq{Z@d|7KOT1uB#=%?Lh0&9wr>OS%St_WJ8t9 z65{l{$T7p?W1)Nj)HC1`=+TK#Q(&MT3I}mY*kZD#CNfNZ_@eQmje*5^1ju9)mV&+) zh=4QZ;NwmLtvO*C6_Vgt6NhdY^?v;@0aoR-8fce(ld1FgOz_=mlz_WHqEM*-Hym-e zSQthVo(TI03dnMJ>;N@sd=$LJsJkYu9u5%0+O%1;<2=Qi1M*H3R^R+Je`S3y3fx7G z2;T<&`qJ`8`2UIztlwGfRe5?R5$Jey4~vx~QgW$Rg}ExJ^bkCHn@zNA+Fz>PUK2Lj zy=xYGORwdjgKPFNT8#_f%AIvv^$u=042(nUuysW diff --git a/docs/build/doctrees/about/introduction.doctree b/docs/build/doctrees/about/introduction.doctree deleted file mode 100644 index 012555a37c8d7f81324de1de1839f64d5bd6dc42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7733 zcmeHMZEqaK9e3i`&Yd3;C&bVuhNXzc2K$UCLda5Ipa2zhaV0`2v_Z?}vzmvkm%a@b>Gn4}@sg}oT2K_2tO6rUICzbrl~)@(yi5#I#to-+OKQ&aE_* z$?%Sj(xZKL2NdZ$B_(%QKh4dSZ1LDr8k9f2b3X5b(+*f+L&Y-D7Rr~m9VV~ljgdgR zuQ0>6y&vWY-|(J)?)ewIx4F{T*!G_5z1Y3|qaVM!^Rg$k$Gk}P6;nqZlQ9oHW;~uK z39ThVFO)-RSmXuL9C2fl6b~Knpow%dG*OkstCz-yC5X zq^Zdi*wY&x10o(p^dC1m)O6tiR|yO9h$-wq+?s65O9x)A`YZuu2U4YpTl@f*fvjHP z%wXl6sdH0P-)u?z?V!e5@k=V^Ry;!lMSG%WkC+%VfVa zXD}_5H^>!!D98;u0$s+LxHo>O^Bcd$?;ze^cX4h_th`eo&=KdQxgeYalpTe=a&PHUpc15AN*#q5*f~5IWQD>` z(`|Mh-~2F(B;rYN?6&VRl@y=3bB3uQH^oUzQp&nrrK}D}+(EipvG0AYe%X@jxNhGX z<;icCsyxYeOJ)A71{EJy8oYV}aOvKjidhzE3iauML~DZFWkebxG$L4!%F8OjDX9^Z;XX`}SGs(} zM_#Qe>&exIkl&x35Nd+HD8XH=x$GL6`F@Tn!1xg|aVsn~EntUsd}(;x z+O{v=`g0ZP2>4HQ2PF5Gk;b07MXj0U>OjIcUCB|}DT)!JsAxfR?YL~X z{#V8Ina(y0{`Oa<08BEsca7+y`NxWVj83>R zaPmyU&Z7^-&NXp;?Jq%VOK2sL?u1?18>d0nG52(!hV54$itR_i_R9~zHsEWv@1Lpd zY#Gf9d+r%GSNLNqa=F+)mbPCUwY#?vsB?@0j=VrHv)vWOWO{pR%k*NtRgTGg3g!;R z2?%YFz2547CNVT+#vYpx5RK8O^2AIK6UwHnwyR%#EpGh^s75jS6ZekS;O#u^s_0zF zVlO6@h-ddCoxScz&-?cmIAw=Am3#{ts$|?8u!~fDZ;tXgtEWHZMw94SdmPjSs%l)1yuyqVr1F70gdc37%_&JhiIeOD zpj$oWD#FvENduq8#DR+tY$d zNAOhG#fT-t93wMGJjC;PywtE)X^^QxKjhTo;~I=FA%|JaM+aaN5|LqT5MtIYvD~D7 zvt-XpnA>8Q$C*DeNeI?0xFHc*5<+;%tvF*R?KexA=6RUK zR6dWlKcmN;b9R~h4VIG(VTh58(d)l)`KDdUc;=77FfoG>Nd{{N?c^Hvu{s)KS@*Id zG;>KWRYQ2xHG*^m0MbWm0QDHC<095KpMLHI$a6^zf(i7r(xCrtjh=>&WU~8Q^&~d~ zcLxH(mN0RI%Q}Yj;YFbl#m+^$3Y(1mk#mk1@G+l-g&f<<`Y18%&=+zjB79)K7ors9 zn_bW`MyUP=IlNj!P*>e^`RLQAyAtgxav;_1T$TO?DLWD3^nRY<3VMg;UW`>?;273} zb|@LZ2CBGlg#v}n`x9U?Cfkit=Bh6D)@#3j$;5pg!h?@Mf#4Xr9NTLFp!R(X^Cc#q zAzt6PcVC~`)=JmO&IO%OKps zYC?Kf_7S4p*lPJc4a>kb7(LLWiC)EFeU28(-)nonhL7+4ioQOjuTSum+YUj{tjQ${ z2XpN9k8|-PUWB*<}~(%iOJM{c}k0 w)8b9I2(``JuU`U?S6>-Lm$Bvf(XvzQyi9^956O^*bgCOt0IXs~*`N0Q3khLV%K!iX diff --git a/docs/build/doctrees/about/pipeline.doctree b/docs/build/doctrees/about/pipeline.doctree deleted file mode 100644 index 2b1035996dad8f10c3d69c9e279ea68d72746e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9078 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ⅅ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 Qlbb*JFQ}4CryHIB1GGV(8UO$Q diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree deleted file mode 100644 index e803e749331b3244dc3e4f130ba2acdcd0627004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6522 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 H|K@)IDavk@ diff --git a/docs/build/doctrees/modules/GeoDataGetter.doctree b/docs/build/doctrees/modules/GeoDataGetter.doctree deleted file mode 100644 index b1ceb990bc77df65860207c9f92e426d1f779031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29537 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 z 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 MIpz@mS_^ak1GH|FjQ{`u diff --git a/docs/build/doctrees/modules/Geocoder_special.doctree b/docs/build/doctrees/modules/Geocoder_special.doctree deleted file mode 100644 index 4d517b3459189b6d36e7df0ec1df9cb8322c1b9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63188 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 y?RV4CmRLA62R(3@zM-(gEasE diff --git a/docs/build/doctrees/modules/OtherGeoObjects.doctree b/docs/build/doctrees/modules/OtherGeoObjects.doctree deleted file mode 100644 index 4383ba9caacd647c9428eac245cd5a160b8ae703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57121 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 NdZ^Ht(;XC3{|nI`Fg5@H diff --git a/docs/build/doctrees/modules/StreetExtractor.doctree b/docs/build/doctrees/modules/StreetExtractor.doctree deleted file mode 100644 index a269aa7c2c7779699ae7c9917fa07ec333941ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23918 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 F{{lTkMU(&l diff --git a/docs/build/doctrees/modules/VKParser.doctree b/docs/build/doctrees/modules/VKParser.doctree deleted file mode 100644 index e3d07dfe527cc4b8701380f48f4c9c3bd892306d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52364 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 Xbuw+oX?9vyrzu&?UL>^s!rcD@v5`~> diff --git a/docs/build/doctrees/modules/city_services_extract.doctree b/docs/build/doctrees/modules/city_services_extract.doctree deleted file mode 100644 index c4815e1b8f3aab3a2f298ed29ae5d4a8c681f018..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14220 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 CsF#ue diff --git a/docs/build/doctrees/modules/emotion_classifier.doctree b/docs/build/doctrees/modules/emotion_classifier.doctree deleted file mode 100644 index d8ffb76e5f9100c43b4837e9d809054f43176af0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16931 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 diff --git a/docs/build/doctrees/modules/regional_activity.doctree b/docs/build/doctrees/modules/regional_activity.doctree deleted file mode 100644 index 5e1a7d194c2e452322029080cfd8b63508a353ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4293 zcmeHL?Q0yz8J8^GNq3UYl484Q8#P-eab;?sTqvYC?T3=$wg{_92&Ernmbu-zn?buf z+j)_71w&H^STG+7+5R*AgG!{wQ+`D@{VJ5ttKcUQiJyy~iVbo9OuT*O zCQR(Zp5hSi@8EY2zc=yw(TmE7pNNM*e^8@~cf{MLn?c?IOu}ZGm10S(zsOr_Yo7`p zeM!-%HbEp!gy500f~S#H5u43`$}EpkW?3|uH!mYrq*1BWrA&Dwi>cB%BkM$LqMVJK z;kr|NJS2{-J$~E7Oca75N;C&`6S3&`T>TC_o@qEYdMT}lCd|m>o2WkmGk7&pR)A;Y z$jG=vM9f4pt`cN}el)bOdd*W#B>+)^z>Oj2rA)YqajW5}pcl^-=@JJC12&lg+5*u; z;1i57j!3Nr3Tp)e!Fs^=lB7 zg|w1o@^82fwplgj_)COq`5FpEk~#P_5JgJITAB-U{BSsRMTqK0(Mus=GR>{i1-WCz z7e*!EAJMxT9)XV_5*$zBLIw&5L=Mbp#-S>RC*KDhs^9lP_gw|uqK5wF+t<(!#Qjh^ zdu=Us6W$fwV{t^i>=zYp%kS}`H+5xhsb6*N122{e^}8Uxv0SMA5BXJzwt|j2<#! z%c|2gKWuS$ild|EvhGKT)6`t!rj?%g-4+ts@0s5=+*;IN%p3>Z3^CQJu)IJU@Bf)) z4n4n{Li%VCrL)zUczEUqGhT4bP&6wXP!YMYEH81`(Mnl}ieccY^6Mv+->F52!S@0P z!{+F8hSQ!^Nlaq|-9nTeWY+V_A5KB0P?j%UzV>_6&I^~vSJb!T+@QepYOm(;J2~Y<7ng`8n1G8veDsAJ8Uvil9mLCe1b;q7R;8zk>w9GowBK3SP zvVZ8V6!A2DZDya4%IG&1g` zE-%s5n|Op(13)4aH6~W_+wA}ekxs5(fJ(z%s^Y7hqG=y#rwosmUxpAtwq8mj>v+8# zr_!)VMv632Znb%WoZE#m2AL6(4n+4Fw0J5pZPGY=kG{YJb4VCDctO-s_2#Mcg8;ycEzjW|3wLY-{`kEozl1$UdYY_|C&+^QgO)taG8C^DT#qHU)4&7O;6&Iw z1G9l;6QodTMRmIEj}VY~++}80|6)^8gk1Z5GcPQ=iiMns3_k?#W~K_n`mV_tvh1%8 zDQ#e=H^R9-#+kwlRh#xG5tx7zIKECcSUH#wuPD#}wcQQ(Bx}q14@g*2@*Z zpf>FeeX6I}%cy-|huCGtZ_#B9J4Vwv5+8}@&JPG`=OwI3%g4vB#Yfjp9Mbm@_KoM_ zf%ALI9t%#{A1zGH$r|ahP>J#Jzwku>9R#}5k zsJV6}Wf_cxZ)D~M$<;!;KG-gh;@9nc)x!_wjQ^Q$*cv|o(tp2hwe-EFk*)hp3IoLXAJ3lsiMmPs7X%czb^)hJ;Xfee ecRC}4*xix!;(=V5QMntYRO6d+NRyD8jQtKG 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 diff --git a/docs/build/doctrees/modules/text_classifier.doctree b/docs/build/doctrees/modules/text_classifier.doctree deleted file mode 100644 index dad37b262928c80dd2806c9c543effc0de0d5915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18566 zcmeHPO^h7Jb>1cShr8r1$t9`3h-RCV#aU~2cI7Cry&?r$R0I)>RADR zdwaUa{lndn&47wwn*=J(K`q5Gf?Sdqh!w!eDTl;J0{9RhIS9xhr}!Ws*T9Gl0h|EI z_o}-3Z+>=m`6C@ffV188^Xk1Q&#Ke&<`SOo)H{c-XaUZ?|qVo1WifVZx6z zeKYPbFG}7{mfuQlB{e=57(1aK2PRAS1X`Gu?KT7EC2yc|k=jSL8`e_*Gm#OrS>D~6 z=BMj*O^?`aq?@i0hIY$l!A4@uzLD^GBZ>mM5l0xC#yV^_L%`*;q9qFPJnb1B`E;Zi zck`EqVQvSkCEMV^ZYKOV4YQgLlf-;BGTPKBvF7=dYkMrYHpyqY1}KOU>oA|wGm`N( zqbU8t%Ntu){HE=-w?fzNZ5vx?7H-Mvt&ZP}T^6oYsHz8Hl*A2dj?ae7jBMY_*l0~# zGemL?mD7o;Ap0Pe{9k$MITIV+7hGCrm zAFZV~66-YnKZ5^{;r|nFB(e1=YZ=X-md&jT*12m_0@pb(!)OOa*D9d&wPy}ZOkB5^ zRv|IeB<-3VYLFPa?Xjj7`C7{Jo@gIxjh<%OQBP~dp5Q~cqJ^<(X-247ejI|Wn&CAy z5*<6T8LGQ+!?jHfGv%cvQDAss*AF6tIJq)!F~f~4&BWBLh~9o=u>f6Dcv?4LtLTI| zZfY<7=IhtBmeH}@9%0N}&Gxj{V~C&O)iok4rK218CJRFrYJi4D-8d37h!HYL3N<@I zB?t|>%!CM=S{yVCFDFo8F<-r!IZKM@-e z>rcdHY_ZAp*yZu{*z?wTp}(e;K7$^c;M2C(WV;0&CN=I*jmT#qy#bVuuw+wR!wwQ& zlWO64O=|sm7?}0I4!6U4MG+?aqHMalXG?2lGfE6nz}FPQN?%(?rIl6YVK}nWc8Kwk zJJyrd4FWZ9o#%}{BbC}JV7(=<-l||-@Afvxkb!QjWGv~ukw15BQeh1?UsCvf?c0-N zAYcY08=w}v2ue#Tr0dW@xj75vidfNhEE`4ueGI!(u^YMOCCw$Y6ocK@{6GV?u?Yo6 zJ$hX#YiaBzCNHedUyY!6QDkVZ#O*eSY8fVs7MYHgA9PsIuXYPc8U3MU4G-4J02F9Y z*Z|Xyy@fWDt&NW@ zdbzl~IYe9rc<*HOVtDN{gVZs9?m9HdK((t`sh(;1F7y^De(6|-au;T;AFy*y#hv|A zadaRRZ+%IkwqesQz;Nw1S#j5>UCoN6>Ll})xm%DFY!tMv-DR}V%N$wdvqP!ERxuZ9 z-rvSH<4qPw_gG4eFfN(sd<-zj`TOqv`MXfy?;Jng#0Hso=X<(qW0$J7_sa30ed*~+ zBi)Wzr_hpnYIX)}Nc70>+Ge;he_d=sjPf=_?55N%glt~6`%pHL{N{YS0qaD#_*iXoR{!<*to~`bAdiF9?}@GSe9plF-%>v`bDj9r`^F3g7<^+xonG>D|DwR;AA`w1Q4T0~MhLwW=l{DZ=%PsU!|uZ-=@02qq<3^nJ$hvV}= z$=WIK;Fsgd8Z`#P#*;PT?vDwfy*m6^K{!QV4O8-4l_?n(kSlLLXDB9ypdf#~YQt+H znt(mgo_n?Bgs<N3T^l+l`(3$_XoFd zWuWhO`Pr4CZ+Cgq_t?X*3VKBqITZj`q2)U%EhUz=n2FaO&axq z!@&Z@-g9q*e|k>|RXiP|WzO^8$><&w2(R&@kknN$OrXOT2s<(N;+++z!`TEV=QaEg zTfahZH794Q^V?LS$ea^oR%sOB{3}^BKU5U;mFM^~f;u#iU*ksze~J7N8gnna&Cz%- z3A`!r4}Y5l6_=2I{(vhsU06yxWblguuuy_6Su-JLgw%=LhZY28Q2TXWDa{%Aoso>> zlV1PgdrR`_7XFMfCuPC-mh7}6Iyn>!Q+l62GH7#q`B}*v=l6h$_M+|=)tg*TSn|g`c1=)S$SZ7Dnx7zCrEmTLzd{9u}=q$ zcWGV!Z4sa0UcuONexeYV5XNiJY#%K&Qj9H?TOCiR;(+c6P&z&WmZgfnAWrNy?_X~i7Eb?MiQoI^{biI8M< zZ~~M#uTjA)3Med_%_={N5(JlV%x_1@UD0622s}K_fxoGkh{+}NB*POq{YBwdgcGip z2-ou;nX3yn(PWQu*@2~n9jntMOvPE6^DI3|VLZ@g(fJfD<*PyqPH&mNLr&)xvP(e$sluBv7U~Z=qp%ASs7^e%^&NuN>(r9I$Aa%6Aoq^)FAO60p z%&$alPn?@Y)|?*1#MDVCd9MhzBIk&dOxab<%b|SaOU}tZ%*Y?K{Tk`6yp67-^h}xE zsoVVrqEp%JUMvepN?Xa@KBAh4O3;xPgnc)X&a}Lvj~ifURJ)qoF5P|Vh8S=#A8{r3=Jj=3v~|; z6hAvsNhM`_NX993qjJpq+^8L(FV2N)&ILR=PvNJmYicMN!*g;zOWn!EbDp86|DvB2 z`uP=pWcuKhLO_C7bmI3Dr%nyejij-*EZoD?y;9QvBiKV&Vb8EzrWu*-6l|)j)$~Bu)@Y{0_TzxcS^=5Zn!s<`qI8t>Hrk(S)ndhSIU4v z#7=9VNvDDaeN5JUQm5a^K=JQ=1nP7k4+bdHe5+L6p%ltX+mgI|z}D(d zGMe|jwfYgd?t5$X?%19BeDr*JoOcN8hi?upj3MO1jX{oopE3Ad(DOiy!OsC$8iRkq z(*R>IaCIqD&}aSzh-lesR}%w6aGU1nUJQW(07Ia_?%xpnJ25~Qf?v>+Fa+Z1qc#Lz z9l*;p%kAFm!L|Eg4^m9-*(|J&v0@a}5h6nat-}+;S*47`s3y6s`0rFC??XiH!weMv z{f~#O$foQ;n~cS&Q5JV(G;SVU_iZv}#_rT-GV)n+rU~nZZ!$hR{sI_oIdU@kEXRLB z4j+i+cne%O)WAnO0cY!2 zXzk*z$XPs8XR(-PmEE!Y_jRP+wvpK;Z-h@rNcnSfu$>-Y4OS59|(!@=bFv5kbWD{qZz8?Wqq}A^xd~z*8hM7Qt(gn8BU_O0~ z0~c=#bVyA%)~Ob#Ov_LqUuppivKm>T@(y31+vCU#(s$_&TXKgl(uKXQZu%X%n;!z; zugMbT;#L|;bh@-FCkw=2ytD&_d_}=A%DO@#jJRc%Tsy?)E!?J7uhaY_+qJ<(q*uma zUOL@mjkpbXi*!&+=huMCj1EfXFdZf%k_bO>dr!w*B5`FNr}A;sTK&SRNDX+hT&c4l z@B`gK!oN#$HbbZ)Yk(h@oG(C`7Els?wo+38;k*N}*s;BN~V5a5X2R04qn zhD9Tee5AXoB7TTIP_WR9J6$~!NibFv;NBApJREBR%yCg7gq>zTFY1OYZu&YhK+)<1 z4$}RQ>BXKxN^r01rY-JZ5iGrFhepFCLQ*Ve)l$K-I|gDxM5x8OL-U2SnclMTbpu?B z<&V%420@;wxI2RUNkGFjR4f2v2U8_q@kxb~B2C6+UK@hw+8rG6zk1>#U+l7Oe$kAG zK`KNS(hl5dY4FFaDC&kAYilSDaXl3`-o3gXw6UVjP)mUTTH=%&HzBbCDR+T&S3k4< z9Qe5yw9E>4D#^h=t-xdP8YHsYEU4QoYKbwR5Z0`y<6^M6$Y@{{H6tszc7&gWOm_5a zaZ=)fxG9(B0N>>&=#r89!z` zQceglQb`aQT)Asv1^0k~#qg1iyZnraR@*v5-iE8=Ga#gQf!-Z{GW~!BWYuj+opzTW zX5P&NUzy-Xq&C6wg(Twq#HJ4d=<;w)$jwP01<8t_ZgJxXDSD*M`BJHra&|;9ptZ6W z%21-OfY4_w&LYv}m|@+(pDhEQ@}Nd(oisIP9Y$8NfuESqQMEXBq0XYg9Z`=+;gSGn zJuRBTCf=~xB8N#N_BwP7=g={oLor{6V!{q>_#FxeIOM=N_SVGb&N+Cg=hVN!VCJIki3bWR8C5UrsRMBav1Rpv)i0C6HXR5H$8kkb3 zC2`A{^zTs<*8(wpm?#*g*(-GW8Rc(-iO!#bvDYTU?-;xf!HF3%k-cqv$AZ2gqn#%YL}n?8kH(y*o8vH+ zxMr#@uBw~2@IwC&xQ2Ut0OfhK`(F~45$*VNY9l9+0>}~st?JK z^Y<$O&-owxshoRe7rrtYU+t$+rakTX5rNUPKQTQX?T@0}zG!z&qeo78YXIepAI-!- cD1@W7XS#8d6i}O_1efAqI8z%V<4yJd2c-Ii>i_@% diff --git a/docs/build/doctrees/modules/topic_modeler.doctree b/docs/build/doctrees/modules/topic_modeler.doctree deleted file mode 100644 index 1c6bbadac64ed167054948e8bca7ac96b5aa54ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5423 zcmeHLZEqa65tb~Sq|>_;D^1fV*~qCYq1MUn8w#Zcf~IjB2vLF5C|W?qg15^%GTL2k zNv@^)5Fq(rzykO!+mHPL{R{m${Uv>d+`T)gb`u9E&;k)4;5eL}84jNr&de8`zrMFK z0m2y+NrBo$V&I?8quuKp6ma`nVR0PinW!tktq#S!gCrb22rM>K2oX z83Q7IcM6t=UrT9KP8NNZoNGP^Joq8g+O2sdhmDfDa*LJ?>62P4yZKBOygr$A3nhc~ zwia`)8;_5R)k1s9UpzWK`%tB_7@nC-jn3H_*vwhjK7;rwC$+eZ|JU*V2L9iCQdi<_aRBzafnD4Y@0`qgTf1-t8){aHDU<&6 z=B=5T$AU-RGH)2yk-w5ing}qF!-A)gRZ%*EcV)t|Y!tyQJOdG@F_9WXiL|50;t-}6 zeQYDaOvIv6tAra9&|spRTcIFHFxzf%v)srSC>?Q@h$v;FNEYDYktum12NK#-W_hGp zG2{^|Qb+>oOsgKIC7Kfli-wu%v&OJsWN(>Hmt>W(T*KvLZK;ek(1I@;^>kEK@TfAx zLdtpG=P98gh#~gq*B^cA-4tZ{pN+?Q*U!3t(4JOvQ)OP6mx|bvgcq`cw8$b+IVt%q zSHEGFJ<6|d;(`7hN?wAJNtSx}&9l_|V$Wx%g*ICu zOZ_T5LwHBN{JSk%Q6_{t-}kM z@-`6+w91=A)?ojC!IFu8PhQ=>t1tBL14@h2&TU*ushjf6KxLV_@cGZ@Z4;hxao>H5 zFDLf@`PJ>;c%l7&{~)|4$JaCO6hsD9;n9HnCL~@KAfYk=2+cSCpdLI1=ly06(7nkE z)MDmq9-tOS|3?;2?rZq!_qFxH`zk%wO!V*?==O){;9g`V z-m)>uYmSmR;c46-c{ih67gu7{xbMA?1;scRcEJGukIiijYn6@*ZgI!mMxriE#;6jC z5sO1qNuep|SY=sOpUk-BmWQWUR#eu`y7i>eRL;ju@qX%7TZ%9EPu-H?762HcyV)9d zD@f`v37T z*`wO61QTNDJqN>bv#fN66?&5-rly5rw5t2M~j@j8APocWcx{6jdHyA_?X7 zbGL5LDU~rwLu$?p1pXjU&`xHcrsje9&}KaEs=pLQG}+DTh06xn;q!@v`H# z_@#swEwhzrnL4hM@_sdhy7ddD3wRM6sH}5Py7abkIuh9@3-~MsNPOQ^yKZF%hrc{T zuTZx*feBZh%ZpELxr5`6($KFQs<7H+F7_5dU!NLFmMQ_S3hnZ`}CO zZPEb%JR{(r3$=x8Pn1R?;w4}MH4>OPbqk3q1~?VJ35F>rXa+oEuQ+kMS+96JF063BMb6k(bbu58?_`~}@L+q~WL2^SpQ6}Q=w&JOEBD|h+ z-ILr7ybff8BVqFl%DR^I5kjdI^~sXk1t9Zy9GT<%7n_n0a^*J7sIcrZ7IG*u`~$r6 z)K%4P)#UVY{iQ-k8#wAUzYfbdQ|Oh0Yj+cY-aEm?hhT%3y$kX6c~wFMO;-H0pveJO zZVeP!41j?qDQr`gK#IM=CUe4WrWp0AWEkZmK!%=6gzpFz2#yiWmD@?cbslrn&smH{ zl#;HudaD^?0IS&`B(y6x$BU;mCJk;Wq!Pp~kSL2(A~tLs20tD*TQCa9vX~43H7Sj0 zK1Zs%Mh&AJkRfd_UMx^P#T1C14@@ssnQ@D>8EE@>bausa@vL%PqS{djb7|~x^;|r^ zs>C+^-o>QjnYdfIwdou5Caj^l4{r?g1PTRe%NLBFrVzS36*r#uRW=5NC*Hn69CLTC zN$j>-{YTr^sWi>l^_mD;sRZ)__Ba@&Chr8ieydsMqHuSIHg=h7r2nmdI z5L|87Pf@%*&L-1j%$U~A2qTcZrH-G#c49T@y}|?wmHtnE2bXI?R21$z+M6mtxZb0h znx+i!TT?Uin#xB+pWT_AnK558sd^uL5%~VoM9X!WS8UeJ69xeCk53={o}Q90s6=*a o=Y1#>K6^XJb1P#{c(^b diff --git a/docs/build/doctrees/modules/visualize_graph.doctree b/docs/build/doctrees/modules/visualize_graph.doctree deleted file mode 100644 index 8ae8ad0f344d1d8fcf25e2752d78c6aa25f95630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9544 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 diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo deleted file mode 100644 index 8ae4c39..0000000 --- a/docs/build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: f61a6e53f7100386fd88718507394ad6 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/404.html b/docs/build/html/404.html deleted file mode 100644 index a98403c..0000000 --- a/docs/build/html/404.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - Page Not Found - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    - -
    - -
    - -
    -
    -
    -

    Page Not Found

    -

    Sorry, we couldn’t find that page.

    -

    Try using the search box or go to the homepage.

    -
    - -
    -
    - -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_images/etap.png b/docs/build/html/_images/etap.png deleted file mode 100644 index 87aac414db0340658daf112df965a33481d132a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55936 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

    VIih|Kegc@~NGl%nF;H#-A14Ns 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 diff --git a/docs/build/html/_images/sloyka_map.png b/docs/build/html/_images/sloyka_map.png deleted file mode 100644 index e5c14a6a40259adb59ea79e167a3e16605ed638d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91137 zcmeEv2RxN;|35m)XdFbzI!H?P%$^yUp%CKObnJsv6y#;p zad5U$;Najk5NriU&{RC3I5;k9=%d$7H-C{r9J9%;-cCT>m(TSqh#j|>wxH`30I z-NX`U?trv*WVbOzgG1nZYg-dbGfPtw%sJeg+`Md@{A}EUnq0h0Jd&K;&<{R#9s#aX znDde5rZyV`D%+m3M4^yO+_HS^oM5PfT9!5@wl0p~qlzZ@!Nmy<^GJbD;0t~*9Q5%l z_Je~n7@CV)fSvOYI4oyse8v`x1YHIGae+g!mJX(7wr9b?^|LUyH$@}OF;kV&c63pe zJ9A9yjJmQTikppF<){Yc9A{GpM@w6qjVIz|=V#}^e1UegGsPS=x3x7#nPQGQ8Y98S z^(6wgh1SH#*1^Qo0dojE7+8a&Oq`P73+Nw@^u{8BUu=-p8&@*Pa5719G0AW-9pPU8 z$q5~i!u*t3|9oWqIRD0RFw#+OrX!q8g1lg$jT>8Th{4|Zq&%k)&j~YE6G>h+D|<~> zUjA?Aft`)@Svd!!orSWki75(Uam5_r=0CEr4(1Nn8*SVdI-p^B z4!a8L&&iE^lplxkYXiK}V4;tIr*q9n`D8PM%vce z(il9b2GRzyYh{g%6E?Jki)Y=cA)~QFewqKqBLPE1n{Mdi#-R;eK^kH2`iJ7!y!H^L z$(h<(o1z_D!RLPZhJLYKetRbfwbo6S&2b&bA$P^a zV+YIxcwOxG;FCFY-a%7qTQqQy2F56)qa)=19e@*twEoMO+`x39b2q6I5@l%)xm9BT zRFHp^f(+ae0Jh}D7uJ?0CXiu&S1-TTTnJ@0gUFwv4rYFvQRY9cnpnrVVU~ZUsXRX& zo^WG<_@58^g1j56|7TMA`A~m@m2Jk8Z*B2w+xah{{%39apG18?(;$j&La`R|6o{TWhl zbFm-c+VmHQAJTxIhc0q|hlzZP9Hu59rrIF+whm|uTXS0*BxSz_I-za9<_LfqIJjzqQz3e~{)-Ou3p*e7R~d-8fBsSi zlF|BaXD!jtWzZx{!RJj^f#1Gd1pR`&=1)1pwB-)st>xHjA- zw5H%0*^YecA2Ca_aUG=pe;ycNZ?_&EeWv<{`W&(kU{uUDSZt}|1I`|Ri_^y$X`%Q-=RMn zv8aiqGeCtefg?89guwT&1fy6g zbU<0^#A9unA*%AXWRdj!)`$MpK@3(U}cb@ z{f#8{udvD=&k%Y3sp&BuEYHI-#9uf&#`PD3^ivST&)W0@VEq>)h#R2sZGH^oy8t&5 zSpSLPLm1)(*b?ALnB$wPC7APpJHu2(FzGc+B?NN>L#F^g!_chH{0x&=!(90JE6iOm z7h>*?ISoVgzF}tnCIvfaY>9R?a5Qyrwlp?%Gyv5T2c$9jzmb>wPmq=$solRkY2o<` zLF+#wwICq4kz@Sz5Q*nIAuAOAVM?r@VdQh3~peKeD35~zY4;r&rpLI z5EDs)p}_IafCEkjESK{j+SYEpnF91&nWDZ|a{W2{7*@IeC;b@DU&yKdc+>t(b`ZqK zn69cH)+uv@YvakVobXp}l;PUwZQIN?zRm6a9L9uIr~gS~;=<-kH}xMt5Dc&q;3K9W zx|#f8Gi^Vn%jIiu{(M6W!^Ge@2B^Pjx&d&FrJWlHk2!fWb^Nh2J?LO+4%%@*HWSo% zj6vB4Fv))mar}W6fF+LKFUcB zOxOL_O+UZ7L2k5SY_wQl+b#aVr}McaHs;@ zeC)g%xs2bv?JsMpSXKEWTgC45Q9>G-qSS01LGRW24qGEzG}_i0I3er_*sVYy*A0$t z+B^jIV6N}JwLWVO?N?(R=f{n!L>w8G0zz${}MU zud}^xNgLGT{_U|Jr;D3=fxa)44b=a0_wcv(0{s=U`TfubTff1=^bx-QIExeb)>;K2 zvxF=YYlOe9YrrONHzn}bpKMbT=C4KLzHCI%0sdq?{jqMWzrQQxC$rM;Zacx&!+w=` zOMvg2z~@Ub5^FO*KHBKLqB<>JI1`On$wZz4S|PHZw2d(&Unv3{pA{$F>j z|K`?BPIg|<824rSCS<}Giv?Wwi@`#_Kx%~D_4)Vs*YBGl2L1okTsO@6SFu($Zfw&u z)?5Yu^DLMR8+l^y$;FA?r}*nz>(97Jv*r)o_07hEg;T85e&tO)7<2w3 zA^qL$o8N_#&)W1q*}l1v#o8<-sC!d(eKQZH-yPFH3ECw=d*z>Q=D}>L-rPwK`su-i zm_b0A_{Y55%mj%>8i3byfWpEr*hKjs*TapsNPvR(=0DsU6lVimxW9g94j1Hop^WCH z@&gwi7dzKie=w(PE=T-Kuh9AK!v2NLh1km0Kc)1=x&G&8Eq(nanSKOY@7<(&SpKqE z)qcjx*I#H?`X#x@Z!)Pzu-s&mkbaSOuJZhaOw3QgMX)i@Z}tlPm4ewfb>?4COy3E? z0U3ebxefMfV8{rDfc%zaV0L@}ezAGK9%kPOX6wgiN&?8p=Usc784dW1xe;dH2j+I0 zH;G{OjDXWHLt$=&oe9|b=V)q;v;pr*1#?($fB2^mlOL&+SnBcHPKWP83AXJVn_c?v zcRFC-!m^n#f1A|(CGnn%^V@peUyePo-uow#(qE`){}h1#S)Kld;PWRG)AuTxm;mwL zeGL`lG6X;4Jb-TCH~@5G@Eil+AS4CHF^&V{RxptM%}ZP{Cu722%xBDLpOOE^M6}M9 zj!xj^+viLTu+9TB?yvrOtnY?oKT_?nE`^t!k9YIm4c+=P8pQi`6by=4>u~<_U>VPM zQZ)Zik0XFBVf~rVem*GsE3XUrDLl?+b^4$5IM~fCU(vT8=y5>a^mBl)IfB5vRAh4q zgV|}0aVVJMfAA8LALC+7ok5$bfr%^lFO4jX4K}A@F|U%eb1*fr1Y6T>Z9wSq5B5I) z<0kME_iFzu8&`jCgWaFCYX6NTZEW7@PfOZZ@A0dYw7EF3@1@5UDh0T>*uUKq{^P6K zpcL^g&YZ}0odc8p;g+rRQoP)X(|XvO~8G_j3czti&df9x{*8BG)WU+n!Vrg?<_ zxBJ+R2=IZP_^;xc|A1|Bg1daXgYJmnZ|?ldTIctY6+ek_Vqfu~1NB^Dwm^nd7L{u|H2I}xQgI0zgC8A;8vr$^%m z+sUgUN)Hn;97GV1l91TbgxEjx^Hw;!yUxU38AiQ>atD!6U?A$2*B)Qrz&<>i+ZK9u zzCrtL<6Sw@$4x(OzlS{V46iRM3;SfktA_lvjQ54k^Tql-w&IN*FZ4dKlfc0{O}fz8Rx)^}XKx%0Ubj^CTSY58TmtX~+#3gm2;;yLQ5~%9wY<;P zc-8VF5x-=j1D=7jb}BW6xfH@0mPB72a>V*{&1KO_15bBlWqO>?*JjIk&$-XJ4{L-3 ziYFBLKY$Z3duK|RNR%1lbq9(%pWdp(yvp4tbN9;?h%jBeheM7dpENaN7Zm-eIPvhV z5Fl7(D&&j^c(3CK^go?$bo)?g@S4&4lk~;}!PN^&-g8BbuV;Fl`y0LJ)VF|3;9KC6 zQ8)rdm*XOFUj>zJKXQcy`$XV^f$KP9i`@lcTkAQ@|M_-M?idK^2%Pk5T>$_ z$63oWr-h~>=Lr&5*B1dZLou>M(TSY-<-E9sncjeA9B@e`4ou`gSxCF_kZBpZpJR(k z649m$@|h&u#PZTrk5&bhYCgtgM8Jb^Dx~(i@4p~nOlZew!@5=!sj~b|6fadAhQO|Z zcO%TAacNX^&6;_2d7hrn8>a$~3kUZyxL~f`m69`Vq1Kx$4e!eZ5;lY{;u{}~XdJii z=ODK!BOs7r@Xmx2(go4K&;~0_RVzMmhs?|MGS2X>&$2=E@!)pOh`BX-bp?s9dC2cT z0MTs!|DyT-qWRyknt=zRYm-lQ#k?+d6PTJmlTmC|;4%^4wb#O=YKFoq#6-CRE*}gG zR^6m#51tbO;KI(ZL$?m%_FwLUknyv@mcpi+;}b+&vnfT-Jy;qn}~HkBV{m1$WSSEu_-hY7w|W!MQkSIfqG-f(_l zNmu|rF-6oi+OvpzHY(P|)1+Q$PB<4N5nBQ7a7pYZCg2SQh$wp{MUP%$nPl50+<{L< zN}TST37~O~`tT~{G9{l?vuwi+QMX)5anB;1Y?GklxJFMd?C_s)e(h?`gRFqPD)m~c zFt1P!^<4Qx4kOIF)Mnt-Gy3qAO8Is|!2#QPm-jDjn!PS^m5g?%UgI%uV2w>lSfbL2 z(20*+xOZu*xn!9tn3U(I9rx(r@W2^a)*W|ow`}F5KO>MTu@g5^B6ez<{%4N@ty^LV zZ2Cof+s;*^TABzl3coAKPBWzRQZn13$JCB#pIsWuJ6}wLx*}<=DlbGrI$(N{#I=2% ze%F*%uL18J$;4F{oMN~!mXsb&<@4C4Qb?+Tf>hJOkmp`|cSQcB{@~I&pPN!&Er_=S zZRZR!2aalMSETokJ3~y&fF~cYc8QYb(s&1_WmA&j0hv1$6|sVjbxn5^&x>?3-FV(H zEGd7&)QGk}g9Q=09d{Ry-`V%PN*BCI1K-Nt$CGLwg^^GXgvsvO2Ghf{ucXu5-`nS(U(-t((s37Mj+!{~1^1f<(rN*ArnbrFvkcDhz~UN11a zbH*#{LfqgP)r1xj7UyWI1YKrP=KD9_2Me4FP0kX0Ztk4_DNbKpIBt2&MuuWY>DrP0 zjN~$Ak}oO`v>zS~shGOz(xO^<{`t}8qBFyeTH2>08nmOhO^;AQ_R zk~A;v$_z(4n-|;MJ#p!xZfNWf5wmmLv5q^l$GOU_4+bL;+f7831xMG;kW)OjrWoX= zSQDVI{ zFA@ziV~a)(G|tUrH)yMsOT>2#Fdg1fT_)f$s2Nk?cX8lWqP^e{)9OCCsBro)5nMn2 z0ZI)#7%B81)cg!j_*-d}4N$!P&T3t^CD8j)`NLSqDIOj_5W=Nv2aiEXChk?si_PS9 z7CqKssu~nA-L0~;-_Jj@gE2SpP3M3E(2cCzVHx;+uHBa*d?(=$dO<~_x5P+ZsRIk>tuB&9*yP!&! zty6pG6dimeZUgeh8!YlpDsj8dW%1SahgL0j2Xv0xRti}?c`YnK%qn197TcxCF;o;#=}sV~$LkVa*~<#Cr%9ywZ9 zlPYbCMy*T1WMl}5WhR^mR(dsafO}3`RqWxZ*UC&I_03xE>lim2dAmL5-F4jy2QC7f z;Mod<-)=r9TV}KEQQ?Q|z4zU49y3mj>1>%(g4Ju7iJ`|jTdGsN#{Ak2rQDg@dN6Ny z_?eu}6h*ua=b(f12_u&X1>53}AGd16cX1979gz@TXt|jyaopw*BsV=m83&%@U>(=1WMv*k*-M;qG)|g2Z{MDcXVoQOmPjN3 z{_KUf_Zomyh;CMM`dnwz-AXg^_Gt+5zJT;Hcw5L3R1mG3W-%f+lGWi#SB#p%vr<}a zvRjTr4ODDX#x6yLJS3=_lJiz!%O+b6yGXOP?bJF*kfZA#l)2Nni``|1iUKoU5c~Xo z*RD&I<98Gzw@UdH@~5!-@6P>rO?XDK64%s%nDUgCo6aHqMvYQO|E;sp*31=B7dZB6 z?)YNBhA8w=c6l-=98I(=EMCLKzlVdL#1+0bUxQzhNvc zhTCB`NW*l9%@aIwJJ7F`>mv<3EuUVZB&##D=qYfrGrDbC`EJglETQATi}wq){Q6eg zzBpnWpJBpo*P%GG$-eTzC%eRX$2uPon<4j*?FAap7`c0j1hLw0te^t7*bSfna>4|f z@`fW1@^Ns+WB_XMyUNO35vi2}pN2zs3wyA%Y($d^m z{Z8Rgc%7g4V3aXY!mIdcHBFOO;sU#H?_KxuhAZyx_Tq7B4GMxgBO^v%@WBEq71& zQ*Nh}JjN$NZ^%)r8C25}Z=euAC#W!(VDeghTf)qThwXh2 zI9d!b`{T0e`}pL$O+MWvAnL5Sf=G55p)+6MSZ+** z$9&KE$mO1V#~}%|7xh=DcBGuRce0#-tRqtg=AUcb#m{vpjcN)RKx4Lb$3Bx!^Ao+C zFrz2oOp3l*jG;AGnPY$r-=O3%t32(l-9ziSfP7WxGLd+nUit#;UGNU>6N``9P80L% z-{~||8`)FRTCleP_OMKhV z-b3z9NeX7osmJk!0Zkq1Ta?-9dh+E^ai;kmSDWEiDXL+on}Xzx#BV>JcMzE@+frUQ zc+?DRv6D<1%gP8L~oG4$5Qi*{|_%b8fiV;Cj=&_+njeuMquZ=Ei^ZoYJ=p;uph zYEMeY06s3kwF6+0{Y-qzx@=2}Uyg1e*=170pe3S4FL|Br*o-|8|29QL&4GGd>qjS2 z(-c57{_-YWt32wVZ4y0G2%B}%0qe`0dqvLLU6pmAHnn2p4vJ<|s5GERq@}sCzjLND>p>%(`UU6Y!bT70XJ@sUOFT+qPS$>C%P^R%OQxA*IZ!t?J}LX*j^@s2bqaEl<3Nmr8?tAXE>e$0kI9GdMKNPp9ja#?ii1o zIXtM#X#~hdDXlEChFC#m0AU^3l6gd1r?+d@(K(ldUv6l1sU;?p?Ej?9MB-)NAu9$R z#}qsc%iBtw9S0Ked;+!Yao_E*wHzw^nZ~x4I*6T?# zioM6$5d&nq~^a@wi6a0zy+_=IhM{)hhBXg$5=h=IP zbUiNQdV~+;Bn{BGEb|S!$mGMTd4LZSaTCAeWKigAji7DM5S?phgu_3!07Jia%D^C} zzl0=!?@~9(&QrE0U3AN#PJoc}PxeG*fz12m&;r`@cP#d2=E!9+Vd zAKx?cB530mejsWrX}yzd>%-dy$=!4BUou)$D%`FcWYlmRE9&_~F|y#|kMFWObV0VY z{F?Oh2y@qAq#u>fCdk4hoO#;+zI)! z%Tv!{0tpxnT+<~@9jp*l-8&R=_T5dKT9K#5t5+MywT?ZQO?&58&;McqJZsk0$D$#vHVam7Rm|o5f&@S~ zXO%53Lt3j`Md=m4wwsG?vyQwbk-sH6AvRLIHjOg6oW4hGyn5xBAHIV5grd2)V}7Hv zdOCFhea@2mNkH$1IKjO`UFUV0J?GE~9*6ab(wcK_FU8tK-fSFk7S&I$TBf%&xqhKl zx#4Q$_I=lelw1rGi%FdIeBx!6t4ygD0SAsCk5XF2)jpqS$G}F%c;d$t=Ui)V>gYCwbcVy?7+jYet0wSy%r8o|-%E!-z7msH@9=}gms4}gT zrr6)9I9+g>)hs49MZ|ik;`%9~nE+w3a?b;gR`xe$anDH48>Wgq4^EM1S?zy#r3l3P zO#og3!wN{WA6cCs<9Y)!O9B8flLY$%8I`(ntw+q{t`h~%$m%I+haI}&obq_uvC*Xp zckGhaOufK)5|(W0Flwa6ArO^~Ps=vFczHoN{}Hd^VqrU4LqX%1_QBllaCi2A))Td@ zFF8By(oLWG@{d>Si>qq=@NgtFGwhCmn3K<@RgpmB*^8;l=9#^vW^rv$xYf=3PRFV@ zn72dcBAeyq(o@4S`v?X?09$-5a(d{K=f{_F_*`$s3nzBUz{truA6jadpUKwJiv>vs z*_bYRcGx40wZ8MacJeE=z9bp9AQ=;B^Vs%KqlW^&neiQDQ%CQI)fYZ#ZMx<@c7?S{ zWa9dn%LlW7%uo8+?HcLh;P-#jjcx{J_gGO?A+A!qLNeuEC!=S#P+@HU0$(Mimwmf5 z?dFV)x5PV;2iI!2d)%A>6A%I|gaa+~BOTH_YWVJXgijPA!)-i2B`E4efz!y{>HdKx zSicRyg$GYE`h8E`q8YX^Kie+*q~LXus0Yt|X)#o=MU){Thj}0~l7r>ZniSKNv8w(f z>l}QziwF}@DNq0yAr0yrBGgyw@R9Ti1p_;931pZ+0zLxqff!~}H1$+M>GAw)w=Gg3h8Xc<_i=MUa6oOyRURER};*y18vZnbF4IUM|06)N!B)?>rt=U|8+X4srjS$6Qw)KYSxZG3;!-Qig5jcDx8u zu;ABr5Ao4YF1)?G&9_2XpvOc-Y;m9uFg!QOv<6ss0ZA>ve7b(&jn$QXRQ8W5kBF<_0a@|Z5O0RgSthlKIrk=-HHB9iOK;qeg0rB~5yVA7}S~PEcIU8Df zu9Co10$~dfV|s9kW%$fQ0^$|HQMLD7dA8(&c2-TW$0W?kQOk-T$_)I92reil#*evv zxJD=L>3-GJFKLTA$T%dsOuWXGaibH_Z#^MK$88cA&1Ec0_9Fb`b;3@|lsF>S0#l2C z`~%JIXa&X(?sTH((36iuje6O2OEkEWNRj2QM>4eIt#a6nO|!#=8&1CN%)U%sb9X9L;1uS-x%0b#dp~R5{Hyp4H*wbk9MO734?< zUXGX!FE?wbM&C;>U}+bBb4^2q5aw^|{+2527(GaRA3`4sRbp6m7(m@6`eI07f_Ss2 z#sIeY+i{cG%oQLw)Pd7>lYDHtSqjof5_$wnD)_`&+L`9^?H^3wcY-O^bEykleB)D$ ze63wTwyBDMoNRQbS50s3(dp6F2fC66?HVIy#u~dP6g`+N^{+_C?4{g)w_mCKv^$c2 zKh5OqrP8Dksa1IOVL*P0&WRK93kq_E zEY$j3O=I|?&Jt#X%{iiUxgwXlrZVD|=JJ~eIT*(u-R|uXFQXtEZLoLKEEQ6Fu0b#9 zhfj_>>Uc+^#BF}uU*&A!)skzO2T5E0v$m-M_buxUKcsjFWuQRPP~dJa}Ae&{ME z@@71|oo8IW4;8HA@k3%FmDAx)V0h`>8e0L8UTd z*pYFr)<7rc`al+X2%R+9Kt_GE2^doa(Pq zo^w0M#M)j<5wWjjf{56t7E0Dj#v+~a-rgrgN=BX!_aM2>VQ^YoHccHVIdU+ES0>Yb zUJro9D~^N$DTEkE*G*-8WMR&a4i1|XUz-sxUjmF^C}L&r61mSgei#yzD{!Xdlr|NM zCCUueHPd>h9_p!Y?BM{E-u(cZkE}*Mr~(nI=2XL6Usf)YwG1lCk(umZvL-GLs-ueW zHgY9w+Dg&fcWT0A0UJ}i&Pv#{1LRC^tGF({)*qK2Mo=9pq+%V(XA!D~$c{sNI|FUA zIU%+efP>_)$(#>0Sbm4}P7_;}2kuW$@$`XTHr|pKNhjN?&l!c-5@&O zO-)*@5|K}0{wz|g)o)?u<(c;FUyKXKCj(kty4*$yE@b&QOv~T{EinsT^-z-}JI%)e zlI%h)ACGiay8Zp$)OY3#!YD}#(jLYhKF`hcpr|&vah#Pv_Ql)RPey*}3KbZbX zY)@BA^Aq7F**npM~f?cbfit<^6 z`Ny-wl zM9=GQ9{r#ygwr%!bSaP3tXidA@fHOcQC>t3JldNyW)T__3-{#W4sOA7WdylI`^&0v zLVVie@52?@xuh>_uQ_Wyqa|unxj5r`!%AuSP7PK2rj7}aIwat|CCWk5o$Y?P*h|Xk zi#ONM&EL()+%X%qwIL=iMfMBa!HgCzd-jwzA7)(nNF~mKukC zs}bxC2TR1rHp8{LujXPleV8m*e#?)?WMXK~y}v1;x$yF`rwM!U$ELviDrNb^0OAp@;iKZf%BF>zsD#O2@;Lvto|S| z)~4rJ&u7-A?-D|H7FY7jP*Wj3tdnw49MJt_YTbH zn)$U)JQS?j@IWFtYI~VX1s*w10z1Zr%NehArFqpvShf-mG?h7(IcqSL31h3xrCNPxDkHjd zRFI>Xn3M%!cOsl7NUNRjQEt-Iv@+)7cF3L?!z4k%_AR@uGZ<8$GwZ5jiM3& zbFn95DzySx zB9cw5ah0Jg)LyUbX+?VjvN_F7v#lt(c$tSn(uNe#Ey@3Vu7pEvvL^9!58 zDjb;A{<0a9kUn_|D%^NxV~`z#TMz)-yhQWurAs-RAjpPIjKFx7h~Eq zh=dW$B)7u3%i8?4`;0QE%fwVZr#FTcz!EG}nEFIu6sKLEgd?zrXs?wvFXgm|D3ELX zY*L>;P9HUd${^FV90KNXPA4<>9M}eK=pzDXyZp^I+v3@ij?WLJL={eybbb8rirJsS zi1d3Cs;0w@e()kqgL$TgIUx!(FGPWOrSTz11bZP;xj+w?8_?`S#6G>tg92tC8CtI7 zKjA(kd?;t9-1oGWsq*^t~3NrpzRmB9gw+3z5%={s>xJ3d-N}Bn3O;znt z=CxEKPeZ88 z2ZRtgafix1Wzyh6MR6J0g^^EpRZkLTPkJE6o2@yi;8=(m@ zA}T66%oAt=VfKN33G4({?=kS4lc4*TXd9SCrn$v02xDRfaJ7axOl33;4I z0Z;WW^WSsY;($u5Mba)gGpVu1Z$rzS-US~{=LB&NH=|rAufxuD4T9n;i_8?Sl@Wt& zuinwRjb=$K4sLFGfwbA@EJ0u<=h;caS9ed`)2_t#^FO;R#SWhgDeHW6<~&mvsDoZA z`zX-s{>ptsx0mSk?BnU@hwA~|dUhYbH}+yNNXgcN=dqIABl;#`ZF$Jhz#p=1NVQ(_ z?BBNjOp_NRNMjVvX}E4z#>Z_XP+ji{gv&>H6A`N`QTO|zsU237+AU3X;qD?RTAr>Q zgwie?#UI1BwHiTG-Nyu&`Ti%5Q0d(IDl+)d?DH25mT!$N#$s9mIv5Z%G-xH0+7z*t z3kx$fy6qq$k)byvCI;fkt|OeEI7my+2FsT03u2BZFq5tk#w-soFpIFEqaCjS>8Lxp zN52_Ce2`*Y+4d=ThxR~t)_-{~Sg>iSGIEMr!Nj2UC;OHM9;)^9VFGv# z#aES2mM-*PJa8hzNoW6@cC{|-xB-D5S(Kn-vg@Z0DfN79dRsuP5o2v?=4}QpJx;Q+ z`A`Nw*=eNJi9N1=-Fgvhu=nlC7n!Fmw@pQ=mTH_K0M!P)2}s>frt49ztIxB8w;JH> zQDxEQ@s=g4vw-U!d5#MyWCjr6@cTswFGhjh%O=;+obB^*VvW9q8QU5fJ4SBWbk|fQ zhnI#f!9X+^`@$|dT2wc60Hm2i7PrRX3(UAWug|?mlpL&PybL3T1lJAa9&V4QicHD8 z$})atNF%m$T_dUmaD|*_#@1xp;up?5+;$KoMpO6T_83e0`5%FF@SJO?10u`@4@wP1 zgPx}j(Ad>veXtd(h|7loH{xqIc7LL9Ld+2?QVftw2P(VffD=oE5oX2@pc&sYpGNMP zirgixp-3Q6w%2WD@JOXU2xo)qV+dKn5l}8=h{A8lHdVBMP`R27cmSb%Pf%&)fBWpR zfcVM>)e%jGs&&McxIy?LE5>ZXq?f;+V@WLe0^GYy3x+~Uu3lzgSBm1q1uYrA5)FhR zz}pXA;%VUYTC6p2Q1KlGK6rxNg~|^uwO0%&qdR#9B1P4 z%V>#ZC}D`n^K{E)>$EkHF%)MjBs@J(29 zP!u7m8&o>Fcx@jL%p2IiIRTsQBRNJ@!4Qz(Gl05(yF)EoeYR02PRDv?xkgN9vG1R1rPoZ5xX4?3LM^y@*8VpOuWGQq4#)UnN_aK5&zmO!F(7FWtt)cqBp zIjy}&P0stP0nNMTyl0o{^5U5I{Qxirk168O8mgi# zMWCS0HKgRcu6kiic<52HnwZrV|Am=Gb8QgDHp>FlONn(jmZ|i>qglw&N0h>9W=k5P zPuSx`8O;P(uDQ6!tzFY(VW24ozXD zEF&S@DIN93S$QolhAxTUNF*Ry!$$2%@&-% z()ZF#0zMoCnkA#5qW)988lrXV&z1++&w8#UL5Rd_b%98c9>>Q5(rlwjf>$8Tx$Yt@ zRuOzK_x+QLLkUzp4_z~g=ccoW)*)YVxeNnAo%+ncRn;51w#6-SGg(k+5ztLg z$CWy)(GNKD9*`rNhyqIb?AqZD3_hKN@aaV3r{f&`jl0B=Oh7_$U#Vb$ZZ$66X_EJy zkM1qj+j<)B6nc-y7=5Y@X|MvY^uVCW_b+dUC|!;baV1y-+o8FL>V!jMzRtYkYnoNn61}{fAL;Wcaunr zhbEm^3>e?cY=&1)H7&95*h7u&g5kjWpwZ)?(dX?7M&y?7bct(&-knOh4fsn|mevkz z6di#1Xp(8?qN3NWnoLy$Suz!3o78#o(s`hTF9@LJR!iWu40ru-C$cU?;PqZ<8xzQ@ z0o+A^<)$r)eJw=l^XLU%RZx_V4Y0QC?#D_HEbf3<0ZiWSVFp9#@c$YuOA ziu~|N6z{9V>!w%W6#cWi@+A=uVB`5iw2X?UAt!IiM^XqqHE%319hp7yPo@F$JD(4* zfN@X;m>%SV$RNKsF!r$}VnH!MHIo3iy9)pS8$@Q5UKP2{tZSdivP?Q$p30|quCq4Q z<+Ur+L8TI7*$&w|&`UT4LxBaXU#($ebZ@DMA9 zdYCBjKzk=>DKZ8T7e)9KS-uoP8KxpU#+&0jcItYe%2ka_d@u(lU@!zW(LCm%(PAD2 zIu9+5`{~JJ^1iP7)$SWZ>%jdHwAP|9lz(q^$oZY4t_=Jp5(NB#M6TPzVI!9^!w`DeAlg$uTGmq}c=s{nI{o}L zUH2Lz;B-Di@oo*&c4fF`AVCgAEmNjSD$sD;psDhv?6Y*;yoQICubvixDnzn$z)rqF zDQ=8l4*MMQ^Y6$pkC}S=EQU$(`T#lEtV$pdq?BO|AdT`gxLVrqEw=-SBlVprE2M^t zE=j@z1H9|@u68tfngK6Qp?YBeN-!bb0ts26Cuv-|kv1iZgNAR-Fr3I+;t}jQA+de| z`cMI^>BUXy5Y{R~x{Z1Ukr=6@QJFWce};kE7~iX6xA{J=jy)CtmCJjb_bskvKH13w zTKRUATs2)Cc*BBv>KDuW3@C2qaaZmxsY-bC%M^Z__DuRCs>Ame@7jl##tIuhy;Nos z?U}yV*;}(XUD|v!6zcu4te7SjbEux5>phjstyVbT7?T#4m;90`?W31RUdLSz$bKca zvuLGodbQ6sJD?0YJi{j*(Wdw6x8{x!5T`RQ0xnn0;sbgdhELsl4A_NE$nN0?7rfHt zcO3PgjnB-c;6rlJZOo<|7C;8nxb7x19}7@U5c9ay?S2HZ5MT-|q##G^=X9!TQSn(e z0e)we%~}RcOXnMF;w_z1D3^~Tu1#4W#h;wA-PD&=kRWi|x6nK{ks_RfGp3i;OdGK_~|0qICJ%9I1< z9-zCgoLj#3IvYFR8F)E4Om;9j&Jxw1nhCh;&qFZ#|XoLHQR9etvgfu(< zNkX{miR|OTxUNpijJOG#XT@x4k7;^y+0+NG9nv5|A{c_$KtmvdP4$JAxuNi~v1J$h zi|Q4=?#w(aGTTY)%gBkWNGL{y&IEWyX&bdE3?HwfBVtl&wvT+8J(g#!mB7F{uyRa# z1;9qW+$CzkCKQm_x>K#(4a+_%(RsVc(+!l4ltD>6=Y*iuI`SX^6!YP%LcYc3@tduV zYb*0@VK?@#8!Jd%gX!LW?SGMNyG2S?mmta|R&gKszNEJ@l>|%fW9Y~kw3!e4#UxKV z;c@G=cJN?_)&Q(g$j%m4_;zvGUQTs68VV&`EAh!G(9s9tNa%B~9lj0f1E{Og{BJdo zlEQr_%F>Q%t9hl45qukbgD6fIHGr&r?X)i4_Jg2o&d;3S?yw_G0h1-x zVa^0i&52uXHy;nmOpL2(!nL*S(+kN&RCtf-A_729mvh9hk`@yAroum2H_xUVwQXtH zA#N2}0VOAia!5u$=9baFd#-qWze8>2JR1R3G#$UO>|62%IOGIl= zj#LxHJ&i1;h|y_KNU55;_@aX`oldbn(C|>weFOhgI@q*iV$;$CP=2VSXV>$XZ9%<` zy*zpAIwdn=$t)h-q)@JeAAP6};}lzft4|H@03j14ulyax+ZrhxWxNd|@ zgni+l+J7vXuqL zAG!}Y8+O&MJQmB9TT_hdIlhvcY1k-ZSDR(NyE^;mDUP0t46L~WBGHy_8Wu9EaBH-7 z_T1MQW{4g8)alwqrQ4NIxP3Gv*(q6OuP~ByaMvO$D+PMjHf0S|2h*Y$YO8;;G$@C) z1cGu{7mOvpx3j|cMIZyaQk)PulD>=n=oq(3-}A#6+dJh;SH^7XL7_fss#9GQ5_1g{ zlZQ`CJ)@($U(ZUjm3qTMK|XW$yT|r#m4F|w109`6lQB14!)mK%Hu<7N!{l7!CB(BV zZIKSy`@BjfpQ!*(CWaT$ZL5!@4~AfVYB4kxp=OKMq_Wbuw%ll#Tmdpp$0zy^?Sk0r zAhh^z)OCC%uRlCH+oDwu@(j91kEyKp0D)X*`?-+^^&ryRtEoRums^Io&Gdxdb}mli zlplVt-~ns#3aKW)8YoM^?Bg)68~u`5ad&|n8xJ5Y!yj~>`%1XOOv)Np=6mS^i3;>g z-Se-KK_YjD9<^e^VN3WOlEKCVgQG0#H|!Je0l5=OSC6?4^YX%#QujGP9pohJdic3qb@dMfp? z7hkYh#ha4&Q4S--+Qjf^gq>MkOC#=tb>>=Ab-%hD4Dj>Aj5r0@7vlrKk-PoO=nLsx ze37Tm9ZFnx;|Me06HeenJbe%H9)>{Vg)Hj!EMTlXc-(mUvQ-asa*{_2V;MO}h)`K& zqOy*@(HA=dlDlcM`bY7!cGEQf8E&%Ql6X)DnqjZC}rutLYx$QJU&2_PYJPR%_ZylA) zH#%Qr_3m0O)2${_uPmW!P!o$DY3hLI8Qa&?C-feJaDs%wfznd5lNqmRt_0B4^LH+n z%ok5Anh51Wd4ox4)1&`*0SJ5Rz}5%q?kK>lKusqsbOnSdFpdsRt+m|VCt{I}12;8k zd1skwn>D9P(G*=$QbIL`CyEKHs}Jf}Ny^}BsmWi>MBJ+I#@#{`H)IrpzFSN0MpWfQ z?c9z`21x~Fp^1Anx4FXr_r?Db0=s8l`zWy<^M69rOI=))QE!^4MItLuD0 z&ulB|%%Oyl?SygoBw9r+;i~)kGbjobAgWV#K<&dyD>=pf%crXF=d=-9>BCg;fFtDt zlo~Y2Xs8G>#mO3x!w}_KXT-5JGa})F>B44}vbIC{Co*RUNWZq591Fr;eFf98}enmp77?XXEO9zi_Y0 ztO*iAsy`Hw3XR-1j8>daJqj8#QmcrQe1K@crXz|v^|0a(GMWpKUW<_fL|_9XbcqE> zJ&z_s_aXD}K7SQ0356x*BZ%&MQMISH2 z^gWfC={q!sOYZo72vt*0ND5IMUW#Fj?;n6{W~{rK-!*Sy&gbFZ1ZfjJKr&8v=;QxCp|eWwAiyk$U;JK zjLjvf*Xcvkoto8cr_uvqbG_-?D$J;=1(BA)9W4Cs>$bRAGLw^PYG>h-9+GaL;k8gh zCQFCA9nqw4HHd2gGJJZn0rI(UNQMKR%sFHOfh@o;$xLmvq=)bF*+%Ei2`4iNyRm&d zjQqgHlR`UnSq#|)SaeD?d z;^|NGpfIWhhnw``f#4S86hp?_*;+fsLsQ#cE;iY-D=zu5iSFl%+=(WkuHb*To$N5` z)c7TW$Rr}->HK2%tB1GC$H_E@J;?<-6BY1%Px<4Mo1)Vgb>$CfwPos%wj5OvF&7Y8 z?N7tcht%t!s)RqjAP|R_?r%K>M599q2 z6g7|RwLS}4X0_I(rVj&2S1tHX84)!S$=(ADut~UHO@SzM31A^Ya#wk}LID4!QD&wt9tgVR8 zfOPPLPiiJ8X1bjstAondVKl&-k}s&Yp7#PzbbhDSPJ*NeZ}edCr{Q~p5n87Y6%DNA zy*_sszQbh2Zb^U5jN|;nbGr+(RT5uT_@Xmww>}wHmq*4eGf08`#cg#_T(|ouvJ8aU zpssn;3zV$`>yYBJV%m2?UGGHP(&$%uUkjJNrjs?ktI%2q~X@0pp5cd|u9@+>>v=dv zil1temkC#}e@EC%B_JNrcBADnaNM6O$TPjpd`I_>xMY8@8t;1YUq6nc*8PCe%I z4?A9V;^6OwFj?u-V)BYfV)+w_9`Fo|FQ$tgKK8)-c;)0c&WMHNfWkCA!9_dQuN?>> zpI$0p;;2a=3Cay6(L<++O@u4bW}V@k+eG7b#D z;Gc%eiyF6?kanIoXg=Y~8!rAx35WscIrjiqB_A%KiR+c_Y^q(RpXgB%y|uqopcD}m zh==?U#ki?yCK_K9x+iQ`U!iT+LoyRMd>B(!y7ReE+LJjq#*)<_w@|`zx}N&Ec!&+b zV(68ANa`($|ALeFB9{Ms{=tU$=L?y$kW1&t1ql29aoP8Kd zAE#LipZM}L)4tiOu|69IF<-0M*KJsX2RMNCUzSNPjBPNGr+%RY|FncP(h z3GZ1>&VnxE0I8Qqhkc3m*;I(YxtzNmd*oWr_aMuEP^y*>JtPR6R3s+p_J_xhel{0Y zR;-k>Uq6~&yn*rf3a4)AcMk1B)@Qe@e{yK@Dl}rb&H+eD_uqA0O6z^!QcLNUPKPTX z#h6%YE0&L-<1ChOJya@oo_~T3uyRIShB+@gr(8l_dL8@&-urE*-;XmNdp1SD=dt%! zqzT9QSQIm-dhgRNoXg}O%wa{Ev*dd8IUw?mgQ%o0Cx&gx#bc9 zO#{@3RG_M|nNEDtY3N$y+7(lbzGeN0$I+kxT3)y5{UiV3%=98KFIE{}=k2dHu-lMQ zzi6E)p$V({U|oR^xyrqc4t^mh-befK>RG@L?C6-CR>wxChKz)u-Czk_E&idiyIe^- zZ6(K#p!ATAu}$9724 zXH_r>kRinW8t~F3a9OCGdsSwkamyz|>rr_AOGCqL91gwm-h-p<8p5mM>w8-zHMSRl z4JoF48#IzrtiB>hb%h0JJ`)j86?Uu{JrI7=f*kxUDKeq_yq2sdS7G8<3WotsbGs)f zQi;ZZ)k0Zm8Yzm9AE5OTg*rFv&Y#aX9oV2S%V-TW1ZbCLc5%-(_e!hRL5C)*jUdgSr1F3dlR%yjP(Jr>EE67&H>7%X4kN>G6F@F4^-;Cw&RXK#l+ z>CPh7^ktRi@37}&7wDy-)2=KCZ3XmO6@(MfI_UT@2@7-^mmx^q9mhSkvG)n>Aen@B z&H*T+sY~AI*2%YJM6zw1pFm_oZux7aF;92o#6Dhcvj&6oD?DW!aO0gm0SSU_E|;qPtB_8fFnZtz3)GA&UCAOa8) zY9Q@?kCP9iidK>B5l3@i&8bT=iBI7m4HS4(oShf2hIkQhV4wMBC-qzC1HXl~9M{AT zS=hqY<{$FIODX|&E(|oX7n{FEQzB#j>D@9(iA8!A`y;Y6Y>E2!0W?=DiwBH@Q-hcd zPBu?75x}zyom981-aa0$t^#(N;>(eQ(N7@Op)_BgZkdG&n-Jm^@9(^HLvlf<5W6PdJEUnX zHiUF&T?oyF?@n?LAEiN`yjB!?)(_56x9~|&O=8w#{+Kz75%Ycu4;QlVT!eD*1G$Fw zl}T()yY*K9yJelE(vr4V=*>jBSJzz(Jn!#A!qE;c2V{YG(6J)8hdrnkggnrj8zBxf zJ{&BJ*lGJ{kO}o@?hS-vGd4v8xLIKS%}YpMb$27_*oKr_--gC@ns}q(veFeSEO6^7 zf?Vz64<{Rh*n}9DA=@a?W}Us~YzZ*qLPz87_sjuB^4l9~>uL}Yo?As4L;URWpW$Lr zybP>@o|XF^Gl4a|6*y<1po+#Bh!bd{=W4F~2z#f&lzLDs`8g(lSdYc;Dc=x3H?|4< z0xGBP;>2_fMdWlm3-88~!I9kq@K;#J|FB@&ZSgSArM*O@#gz9==K=cBI65!ylU1 z>y#W>fyt{~A{(y}Vt5A>l_qdt)%YfV&(`82v<_@R9!ZD31<5`=jR!=p;&`=3NTuV= zMDIY{8lbdvK$b~n!{2zahw+h~t}of)=d*w2a#nMxpgeyArJeL^a--CqpLeYi%Anaq z?bUgah0cS3yK>DpM$pkbSKAi{C#UA#PWpec?+Fh>!b zPPK+D)Nj5Kqtikk2+gM&M%*GM0a;_Z9~7QU;-)>)S6-v)du2h(`U>{`6KtK5``! zB^^Wv#{ki*lp9#4h2NAs*CWJ!Q3%-Sn!H9byEB-$mms{vOHK76&-~FKC1!ztqM(Ns zJc7HBXJ0uf+QVuC^RBXMe7T7v6~s`{smtbKW072%P7rszA>^Hn9A09{M#vMti~jvC zStoSlwbzq$bv9ar3>b*qfD&?h?JDp+oo*IMNnU~Id5LUaqq*nGwwP$Bevc!uo$H!k33QF9UwT_oVq$BZ9ptBS4s~RSF~0p8@xbNKDQG=WlakHruGz<^R7 zv(_sGMqgk4eiUZ3*45Z}(u|mK?QT|C59jDEa{d`ndQ|q@smnNXVG) z$NJ^|(pqaCyNUotYXH}m;H?%1uFXUl#8SHq)HyBw3V$A3r`qA@mm;MyiZxx&i`(sM`Z-|9ZD5F1^^m^T3&L-o+IB z7i-vu8TrPTlaS-wfP&&}85GO7Q9{I}Ky7Xx$TR7fYz)2+1c*g7wo|4b{5eQ$oWay$ z2L3IDMZ6JWT9O)D)CnJ1mP`BY@qy#UL;!6pf`1U zVQZOh!g+KOTddS*`CmwkoxW=sJ-jQLUQ!VNQ)6PX zd}fa3F-+b#$waT2s)2Df(hNi81+V$FC=F=%o_$ZZ#B}sTG-^ZepPwdL3qT&1^DUIt zUc1=lF#u&YULx~(X+UksDf|5)xE(5&SqDy@({|gxeoB@S**`t^1wy2BiHwXOIjK{S zo@-M$zPR6hs2{mIXqEN(HOKxnh27uaf6+U>p0Grb3)OnP8A%ww^Iu(* z?=Zz@K%K1Izt)5fg|*ZX2R9|6uwlMXbXjl923?bOVOM8thA9aQ8^++YzLo>`^ZC`j z1MbKC|b{Ax-R3>lk?pgMLE!oJfFW$d?7|n@XR!48Y z>4W6)g*2^9KGr?8Qbd9IAB4TrID=J)$GWFUe%JjOPemed|iI-KV3<9nOa14Mz0^C@)sfGAgkunnIIeo_9Y|DCrs}DcwsogZsP)*-EO3` zK3__u(Vw;6SFe}@TiAA}&~VllhZaICxM1i%Ezu>GwW4EABgx4$RQa|j^ zbqMtg=K{FiMU_D*+>Z1&U1x4zKG|hY6}-1B?evmjgB09u5|LU)fBeQ$#&?g)ufbs1 zF2G=UNtPnv%pbA@dO`Sfo|k^@&83g$8{hh)k-*{{>W}y`FmN?+a#-3TI}2E|?P9vO z0Yb^jVzfB<1Y#>V-)Wi?+8(MKg@^*#sf@|%+Y|cNv(Sk(Ye5@VMKlyj>KZDYCz=@_UE<_BXm(WkmwX)jOh>u9 z1d|fv9jj}>-$HwTfcWUgPS{mAaH7uii+XuPVYj`iS*WxGdMfXy(kDNp$e5TpEIS~1 zVB7$pI2t;D9YFNVEXQ+%#2;c}+V{+|k8Y`8(Yt$^vY)Nj&B)2>EstIr-1JO+BkjF| zJOnb?8m!Wz-NgzH%?AhSb5a_b09hkEhgbOc##4~_TG&A?FQz*HXm3{5&3~3;78jPJ zGWemMI4np7i|988SP<)fyC7Hek>)4AU2&+k1s7vclZ57H1iy$5pn2Ymu>3zlQ>#xs zzTlKi*MntAXgXAtnL`D1FTJ;fXUmABH~0=d{JG|Q6KWfH16aQUrrOOegK@LEr;|BC z+<4rBs2G#QB71Gp?z?sA~=L{_U4%+(#wl1Kt!cIhMVHTd}UDW1gdzt&oKQ7;% z5tiiczh9DxTTZ{fCqKM<(c%4Ay>G9}!OovqsQ2+3u>X}@fv`-B3Z#AY5^%q|_?&^? zS$77J@==FCY8XZ zhd})9yc$Se7G4KVECIw6ja09Si6Vnk0EFC_mL)w|2gKa??1{NCF__vJFkm@WNg^_k#teW$$OfQ|{SG;n1k*%F#Srr$m#(-?x)*8JAtLjvvvvP` zx9iAvn|ZLx_9FLJLR0G6V8Z!0XqAsa`oC#QdYe*_*Msy09rxwLFPm{ z2FPEA5PAHm7&C@m%#Duk%inwk9DMz9PB&>si0Oy_Lrf!DhAfSoH&VKmg}HP^HIqT? z?Qo!XKso!6`oce(ydB~LO`-8zi`WmFdo=P+3KGoM|9vp$Agu2~>wYd$2YP~fU!nm3 z96Es9)DA+0sRi$Utu?a46-$2%%fnhPmfKKt!di>|+qG8N*0h8hfn!oa+s|LeuB>qc z(#^V;ou_vKS`^lKeQx7sAGs0z{jugeP6#_e+W$Xc2P!@5-?JSq%N0)Z#z#;tVik~` zUeI&~u$!mBAw7$;USdcj{GnSZk+h@8zg>W#dMMiw67<7s9Pyx3F$X^rM8=nM5$|+^ zcyGfmeYPr*!w$;HqWydm5r~LtzkeGMCx;t?+T5zIM|2ZFqA`LtmIspHEY$w9rqAws zZ+Z8xY>Ykg!(P>k4#7hXdzt?s4!|s!4=G9_{EE1O-$vdcE#w6k$+w8LO*`ZW%GBhi zv4D{S+j?!tV~jF1_g58ufeHqf-;V>F|8iESJv|g&%KfScyv_Cul@$I@8L3`KwYt4B zdg$*xLvT%5?%-B?=@n9r%1*&KstqWO;2KN4uUQHJ%?pC~R^i!o4Y{Fes;4q(F%z3bBl`tG46FXA>_*1GhMc5z+YdrNGOV*2&J zxBzz#;(uy0aHRI}2^Iw78{G`}Zy%~_G_l!lAg~_OZa9EAfYkeT8WLRvcfE@F@tPXf zor!?^t7BF8-hUkr#jt`9uV##a90Spf+OvdL?nb0V->XHNz(=p!M>HY8U&Ak8Eu=cs z@4Oy~*n`|(ABU?G*{_O_+F|M}i==*0mFc&eU=Fa((j$%w@U)vtaV^~qyaVM7f%%K( z8>Y=@<^m~QbC*P`9NQ+ybro~;tMF(CXRP%6`@r@kc1N)rmkdS0k=YMab;Jb5SL9vN zjt=4Vubcu)8me*!yZehl<4=J&F?YMcAE<_D<{Rc|w>n;r|WgN`R6R7%t`(V zl=GppnNA9JuO&2_L$Z4GRFEh<``?8FxWmrNMm{iGZh)YkMqhk3pYij7=dL?gO_;+) zShu@ZHafw9>GL}F=L4&4uj>lZmWxLht?Z)*jDo2eyXB7haPZk4Sk6`b)LNu-4(~+i z;QX*;E%tlszUoprJlBd+C99ayHxCHBP4~ffz4z%-rLIpSXVa{4FyGePR^ru_qpPts zwn=!@<^3<;YRNyz^WuC5a+;biJDgyc)pF-lr^Du4Uk?YS+0pX&Q3qm4`Tz2&5fAL= zm7_Wx=Pe`O*v?NEgD>ued4=QfG7d_(Tmct<3l*F0qFI6IW7`HU*m%ZLWloc2#(bm= zE`q7m3^dJw?wK{c>gLvg1W2C%xaD}G144=o=!1H!^ZU9QSHdt%kKu82lAPDHJT;;4d$Q-BJ_2v$5SzQZobXUZ#7*WQ=dV zPSSg}Wwqr&MOwF+2042l)3nWLRT_R~83S$?iWFi}-YNMS_IkJqj(`1sZ*(8|FJ5dM z&8mWJQQX{4AAk)Jo>Xu>O8q*dzuvSgRw59d2yWGelA1y! zXLUp6#gqLG)iIuBxH=UGqtlE!%cm2IEodOj!D=f4|p3lUFn_2XAG% ze4doJx~+*0YO%K;$Tgak5#3Ws98u6iGDBo8h0n=c3K>mVkh=Qf8x@j!|Cd9bt?Vc> zmo8zcTqLx&bmTQQ>N=y`l#5-|Wm3~5ALE3+Et+#r-^8<<1?4Jp=%p#pj=YMSZa;E?hI;`dK_zq~E%9^xRGmiM3b{8%p143y?wj0m|ISQR$R~f#Mqj z-lm%tQ)Ws92l|dlonD1OCrY^UT|`CB3mY8UF6Qq}`Kdq?Do8~|NrWGsH7$O@wQ7ow zzw)gyd~9rIU`q#HxU7J?ek(wE3n4A+8~o0{ZyfAV&5qN2oR50J;b7LUV&RM<+G5ba zNFmPEHrq_h&n^)q+Fh=;_gYQvpl`9{m!zPO$@|mZ)MFA-z~%2c0u~2=_uT$3(tjZJ zK)9jrVacw`VqGF8ZD1$~%XviV78s<4f5}bB8%}1jy@s5DBKoTsssiEOO5ls}0P)2z z4HaYRuQ68mJzzTt=dm#Pedr^np`EsTs_unzo*76O9eTyd;6u~+a}_l_w{l4_mdnQL zESPU&UqQ_?xP9~+P`B}`)*%yqJ|eQ@gS&Eur6fW>DlYtBX^<-Iob({yRVNA-xty8u z$-tjle&+?3Ix>N@L=x0%v7##1=qdQF!C=eNxu{?ES&R8Br*+OR)Jmq zPMf?KB{_8d9B-*%vSUli{F{3}-H1ks=;E zt4C&?j8Xzk@AU%o2n+lZ*nqw!sZ**SZ?sv`4zhOXcl}Jjw6&K=zm{Duba$Cp+m1#x zcfdl)F|x~Pq2fT#>Qz*3n$gJo+{*8a+)b_JA_G0j<&Ce>-XxTFW@jUM&yqs^)K8MM zqkdI#FD{CSWNAG2E;-u`)Za8W&ajOU$EC$r30?z3ty{A4Zf{dOX&%w;myj1TJLaX) zncA8Oe$p}!)ShmLfRGJN|8}Cr`NfW@d)!Ti>wt&9Fr^x&C;;Xs8q^+udcFn7-gQiI zkvDOC=bOMur*Lb`ZFPap;k1T$27__DQCw|r>oSQ*gKUk>mC{HhmowYX&?ZXwdeK({ z+aGU^Ky2@rQZ7YIdh=5-F1Kp+&?B46wX8K4xcpRp@Al`>A8~D>?T*KoR_+x(bf^pY zp}MGmukKd$cz2vS%ra-fhFi|i>q}k^^^wu|;AUPMQ0+-B*@{aps9D9lviuR|Zsl3i z!uJvE2Ivx?u1@RXF2ci~&ysTu4y;*!y~GE4nCf5#E?wt7^-L1dH$n@n*V>W~LFM`R zzxnDJxxYF|iJlszxCM8dc_N^M569O>-_-t#qRWMsRU|HI&^_t*>FX4ue#JrkyRTgn zy@%K-5nai@5jPr^=}My0^XL-kWzuQkd3QCRM)Q(qer*vnsXNMD! zq$Wa!uczTYMMi2NU%N8WKY0Es%E(%{B2Ktm!uQZ?KpNfnQz+8fKRaXuDjmZODILGU zWt@tS?=F!#QJWtUl-FBnQm07CtY>-z*G#`shQT{PL52@MH=i5hJ72&{1Mj|Y8!xBl zfpCXAu)^KuxlITC%tL@|!vwjG%9pI$VamU_Ra;fx$B<9K+kUr+Pa zi!FjH8O9~ox@mr7CxkNKl~Q}V2;EV_!V^q2QIeMEiWe-93veCizW21+#cs$oC}Cr^ zgFO(Rfy1&X*_|ul&&o#!J1i2)!)(gkc^ibNDKOO|qHd`2zJW_YMwVs(MLmaLAle#ISN|7Q+gV+k6I-Adkz274ZF&F~TEhW#X2Kh<#i-^52e z56WB-!aj+Ht_n5dKPAE{;7x0tW-+|CZy3?rxL#wjK(z;ST+A?i^a6xO)k4c!Lf4kx zxK~`(^TU|GsRq>A*{?tCbDX~Uwr8NVD0r>wS1fyHg4w7?x#v*OInd;9`BK5oA$uon zjNws(ph;aK?+V^+tI+mR^yYZmE5@QDp;97JmJ*QM7&fS6eiiVX@xy*q#6!={kuW@O zV0BJ1@9<*bwQ*8r|IDM8Ut2Yy7xI0V)};z3E|1R4GB$THrD|0&t^bX-m%T&!2ItY_ z7g5A~ZIBV&xNpyY=iRur!|`GID*Iv8MN0m5#5D!(#*TVlk%CcZ($%#;`{#1xM=r-L z`yuQ8Cm=a$TUKdVQKf72d&z@AugIF4knDRel;#emN?oU<5RMcpdPZr)EPmt;DdXoV zwTQ#2Ac~c9?L(Qr&-stWtp4mHRbGlY3l|i@Qtu%>qY^3RYwLfQ^GTw3~zDq=7@G=M?4&!mo&i2VSmodJSERZ#auGv3tPgV6jq3EJ2 z5%=Jl=REI$??*?8mG5%g@lqqh|8U8Ku%THvM&2`rfuor?pp>qSAnn~Th^9;sSN9E| zP0ZfmI2i~AR(*j}uDa)yUT#L1($JB-zDEaJCS3g%WAV0D2EFUo@KOcBSM)|Hxs>LH z33zX&Bs5tbQmVdwT_4`j4>hYf(q6ijuu@!mrsid7n&o?=g6wWHqe`%L`m@dmxHKr- zOOHP`k!j}Nz*wodAEUPJrfwvzDosL$2;Y10@bgnwj`mmW!G4|EQ|R=gIbb>zo?jwS zUh1PXornJGTLv@*?Biu8T3uSeYtv1&WojAgZoR=by5y2}y$e_}L+(&+`pD%ohI8^X z(_C;3in_Urty4X;@4s{H65#IHmzt*z`xDbFx|Rwo_R9-!8;|p&VyL#dQyb0kUUm@u zJg?<8c>hpw{he0v)&(&XY0A(-C)EREimsat!rS8^Rmv;dR)87{1(iOTd8hHQ_z)q9 zV}biJG}j;FsN0;TG+4L|KWK8JWXT>zXn$rDzhF8_hZzHcFn*y@@w{-$ytGI^`9i}k zUVDI#BF_6EE=b@s)Sj(hHPrmkxpB*IEju=PkpjcBCQg-Wt+`6San!FFwyB1Mf`JP+(zFT+Y!HXL2DjSw1rNMF3Q`74b6nEyh zB(1u3ifCVc-MX74bVfDSd*8m)ME+18I*q*{Lc>4}?XGO{MW0NrfL0Z0rQ=C&M$84b z0Y>KRH_Hnvo^w*;C2ydS{h-hkFvtWmlL+tLwrneF>j_v+v39$EKHBdUjh$N;jl1z2 z`|jW}OVO=tgF%{Fn&S8pckY0SZ6G!|zUUfd`dh@cb%y3pap=2oL1CS9@*CmgZ`9c- zU3C01nOPi;+-8gGlUrvfQEMT0yfc0p$TIt3k2+}yJo-#>ZvLta9enGl>>Q;Qpk&=d zY|oUV199VQ@?TLvt0wo}B|g%Hsk8F9EVZjq&G0Gm73q|=4Kze@53NE?djf8GC`TM` zPCV=$@byE|-{Td@Pa+(fOM`p^C9<^MBkp~Pxn`2f=j(wOcx8*BZT$@6N)4rfYwMwY z6Z8xpWov@L5!%H_d@CMpasHHRc*bYxQees*LsY!=TtV>$8^r|%ep!|xDqctR?X<$} zh+h7f>0#jQCU;nrFfo0;pcy7P*#_S?Ls;AD{qtEvG1}>5U|((ez(w~Sza6Ex^Lx&{n+{<)omUkwh`i;EyF7%RaU4Y z4R(%X%8^ z7>-VCP2}2^w5D?MC;h>9MYPgZKIp!icR#-(ZSv>I@_hTeMK%TKe7pm>TIQ^!3N*W& zT~S&xTZMP33}xoC*PQLiw@YT-4$O9k#7E)au*AyuJa(Rc`y8kHd}r>yei|QXstC0@ zlULgdw1{EriwAkcnnp7uahN%Tk5;x<%Iki7V7QZ6cFeyi#Z;p)X!72yEfU%(kI6`d zoEJUk&ruc*E&v8(wHRVc6=?mz+&f#JgcMvD z={KrYJ#t>Hg|maC+hg1_E%V@uAy@q2N?@nE-=ssfIvX&V@W%=_>u+d8wAYsUXIQsNSE3h1B3X^cF|w~lbjslq6)^mS@}A0)SP z6a18$y!_Ax+$xjLpDn9=-TRRIqr2 zgKxFAlv$m3+Pl(K{2V@uTkP|8j=QB856taYU*T&7!f3Y=-6HHh8rGuBIJ@rb$IH$R z&MAVsou25YQ4;z6i$&>8)`=^>uU9C#X;O$97k9a^DBV<`atm~(p`W-pL$%a=Sfsi%}>V8gbpX08vidqBpce}@n z>AF|2?>C~=h!okKdMOHw&xB}T#Jcoc;EDJahMRrvhuEu1My=#2Gga31m*(=h4j+RD z&s>d(zWOdC^4+;+4KXZi;!66cqdRTKj^-X@`y*RpbJ-rQtNn{ls^bg#wY#2+E-n>x z?k#PK$jzNSDt~`uFsJu?!|`*RcyDROE!l*&vW**FC0U*tj~`$k&t5XnMC-kH`g=D7 zrck_S>ljXUDJvuYG+Ov!t3{-qgn2|+mN(~}jqNP z$`U@~%JZ^{t&f$TUeR{AYx8n*s9h!)*)iZ9nE9?aazsclD8U(EL;Z(vlsSTtuQ<+U z7!{#g--SwR&`BR znGk2!u0!{IeC!ox@p`sW+)?Mbh~9}vM}w&Ck%Y@Da~cZ~k|m2}!oed6=l9Ge4e&?& zNkmr+*s+3L-V9g1sd3@`zzLkLXsBtcCi=C@D1zp9ZT<%R>5r%Ni-Ou>o^ev*CyJwT zih7kNKaip8pHo5!6YP6ptA40`&5i zrpQ?Z^+UhYdH8L4+QmU1)?M`UlVQheeZQ~1(Me+G5CH~j!p}#eo3tnyALi)DO*O#} zKTY2GFTGw%soM$OTG>CkcmefS-L0#}r>SUIFD`u3Fi&PF()o!O!3gbqYs(!aO$FD{ zKVj27VXj8>@-4(EdbR6b0#ijCOY;G>+_XjL7+Bq!#ag|F(B}y3C@q<&hVOdC%%s=}9Ff!ozMr)4tYt!8ei;Z1(nrbQx#v&xuv_;!} zvVQN)OyAiJ@8+gDtbZz6a1@oE^pIX&lSt=YG-5UC5={2lSL$te;`u*0Kj-Ljrnm`{ zY!TQj|GxL)IOUPJCJx^N3a<_aGJW1hsHK4)nTEO!^oxR|Cn+$v01Z=tb3%vDu zd|aVhMAV`;cg6H2RUZvw|M*lFb}n68V70h)r5$j<$z-uW?bj%> znS)%mBL=rCrZog8N;%H8B2t{g>`}YP2Oj$nM0@C{&vTbc39tPYZ7nWKGFG-eT8udOn!p%j#>s4lzi z&{^zCkZ+$I?R@Gw)8G7t;m|!xGd=0LK(ETJFs1N?-xfc{i_`Jx*Rvf~3uy*9iAfTh ztN8B$(j-*6)$DScAc@gd%44NRabT>|A>DSy`M}>$Dh?Pqc{ooF-M%Jm&VFcIf9~@9 z>yC9NS-mwfxCv-Va#Fg@<+*FyUdP+BL)JM(jz*`Iuw{I0R!+4Qzx|jE+4_vV)Q;%>6Z9H6EDz-O_w1qfx9XWe>P&pBv`ZrvfuaJD`x^S@`DF|9rti znV2;8>eDh2!5mQzN@7wqHQ~kV0yc;J5BD&QepP=-@;Ky>_P97xaLu3|`Un=PChfcZ z7b(d5{IHJ;bQLrMhY~<5-WEzNjeOtSas0kn*IzzjS-3n$vDY{%8Ji@ahF1j^92ZAC zkhM;fOY8BCk_Ta1b(^!BU45S1=;|EK5gtSTVMNv}?DU-1uVh4lB=h7c&OG z!y*SmzdTX?QC*^y(eK@T=6=`|hQVaqD{o&vBD;&Ud{bhYQ(is`^yyoY389tlxU}f* zslO|wcYE}SjL^#F8?W8?eOyO1WwaxcPuafUPi~E4p%0VqmEU6Bd7ikRHiv&^Pf*pN zi{$Sof6a)+UdR;ea@b?lWc=`}^fSp8U%hCNmRVGob3Q0ayub+sjugxH-hRLn{QjUfF)yL)z%W*ZO+|GZ;6KH2j;{q+?p?&Wmhq- zZe~roA$XuiuwwCpETWMrOMwEKeueVJ{!@yj6&hIAbKZWiLJe*;_R z&^Gr9OPutZ4BW2&KosuxFhg{Y|5h+smFV4J?%=xFpB1`Ic@6!I+9ag#3WXATf9eC^HMnGK$-PdFthXtpm!G9nzupB5wf)NZjOUyGBhRh?hqc%<5&1vx?Rl- zZm@==xXo{Tfl=6s7qFh~l>^2M42)FJ3FH48Dsu03#umpePLNX|4}($6-9N9C2B`5o zS9;MKK30pdTwZ!pPW?vRe?#3~WOzwh#xDDP%KG_SrD8U_XfM&#Nc_Bi#WV8On2^H7 z0F%e5idkKmk)_3b%lr?$n(>YJT+BB|L^d{1TRX2Q3GPR#kMFqbqCW2lC#`oA_IHYe z)`+ZsGY6PM7;8cAI9z`!1#4&NZ*^&8Av=Y0kzjd+TR|A@)5gtv<##sxu`}ER+?qQetIXax%w4hm1}m2Yc|&<7s9~l9ZbZpIK;n zbsj2weJMSg5;K}d_iZsjfB6d8K?0!)(P2eg0r^u_Hb2#@^XlYj#ee?|pqeMnb9N~K71z4-0wY#4q=HEYtqw-3jiZJb#|NM8 z2%GnLmQ_3fo@;{5)8W508!1E1`yVPU#+CJSB(zmHZe{4vEwJEbvc4Xbbdko_ArNOf z?56(F3NRt7+34tXl|z^PEZZ`E{_^3{u^nqCk+(A<6HG~WUR5pAI5hfa&uM~FWb7bV zD29kw{Q2JHtn2U|)V0#2RHM1FIQUwBZ}Ptj@n$4HI$ZU#M`RWcx-QiZlU&sOBX-0! z#Py=^fNO)oE5O$Pm9Z=K$j+FnA~)IE%E3h@{l){n8WVBh>&c9d%9yq8r))g#4=bw6 z7ByYxsl#)oS9H7J_bCVGU|ONY;L78E>KDuFab9)y%p>9zHm`dg5Pvg>_k4H`;oVj( z8ub1&69@>UJyIo`y_NdWt0#!dutJn7w(QltxtHZ)t1E?@UQ|}&Bk1?M>Ae*n0Z1Ia zt`ugSRr73hwbC+Gk3z3}jdhtnHeI51cf6$g2#jV7cBvmTA-zN;vPd$Vd@KYT)jlyVj*8@^^!? zIE{&GdIDun>fv*rC{RIc_S%=gWUrcKTYEn6>f~*ra(wO4Jbr2Kb;>O)iT3j!W;2fN zGYPSTH}pJBd0DgeSzze*eX65`-J|0}<-X?~sD5LQiUZ}LNeltP95=^6w*sY<#O}Q! zLe&S7d@TgGj|hZUDz!WND1STKeVSMurF`I2%{oDFi^TibgN(P*#SSK+CJc3M9AFSz z5Eb`~ag>luN<^E{bPPSZ;(7Goz4?lwO{7*uCu&vRsm5lg&r^8ldh3q$dG;YF9D}5i z$2OJ5w&wy=a&X^e=sj1#Z(sRP8u{4iqV}>(0K1E2++IqXK`M%DXY`5x%HmPIdy(+a z)yD#z67Po-k1U-jt_vK7Ev^QA0T?ooNrPzpa6U+Kb7eYfHdI>DvX9cMaj%eRHDoOo z93Kh1-o7kFI~z>^*Om`P$|i@w*#6PEN`-3_1VQ7G9nD^4{XTRSEAU-HI zv_TCECW6i!#KYR8_wI#}q5?03DmpdhAL>`+Ux%Y7ZHL__VjfYH$ieb; zjr%CGTS$Q5T)_rS%L)dM>0yl>(qHLz>D`?2^t?&|<{22fKg(6$U+z{N*_>;M!{Y@=|-a+q$uRv*|(a znQVchodFkSy2^W0myGBMAbGE^N6g4Kz{9Nv(Xz)-;Z^6-Ni!3Z726E@=Az}4Ow{yo zn;9~KK%pxezKMeQaa(^9w=0{FR9`wA&(V*C$oMW1NuJbK>DKzn_B7zfTaa?;Y7WYM z+Q`cgeAl`Em-*suO|b*0C9vZYn%*#z#FR^2NhV>S! zNa5t1C(1w_245mQu${D$OR4wWmsIdOvwdEkuj;8J>pVk6lBnWB788f1=lMLz1vG8w z(^Ay^J~o3ay%O$@mGoGz9DmNJw{p#>4S7xjM5os(%UP~8% z>{jxUx}{(Q#9M{tY`Kddf+udq0sX#L8)!!>P$jr}qu0Ka(mCgvyvKg?p;eWL$Y=!_ zcR+HJOMpbxt|dE1=#cY#5bl@eUtQRTXlWsXjm2K<=b{JZR7Q1# z)C;qFZz)wq)?_!INp%d4mf06kXCAHkJ_q+4`uQ{N?-}GZEpNUyuc~fzr8T0zc&jz_ z0bPSX&*lTHY$8vLiJqJFbS9APvU2)7AFokCneK|R{pDiz`Q4NhvNypnx9dtcdAn9m zB(!xjxq|qB*3naE&!lNoh=v3Y8MplI^Gx{;mt3NmLTS>HW_aG7Yu~5QQPRHc3@YiN zkA5%1XwfU7n%i7FnK>#(;+@W`JP*Ax#ioXr?5v~m`~3W^Jh%6??GG9$$fUSn9#VH# z>ZI@Mc@Az~R-ijlsQI+Yr%iXz>MJ^ooI3xRl$5;0ox(H^+V`c*6)*U(2baI1-o>OnWXd-Z% zoK^nx^GjTc?4GLaws=wATohU7)u#R&b}QiuyYc?LEL=)14dR!nBhX4_8}7^6)LC#Y zDXTclC<+(EOUcG*MKj01Va%dQg39WxTmrK777}nY=?^gL(;xd`e*@%DSsQb++G{gF zsUUcA)B9(uj&csiszs8R+Q=kp)?!G_(sp4LDe&O$=Yw781A-TKodf1wG=+_Y9-_6?YQ_C;TqUH-2bNAb`(L z+9PW9W&scXh=9qH{K59i3x8s&S0f{Ca0od3zE8Ija`gza!XQZ}{b0Ff-0}_fwlqC4 zi)qQ{pzBCIILq)@!A|}MHO;!$oe_77>fc06-o1D^g9~|~x!!O zJNUmpwcp~bgz+He`rz`R*5EIKgHOBLEYl9w&?bnBlH#6Zh`fTX<+NjjAQ3s14=E8? z0SLDvRhA@`$KMp%&w;q>T2rhvKFS*ykNc~pYMz-=u7*+m%=n{vj503}4m;!@p{8~i zQc^u$4PIOtfd5Xfc^!M*61GN^dyrj^~(n>F<%{ z9}bJjx?4E+X38_n%u=Sf-R=;Wgsqh$k}cr6Bm|YB&l^pEb4MXVD-0>5KKDH2kw+L$ zX6YKp-EVBX&*YuMy1;e?L#~_yCD`UJ>2h7};v}RSh_$QeDgl@y!jng#*9pH9H&EarO4DI1>na#Dr!@~^!IL1j|#w_zD ziQ!S%7e2VzdKJYC%#|SddnAhv@Y9%JCG`2efgzyc=$dhCpmeLL9=JLtC{ainDxzVq zjc&^_$*?z|ucVi1Q!JljNf_YtEXqa4{vvxR{JC1(`%jZBBss0}K$y_FlN92~cNDwv z0)|+y5jcpu(3yGA>-aTqg9{tK;M1QM{{)Q4RRMSQ!N*1tvefYG{cF~DYZDJHJ%dha z2qT*8hcb%!0_|Oq8tVG>dsxwgjP+z$x$JNDT^T0TG?lSpX3B_r`UF!>3{ z(ash4zbugP-WA(&S7i8iw{5e1+#DS zee1ztu02&Qq8;2H$6Y8bdG_Hen2yUx6%!e~ZyxJV880Pbb|gIr|C8dxi}||7^new( zf776JsyW#Ef)j~+{SRy9OZjccSO+w07BZs=z#VuHmc(vfj%Oe8;?PRE84(FXGQJz9 zt9T6K9Do9k2hhPxEij=NeZTff$^C<^ZIAL14i9Z}Qdf}aje3c&%9yF@C-jQ5B0Ee| zGV`Wb)U)LXp&_~Sl%@< zfzF1jOrW*ye^_+H2phOD0wfOfO7->UMR&yAnl@m2j#3qpCNAUS%QgA~1(=?r@VkN9 z=yOakcuN{h`(9#iz|Mx~d_LR1CB+kmuT4J^J^TQ?f_^$T^2Wp0_NxE45B`)(m)1>0 zX5N*U5a+*y45XAM<(%tE8b=;W&BVb-OqR;=9uCijyY?=n-0Dsi#mZv46+w0bl=xV{?If4&<6BuF!zz|zstYFaW1Vl9W zOD_85iJ#=OIlbG|w-Chp&>UD?(&6eB6GUDYsBV9Ea&n4>{<#zHb-PZ8HI8Sbl(8ok zAu-6TpV#C!>VxpWHPnl*QIHHX^2`RtISE-r+c@9j;*ad`7a0G3hm(e4<#8a$~Y(4m3ZeNvbSRQ6`#0hVnRk9Kq2gs9V1|$CUq0JR`;yP1BJRBk*pPsmdI{23=D z5}$I&iXzhQ{T)zpk5HA8CVYO6?!JQTRLmBz?(PqE#Udx!BQ+S%D7LWq&}bKS6l+pfL9YpX3)hr}Vq{0T z{|`IL8Nl2)$f`ava82LWB+}Nb!g!!X`Q zpW0Y`;H3K=xKm_U=lfbaP|FpGr>?QKn&kvP{{vJ2&2-F}%XK?r!R1pdp0;oO#5S;Y z4*0uXgY%Qv5$@VyoEPnE)p_@0{uOZzOE#LtrIz60>`;0M&hiVB_{ zB>Lv|Bu>wdA4ZJFFWeeP$aX|hml!`O_}2pJ+JO|R1y1v-1z_p_QI+MLSS`#Wt9^ze zm(0L%u&J=aO;7ON7Lgsi$7$BH28BOgcxmXrTme8bocs*S-H0CG(XRvo)2fof?gIosAKX z|14a6vXy*G!=Ivr*X z2IJC+{~^UkKo}V@&z%Qw=phqXDxA35>mt0RVIZtz8VlX!YOn(ud`0`8)aqh? zaGD9n6}ZY8zTM7Y;<5pQkdjV?(smfCG5j=^kZu*2FRGVrD+H33)qNZdNJ?SOEX{S_ zT_1V*(MrH=$oh_tz2`<8zsd$;M6&nI^8H_UuDmFgFD7)|f|9;Ln!!Ot4g-;Q7c^?D zreprkZ>Sw+Q-y;Ogn|DO7*w9TW;TUXHwb#^AYj&D!Q_<;fwD0BA(#sppT=r@s0Ho$x7`|Zu%haHg0 zm?Nx-V&}@(@0T@niM|HY{VnXkxY^5#i5wGJWlz&~;k%FK^JkD_a>2~SZ<7CPMWBqM zaWTUSkpVSz;r(Wqn9~3G5#hCan~R@w*I=S&uRHV?E%DE41^xz+msXKgpWQO#k3^(H zlR{TB#Su3;my&wgqqXxJuwh6Z5n1B@uh!l>9_#)8ALk0$*_7n6mDMnk$j&GvWn?Ea z5+Nfimz|Z&h*D@E*;knrC81PiMv}7k=KFYFI_K2qeLBB?e&?Ug?Hs+lUeED(KA!i- z{c*p83{r{tz1Tf4Y-~GVqkX49t{~Qnll{N13#^VL#^F<5@c_XB62f)Y^mwDC-Ubi25uGPd_|L?CzrcjH#OwTg7bn@1+-g`j+ zrYybYew=!8GxaPNVJ+L~pTMeMK=!bp964@H_%7g?9PaKRZxhfFu{pjLcau2a5_!YI z#Ky|V5kK|pL-qu%e=!WfsQtQ3ux=5G^I)reBfq*?pAoSiY`IV*x<1x>8n)sc{+iTK>tC3*mK1WdFA(*Kb#bR zrgxA>0*$yLf=!eyU%*Iy6-Y@udD(E_mpuhbZ;~tkS`9l>FYp#c1gS5#*UNpRO94-a zBsdI{p-KM@G)#L+1#tbK?cyCksVu~WX=;Ju@M_SUvqAQiu${Z_^XIT44BQ&lywyhu zHqZwtN~wmTHHRxCWU0^#Q(Ce62SE?;r;Gw<2@no3l#XDgY4kv|EY*SH_7X=n!i7Klh8v8wa|Ff9q`mkApdJ}0=6ff+uPO0x}iBhsAI%m7+yc3vqJkb7Ob;8VAr5YHh;AbY%4 zgHF##)9hxD6yQU0L@7$!WZPiHGIJAHPk+C{77|m>ugpj)C0QW-axHRcoJW28?pkZ0 z$Y^-N0$#7E{LSp}=Vy4&wYg7Y9E$@XV16hBP588YJKfK1!)l{rbxV4+bFm0GLsHo-YL6ly$W1{9b6(E98o^ zst?>r*hi$CI@`xTFHU`F>Rs#UP4-*P_Iq7$BME80WVoTAU7wHwQFABVk9^ph!yS-~DU;)Z{ZjklGq(0Fo9@Ms;))6duf8ml9xRP51h-J5EYq zl2zq8Jrb{ILQ2p)n=G7PCPp4tUA5X+mGt3(K6^QyAY}H>;s`z3hxGD6owww6pqQW@ zG>*){;s@dOhyuE1lX#5)dCfNZ`m4 zh2CGU4ATRFU%YbR3@0;n`DfTv4 z{v(JfSvBz>%cY_l)gaSjrv+lAsB5C6MDy%#^T|$Z*dPae(xXup8=*p?1$(#qF@+uJ zW4*=6_jk%|h2(lzp8C_kPSwFc`nV4XB7TR3pd(`ol3s*2BEx-;nQE<7H$)nvhpkN7-!7H<$9Sn$YlsL>e~BC%>NlicwD%KywU{h zWWs`7yo39%2f<+z(p3H}-2q&v-u&-_s;_;&g%WW(zoLQy_FEi$*BRj^VWUPvM-J+M zTt!=LL8g~nt53*mDV$)PhuXip0*Qb5DmuYE#77LBcOb-XwY9d^$;UnZm=>T6H@PI_ zvEp#Rwd~5c0ymR`gwO$2UA?R09#vFMRAj##qw*O!kkTnECo3Bplsa*|3Sp#XVR2^! zB*zkN@6X9|i7+(~21z`K(cdz}wq$E_&Vbcu>iXJ>P0h|tiuqqru%8^5GwRPtcQ;1i z7VCokJU;y7H{o`NPFweHpj`XwqKc6tHdOOzJoDKSB&6_XzFzczGxqrcBNcwC_ic}}`pQ2)9LrnTf*7`B1_5@L(@R4{maLyP>x-!E32d}Z5TT!8;w z@Fz)lJ!e3otO+!5lXv6yqJs9{8`)C;OBDwGYAA+l9!DBa z+JZC*NLhI6+ml(*BmGuz3B*6_~jvV4MN06JY9cA zgz7)f;&l?$Ydg-#!R00e6ke>~$wh7|R&Fj)`OoBwP$9bo5dqA@6<~lU!z&6_Kp`P1 zQz_(h^_yEqdLwtq9+DH(C<&53QE#ScequMl436tgRE;o19N_?v>aIfqBtww>&^VAk zf{pd}i)LU+ZXdfCzIG{^v2H(}kg5^3N5( z-C#Si&OT9Z&H^Rhba`YBzs+}Yi)$@~K#&v})o*j+iYbg~M}Z1@ipD=)FOz|*z`(Zf z+ajZR#^vu2>I9A4wbX2Tv2tu0B{=!kmu6=&TFFWFt3vEOOIx#(K%L2ZI<4{K;uqDK z;`}QjGO89}tom0bKt$rA0V^~buG%v{9^~KSM=^?%TIEdp4d)WjLy`iKqFlV_9xiwm4yB1eyHfzV`1fv_}% zt7OS25gLWNisu-a`>!L9WhAlUx`>ja!UG3U-p^I(5K&a{fNG)GU1%|4tJ`Hi z=YB<=3CPf!ML$!qN{L-vHDjGOnNsX(b2X{S*bY6_0+$YJnoL);^M@1(aixdziZa=) zzSv-b(|!pV)o#l0wpe0N>d>@1`=;fDQU5<{9W8_b#uiANP}2Eo^#qe|o*JDB?~f}- zIIkwS;z&Fnr4(Qz))-vWJ$9AdRyqJ(X=HKEMyvf1yvyag!}E>bs*Idm)#l;jiqVG8 zUz%k<4PWWVJqfC;-AGi%J>q<+Q%`5xo~GYUy2~WpgH4dF2_JjODWFnu_Gvm)>-b-> zvJBn?22gS=&(YKFl#8D1_F-Gsy?400nv3D2R3A+^JK0wQWzb>=q=W~8Yj~V>_{7xt z8^Z4v8(9n=2FR~KVp9|?Ap*UT(tJqRw2Rl(Y<)V>wQ~!>gW#`KBYzp``+o#93dEJZ zYwi19x3JfYg~`rBpJfbDA z?xm5b7h8dPJA(~P!iJ2xd$>wAIQUKvy@+7#aup8=T&e6F8uFYZjaoEq)_QdtDwZ)X z7|4sF;Urrzc+UVQ*;!2CnSP)?q{ZTo{tECw5;;WCpg2&omGivh`SzAv=eRUj6-_G& znoN!spN@l^)+MDKuQtx<*MY@}P<6L*bKdY>@VyD;ei*UtB%Q16r1swC_@eOFJ3*xM z*jeY^#80c04Gt>oBP#5EQ%Ax8PxFP-eejcq0r(abCHs$_Mk0F%nD{u9UYhq{#{Co{6mD_Pkyhe*-?vP*%GN@{fBI z4Ng$~0w0%;mkcR?TXCbX-yUlwiXu($TvUOcI?4>EVh|}s2(KrrYVFeoBlIzBnL;r2F#h=H*59^`8$54-%`=z*V}6{$O?&8yT|S;t3Nn@MH&o z9hBU;<25igg$1cZyHpraGOMaa3K=W})H15Q5d9n215j9^-XY$A`f!G3-)lFgF17#m zM%Ybs5&N~{G2Pf}&`d}&edhIH_5c-LL5@s(c>^B1j|m&&hc^8Jmn?h+hK`^~O3G?% z&Ioc=i~YpH8S1}gT7wb(!o2h2JzYp@JB?bq&=sPd7j-u%{G&ny!FWQ}dp`1T7_P_X zif_2J$d`QEU3ZV1;{^#|)%^Eh#e-$Wd@^>uRz6X=@&>Ysley6vzwII`IBhNu#vV;U zgbWFU3@(R$2V;hgVu!?XROkXJArD42gLaYWY>|~KXIIZ5Pv8JA$Y6ia4?u=agpnYJ z1GRIf*Kp=g#Yo;&P0H`TP0jEw2=Q_I;abNusXUJv1hY!($JkS%DeV-=B?0f(uz%Kw9Ta- zuuLLeuSj4HIF2LcL`RX`by;;q?sCl4L37*qUIb`V2W)Yaoqh@sq(&Vy!0iRb*5i#^ zNBk;dQ}bupKu#Qb9?O#Vp9{aD{x(hSidXiuQ;!ozA^sdX)RuQ$?jt^MX;{bM$DqW#uyDA@+d1sp0C`{Dvhoz{RAF|$9Ivw>`2zVz14cj>d5 zWBLh<0$N4*&Kt3f^<%esFWh?6mGJai=dgSC5pBooG0$p^3_#eUfrXw7VV8dTUqmOu zdb8fZkvr-+pfpzcRMLBXG@Qa|oax-VSNl$_UoB`M=X)Cf?ig@0-Lz63^sk0yQd=## zC9Bj6z?jf#2zZeM2F`zP>wtMiXIAWcCf3g0>psPT4*{$*-B$tq)kB~=RZ2A*H&|{& zOIDgVAj3>!)&JCQW8M9P2}?1G?}o~W3xGLUzaTOx+Xcq(=Q7P$AG!scd4VZ)veReD zgFtVe>KE1ig^KFXc-HZyrXebJCywIfJD31Ua^3uJX70;5EnKw`^I{rmC%Eo_*~00p zi>xcfX1+(_&+&Y#a0_M2IR7F6z-B|UwgFMO`1!%Z`bEwwBHSUJ`Id@ID@M1Nf^a@2 zM+;amClK(-iWYz_mVo$Z<@iAbqw~?r|ATqhpfhU%omt@i5j;^Q_CSo+a2{@x7x2B0 z&PY80tCJ-4>--&b>et2%CRw{~+!b{nNt>;Rs5a3{#GNmn=`o3C$y9Ks30=f0UhP)M z_o&9p?0iSZVioHHz^;4tRUu57j6@MfN0=zp+J|MHZ`U}FR2Hr%N)K~CYx6^1(qJQZ zYWd4VaLj(Es@tFQ`MH(TgyvMjSeGkCpSDz1$OzeAT68oRvWOLHeHqxx1sr7->@vD=edUU{ybd7F5A zOw{fx+8g=v<(aA7Q~KHlIs8mne8S}K>3LKyQ6Bi}ve1<~#547PeF&`UBlWj08@odg z1dhQh-~?(n{Linf^=&<3E0F*D>{V~j$B=40tHK)!YE0}o{w!Q3mPque$7 zc)PF+(`wAoCUPpLysJ5+bAka!S#$U;_=DzJGPS&q9T@yIC%pV!%w3NQ{Rek=WeNM|dOl%hzW-In_L9Y? z=(Gt@tR{z3t*O-EIDVr9m5Uv@ef;7dS4j%#CW7C`l3tMJoqD_~g0GRtb!i*$(u*Rc zIPt)(!S&H9$#f3Mf}AV5A@ir!6FzEqlNJW+D^VSO}AQyZ3yTo{IjhYJP* zyRW%|?Ro+u=2@Pmf7m4x<(n;v07S6V-nA!$nH&xIN?^?0P=w+({&pB zm)q$DeO)XcIBEO_E3*T`Q}Ni>TBVVrG0v`ZivwZ%KOCCd$h-VyMXzjloO(gl!$wuM zs=WJdeu@~6{i^ML+qnn958}F+EJH@3i(Z;_$W_g8K?yc zgJUU&t9-RU%bRV|!wOhO_@bgPT~5MDCax&YY5*Y<&~`4)E3`8Ki=)#zxG{Cz*l3tsA-vrJmc4tFfpj26{oH9ih2e=*Yl}@1Y zV0BC}<7r)x!KkwyZydQMrASnhU&aG)by?+I8@dKcI07GD#>ha5smK7}RvI&_+-&By zWN^!R8gnJ<n<0v20L@HA1o`x%~m=;X}rI1XvcB?FmWCpUVzrrmWxnkknxmcaOE3R4q)o#mf zR*MT9^k@R!At#$_555b++9Absm0plyHFgd_ML^VRG`3AB%7ww4+eE9%=I*D+s?FJh z;#q{h&jz~C{*y=7>ohFM?_&9eJAay`KXuMU7XM-agk~d|cBME9jW2Q4n;EC>-bze< z2`;47p(x=6>kwoh3B^cCAyJ>zFPz)ViH`^KS1TVX+WNXj?n{36dN$ZZ5s@g;|8+N= zdbZs~4(r(b6Y%ie+Nq<!j-ba^}_kk}=)S!eYLNsfE}vVMtNt zD4+d~4-Oknk_2Hx%k?SFjaIFD`Q<|?K5W-+zCe=N zek;Qk56AdvgoI7ApI8}%owXUFV6H18KiwL-7w5$7Tvv`WB=4D zXX;ZK?j~3&v>`k8Xu1h>8?faHxW+DJbP)+}mf~5L0Whomm~%*zBuUNY75mpGxG8

    =*JXvkV;4(g{%Pa&i2$toJn3a@U8_#XGr6ahWg8W)gHU;Q9f0Prze> zCCC<%yow)tKmqCtG^RKCt0cA9V~%B=Ii9ra034rva+{Mx0ttc|ywCc6w2i4HIAchs zfYRj=J|R}3%%}7bKh4)#FwWi5O|W@5Q_rEG1ffI2n5X!I6a2DKMm`H> z4&o25&z@1HXBGkM-JR1`@!VJ=ILaM*>@qUB!siZ7c&|TlO@y^%;uUWz95SOX5`im1X9Im~ZP#7Ulp8XyXmgt050s=F;CAc}ajD-tL$) z)28jBGK9x$sM!4zj!YQr<#fdC3R1VpuP3ZhINi1}F$Up-6-QdKCcnOqBcg+5P`yuk z%eYU0Hur$WrI-bA-V@I_s9f@@9#qr38uY5CA-?OmU7S}>f`9$(mfSPf#aAXibT-j_ zh&EC$`VxKrrDiZdJZBn`A?nLQ<}^n>1qA}40C^JL$4^437`VS{nk~omysAF26V`3S zm&U{MK~srG^DWSL2CV)Kw@uZnySN!bSd|ggWE(l6MUB-;S2(NM~ zHeu8gGb+m2Ph{-myNl{k{n}GyzDrR@Qc}dW+pkJo*v$uTVUO+{>}WOa*ODK9P9Km7 ztN{0gTJO&@>5*q5J+IN3bN9f7%#Ilb`$2=Q7-1>2arcRi6Iu|TbGpI`sAw>8B$o4y zo<8-C#(}Bc#jjrRiJN%JrHT$OcG)9siw`3*MlGUw3F{E-3*DN!m|7gFf=t zcO@DcPbvvYjJ)Or_r4oSb!rk_?mNDP?DVs1*XDrJ#Z0MY?NrYO6?QXLaFU=t?-#fU zXuvpa9Fuf&=Mpa*Hn)6*!aqb--M$>>i*kbo*3FOtZIv_@Ts3s$vYat#R18r9g9Gju zpRn-d{)_=V77)08eTF`JE$f_ObXC^;$z2#kFQO(qfG@yob%6D>IU>|G;aE*=5w1T} z$azjOCG1l2GtNp#uO{WHF=&yWx3mgQ6as3W#Z4V$KpELU{3Tp55DfGf zlxTk{zq)ayj}!$IZ=Tw;Or%YlPU6u~=Z0!StWQG`H8WVp) zIk{7*@5uU>BX9iHzxkyAcwQe)1*%&mDEIDqfAG<$DrAROxqr_N2_(Qt=+x&D=4I1* zvlTJ_|E*q3XDb#kH}dIBfWj`M*U!9ta36Rs%~)TFYd57w%^+Up0_BAsAq(p&|;E19r*4@pLk@lZ+b-D&@0O0FqV*5dbR}vg}Zh0bRO7J#Lr(4?&PgYYK-8^z# zQ7em8*uWe>wzDsAkSw0Ld?NpA^d1%|4eTI9LRAzAA@UBOl$L>ZH=*XUe$e7SHpoi~ zM8lLg0@PrnMm{=&$iwQk!%%&C=^b-?27aS})=k??)Wpw_cp2b1Yw%b~Gd<~o^8W}H zk^BCa{Hh;d`*q!W{rUp7?pcz7qDjZ@SzSHD9+gbVx9PHY-QxCxZa><>n`)hFgD5^) zORp~9rM;s4+3c|;t|#D2CvX1Gl)K_x)ETW8tafMQwp7$9X(hCrfV6fmSc~M0-RZi} zLp<>55!Ie?r&u~3@xeu^R$^)T>JJ2+nRJn6$#xA64EPj6%XF&H#REZxarDS zLJryl20)Zs1iM$Y=^+wPYq^*|fbFQ;<9tWqi*V}Y%K)rCY?uV*2SHi}`S%K3(q&!< zzNx0!Rah-T)y2)*(6j8a@J#sLgJEp`5_jOG7p&XtDX88>i9Q@r#EU-EGy#BUk58G* zmhR=da>dU+(qiZ-cyEOYMG0=pRr;~uAsHIe`X-7LRPc+qB5`-y`7u$W)h%hP>$DN> zrWA@GGcN#OWLe#^wfi+jR zrh-9WkEj>kWBDkKXBtPkuyaB7nUWbxGoMdvYO_M@Qp8+d3*=^xw{FbV9m#qqWThs3>+7?AUz=lj&pdQXmI^1oZB-BNzXbUcd_DuBa@@9iMQUk@5v) z13Emf`1K&_X_agCGAyXX*b_vmFFr|1(sLZ^ST3_&FVfb!K9D^MDxS*6CS65?cFbnJ zG|O3kCrUU0;gN!kH zS~H>{x^+}7w4aUcj;R1A_9md|HbDvG0VOqjg_GJYlY@ypBq$-=gXpN|>j zarPiCQ;(h7S}FXnv1i2zGi2mRx5`0fdA%*ulN{D!o(Mx+qxQW~(diX1Qy0`V9c5zK zk*Dse9Lk2Z#0dwMU75Nrh2M$0(RHtgYpu1LX}VJAb&5_Caf%Ta3+SM2{DIL6~LQfjT z_ZI)LBprHc@r{7^>z~d&e8tvw2Lyjg#J=Hc16R$K#ckf+)G!$|Xz0vl@!s5D6a)gS zXZH(Mv-8ll#AtX!)GB*7FzAw>JH#JX>;spLebI-fLt{6oJLmo>b3yT%rvUYra$lvS zU49A$r`NP0h@m;;zlAnu#a1FP|H_zyWO`-0=#krBFVM3gN3^a>f)-qld{^+yMW1tm zn(d0efBF)lXn#sZ<)PHXm;6w{z<+5g?~s)&J^iCO05&CP}>J2`P}IkpRLOq05^12eJ%DHP=Ydlq+Esj zn9&lx(_vkDdV?qGV69rJi<&gWw?Rs3&vh>2;|4Kl80bA3DcW-TR2?MQa)yv3jtT;b z0Y~x&3LgkArBb@6;St%vJtU__H87FEkk9ISL=Ueoe&M}fEl35e?nIAumFfd#yt;Ap8UMEi4)5tZM(ZDyNJ3Dr zi`sBDs%xgpdM9+VPvN5rVj@je-(5=-HX0prpRae++;FOQ7_T*x>1@4ak#`440JLyj8)Bor#cF=!uq*<}WY`c%3{j+Ixw`tHa=9%{~y&-hAcS@=J1X{6N`%XQ97#s1I$F$%pF^HJ(y2cT#&7*gb2 z`?1!ZXtFhK)(I+@xt+OVAY=air3dYmHz^X0DLTyw zs^uSkL`OaXg66$d&-k)xNFndCx%megCCIIbi?OwO=Eu#asng3+59Wv!A%*(In#N;b(jl z6jJS9)aLPO?E({^yHaDOdWp~7P^wmBcH!a~Wl~RJ@UBnDO`tn;Zh<7%2}v|U-O>$5 zI@cf0EEM@XC(1Rn0WvSPlMkX!M^+sy(cQcsg)7OsXuW!Rlmyr8w>~rflJb?v*Ig-i z9z=)B1i#x0vatnb`-k|R>laJ=eO?YCTu)MZ~>M-JcjG= zsiLVSE$`JA&lUHfElnp#7XWPL2R90i!ga>Rs<}I8j6icB-JvW!`WkhltoL)S*W85m z7wMv1*OC7SFW{Lmg!WuQRCr9@X4LLBvFgFv;nr`$esiydA|G^L_FcrR2`J+bJk z4mcejgYRBb@_l#|_c1n&3}pyojoc+Wo!a^6X?bH!iaA$&2hMq9DmW%VnS8sfSJ5Ls zU=K0Bj}I$)3^XetEwzoomigQ6M~2f@UD6xhjy*}gv-a`O3sbwgvFQ0$h#?aPP?=c3 z0xV%1G~*%ge~H>k!*ds}mvv3m!w)ED%k8?GG(vm2n8D^a{reyL{d$2nj_$bnX%2nD z|H+HXbG2s&8vhY=49K;Hu;*>56?hN72T+1m{l__)yAECLU=j z0&^>K?zBkv=+9($9?KDCG^Y|E9ZrGaZJ>ZQGyE&j77Ni4^0=SM5{zsLbvSPsW#R76F-?*KVNT zV(qyNgqU>n1UXDvP$Jdi*e5!Gr<(l`xAYRcOjJ$GKdHD^?J`+SkogXTA~WGh)~7xA z>9q=z{<>}1gOvL!%eW=g-v)ZUdbqYql1J2EDuU;`6yo1y%B1fRYqq}Yi0@OHh^zs% z_~FSn2b$Y&Zr>w6Y#AxUR{m8lNH@KB`OUUiB2KRq!aappC|r}#O)rgroF1?C zUW*B}cad%`H7qs&Udo&Gse@_p;jMA({YbYk=$H#@RF6zgkF!FGc)6j4LT4O)Kw=`G z=<5)i;*3DpdEzm(B16_)sf;^wpI?g17~WyQ)wlKLy-jn*ZS z9`7-M5CKxMGq$MtO9JH0l01LpW*>u+tYWIt3Lk_p9fqSeMXBUe+uf+GH`7aL@-|9b zR-pVNeBTF)I4LZZ2rUj_vd!|;brz4@2lB1m*pF8LdmeM)|sGW_^Nk@ zi~7h1t2U=`YR_ioy+6i4o>4mU%GVGz>AVB8$bTK0Ervy36L{(mJvqq$tK`=IzR0um3Rs0pVAh9O6izK!&vMAI`K6P9pR5hJVK=?Tk)#-$~e z?!4Exi{m}EIo7lC4eq4r;fWaV0=ECS$z1XCEssvlY${3qRA)LNt(8zi8e3=+6bY~IG zES+Y&w{CNRUgsvda8nVwQ?9 zQWT4xx1it~ePsRMtJEjsvkV;`A5Q5fLt|7YVyf}|kT9W9@n7;0oGuz!Pha)(JGHQZ zVIZ6|D02dYuaCXoZxH%au)@mGhCN^Dig}bZ_pW!YcxFowe(ds9e=*?(2leMT$o;Uw zd&~AK_1(}neT-)rf3{%i3XNYjFGZ<$^AiuvyqI+`^?DJ7dwQ8thOjC#Vn~w6EBjA( zl<##PH8=o%a`)CE3+S#1@40lt4}?{|_p1_OBAr?QT;DEDeC`1#`O!&7!tK+W@1!&J zsVvn#fa)X&O#nb*(|vF~97_jZbodLvdO^6DSvz*Z^lNDQhnY`v^?g%PGd=5R4|V4H zPqR#Dj1r*tuNkzL&K){*h#*B#IB0R69s}f@bONPaq_i8_RiNK?W+@@_?f@AOV#SHV zPX0Vo5OQ1a@5n9f;Ys-w0`Fa|OS3I8zB-CS<_*4g&B+yLw5fnb^FE52rVHh*_DK(* zM@FnaE7Yj379KjQgcT%uX{NI(4%|-pjH17ZY<3|h@5!t~1v>>nI@ZY54)n*8OPIe* ztHV^vt(|6iK+h6BpuW6$G?W80zc~4c5V$ym+>4u-KX7+#*8O`(9aZ(8`2j&?H$Y{N ztWQPrUeKx$(`!A10ej5@=t5Qw{_KvQ!Fo0etu-UwTmeMkJJ==&?NVras)a$5c)Yys zabbYJ4cY}aPeKZc#acz(ixvVszTX1^t2DoMiSZrnxbmVHVjN})^O_Iq2e`cdC zTA2MC($ft*#|cVRP~?`8RXd|j{w7_v3wb7;HfDp&H15726})L=Kn85%z=3Sw&!B8h z2F9T<+P`4UW)=5Udjt*fYebRpS{QePJ7^UFye*8n=QHoUzPe-$oaxiX2fsufnC_r> z_?847nCz@%cMW(4k4C;9Bz!uwjxp8c+dJ$nI zKKw~F2aXoU@ul$vkj!a9swvR8>VzES57@S3_;`?ybZNn4cg4QXP=W#M|33rR#Gw_r zIr-#@)yyo<{Xr-O)JYVkhp_2ctwrRaInJO6XK=CK_1229(Fa{^3i3(sLK3aF&aB`S zIJ)!LPw9WhicL?p=P#!D9 z)X^W^c_O9qed{8mAN4jzUk$>X5V~UsXNCNE%rTO)ckY-|Lg8Vzd=@2Ps%%r_;|pSx zjbjRf6zw}{m>L8FwjZ!gf-Z*?uz7j^CRIx8&S}fjr(xAJhYP&6+ghtAy{47FdHV7| zoU?vT&nIzpN?*7BJwb*b07?SQKs|+J6Vmbc>`?)SfnXIy1M*S56zv<;(1>b9Xwm>( z$OBONMU)4LFTHT2kZT91T#EJtx1x3Aq7Cba zR&LS!{S%vJ!aC~SMsFn1oQ)} zviD@RmIR>sE8*QH%O6Ps+?&23aQ#t=thc+sh?TJ@bn?R8tbpQybg>{zz^?(TB`?fe zwBP(vBLo?vs3bB%u*C-c)mRpgd72D^`jH=2PnMKEYvT8kgO1$B7RP0StMd4v8FDJ> zIzcD{MN$!_&RqlHQR47*Awm5I?`gh@Lm37C#1agGOH6u2Ep~^!=NnC$ z_dp#O9p5`M-0h{8svIIpa=$HQ-p%qua?UbKvlpcGr779__xmh5J0$M1>;=NM(CDC> z=kc+*m5=wM$!ZnRVc1$XW*N8j?<#K6P*+c$%j7p~9vN5+Yk{Pg6=7T&Jf52%P(WSXYsJu+$r zi|{segBaZMR!*Omq41V8V#|p3yueVQn8kTD_7BRKQtdtGhu>}~O$TLdJI&_|9oxBO zb{G%6?qcRJlHNhjVx*o}LD=|27&r1F2kuZFl#@)=m!T7sD1Z(z(2(c>2L}g1rRo?V zzY3by6}yiH4rDNbw`^t~NX{9xLf z2S)21Cr=sZTvRc=K6%o~;NIzIuOJ+xn7%)E3k_O210>|ih#e%lx%Wr_{|C}mbO$uy z6Bm%VN-pq4V`t@q5=uo2$-RebV|@4bJ{Jz6bs8d)buU^lP%PicNNas z4N0q2?}Pzc6hTg-IwN`;be^E@j8aP_=nJpguG$!e_BAIsaVjw{SwyU+Z7B{SHCbgf zcZ#~|hs6=&<3u42FCvSI!36p3qtO$^g&t`chO z<13xPw^lov9AhtMoXQ2tBjklhYyl>{g@|~~qNh6dCMF<(&YbHWpFu84KEY;<&iUIB zKyZ9+?Hk0lumvQV`F5z4@iK4MI@nL*3iq-U=u1q2i>}mZ3Y&Am^7tT9!`Vc-!!91r zycfeF=V-6U)<@6fze=0C;<3-<^Lv@;9?4bw(wd~hhuz%%!6&AbxaGLf$igEDX zI8~W1-wbSvj6c4eafN32%7^V&3u2hH&42HaMtMR8@T1+&gUT#CQaT975XoNA?u7x< z#X<{fWviHap6J86^lWvLXr;jBKk`~Ln%%|Qp~w7Je>g}O&-i&-GEm^Tg8V5(6J6i94oE(hUWmT?P< zzYKfw^V2t1-Dctfml9#+*@@oXm+$7I%MiPfGAfgjyp0Qy2a*wSWe6X$ktW> zfey4`C$~Bdjb@xh#0r`zlh+kXvtluN;O9#u@Q!qI@BMsLG~Dv0pFB2oEg^~v-k^md zPNJ}KUBZG(kb1`jlyR2uWGnpd@AIV4qr$}pkwcfWS3FLBnPeR#;m*|bqZT{3K$aOo z1v^%Ggq!+)1Gag*7b*$n%fW+XFX7(T#%xK);xgKYNdk7-zkbc;hgqdngE0|QqZO~N zEWqU2c}V2+wSY%C9-j*>AM;BfH0=5jpLqWYsG8kDwDb?&*$Uj946vP*V;L>%CWVIujO-p>$>~(ZPXI0Aw@Q&->!Gw8MpPy z7?iQZL8`CBbJy%+xYKwn`xSpW$8|(AWYh>rs6*xu0eN9a@*y{SfdH=fg1z=_g7}Oh z(B^|J(=z}^%iQhzt<=u5tG(OFo+c9dE5`fluiZRzBI(+ps^AGX&oSDqSJc$F7B)VZ zCKkwXA5x36qu&lnE*HQpVeOmI#H(_K&$*pI$(hets!SL`F&}!S?h0|m8V4whp7#*E zZI36Nb$jdzq2%!#lO*z0gmEr?P>j z)Eji>@BF^!0zMxo=|D3@BLC@h zcM6hpp;sVbch810d#PwKYWepk~}RducYKenAROacJ01jXbl> zgWkk_e}i;|&V*PBej~9;<#3C$MupC!IrX(dAq85)c8{)j*HlpYKi55ZeA*fwud;=ChcdbI3{OsvuIfg@e(u{jWmw08@KN2}yrC7Em3U-0 z_@RcU#EWZxjP>Yl)FP2;EfAt>SaBVCvk!GFv3W4cHI6{kD7Fm1lTUme%jfpTo97=) zWoEfeLhrE<6iVu1TV+hIh$HQh#%^#z&zm$TON@zawS-R^<+@Gj7XnMEp9_ zcAS!fIb6*{a99+h&kGC~-RQxf7#(d$?4_=5-Bv=8=~f>IWNNqNC2qZp7T@yByF11l zWZo(n*lspZlxEw!xoS!Exb#etJ;|z;BLkcelR71b@{3&OS6`3L^{??V5z7Lf3qrZuER3v7Xi8(S?w-wsLCSig?n zoqI_C{EkDHatwc-DEHk;@z4X{&X_Ix=kcO|l&g)bZ1Xle+g@AiPrLxsWiFf*=jQuoZm(!o-SzdJr zak%re(*DC9p3J183zcaD_@@&_fNf3XW*`5L?;;;GG-y%rWTsZOO@d3YNi{@$9X9Ah zVJ7V^P%fMlqndX~-#MK=su5G5$h}8Ri_~N>aidYG*^PDPE^V$E>%!e#6scJQxS}uN zjiMB$$n7S6ex5fSi%}k`x`*x zSz-dlQtexs{6U$08q|{>T58*SaD9|KzO=ZUirc1Ck};N&0O2$4eDUWs9mK7pY@y&G ztjuRJuf$v4Eg^Pw=w!^o4+^Sc7jzd~om6#NS$EnRgwwf2*ZH%S{%<=sK#L@tSGX)< z;skzM)|U#Q>K?m3(cu+5omEHx|Ai<@9IxAts4X<5;sBsEmO-~*h^b5CO0A-v-)%*a zua1|&Q0v03I@3Q5M#d~jI951^QR2jt)vA<&zHq9%nVzSVDIN-+6A$qf#XX&%qMEKG z-v(@h!c*74B{go)aJ^Tp_FRtw*EhUHvi(;x9Xwy|EUe=_uWrvAOrmF*9+o(d+WUSx z+5h_e8pkupVd5y`UnEy_DKM&kEAEB-es1S)Iw!vcu)9b%M*CAlFVIl!#7A}Iye+6} z6-{MBdj1p(n**>wWR`DfAkmsL% zkch+wp?P6302BWI8d$v#zSjUXF;Z2sKYa~Rz)i%JORl4|7OhpR*{R|2htCEgGIV7K zRz^SRRswn9pIG$2ty*GoWmK3n2m*c@U7VaF0mA)#41bPnDD+Kok%@-P<~r`f4>Gc5V$#Yzn9zo?FHniVG{RcoZyv!KXWs)xc~G(BFq@#(d>F# z!~lYE0kJm=AY?q;ez~qPmoxLINIR5m=j75YnPka$xfYYe)bB*Mmevk-5 z4?oGq!Uf|Pl%?JE_gDVUw_Cy_h7w=n&V}`%M#IPaANkfcxO2}t-@Ae2_#&yvSN+D? zAJY)+CErpoz0n$A8W8g)Mk4koIUQEspNJSk^2@&*{A#^FA@BsuA-%!r)VDd{{ZwG_VoY& diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html deleted file mode 100644 index 2d5b4e7..0000000 --- a/docs/build/html/_modules/index.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - Overview: module code - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - - -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html b/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html deleted file mode 100644 index 0ea86f3..0000000 --- a/docs/build/html/_modules/sloyka/src/geocoder/city_objects_extractor.html +++ /dev/null @@ -1,599 +0,0 @@ - - - - - - - - sloyka.src.geocoder.city_objects_extractor - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.geocoder.city_objects_extractor

    -from typing import List
    -import re
    -import pandas as pd
    -from shapely.geometry import Point, Polygon, MultiPolygon
    -from loguru import logger
    -import pymorphy2
    -from sloyka.src.utils.constants import NUM_CITY_OBJ
    -from sloyka.src.geocoder.objects_address_extractor_by_rules import AddressExtractorExtra
    -from sloyka.src.utils.data_getter.geo_data_getter import GeoDataGetter
    -from rapidfuzz import fuzz
    -import numpy as np
    -
    -
    -
    -[docs] -class OtherGeoObjects: -
    -[docs] - @staticmethod - def get_and_process_osm_data(osm_id: int, tags: dict) -> pd.DataFrame: - """ - Retrieves and processes OSM data for different urban objects. - """ - df = GeoDataGetter.get_osm_data(osm_id, tags) - df["geometry"] = df["geometry"].apply(OtherGeoObjects.calculate_centroid) - df.rename(columns={df.columns[-1]: "geo_obj_tag"}, inplace=True) - return df
    - - -
    -[docs] - @staticmethod - def run_osm_dfs(osm_id: int) -> pd.DataFrame: - """ - Collects dataframes with OSM spatial data, finds centroids and combines them into one. - """ - tags_list = [ - {"leisure": ["park", "garden", "recreation_ground"]}, - {"amenity": ["hospital", "clinic", "school", "kindergarten"]}, - {"landuse": ["cemetery"]}, - {"natural": ["beach", "water"]}, - {"railway": ["station", "subway"]}, - {"tourism": ["attraction", "museum"]}, - {"historic": ["monument", "memorial"]}, - {"place": ["square"]}, - ] - - osm_dfs = list() - for tags in tags_list: - logger.debug(f'getting {osm_id, tags}') - try: - tmp_df = OtherGeoObjects.get_and_process_osm_data(osm_id, tags) - osm_dfs.append(tmp_df) - except RuntimeError: - logger.warning(f'Runtime error during fetching {osm_id, tags}') - continue - if osm_dfs: - osm_combined_df = pd.concat(osm_dfs, axis=0) - logger.debug(f'got {osm_id, tags}') - logger.debug(f'{osm_combined_df.shape}') - return osm_combined_df - else: - logger.warning(f'No data were gathered about city objects in {osm_id}') - return pd.DataFrame()
    - - -
    -[docs] - @staticmethod - def calculate_centroid(geometry) -> Point: - """ - Calculates the centroid for polygons. - """ - if isinstance(geometry, (Polygon, MultiPolygon)): - return geometry.centroid - elif isinstance(geometry, Point): - return geometry - else: - return None
    - - -
    -[docs] - @staticmethod - def extract_geo_obj(text) -> List[str]: - """ - The function extracts location entities from the text, using the Natasha library. - """ - if text is None: - return None - morph = pymorphy2.MorphAnalyzer() - extractor = AddressExtractorExtra(morph) - - other_geo_obj = [] - - matches = extractor(text) - if not matches: - return other_geo_obj - try: - for match in matches: - if not match: - continue - part = match.fact - if part.value and part.type: - combined_phrase = f"{part.value} {part.type}" - other_geo_obj.append(combined_phrase) - elif part.value: - other_geo_obj.append(part.value) - elif part.type: - other_geo_obj.append(part.type) - if not other_geo_obj: - return other_geo_obj - except Exception as e: - # logger.warning(f"Error extracting geo objects: {e}") - return other_geo_obj - return other_geo_obj
    - - -
    -[docs] - @staticmethod - def restoration_of_normal_form(other_geo_obj, osm_combined_df, threshold=0.7) -> List[str]: - """ - This function compares the extracted location entity with an OSM array - and returns a normalized form if the percentage of similarity is at least 70%. - """ - osm_name_obj = osm_combined_df["name"].tolist() - similarity_matrix = np.zeros((len(other_geo_obj), len(osm_name_obj))) - - def extract_numbers(s): - return re.findall(r"\d+", s) - - percents = 100 - - for i, word1 in enumerate(other_geo_obj): - numbers_from_extraction = extract_numbers(word1) - for j, word2 in enumerate(osm_name_obj): - numbers_from_OSM_name = extract_numbers(word2) - if numbers_from_extraction == numbers_from_OSM_name: - similarity = fuzz.ratio(word1, word2) / percents - else: - similarity = 0 - similarity_matrix[i, j] = similarity - - restoration_list = other_geo_obj.copy() - for i in range(len(other_geo_obj)): - max_index = np.argmax(similarity_matrix[i]) - if similarity_matrix[i, max_index] > threshold: - restoration_list[i] = osm_name_obj[max_index] - else: - restoration_list[i] = "" - - return restoration_list
    - - -
    -[docs] - @staticmethod - def find_num_city_obj(text) -> List[str]: - """ - This function searches for urban objects in the text, - the names of which are represented as a number. For example, "school No. 6". - """ - text = str(text) - text = text.lower() - num_obj_list = [] - for key, forms in NUM_CITY_OBJ.items(): - for form in forms: - pattern = rf"\b{re.escape(form)}\b\s+№?\s*(\d+)" - matches = re.findall(pattern, text) - for match in matches: - num_obj_list.append(f"{key}{match}") - num_obj_list = list(set(num_obj_list)) - num_obj_list_clear = {} - for obj in num_obj_list: - key = obj.split(" № ")[1] - if key in num_obj_list_clear: - if len(obj.split(" № ")[0]) > len(num_obj_list_clear[key].split(" № ")[0]): - num_obj_list_clear[key] = obj - else: - num_obj_list_clear[key] = obj - - return list(num_obj_list_clear.values())
    - - -
    -[docs] - @staticmethod - def combine_city_obj(df_obj) -> pd.DataFrame: - """ - Combines the found named urban objects and urban objects whose names are in the form of numbers. - """ - df_obj["other_geo_obj"] = df_obj["other_geo_obj"] + df_obj["other_geo_obj_num"] - df_obj.drop(columns=["other_geo_obj_num"], inplace=True) - return df_obj
    - - -
    -[docs] - @staticmethod - def expand_toponym(df_obj) -> pd.DataFrame: - """ - Splits the list of found entities into different rows for further analysis. - """ - expanded_df = df_obj.copy() - expanded_df["other_geo_obj"] = expanded_df["other_geo_obj"].apply( - lambda x: x if isinstance(x, list) and x else None - ) - expanded_df = expanded_df.explode("other_geo_obj").reset_index(drop=True) - return expanded_df
    - - -
    -[docs] - @staticmethod - def find_geometry(toponym, osm_combined_df) -> Point: - """ - Finds the coordinate in the OSM array by the name of the city object. - """ - if toponym is None: - return None - match = osm_combined_df[osm_combined_df["name"] == toponym] - if not match.empty: - return match.iloc[0, 1] - else: - return None
    - - -
    -[docs] - @staticmethod - def find_geo_obj_tag(toponym, osm_combined_df) -> str: - """ - Finds the geo_obj_tag in the OSM array by the name of the city object. - """ - if toponym is None: - return None - match = osm_combined_df[osm_combined_df["name"] == toponym] - if not match.empty: - return match.iloc[0, -1] - else: - return None
    - - -
    -[docs] - @staticmethod - def get_unique_part_types(df): - return df["other_geo_obj"].unique()
    - - -
    -[docs] - @staticmethod - def run(osm_id: int, df: pd.DataFrame, text_column: str) -> pd.DataFrame: - """ - Launches the module for extracting urban objects from texts that do not relate to streets. - """ - df_obj = df.copy() - df_obj["Numbers"] = pd.NA - # osm_combined_df = OtherGeoObjects.run_osm_dfs(osm_id) - - df_obj["other_geo_obj"] = df_obj[text_column].apply(OtherGeoObjects.extract_geo_obj) - df_obj["other_geo_obj_num"] = df_obj[text_column].apply( - lambda x: OtherGeoObjects.find_num_city_obj(x) - ) - - df_obj = OtherGeoObjects.combine_city_obj(df_obj) - - osm_combined_df = OtherGeoObjects.run_osm_dfs(osm_id) - - if not osm_combined_df.empty: - df_obj["other_geo_obj"] = df_obj["other_geo_obj"].apply( - lambda x: OtherGeoObjects.restoration_of_normal_form(x, osm_combined_df) - ) - df_obj = OtherGeoObjects.expand_toponym(df_obj) - - df_obj["geometry"] = df_obj["other_geo_obj"].apply(lambda x: OtherGeoObjects.find_geometry(x, osm_combined_df)) - df_obj["geo_obj_tag"] = df_obj["other_geo_obj"].apply( - lambda x: OtherGeoObjects.find_geo_obj_tag(x, osm_combined_df) - ) - df_obj = df_obj[df_obj["geometry"].notna()] - - return df_obj
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html b/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html deleted file mode 100644 index a39cebf..0000000 --- a/docs/build/html/_modules/sloyka/src/geocoder/geocoder.html +++ /dev/null @@ -1,700 +0,0 @@ - - - - - - - - sloyka.src.geocoder.geocoder - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.geocoder.geocoder

    -"""
    -TODO: add spellchecker since there might be misspelled words.
    -
    -This module is aimed to provide necessary tools to find mentioned
    -location in the text. 
    -
    -@class:Location:
    -A class aimed to efficiently geocode addresses using Nominatim. 
    -Geocoded addresses are stored in the 'book' dictionary argument. 
    -Thus, if the address repeats, it would be taken from the book.
    -
    -@class:Streets: 
    -A class encapsulating functionality for retrieving street data
    -for a specified city from OSM and processing it to extract useful information
    -for geocoding purposes.
    -
    -@class:Geocoder:
    -A class providing functionality for simple geocoding and address extraction.
    -"""
    -
    -import re
    -import flair
    -from sloyka.src.utils.constants import GLOBAL_CRS
    -import geopandas as gpd
    -import pandas as pd
    -import pymorphy2
    -import torch
    -import math
    -from rapidfuzz import fuzz
    -from nltk.stem.snowball import SnowballStemmer
    -from sloyka.src.utils.data_getter.historical_geo_data_getter import HistGeoDataGetter
    -from sloyka.src.utils.constants import (
    -    AREA_STOPWORDS,
    -    GROUP_STOPWORDS,
    -    REGEX_PATTERN,
    -    REPLACEMENT_STRING,
    -)
    -
    -from flair.models import SequenceTagger
    -from shapely.geometry import Point
    -from tqdm import tqdm
    -
    -from loguru import logger
    -
    -from pandarallel import pandarallel
    -from sloyka.src.geocoder.city_objects_extractor import OtherGeoObjects
    -from sloyka.src.utils.data_getter.street_getter import Streets
    -from sloyka.src.utils.data_getter.location_getter import Location
    -from sloyka.src.utils.data_getter.geo_data_getter import GeoDataGetter
    -from sloyka.src.utils.data_preprocessing.preprocessor import PreprocessorInput
    -from sloyka.src.geocoder.street_extractor import StreetExtractor
    -from sloyka.src.geocoder.word_form_matcher import WordFormFinder
    -
    -pandarallel.initialize(progress_bar=True, nb_workers=-1)
    -tqdm.pandas()
    -
    -
    -
    -[docs] -class Geocoder: - """ - This class provides a functionality of simple geocoder - """ - - def __init__( - self, - df, - model_path: str = "Geor111y/flair-ner-addresses-extractor", - device: str = "cpu", - osm_id: int = None, - city_tags: dict ={"place": ["state"]}, - stemmer_lang: str = "russian", - text_column_name:str = 'text' - ): - self.text_column_name = text_column_name - self.df = PreprocessorInput().run(df, text_column_name) - self.device = device - flair.device = torch.device(device) - self.classifier = SequenceTagger.load(model_path) - self.osm_id = osm_id - self.osm_city_name = ( - GeoDataGetter() - .get_features_from_id(osm_id=self.osm_id,tags=city_tags, selected_columns=["name", "geometry"]) - .iloc[0]["name"] - ) - self.street_names = Streets.run(self.osm_id) - self.stemmer = SnowballStemmer(stemmer_lang) - - - -
    -[docs] - @staticmethod - def get_stem(street_names_df: pd.DataFrame) -> pd.DataFrame: - """ - Function finds the stem of the word to find this stem in the street - names dictionary (df). - """ - logger.info("get_stem started") - - morph = pymorphy2.MorphAnalyzer() - cases = ["nomn", "gent", "datv", "accs", "ablt", "loct"] - - for case in cases: - street_names_df[case] = street_names_df["street_name"].apply( - lambda x: morph.parse(x)[0].inflect({case}).word if morph.parse(x)[0].inflect({case}) else None - ) - return street_names_df
    - - - -
    -[docs] - @staticmethod - def get_level(row: pd.Series) -> str: - """ - Addresses in the messages are recognized on different scales: - 1. Where we know the street name and house number -- house level; - 2. Where we know only street name -- street level (with the centroid - geometry of the street); - 3. Where we don't know any info but the city -- global level. - """ - - if (not pd.isna(row["Street"])) and (row["Numbers"] == ""): - return "street" - elif (not pd.isna(row["Street"])) and (row["Numbers"] != ""): - return "house" - else: - return "global"
    - - - -
    -[docs] - def create_gdf(self, df: pd.DataFrame) -> gpd.GeoDataFrame: - """ - Function simply creates gdf from the recognised geocoded geometries. - """ - logger.info("create_gdf started") - - df["Location"] = df["addr_to_geocode"].progress_apply(Location().query) - df = df.dropna(subset=["Location"]) - df["geometry"] = df['Location'].apply(lambda x: Point(x.longitude, x.latitude)) - df["Location"] = df['Location'].apply(lambda x: x.address) - df["Numbers"].astype(str) - gdf = gpd.GeoDataFrame(df, geometry="geometry", crs=GLOBAL_CRS) - - return gdf
    - - -
    -[docs] - def set_global_repr_point(self, gdf: gpd.GeoDataFrame) -> gpd.GeoDataFrame: - """ - This function set the centroid (actually, representative point) of the - geocoded addresses to those texts that weren't geocoded (or didn't - contain any addresses according to the trained NER model). - """ - - try: - gdf.loc[gdf["level"] == "global", "geometry"] = gdf.loc[ - gdf["level"] != "global", "geometry" - ].unary_union.representative_point() - except AttributeError: - pass - - return gdf
    - - -
    -[docs] - def merge_to_initial_df(self, gdf: gpd.GeoDataFrame, initial_df: pd.DataFrame) -> gpd.GeoDataFrame: - """ - This function merges geocoded df to the initial df in order to keep - all original attributes. - """ - - # initial_df.drop(columns=['key_0'], inplace=True) - gdf = initial_df.join( - gdf[ - [ - "Street", - "initial_street", - "only_full_street_name", - "Numbers", - "Score", - "location_options", - "Location", - "geometry", - ] - ], - how="outer", - ) - gdf = gpd.GeoDataFrame(gdf, geometry="geometry", crs=GLOBAL_CRS) - - return
    - - -
    -[docs] - def assign_street(variable): - '''Simple workaround''' - - if isinstance(variable, float) and math.isnan(variable): - return "street" - return variable
    - - -
    -[docs] - def get_df_areas(self, osm_id, tags): - """ - Retrieves the GeoDataFrame of areas corresponding to the given OSM ID and tags. - - Args: - osm_id (int): The OpenStreetMap ID. - tags (dict): The tags to filter by. - date (str): The date of the data to retrieve. - - Returns: - gpd.GeoDataFrame: The GeoDataFrame containing the areas. - - This function first checks if the GeoDataFrame corresponding to the given OSM ID is already in the cache. - If it is, it returns the cached GeoDataFrame. Otherwise, it retrieves the GeoDataFrame from the HistGeoDataGetter, - filters out the 'way' elements, and adds it to the cache. Finally, it returns the GeoDataFrame from the cache. - """ - area_cache = {} - if osm_id not in area_cache: - geo_data_getter = HistGeoDataGetter() - df_areas = geo_data_getter.get_features_from_id(osm_id=osm_id, tags=tags) - df_areas = df_areas[df_areas["element_type"] != "way"] - area_cache[osm_id] = df_areas - return area_cache[osm_id]
    - - -
    -[docs] - def preprocess_group_name(self, group_name): - """ - Preprocesses a group name by converting it to lowercase, removing special characters, and removing specified stopwords. - - Args: - group_name (str): The group name to preprocess. - - Returns: - str: The preprocessed group name. - """ - group_name = group_name.lower() - group_name = re.sub(REGEX_PATTERN, REPLACEMENT_STRING, group_name) - words_to_remove = GROUP_STOPWORDS - for word in words_to_remove: - group_name = re.sub(word, "", group_name, flags=re.IGNORECASE) - return group_name
    - - -
    -[docs] - def preprocess_area_names(self, df_areas): - """ - Preprocesses the area names in the given DataFrame by removing specified stopwords, converting the names to lowercase, - and stemming them. - - Parameters: - df_areas (DataFrame): The DataFrame containing the area names. - - Returns: - DataFrame: The DataFrame with preprocessed area names, where the 'area_name' column contains the original names - with stopwords removed, the 'area_name_processed' column contains the lowercase names with special characters - removed, and the 'area_stems' column contains the stemmed names. - """ - words_to_remove = AREA_STOPWORDS - for word in words_to_remove: - df_areas["area_name"] = df_areas["name"].str.replace(word, "", regex=True) - - df_areas["area_name_processed"] = df_areas["area_name"].str.lower() - df_areas["area_name_processed"] = df_areas["area_name_processed"].str.replace( - REGEX_PATTERN, REPLACEMENT_STRING, regex=True - ) - df_areas["area_stems"] = df_areas["area_name_processed"].apply( - lambda x: [self.stemmer.stem(word) for word in x.split()] - ) - return df_areas
    - - -
    -[docs] - def match_group_to_area(self, group_name, df_areas): - """ - Matches a given group name to an area in a DataFrame of areas. - - Args: - group_name (str): The name of the group to match. - df_areas (DataFrame): The DataFrame containing the areas to match against. - - Returns: - tuple: A tuple containing the best match for the group name and the admin level of the match. - If no match is found, returns (None, None). - """ - group_name_stems = [self.stemmer.stem(word) for word in group_name.split()] - max_partial_ratio = 20 - max_token_sort_ratio = 20 - best_match = None - admin_level = None - - for _, row in df_areas.iterrows(): - area_stems = row["area_stems"] - - partial_ratio = fuzz.partial_ratio(group_name, row["area_name_processed"]) - token_sort_ratio = fuzz.token_sort_ratio(group_name_stems, area_stems) - - if partial_ratio > max_partial_ratio and token_sort_ratio > max_token_sort_ratio: - max_partial_ratio = partial_ratio - max_token_sort_ratio = token_sort_ratio - best_match = row["area_name"] - admin_level = row["key"] - - return best_match, admin_level
    - - -
    -[docs] - def run( - self, df: pd.DataFrame = None, tags:dict|None=None, - group_column: str | None = "group_name", search_for_objects=False - ): - """ - Runs the data processing pipeline on the input DataFrame. - - Args: - tags (dict): The tags to filter by. - date (str): The date of the data to retrieve. - df (pd.DataFrame): The input DataFrame. - text_column (str, optional): The name of the text column in the DataFrame. Defaults to "text". - - Returns: - gpd.GeoDataFrame: The processed DataFrame after running the data processing pipeline. - - This function retrieves the GeoDataFrame of areas corresponding to the given OSM ID and tags. - It then preprocesses the area names and matches each group name to an area. The best match - and admin level are assigned to the DataFrame. The function also retrieves other geographic - objects and street names, preprocesses the street names, finds the word form, creates a GeoDataFrame, - merges it with the other geographic objects, assigns the street tag, and returns the final GeoDataFrame. - """ - df = self.df - initial_df = df.copy() - text_column = self.text_column_name - - if search_for_objects: - df_obj = OtherGeoObjects.run(self.osm_id, df, text_column) - - - if tags: - df_areas = self.get_df_areas(self.osm_id, tags) - df_areas = self.preprocess_area_names(df_areas) - - if group_column and group_column in df.columns: - for i, group_name in enumerate(df[group_column]): - processed_group_name = self.preprocess_group_name(group_name) - best_match, admin_level = self.match_group_to_area(processed_group_name, df_areas) - df.at[i, "territory"] = best_match - df.at[i, "key"] = admin_level - del df_areas - - df[text_column] = df[text_column].astype(str).str.replace('\n', ' ') - df[text_column] = df[text_column].apply(str) - - - df = StreetExtractor.process_pipeline(df, text_column, self.classifier) - street_names = self.get_stem(self.street_names) - - df = WordFormFinder(self.osm_city_name).find_word_form(df, street_names) - - del street_names - gdf = self.create_gdf(df) - - if search_for_objects: - gdf = pd.concat([gdf, df_obj], ignore_index=True) - del df_obj - gdf["geo_obj_tag"] = gdf["geo_obj_tag"].apply(Geocoder.assign_street) - - gdf = pd.merge(gdf, initial_df, on=text_column, how='right') - - gdf.set_crs(GLOBAL_CRS, inplace=True) - return gdf
    -
    - - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/geocoder/street_extractor.html b/docs/build/html/_modules/sloyka/src/geocoder/street_extractor.html deleted file mode 100644 index 94c6819..0000000 --- a/docs/build/html/_modules/sloyka/src/geocoder/street_extractor.html +++ /dev/null @@ -1,819 +0,0 @@ - - - - - - - - sloyka.src.geocoder.street_extractor - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.geocoder.street_extractor

    -import pandas as pd
    -import re
    -from tqdm import tqdm
    -from loguru import logger
    -from typing import Tuple, List, Optional
    -
    -import string
    -import math
    -from typing import Optional
    -from loguru import logger
    -from flair.data import Sentence
    -
    -# Initialize morphological analyzer (use the correct library for your context)
    -import pymorphy2
    -morph = pymorphy2.MorphAnalyzer()
    -
    -from sloyka.src.geocoder.text_address_extractor_by_rules import NatashaExtractor
    -from sloyka.src.utils.constants import (
    -    START_INDEX_POSITION,
    -    REPLACEMENT_DICT,
    -    TARGET_TOPONYMS,
    -    END_INDEX_POSITION,
    -    SCORE_THRESHOLD
    -)
    -
    -
    -
    -[docs] -class StreetExtractor: - - extractor = NatashaExtractor() - -
    -[docs] - @staticmethod - def process_pipeline(df: pd.DataFrame, text_column: str, classifier) -> pd.DataFrame: - - local_df = df.copy() - """ - Execute the address extraction pipeline on the DataFrame. - - Args: - df (pd.DataFrame): DataFrame containing the text data. - text_column (str): Column name in the DataFrame with text data for address extraction. - - Returns: - pd.DataFrame: DataFrame with extracted street addresses and additional processing columns. - """ - texts = StreetExtractor._preprocess_text_column(local_df, text_column) - extracted_streets = StreetExtractor._extract_streets(texts, classifier) - refined_streets = StreetExtractor._refine_street_data(extracted_streets) - building_numbers = StreetExtractor._get_number(texts, refined_streets) - toponyms = StreetExtractor._extract_toponyms(texts, refined_streets) - - # Combine results into a DataFrame - processed_df = pd.DataFrame({ - text_column: texts, - 'Street': refined_streets, - 'Numbers': building_numbers, - 'Toponyms': toponyms - }) - - StreetExtractor._check_df_len_didnt_change(local_df, processed_df) - - return processed_df
    - - - @staticmethod - def _check_df_len_didnt_change(df1, df2): - try: - assert len(df1) == len(df2) - except Exception as e: - logger.critical('dfs lengths differ') - raise e - - - @staticmethod - def _preprocess_text_column(df: pd.DataFrame, text_column: str) -> List[str]: - """ - Preprocess the text column by ensuring non-null values and converting to string type. - - Args: - df (pd.DataFrame): DataFrame containing the text data. - text_column (str): Column name in the DataFrame with text data. - - Returns: - List[str]: List of preprocessed text entries. - """ - try: - text_series = df[text_column].dropna().astype(str) - return text_series.tolist() - except Exception as e: - logger.warning(f"Error in _preprocess_text_column: {e}") - return [] - - @staticmethod - def _extract_streets(texts: List[str], classifier) -> List[Tuple[Optional[str], Optional[float]]]: - """ - Extract street names from the text column using NER model. - - Args: - texts (List[str]): List of text entries. - - Returns: - List[Tuple[Optional[str], Optional[float]]]: List of tuples with extracted street names and confidence scores. - """ - tqdm.pandas() - extracted_streets = [] - for text in tqdm(texts): - try: - extracted_streets.append(StreetExtractor.extract_ner_street(text, classifier)) - except Exception as e: - logger.warning(f"Error extracting NER street from text '{text}': {e}") - extracted_streets.append((None, None)) - return extracted_streets - - @staticmethod - def _refine_street_data(street_data: List[Tuple[Optional[str], Optional[float]]]) -> List[Optional[str]]: - """ - Refine street data by normalizing and cleaning up street names. - - Args: - street_data (List[Tuple[Optional[str], Optional[float]]]): List of tuples with extracted street names and confidence scores. - - Returns: - List[Optional[str]]: List of refined street names. - """ - refined_streets = [] - for street, _ in street_data: - if street: - try: - refined_streets.append(StreetExtractor._refine_street_name(street)) - except Exception as e: - logger.warning(f"Error refining street '{street}': {e}") - refined_streets.append(None) - else: - refined_streets.append(None) - - return refined_streets - - @staticmethod - def _refine_street_name(street: str) -> str: - """ - Refine street name by normalizing and cleaning up the street string. - - Args: - street (str): Raw street name. - - Returns: - str: Refined street name. - """ - try: - street = re.sub(r"(\D)(\d)(\D)", r"\1 \2\3", street) - street = re.sub(r"\d+|-| ", "", street).strip().lower() - return street - except Exception as e: - logger.warning(f"Error in _refine_street_name with street '{street}': {e}") - return "" - - @staticmethod - def _get_number(texts: List[str], streets: List[Optional[str]]) -> List[Optional[str]]: - """ - Extract building numbers from the text data. - - Args: - texts (List[str]): List of text entries. - streets (List[Optional[str]]): List of refined street names. - - Returns: - List[Optional[str]]: List of extracted building numbers. - """ - building_numbers = [] - for text, street in zip(texts, streets): - if street: - try: - building_numbers.append(StreetExtractor._extract_building_number_from_text(text, street)) - except Exception as e: - logger.warning(f"Error extracting building number from text '{text}' with street '{street}': {e}") - building_numbers.append(None) - else: - building_numbers.append(None) - return building_numbers - - @staticmethod - def _extract_building_number_from_text(text: str, street: str) -> str: - """ - Extract building number from the text. - - Args: - text (str): Input text for address extraction. - street (str): Extracted and refined street name. - - Returns: - str: Extracted building number. - """ - try: - numbers = " ".join(re.findall(r"\d+", text)) - return StreetExtractor._check_if_extracted_number_legit(text, street, numbers) - except Exception as e: - logger.warning(f"Error in _extract_building_number_from_text with text '{text}' and street '{street}': {e}") - return "" - - @staticmethod - def _extract_toponyms(texts: List[str], streets: List[Optional[str]]) -> List[Optional[str]]: - """ - Extract toponyms from the text data. - - Args: - texts (List[str]): List of text entries. - streets (List[Optional[str]]): List of refined street names. - - Returns: - List[Optional[str]]: List of extracted toponyms. - """ - toponyms = [] - for text, street in zip(texts, streets): - if street: - try: - toponyms.append(StreetExtractor.extract_toponym(text, street)) - except Exception as e: - logger.warning(f"Error extracting toponym from text '{text}' with street '{street}': {e}") - toponyms.append(None) - else: - toponyms.append(None) - return toponyms - - -
    -[docs] - @staticmethod - def extract_toponym(text: str, street_name: str) -> Optional[str]: - """ - Extract toponyms near the specified street name in the text. - - This function identifies the position of a street name in the text and searches for related toponyms - within a specified range around the street name. - - Args: - text (str): The text containing the address. - street_name (str): The name of the street to search around. - - Returns: - Optional[str]: The first toponym found if present, otherwise None. - """ - try: - # Handle the case where text is NaN - if isinstance(text, float) and math.isnan(text): - return None - - # Clean and split the text into words - cleaned_text = StreetExtractor._clean_text(text) - words = cleaned_text.split() - - # Find positions of the street name - positions = StreetExtractor._find_street_name_positions(words, street_name) - if not positions: - return None - - # Search for toponyms in the range around the street name - toponym = StreetExtractor._search_toponyms(words, positions[0]) - return toponym - - except Exception as e: - logger.warning(f"Error in extract_toponym with text '{text}' and street_name '{street_name}': {e}") - return None
    - - - # @staticmethod - # def _clean_text(text: str) -> str: - # """ - # Clean the input text by removing punctuation and converting to lowercase. - - # Args: - # text (str): The input text. - - # Returns: - # str: The cleaned text. - # """ - # return text.translate(str.maketrans("", "", string.punctuation)).lower() - - # @staticmethod - # def _find_street_name_positions(words: List[str], street_name: str) -> List[int]: - # """ - # Find positions of the street name in the list of words. - - # Args: - # words (List[str]): List of words from the cleaned text. - # street_name (str): The name of the street to find. - - # Returns: - # List[int]: List of positions where the street name occurs. - # """ - # return [index for index, word in enumerate(words) if word == street_name] - - @staticmethod - def _search_toponyms(words: List[str], position: int) -> Optional[str]: - """ - Search for toponyms within a specified range around the given position. - - Args: - words (List[str]): List of words from the cleaned text. - position (int): The position around which to search for toponyms. - - Returns: - Optional[str]: The first toponym found if present, otherwise None. - """ - search_start = max(0, position - START_INDEX_POSITION) - search_end = min(len(words), position + END_INDEX_POSITION) - - for i in range(search_start, search_end + 1): - - try: - word = words[i] - normal_form = morph.parse(word)[0].normal_form - - if normal_form in TARGET_TOPONYMS: - return REPLACEMENT_DICT.get(normal_form, normal_form) - - except Exception as e: - logger.warning(f"Error parsing word '{word}': {e}") - continue - return None - - @staticmethod - def _check_if_extracted_number_legit(text: str, street_name: str, number: Optional[str]) -> str: - """ - Extract building numbers near the specified street name in the text. - - This function identifies the position of a street name in the text and searches for related building numbers - within a specified range of indexes around the street name. - - Args: - text (str): The text containing the address. - street_name (str): The name of the street to search around. - number (Optional[str]): Previously extracted building number. - - Returns: - str: The first building number found if present, otherwise an empty string. - """ - try: - if isinstance(text, float) and math.isnan(text): - return "" - - cleaned_text = StreetExtractor._clean_text(text) - words = cleaned_text.split() - - positions = StreetExtractor._find_street_name_positions(words, street_name) - if not positions: - return "" - - building_number = StreetExtractor._search_building_number(words, positions[0]) - return building_number - - except Exception as e: - logger.warning(f"Error in extract_building_num with text '{text}', street_name '{street_name}', number '{number}': {e}") - return "" - - - @staticmethod - def _find_street_name_positions(words: List[str], street_name: str) -> List[int]: - """ - Find positions of the street name in the list of words. - - Args: - words (List[str]): List of words from the cleaned text. - street_name (str): The name of the street to find. - - Returns: - List[int]: List of positions where the street name occurs. - """ - return [index for index, word in enumerate(words) if word.lower() == street_name] - - @staticmethod - def _search_building_number(words: List[str], position: int) -> str: - """ - Search for building numbers within a specified range around the given position. - - Args: - words (List[str]): List of words from the cleaned text. - position (int): The position around which to search for building numbers. - - Returns: - str: The first building number found if present, otherwise an empty string. - """ - search_start = max(0, position) - search_end = min(len(words), position + END_INDEX_POSITION) - - for index in range(search_start, search_end): - word = words[index] - if StreetExtractor._is_building_number(word): - return word - - return "" - - @staticmethod - def _is_building_number(word: str) -> bool: - """ - Check if a word is a valid building number. - - Args: - word (str): The word to check. - - Returns: - bool: True if the word is a valid building number, otherwise False. - """ - return any(character.isdigit() for character in word) and len(word) <= 3 - -#--------- -
    -[docs] - @staticmethod - def extract_ner_street(text: str, classifier) -> pd.Series: - """ - Extract street addresses from text using a pre-trained custom NER model. - - This function processes text by removing unnecessary content, applies a custom NER model - to extract mentioned addresses, and returns the address with a confidence score. - - Args: - text (str): The input text to process and extract addresses from. - - Returns: - pd.Series: A Series containing the extracted address and confidence score, - or [None, None] if extraction fails or the score is below the threshold. - """ - try: - cleaned_text = StreetExtractor._clean_text(text) - sentence = Sentence(cleaned_text) - - # Predict entities using the classifier - classifier.predict(sentence) - - address, score = StreetExtractor._extract_address_and_score(sentence) - - if not address or score < SCORE_THRESHOLD: - address = StreetExtractor.extractor.get_ner_address_natasha(text) - if address: - score = 1 - - # Return the result if the score is above the threshold - return pd.Series([address, score] if score is not None and score > SCORE_THRESHOLD else [None, None]) - - except Exception as e: - logger.warning(f"Error in extract_ner_street with text '{text}': {e}") - return pd.Series([None, None])
    - - - @staticmethod - def _clean_text(text: str) -> str: - """ - Clean the input text by removing unwanted patterns. - - Args: - text (str): The input text. - - Returns: - str: The cleaned text. - """ - try: - return re.sub(r"\[.*?\]", "", text) - except Exception as e: - logger.warning(f"Error in _clean_text with text '{text}': {e}") - return text - - @staticmethod - def _extract_address_and_score(sentence: Sentence) -> Tuple[Optional[str], Optional[float]]: - """ - Extract address and score from the NER model's predictions. - - Args: - sentence (Sentence): The Sentence object containing NER predictions. - - Returns: - Tuple[Optional[str], Optional[float]]: Extracted address and its confidence score. - """ - try: - labels = sentence.get_labels("ner") - if labels: - label = labels[0] - address = StreetExtractor._parse_address(label.labeled_identifier) - score = round(label.score, 3) - return address, score - return None, None - except IndexError as e: - logger.warning(f"Error in _extract_address_and_score: {e}") - return None, None - - @staticmethod - def _parse_address(label_value: str) -> str: - """ - Parse the address from the label value string. - - Args: - label_value (str): The labeled identifier from the NER model. - - Returns: - str: Parsed address. - """ - try: - return label_value.split("]: ")[1].split("/")[0].replace('"', "") - except IndexError as e: - logger.warning(f"Error in _parse_address with label value '{label_value}': {e}") - return ""
    - - - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/risks/emotion_classifier.html b/docs/build/html/_modules/sloyka/src/risks/emotion_classifier.html deleted file mode 100644 index cba2229..0000000 --- a/docs/build/html/_modules/sloyka/src/risks/emotion_classifier.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - - - sloyka.src.risks.emotion_classifier - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.risks.emotion_classifier

    -"""
    -This module contains the EmotionClassifiers class, which is designed to categorise input texts into emotion categories.
    -It uses a Huggingface transformer model trained on Bert_Large by default.
    -The EmotionClassifiers class has the following method:
    -@method:recognize_emotion: Adding an emotion category.
    -@method:recognize_average_emotion_from_multiple_models: Adding an average emotion category or the most likely emotion 
    -category using multiple models.
    -"""
    -
    -from aniemore.recognizers.text import TextRecognizer
    -from aniemore.models import HuggingFaceModel
    -import torch
    -import pandas as pd
    -from tqdm import tqdm
    -import gc
    -
    -
    -
    -[docs] -class EmotionRecognizer: - """ - This class is designed to categorise input texts into emotion categories. - - Attributes: - - - model: This attribute holds the model used for emotion recognition. It defaults to HuggingFaceModel.Text.Bert_Large, - but can be set to any other compatible model during the instantiation of the class. - - - device: the device to use for inference. It automatically selects 'cuda' (GPU) if a compatible GPU - is available and CUDA is enabled, otherwise, it falls back to 'cpu'. - - - text: The text to be analyzed. - - - df: The DataFrame containing the text to be analyzed. - - - text_column: The name of the column containing the text to be analyzed. - """ - - def __init__(self, model_name=HuggingFaceModel.Text.Bert_Tiny, device='cpu'): - self.device = device - self.model_name = model_name - - # Define the default model names to avoid repeated initialization - self.default_model_names = [ - HuggingFaceModel.Text.Bert_Tiny, - HuggingFaceModel.Text.Bert_Base, - HuggingFaceModel.Text.Bert_Large, - HuggingFaceModel.Text.Bert_Tiny2, - ] - - self.recognizer = TextRecognizer(model=self.model_name, device=self.device) - - #def init_base_recognizer(self): - # self.recognizer = TextRecognizer(model=self.model_name, device=self.device) - - -
    -[docs] - def recognize_emotion(self, text): - """ - Return the emotion for a given text. - """ - emotion = self.recognizer.recognize(text, return_single_label=True) - return emotion
    - - -
    -[docs] - def recognize_average_emotion_from_multiple_models(self, df, text_column, models=None, average=True): - """ - Calculate the prevailing emotion using multiple models for a DataFrame column. - """ - if models is None: - models = self.default_model_names - else: - # Validate that the provided models are in the default models list - for model in models: - if model not in self.default_model_names: - raise ValueError( - f"Model {model} is not a valid model. Valid models are: {self.default_model_names}" - ) - - # Initialize scores DataFrame - scores = pd.DataFrame( - 0, index=df.index, columns=["happiness", "sadness", "anger", "fear", "disgust", "enthusiasm", "neutral"] - ) - - # Process each model one by one with progress bar - for model_name in tqdm(models, desc="Processing models"): - try: - print(f"Clearing cache and collecting garbage before loading model: {model_name}") - torch.cuda.empty_cache() - gc.collect() - - print(f"Loading model: {model_name}") - recognizer = TextRecognizer(model=model_name, device=self.device) - model_results = [recognizer.recognize(text, return_single_label=False) for text in df[text_column]] - - for idx, result in enumerate(model_results): - for emotion, score in result.items(): - if average: - scores.at[df.index[idx], emotion] += score - else: - scores.at[df.index[idx], emotion] = max(scores.at[df.index[idx], emotion], score) - - # Удаление модели из памяти - del recognizer - torch.cuda.empty_cache() # Очистка кеша CUDA (если используется GPU) - gc.collect() # Сборка мусора - print(f"Model {model_name} processed and unloaded.") - except Exception as e: - print(f"Error processing model {model_name}: {e}") - torch.cuda.empty_cache() - gc.collect() - - if average: - # Average the scores by the number of models - scores = scores.div(len(models)) - - # Determine the prevailing emotion with the highest score - prevailing_emotions = scores.idxmax(axis=1) - - return prevailing_emotions
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/risks/event_detector.html b/docs/build/html/_modules/sloyka/src/risks/event_detector.html deleted file mode 100644 index 47e2beb..0000000 --- a/docs/build/html/_modules/sloyka/src/risks/event_detector.html +++ /dev/null @@ -1,819 +0,0 @@ - - - - - - - - sloyka.src.risks.event_detector - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.risks.event_detector

    -"""
    -This module contains the EventDetection class, which is aimed to generate events and their connections based
    -on the application of semantic clustering method (BERTopic) on the texts in the context of an urban spatial model.
    -
    -The EventDetection class has the following methods:
    -
    -@method:_get_roads:
    -Get the road network of a city as road links and roads.
    -
    -@method:_get_buildings:
    -Get the buildings of a city as a GeoDataFrame.
    -
    -@method:_collect_population:
    -Collect population data for each object (building, street, link).
    -
    -@method:_preprocess:
    -Preprocess the data.
    -"""
    -
    -import re
    -from itertools import chain, combinations
    -
    -import geopandas as gpd
    -import osmnx as ox
    -import pandas as pd
    -import numpy as np
    -from bertopic import BERTopic
    -from hdbscan import HDBSCAN
    -from shapely.geometry import LineString
    -from transformers.pipelines import pipeline
    -from umap import UMAP
    -
    -
    -
    -[docs] -class EventDetection: - """ - This class is aimed to generate events and their connections. - It is based on the application of semantic clustering method (BERTopic) - on the texts in the context of urban spatial model - """ - - def __init__(self): - np.random.seed(42) - self.population_filepath = None - self.levels = ["building", "link", "road", "global"] - self.levels_scale = dict(zip(self.levels, list(range(2, 10, 2)))) - self.functions_weights = { - "Безопасность": 0.12, - "Благоустройство": 0.21, - "Дороги": 0.18, - "ЖКХ": 0.2, - "Здравоохранение": 0.2, - "Другое": 0.16, - "Образование": 0.16, - "Социальная защита": 0.13, - "Строительство": 0.19, - "Обращение с отходами": 0.19, - "Транспорт": 0.17, - "Экология": 0.22, - "Энергетика": 0.19, - } - self.messages = None - self.links = None - self.buildings = None - self.population = None - self.topic_model = None - self.events = None - self.connections = None - - def _get_roads(self, city_name, city_crs) -> gpd.GeoDataFrame: - """ - Get the road network of a city as road links and roads. - Args: - city_name (string): The name of the city. - city_crs (int): The spatial reference code (CRS) of the city. - Returns: - links (GeoDataFrame): GeoDataFrame with the city's road links and roads. - """ - links = ox.graph_from_place(city_name, network_type="drive") - links = ox.utils_graph.graph_to_gdfs(links, nodes=False).to_crs(city_crs) - links = links.reset_index(drop=True) - links["link_id"] = links.index - links["geometry"] = links["geometry"].buffer(7) - links = links.to_crs(4326) - links = links[["link_id", "name", "geometry"]] - links.loc[links["name"].map(type) == list, "name"] = links[links["name"].map(type) == list]["name"].map( - lambda x: ", ".join(x) - ) - road_id_name = dict(enumerate(links.name.dropna().unique().tolist())) - road_name_id = {v: k for k, v in road_id_name.items()} - links["road_id"] = links["name"].replace(road_name_id) - return links - - def _get_buildings(self) -> gpd.GeoDataFrame: - """ - Get the buildings of a city as a GeoDataFrame - Args: - links(GeoDataFrame): GeoDataFrame with the city's road links and roads. - filepath (string): The path to the GeoJSON file with building data. The default is set to 'population.geojson'. - Returns: - buildings (GeoDataFrame): GeoDataFrame with the city's buildings. - """ - buildings = gpd.read_file(self.population_filepath) - buildings = buildings[["address", "building_id", "population_balanced", "geometry"]] - buildings = buildings.to_crs(4326) - buildings["building_id"] = buildings.index - buildings = ( - gpd.sjoin_nearest( - buildings, - self.links[["link_id", "road_id", "geometry"]], - how="left", - max_distance=500, - ) - .drop(columns=["index_right"]) - .drop_duplicates(subset="building_id") - ) - self.buildings = buildings - return buildings - - def _collect_population(self) -> dict: - """ - Collect population data for each object (building, street, link). - """ - buildings = self.buildings.copy() - pops_global = {0: buildings.population_balanced.sum()} - pops_buildings = buildings["population_balanced"].to_dict() - pops_links = ( - buildings[["population_balanced", "link_id"]].groupby("link_id").sum()["population_balanced"].to_dict() - ) - pops_roads = ( - buildings[["population_balanced", "road_id"]].groupby("road_id").sum()["population_balanced"].to_dict() - ) - pops = { - "global": pops_global, - "road": pops_roads, - "link": pops_links, - "building": pops_buildings, - } - self.population = pops - return pops - - def _preprocess(self) -> gpd.GeoDataFrame: - """ - Preprocess the data - """ - messages = self.messages[ - [ - "Текст комментария", - "geometry", - "Дата и время", - "message_id", - "cats", - ] - ] - messages = messages.sjoin(self.buildings, how="left")[ - [ - "Текст комментария", - "address", - "geometry", - "building_id", - "message_id", - "Дата и время", - "cats", - ] - ] - messages.rename( - columns={"Текст комментария": "text", "Дата и время": "date_time"}, - inplace=True, - ) - messages = messages.sjoin(self.links, how="left")[ - [ - "text", - "geometry", - "building_id", - "index_right", - "name", - "message_id", - "date_time", - "cats", - "road_id", - ] - ] - messages.rename( - columns={"index_right": "link_id", "name": "road_name"}, - inplace=True, - ) - messages = messages.join( - self.buildings[["link_id", "road_id"]], - on="building_id", - rsuffix="_from_building", - ) - messages.loc[messages.link_id.isna(), "link_id"] = messages.loc[messages.link_id.isna()][ - "link_id_from_building" - ] - messages.loc[messages.road_id.isna(), "road_id"] = messages.loc[messages.road_id.isna()][ - "road_id_from_building" - ] - messages = messages[ - [ - "message_id", - "text", - "geometry", - "building_id", - "link_id", - "road_id", - "date_time", - "cats", - ] - ].dropna(subset="text") - messages["cats"] = messages.cats.astype(str).str.split("; ").map(lambda x: x[0]) - messages["importance"] = messages["cats"].map(self.functions_weights) - messages["importance"].fillna(0.16, inplace=True) - messages["global_id"] = 0 - return messages - - def _create_model(self, min_event_size): - """ - Create a topic model with a UMAP, HDBSCAN, and a BERTopic model. - """ - umap_model = UMAP( - n_neighbors=15, - n_components=5, - min_dist=0.0, - metric="cosine", - random_state=42, - ) - hdbscan_model = HDBSCAN( - min_cluster_size=min_event_size, - min_samples=1, - metric="euclidean", - cluster_selection_method="eom", - prediction_data=True, - ) - embedding_model = pipeline("feature-extraction", model="cointegrated/rubert-tiny2") - topic_model = BERTopic( - embedding_model=embedding_model, - hdbscan_model=hdbscan_model, - umap_model=umap_model, - calculate_probabilities=True, - verbose=True, - n_gram_range=(1, 3), - ) - return topic_model - - def _event_from_object( - self, - messages, - topic_model, - target_column: str, - population: dict, - object_id: float, - event_level: str, - ): - """ - Create a list of events for a given object - (building, street, link, total). - """ - local_messages = messages[messages[target_column] == object_id] - message_ids = local_messages.message_id.tolist() - docs = local_messages.text.tolist() - if len(docs) >= 5: - try: - topics, probs = topic_model.fit_transform(docs) - except TypeError: - print("Can't reduce dimensionality or some other problem") - return - try: - topics = topic_model.reduce_outliers(docs, topics) - topic_model.update_topics(docs, topics=topics) - except ValueError: - print("Can't distribute all messages in topics") - event_model = topic_model.get_topic_info() - event_model["level"] = event_level - event_model["object_id"] = str(object_id) - event_model["id"] = event_model.apply( - lambda x: f"{str(x.Topic)}_{str(x.level)}_{str(x.object_id)}", - axis=1, - ) - try: - event_model["potential_population"] = population[event_level][object_id] - except Exception: # need to select type of error - event_model["potential_population"] = population["global"][0] - - clustered_messages = pd.DataFrame(data={"id": message_ids, "text": docs, "topic_id": topics}) - event_model["message_ids"] = [ - clustered_messages[clustered_messages["topic_id"] == topic]["id"].tolist() - for topic in event_model.Topic - ] - event_model["duration"] = event_model.message_ids.map( - lambda x: ( - pd.to_datetime(messages[messages["message_id"].isin(x)].date_time).max() - - pd.to_datetime(messages[messages["message_id"].isin(x)].date_time).min() - ).days - ) - event_model["category"] = event_model.message_ids.map( - lambda x: ", ".join(messages[messages["message_id"].isin(x)].cats.mode().tolist()) - ) - event_model["importance"] = event_model.message_ids.map( - lambda x: messages[messages["message_id"].isin(x)].importance.mean() - ) - return event_model - else: - return - - def _get_events(self, min_event_size) -> gpd.GeoDataFrame: - """ - Create a list of events for all levels. - """ - messages = self.messages.copy() - messages_list = messages.text.tolist() - index_list = messages.message_id.tolist() - pops = self._collect_population() - topic_model = self._create_model(min_event_size) - events = [ - [ - self._event_from_object(messages, topic_model, f"{level}_id", pops, oid, level) - for oid in messages[f"{level}_id"].unique().tolist() - ] - for level in reversed(self.levels) - ] - events = [item for sublist in events for item in sublist if item is not None] - events = pd.concat(list(chain(events))) - events["geometry"] = events.message_ids.map( - lambda x: messages[messages.message_id.isin(x)].geometry.unary_union.representative_point() - ) - events = gpd.GeoDataFrame(events, geometry="geometry").set_crs(4326) - events.rename( - columns={ - "Name": "name", - "Representative_Docs": "docs", - "Count": "intensity", - "potential_population": "population", - }, - inplace=True, - ) - events["docs"] = events["docs"].map( - lambda x: ", ".join([str(index_list[messages_list.index(text)]) for text in x]) - ) - events.message_ids = events.message_ids.map(lambda x: ", ".join([str(id) for id in x])) - events["intensity"] = (events["intensity"] - events["intensity"].min()) / ( - events["intensity"].max() - events["intensity"].min() - ) - events["duration"] = (events["duration"] - events["duration"].min()) / ( - events["duration"].max() - events["duration"].min() - ) - events.loc[events.intensity == 0, "intensity"] = 0.1 # fix later - events.loc[events.duration.isna(), "duration"] = 1 # fix later - events["risk"] = events.intensity * events.duration * events.importance * events.population - events["message_ids"] = events.message_ids.map(lambda x: ", ".join(list(set(x.split(", "))))) - events["docs"] = events.docs.map(lambda x: ", ".join(list(set(x.split(", "))))) - return events - - def _get_event_connections(self) -> gpd.GeoDataFrame: - """ - Create a list of connections between events. - """ - events = self.events.copy() - events.index = events.id - events.geometry = events.centroid - weights = [len((set(c[0]) & set(c[1]))) for c in combinations(self.events.message_ids, 2)] - nodes = [c for c in combinations(events.id, 2)] - connections = pd.DataFrame(nodes, weights).reset_index() - connections.columns = ["weight", "a", "b"] - connections = connections[connections["weight"] > 0] - connections = connections.join(events.geometry, on="a", rsuffix="_") - connections = connections.join(events.geometry, on="b", rsuffix="_") - events.reset_index(drop=True, inplace=True) - connections["geometry"] = connections.apply(lambda x: LineString([x["geometry"], x["geometry_"]]), axis=1) - connections.drop(columns=["geometry_"], inplace=True) - connections = gpd.GeoDataFrame(connections, geometry="geometry").set_crs(32636) - return connections - - def _rebalance(self, connections, events, levels, event_population: int, event_id: str): - """ - Rebalance the population of an event. - """ - connections_of_event = connections[connections.a == event_id].b - if len(connections_of_event) > 0: - accounted_pops = events[events.id.isin(connections_of_event) & events.level.isin(levels)].population.sum() - if event_population >= accounted_pops: - rebalanced_pops = event_population - accounted_pops - else: - connections_of_event = connections[connections.b == event_id].a - accounted_pops = events[ - events.id.isin(connections_of_event) & events.level.isin(levels) - ].population.sum() - rebalanced_pops = event_population - accounted_pops - return rebalanced_pops - else: - return event_population - - def _rebalance_events(self) -> gpd.GeoDataFrame: - """ - Rebalance the population of events. - """ - levels = self.levels.copy() - events = self.events.copy() - connections = self.connections.copy() - events_rebalanced = [] - for level in levels[1:]: - levels_to_account = levels[: levels.index(level)] - events_for_level = events[events.level == level] - events_for_level["rebalanced_population"] = events_for_level.apply( - lambda x: self._rebalance( - connections, - events, - levels_to_account, - x.population, - x.id, - ), - axis=1, - ) - events_rebalanced.append(events_for_level) - events_rebalanced = pd.concat(events_rebalanced) - events_rebalanced.loc[ - events_rebalanced.rebalanced_population.isna(), - "rebalanced_population", - ] = 0 - events_rebalanced["population"] = events_rebalanced.rebalanced_population - events_rebalanced.drop(columns=["rebalanced_population"], inplace=True) - events_rebalanced.population = events_rebalanced.population.astype(int) - events_rebalanced["population"] = (events_rebalanced["population"] - events_rebalanced["population"].min()) / ( - events_rebalanced["population"].max() - events_rebalanced["population"].min() - ) - events_rebalanced.loc[events_rebalanced.population == 0, "population"] = 0.01 # fix later - events_rebalanced.loc[ - events_rebalanced.population.isna() & events_rebalanced.level.isin(["building", "link"]), - "population", - ] = 0.01 # fix later - events_rebalanced.loc[ - events_rebalanced.population.isna() & events_rebalanced.level.isin(["road", "global"]), - "population", - ] = 1 # fix later - events_rebalanced["risk"] = ( - events_rebalanced.intensity * (events_rebalanced.duration + 1) * events_rebalanced.importance - ) - events_rebalanced = events_rebalanced[["name", "docs", "level", "id", "risk", "message_ids", "geometry"]] - return events_rebalanced - - def _filter_outliers(self): - """ - Filter outliers. - """ - pattern = r"^-1.*" - events = self.events - connections = self.connections - print( - len(events[events.name.map(lambda x: True if re.match(pattern, x) else False)]), - "outlier clusters of", - len(events), - "total clusters. Filtering...", - ) - events = events[events.name.map(lambda x: False if re.match(pattern, x) else True)] - connections = connections[connections.a.map(lambda x: False if re.match(pattern, x) else True)] - connections = connections[connections.b.map(lambda x: False if re.match(pattern, x) else True)] - return events, connections - - def _prepare_messages(self): - """ - Prepare messages for export. - """ - messages = self.messages.copy() - messages = messages.reset_index(drop=True) - messages.rename(columns={"cats": "block"}, inplace=True) - messages = messages[["message_id", "text", "geometry", "date_time", "block"]] - messages = messages.to_crs(4326) - return messages - -
    -[docs] - def run( - self, - target_texts: gpd.GeoDataFrame, - filepath_to_population: str, - city_name: str, - city_crs: int, - min_event_size: int, - ): - """ - Returns a GeoDataFrame of events, a GeoDataFrame of - connections between events, and a GeoDataFrame of messages. - """ - self.population_filepath = filepath_to_population - self.messages = target_texts.copy() - print("messages loaded") - self.links = self._get_roads(city_name, city_crs) - print("road links loaded") - self.buildings = self._get_buildings() - print("buildings loaded") - self.messages = self._preprocess() - print("messages preprocessed") - self.events = self._get_events(min_event_size) - print("events detected") - self.connections = self._get_event_connections() - print("connections generated") - self.events = self._rebalance_events() - print("population and risk rebalanced") - self.events, self.connections = self._filter_outliers() - print("outliers filtered") - self.messages = self._prepare_messages() - print("done!") - - return self.messages, self.events, self.connections
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/risks/text_classifier.html b/docs/build/html/_modules/sloyka/src/risks/text_classifier.html deleted file mode 100644 index 38ef820..0000000 --- a/docs/build/html/_modules/sloyka/src/risks/text_classifier.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - - - - sloyka.src.risks.text_classifier - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.risks.text_classifier

    -"""
    -This module contains the TextClassifiers class, which is aimed to classify input texts into themes or structured types of events.
    -It uses a Huggingface transformer model trained on rubert-tiny.
    -In many cases, the count of messages per theme was too low to efficiently train, so synthetic themes based
    -on the categories as the upper level were used (for example, 'unknown_ЖКХ').
    -
    -Attributes:
    -- repository_id (str): The repository ID.
    -- number_of_categories (int): The number of categories.
    -- device_type (str): The type of device.
    -
    -The TextClassifiers class has the following methods:
    -
    -@method:initialize_classifier: Initializes the text classification pipeline with the specified model, tokenizer, and device type.
    -
    -@method:run_text_classifier_topics:
    - Takes a text as input and returns the predicted themes and probabilities.
    -
    -@method:run_text_classifier: 
    - Takes a text as input and returns the predicted categories and probabilities.
    -"""
    -
    -import pandas as pd
    -from transformers import pipeline
    -from sloyka.src.utils.exceptions import InvalidInputError, ClassifierInitializationError, ClassificationError
    -
    -
    -
    -[docs] -class TextClassifiers: - def __init__(self, repository_id, number_of_categories=1, device_type=None): - self.repository_id = repository_id - self.number_of_categories = number_of_categories - self.device_type = device_type or -1 # -1 will automatically choose the device based on availability - self.classifier = None - -
    -[docs] - def initialize_classifier(self): - if not self.classifier: - try: - self.classifier = pipeline( - "text-classification", - model=self.repository_id, - tokenizer="cointegrated/rubert-tiny2", - device=self.device_type, - ) - except Exception as e: - raise ClassifierInitializationError(f"Failed to initialize the classifier: {e}")
    - - -
    -[docs] - def classify_text(self, text, is_topic=False): - if not isinstance(text, str): - raise InvalidInputError("Input must be a string.") - - self.initialize_classifier() - - try: - predictions = self.classifier(text, top_k=self.number_of_categories) - preds_df = pd.DataFrame(predictions) - categories = "; ".join(preds_df["label"].tolist()) - probabilities = "; ".join(preds_df["score"].round(3).astype(str).tolist()) - except Exception as e: - raise ClassificationError(f"Error during text classification: {e}") - - return categories, probabilities
    - - -
    -[docs] - def run_text_classifier_topics(self, text): - return self.classify_text(text, is_topic=True)
    - - -
    -[docs] - def run_text_classifier(self, text): - return self.classify_text(text)
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/semantic_graph/semantic_graph_builder.html b/docs/build/html/_modules/sloyka/src/semantic_graph/semantic_graph_builder.html deleted file mode 100644 index 92625b4..0000000 --- a/docs/build/html/_modules/sloyka/src/semantic_graph/semantic_graph_builder.html +++ /dev/null @@ -1,585 +0,0 @@ - - - - - - - - sloyka.src.semantic_graph.semantic_graph_builder - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.semantic_graph.semantic_graph_builder

    -"""
    -@class:Semgraph:
    -The main class of the semantic graph module. It is aimed to build a semantic graph based on the provided data
    -and parameters.
    -More convenient to use after extracting data from geocoder.
    -
    -The Semgraph class has the following methods:
    -
    -@method:clean_from_dublicates:
    -A function to clean a DataFrame from duplicates based on specified columns.
    -
    -@method:clean_from_digits:
    -Removes digits from the text in the specified column of the input DataFrame.
    -
    -@method:clean_from_toponyms:
    -Clean the text in the specified text column by removing any words that match the toponyms in the name and
    -toponym columns.
    -
    -@method:aggregate_data:
    -Creates a new DataFrame by aggregating the data based on the provided text and toponyms columns.
    -"""
    -
    -import nltk
    -import pandas as pd
    -import geopandas as gpd
    -import networkx as nx
    -from transformers import BertTokenizer, BertModel  # type: ignore
    -
    -from .g_attrs_adder import add_attributes
    -from .keyword_extracter import extract_keywords
    -from .semantic_closeness_annotator import get_semantic_closeness
    -from .g_text_data_getter import get_tag, get_coordinates, get_text_ids
    -from ..utils.data_preprocessing.preprocessor import (
    -    clean_from_dublicates,
    -    clean_from_digits,
    -    clean_from_toponyms,
    -    clean_from_links,
    -)
    -
    -
    -
    -
    -from sloyka.src.utils.constants import TAG_ROUTER
    -
    -
    -
    -[docs] -class Semgraph: - """ - This is the main class of semantic graph module. - It is aimed to build a semantic graph based on the provided data and parameters. - More convinient to use after extracting data from geocoder. - - Param: - bert_name: the name of the BERT model to use (default is 'DeepPavlov/rubert-base-cased') - language: the language of the BERT model (default is 'russian') - device: the device to use for inference (default is 'cpu') - """ - - def __init__( - self, bert_name: str = "DeepPavlov/rubert-base-cased", language: str = "russian", device: str = "cpu" - ) -> None: - self.language = language - self.device = device - self.tokenizer = BertTokenizer.from_pretrained(bert_name) - self.model_name = bert_name - self.model = BertModel.from_pretrained(bert_name).to(device) - - -
    -[docs] - @staticmethod - def convert_df_to_edge_df( - data: pd.DataFrame | gpd.GeoDataFrame, toponym_column: str, word_info_column: str = "words_score" - ) -> pd.DataFrame | gpd.GeoDataFrame: - edge_list = [] - - for i in data[toponym_column]: - current_df = data.loc[data[toponym_column] == i] - for j in range(len(current_df)): - toponym = current_df[toponym_column].iloc[j] - word_nodes = current_df[word_info_column].iloc[j] - - for k in word_nodes: - if k[2] in TAG_ROUTER.keys(): - edge_list.append([toponym, k[0], k[1], TAG_ROUTER[k[2]]]) - - edge_df = pd.DataFrame(edge_list, columns=["FROM", "TO", "distance", "type"]) - - return edge_df
    - - -
    -[docs] - def build_graph( - self, - data: pd.DataFrame | gpd.GeoDataFrame, - id_column: str, - text_column: str, - text_type_column: str, - toponym_column: str, - toponym_name_column: str, - toponym_type_column: str, - post_id_column: str, - parents_stack_column: str, - directed: bool = True, - location_column: str | None = None, - geometry_column: str | None = None, - key_score_filter: float = 0.6, - semantic_score_filter: float = 0.75, - top_n: int = 1, - ) -> nx.classes.graph.Graph: - """ - Build a graph based on the provided data. - - Args: - data (pd.DataFrame or gpd.GeoDataFrame): The input data to build the graph from. - id_column (str): The column containing unique identifiers. - text_column (str): The column containing text information. - text_type_column (str): The column indicating the type of text. - toponym_column (str): The column containing toponym information. - toponym_name_column (str): The column containing toponym names. - toponym_type_column (str): The column containing toponym types. - post_id_column (str): The column containing post identifiers. - parents_stack_column (str): The column containing parent-child relationships. - directed (bool): Flag indicating if the graph is directed. Defaults to True. - location_column (str or None): The column containing location information. Defaults to None. - geometry_column (str or None): The column containing geometry information. Defaults to None. - key_score_filter (float): The threshold for key score filtering. Defaults to 0.6. - semantic_score_filter (float): The threshold for semantic score filtering. Defaults to 0.75. - top_n (int): The number of top keywords to extract. Defaults to 1. - - Returns: - nx.classes.graph.Graph: The constructed graph. - """ - - data = clean_from_dublicates(data, id_column) - - data = clean_from_digits(data, text_column) - - data = clean_from_toponyms(data, text_column, toponym_name_column, toponym_type_column) - - data = clean_from_links(data, text_column) - - extracted = extract_keywords( - self, - data, - text_column, - text_type_column, - toponym_column, - id_column, - post_id_column, - parents_stack_column, - key_score_filter, - top_n, - ) - - df = extracted[0] - toponyms_attributes = extracted[1] - words_attributes = extracted[2] - - preprocessed_df = self.convert_df_to_edge_df(data=df, toponym_column=toponym_column) - - words_df = get_semantic_closeness(self, preprocessed_df, "TO", semantic_score_filter) - - graph_df = pd.concat([preprocessed_df, words_df], ignore_index=True) - if directed: - G = nx.from_pandas_edgelist( - graph_df, source="FROM", target="TO", edge_attr=["distance", "type"], create_using=nx.DiGraph() - ) - - else: - G = nx.from_pandas_edgelist(graph_df, source="FROM", target="TO", edge_attr=["distance", "type"]) - - nodes = list(G.nodes()) - attributes = get_tag(nodes, list(set(data[toponym_column]))) - - nx.set_node_attributes(G, attributes, "tag") - G = add_attributes(G=G, new_attributes=toponyms_attributes, attribute_tag="counts", toponym_attributes=True) - - G = add_attributes(G=G, new_attributes=words_attributes, attribute_tag="counts", toponym_attributes=False) - - if isinstance(data, gpd.GeoDataFrame): - G = get_coordinates( - G=G, - geocoded_data=data, - toponym_column=toponym_column, - location_column=location_column, - geometry_column=geometry_column, - ) - - G = get_text_ids(G=G, filtered_data=df, toponym_column=toponym_column, text_id_column=id_column) - - return G
    - - -
    -[docs] - def update_graph( - self, - G: nx.classes.graph.Graph, - data: pd.DataFrame | gpd.GeoDataFrame, - id_column: str, - text_column: str, - text_type_column: str, - toponym_column: str, - toponym_name_column: str, - toponym_type_column: str, - post_id_column: str, - parents_stack_column: str, - directed: bool = True, - counts_attribute: str | None = None, - location_column: str | None = None, - geometry_column: str | None = None, - key_score_filter: float = 0.6, - semantic_score_filter: float = 0.75, - top_n: int = 1, - ) -> nx.classes.graph.Graph: - """ - Update the input graph based on the provided data, returning the updated graph. - - Args: - G (nx.classes.graph.Graph): The input graph to be updated. - data (pd.DataFrame or gpd.GeoDataFrame): The input data to update the graph. - id_column (str): The column containing unique identifiers. - text_column (str): The column containing text information. - text_type_column (str): The column indicating the type of text. - toponym_column (str): The column containing toponym information. - toponym_name_column (str): The column containing toponym names. - toponym_type_column (str): The column containing toponym types. - post_id_column (str): The column containing post identifiers. - parents_stack_column (str): The column containing parent-child relationships. - directed (bool): Flag indicating if the graph is directed. Defaults to True. - counts_attribute (str or None): The attribute to be used for counting. Defaults to None. - location_column (str or None): The column containing location information. Defaults to None. - geometry_column (str or None): The column containing geometry information. Defaults to None. - key_score_filter (float): The threshold for key score filtering. Defaults to 0.6. - semantic_score_filter (float): The threshold for semantic score filtering. Defaults to 0.75. - top_n (int): The number of top keywords to extract. Defaults to 1. - - Returns: - nx.classes.graph.Graph: The updated graph. - """ - - new_G = self.build_graph( - data, - id_column, - text_column, - text_type_column, - toponym_column, - toponym_name_column, - toponym_type_column, - post_id_column, - parents_stack_column, - directed, - location_column, - geometry_column, - key_score_filter, - semantic_score_filter, - top_n, - ) - - joined_G = nx.compose(G, new_G) - - if counts_attribute is not None: - nodes = list(set(G.nodes) & set(new_G.nodes)) - for i in nodes: - joined_G.nodes[i]["total_counts"] = G.nodes[i][counts_attribute] + new_G.nodes[i]["counts"] - - return joined_G
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/utils/data_getter/geo_data_getter.html b/docs/build/html/_modules/sloyka/src/utils/data_getter/geo_data_getter.html deleted file mode 100644 index 512a5d7..0000000 --- a/docs/build/html/_modules/sloyka/src/utils/data_getter/geo_data_getter.html +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - sloyka.src.utils.data_getter.geo_data_getter - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.utils.data_getter.geo_data_getter

    -import warnings
    -warnings.filterwarnings("ignore")
    -
    -from contextlib import suppress
    -import osmnx as ox
    -import geopandas as gpd
    -import pandas as pd
    -from sloyka.src.utils.constants import (
    -    GLOBAL_CRS,
    -    GLOBAL_METRIC_CRS,
    -)
    -from tqdm import tqdm
    -import requests
    -import osm2geojson
    -import networkx as nx
    -from loguru import logger
    -
    -from sloyka.src.utils.exceptions import *
    -
    -
    -[docs] -class GeoDataGetter: - """ - This class is used to retrieve geospatial data from OpenStreetMap (OSM) based on given OSM ID and tags. - - Methods: - - get_features_from_id: Retrieves features from the given OSM ID using the provided tags and OSM type, and returns the results as a GeoDataFrame. - - _get_place_from_id: Retrieves the place from the given OSM ID and OSM type. - - _process_tags: Processes the provided tags and returns a list of GeoDataFrames. - - _get_features_from_place: Retrieves features from a specific place based on category and tag. - - _handle_error: Handles any errors that occur during the process and prints an error message. - """ -
    -[docs] - @staticmethod - def get_osm_data(osm_id: int, tags: dict) -> pd.DataFrame: - """ - Retrieves spatial data from OSM for given tags using OSM ID and returns a DataFrame. - """ - try: - osm_id_rel = f"R{osm_id}" - city_boundary_gdf = ox.geocode_to_gdf(osm_id_rel, by_osmid=True) - polygon = city_boundary_gdf["geometry"].iloc[0] - data = ox.features_from_polygon(polygon, tags) - df = pd.DataFrame(data) - df = df.dropna(subset=["name"]) - df = df.loc[:, ["name", "geometry"] + list(tags.keys())] - return df - except Exception as e: - raise ConectionError(f"Error retrieving OSM data for {osm_id_rel}: {e}")
    - - -
    -[docs] - @staticmethod - def get_city_bounds(osm_id: int) -> gpd.GeoDataFrame: - """ - Method retrieves the boundary of a specified city from OSM - using Overpass API and returns a GeoDataFrame representing - the boundary as a polygon. - """ - # Streets.logger.info(f"Retrieving city bounds for osm_id {osm_id}") - overpass_url = "http://overpass-api.de/api/interpreter" - overpass_query = f""" - [out:json]; - ( - relation({osm_id}); - ); - out geom; - """ - - try: - result = requests.get(overpass_url, params={"data": overpass_query},timeout=30).json() - resp = osm2geojson.json2geojson(result) - city_bounds = gpd.GeoDataFrame.from_features(resp["features"]).set_crs(GLOBAL_CRS) - # Streets.logger.debug(f"City bounds retrieved: {city_bounds}") - return city_bounds - except requests.exceptions.RequestException as exc: - with suppress(ConectionError): - raise ConectionError(f'unable to get city bounds') from exc
    - - -
    -[docs] - @staticmethod - def get_features_from_id( - osm_id: int, - tags: dict, - osm_type="R", - selected_columns=["tag", "element_type", "osmid", "name", "geometry", "centroid"], - ) -> gpd.GeoDataFrame: - """ - Get features from the given OSM ID using the provided tags and OSM type, and return the results as a GeoDataFrame. - - Args: - osm_id (int): The OpenStreetMap ID. - tags (dict): The tags to filter by. - osm_type (str, optional): The OpenStreetMap type. Defaults to "R". - selected_columns (list, optional): The selected columns to include in the result GeoDataFrame. - Defaults to ['tag', 'element_type', 'osmid', 'name', 'geometry', 'centroid']. - - Returns: - gpd.GeoDataFrame: The GeoDataFrame containing the features. - """ - place = GeoDataGetter._get_place_from_id(osm_id, osm_type) - gdf_list = GeoDataGetter._process_tags(tags, place) - - if len(gdf_list) > 0: - merged_gdf = pd.concat(gdf_list).reset_index().loc[:, selected_columns] - else: - merged_gdf = pd.DataFrame(columns=selected_columns) - - return merged_gdf
    - - - @staticmethod - def _get_place_from_id(osm_id, osm_type): - place = ox.project_gdf(ox.geocode_to_gdf(osm_type + str(osm_id), by_osmid=True)) - return place - - @staticmethod - def _process_tags(tags, place): - gdf_list = [] - place_name = place.name.iloc[0] - for category, category_tags in tags.items(): - for tag in tqdm(category_tags, desc=f"Processing category {category}"): - try: - gdf = GeoDataGetter._get_features_from_place(place_name, category, tag) - gdf_list.append(gdf) - except AttributeError: - logger.warning(f'Error processing {tags, place}') - pass - return gdf_list - - @staticmethod - def _get_features_from_place(place_name, category, tag): - gdf = ox.features_from_place(place_name, tags={category: tag}) - gdf.geometry.dropna(inplace=True) - gdf["tag"] = category - gdf["centroid"] = gdf["geometry"] - - tmpgdf = ox.projection.project_gdf(gdf, to_crs=GLOBAL_METRIC_CRS, to_latlong=False) - tmpgdf["centroid"] = tmpgdf["geometry"].centroid - tmpgdf = tmpgdf.to_crs(GLOBAL_CRS) - gdf["centroid"] = tmpgdf["centroid"] - tmpgdf = None - - return gdf - -
    -[docs] - @staticmethod - def get_drive_graph(city_bounds: gpd.GeoDataFrame) -> nx.MultiDiGraph: - """ - Method uses the OSMnx library to retrieve the street network for a - specified city and returns it as a NetworkX MultiDiGraph object, where - each edge represents a street segment and each node represents - an intersection. - """ - - try: - G_drive = ox.graph_from_polygon(city_bounds.dissolve()["geometry"].squeeze(), network_type="drive") - logger.debug(f"Drive graph retrieved: {G_drive}") - if isinstance(G_drive, nx.Graph): - return G_drive - else: - raise AttributeError - except AttributeError as exc: - with suppress(ConectionError): - raise ConectionError(f"Error retrieving drive graph: {exc}") from exc
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/utils/data_getter/street_getter.html b/docs/build/html/_modules/sloyka/src/utils/data_getter/street_getter.html deleted file mode 100644 index 0c2d448..0000000 --- a/docs/build/html/_modules/sloyka/src/utils/data_getter/street_getter.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - sloyka.src.utils.data_getter.street_getter - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.utils.data_getter.street_getter

    -import re
    -import geopandas as gpd
    -import pandas as pd
    -
    -import warnings
    -
    -from sloyka.src.utils.data_getter.geo_data_getter import GeoDataGetter as dg
    -from sloyka.src.utils.data_preprocessing import preprocessor as pp
    -from sloyka.src.utils.constants import TOPONYM_PATTERN
    -
    -warnings.simplefilter("ignore")
    -warnings.filterwarnings("ignore", category=DeprecationWarning)
    -
    -class StreetsError(Exception):
    -    """Custom exception for streets-related errors"""
    -
    -    pass
    -
    -
    -
    -[docs] -class Streets: - """ - This class encapsulates functionality for retrieving street data - for a specified city from OSM and processing it to extract useful - information for geocoding purposes. - """ - -
    -[docs] - @staticmethod - def get_street_names(gdf: gpd.GeoDataFrame) -> pd.DataFrame: - """ - Method extracts the unique street names from a - GeoDataFrame of street segments. - """ - # Streets.logger.info("Extracting street names") - names = set(gdf["name"].explode().dropna()) - df_streets = pd.DataFrame(names, columns=["street"]) - # Streets.logger.debug(f"Street names extracted: {df_streets}") - return df_streets
    - - -
    -[docs] - @staticmethod - def find_toponim_words_from_name(x: str) -> str: - """ - A method to find toponim words from the given name string. - - Args: - x (str): The input name string. - - Returns: - str: The found toponim word from the input name string, or None if not found. - """ - # Streets.logger.debug(f"Finding toponim words in {x}") - pattern = re.compile( - TOPONYM_PATTERN, - re.IGNORECASE, - ) - - match = pattern.search(x) - - if match: - return match.group().strip().lower() - else: - return None
    - - -
    -[docs] - @staticmethod - def drop_words_from_name(x: str) -> str: - """ - This function drops parts of street names that are not the name - of the street (e.g. avenue). - """ - # Streets.logger.debug(f"Dropping words from {x}") - try: - lst = re.split( - TOPONYM_PATTERN, - x, - ) - lst.remove("") - - return lst[0].strip().lower() - - except ValueError: - return x
    - - -
    -[docs] - @staticmethod - def clear_names(streets_df: pd.DataFrame) -> pd.DataFrame: - """ - This function pre-process the street names from the OSM. - This step is necessary to match recognised street addresses later. - We need to do this match because Nominatim is very sensitive geocoder - and requires almost exact match between addresses in the OSM database - and the geocoding address. - """ - # Streets.logger.info("Clearing street names") - streets_df["toponim_name"] = streets_df["street"].map(Streets.find_toponim_words_from_name) - streets_df["street_name"] = streets_df["street"].map(Streets.drop_words_from_name) - # Streets.logger.debug(f"Street names cleared: {streets_df}") - return streets_df
    - - -
    -[docs] - @staticmethod - def run(osm_id: int) -> pd.DataFrame: - """ - A static method to run the process of getting street data based on the given - OSM id, returning a pandas DataFrame. - """ - # Streets.logger.info(f"Running street data retrieval for osm_id {osm_id}") - city_bounds = dg.get_city_bounds(osm_id) - streets_graph = dg.get_drive_graph(city_bounds) - streets_gdf = pp.graph_to_gdf(streets_graph) - streets_df = Streets.get_street_names(streets_gdf) - streets_df = Streets.clear_names(streets_df) - # Streets.logger.info(f"Street data retrieval complete: {streets_df}") - return streets_df
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/utils/data_getter/vk_data_getter.html b/docs/build/html/_modules/sloyka/src/utils/data_getter/vk_data_getter.html deleted file mode 100644 index 485474f..0000000 --- a/docs/build/html/_modules/sloyka/src/utils/data_getter/vk_data_getter.html +++ /dev/null @@ -1,634 +0,0 @@ - - - - - - - - sloyka.src.utils.data_getter.vk_data_getter - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.utils.data_getter.vk_data_getter

    -"""
    -This module contains classes for retrieving and working with various types of data.
    -
    -@class:GeoDataGetter:
    -This class is used to retrieve geospatial data from OpenStreetMap (OSM) based on given OSM ID and tags.
    -
    -@class:VKParser:
    -A class for parsing and working with VK comments and posts. Combines posts and comments into one dataframe.
    -
    -@class:Streets:
    -A class for working with street data.
    -
    -"""
    -import pandas as pd
    -from tqdm import tqdm
    -import requests
    -import datetime
    -import time
    -import random
    -
    -
    -[docs] -class VKParser: - API_VERISON = "5.131" - COUNT_ITEMS = 100 - # SLEEP_TIME = 0.5 - TIMEOUT_LIMIT = 15 - -
    -[docs] - @staticmethod - def get_group_name(domain, accsess_token): - params = {"group_id": domain, "access_token": accsess_token, "v": VKParser.API_VERISON} - response = requests.get("https://api.vk.com/method/groups.getById", params=params) # передвинуть повыше - data = response.json() - if "response" in data and data["response"]: - group_name = data["response"][0]["name"] - return pd.DataFrame({"group_name": [group_name]}) - else: - print("Error while fetching group name:", data) - return pd.DataFrame({"group_name": [None]})
    - - -
    -[docs] - @staticmethod - def get_owner_id_by_domain(domain, access_token): - """ - Get the owner ID of a VK group by its domain. - - Args: - domain (str): The domain of the VK group. - access_token (str): The access token for the VK API. - - Returns: - int: The owner ID of the VK group, or None if the request was not successful. - """ - url = "https://api.vk.com/method/wall.get" - params = { - "domain": domain, - "access_token": access_token, - "v": VKParser.API_VERISON, - } - response = requests.get(url, params=params) - if response.ok: - owner_id = response.json()["response"]["items"][0]["owner_id"] - else: - owner_id = None - return owner_id
    - - -
    -[docs] - @staticmethod - def get_group_post_ids(domain, access_token, post_num_limit, step) -> list: - """ - A static method to retrieve a list of post IDs for a given group, based on the owner ID, - access token, post number limit, and step size. Returns a list of post IDs. - """ - offset = 0 - post_ids = [] - - while offset < post_num_limit: - print(offset, " | ", post_num_limit, end="\r") - res = requests.get( - "https://api.vk.com/method/wall.get", - params={ - "access_token": access_token, - "v": VKParser.API_VERISON, - "domain": domain, - "count": step, - "offset": offset, - }, - timeout=10, - ).json()["response"] - # print(res.json().keys()) - time.sleep(random.random()) - - post_ids_new = [k["id"] for k in res["items"]] - post_ids += post_ids_new - offset += step - - return post_ids
    - - -
    -[docs] - @staticmethod - def get_subcomments(params): - """ - Retrieves subcomments from the VK API. - - Args: - owner_id (int): The ID of the owner of the comments. - post_id (int): The ID of the post. - access_token (str): The access token for authentication. - params (dict): Additional parameters for the API request. - - Returns: - list: A list of subcomments retrieved from the API. - """ - subcomments = [] - - response = requests.get("https://api.vk.com/method/wall.getComments", params=params) - # print(response.json().keys()) - time.sleep(random.random()) - data = response.json() - - if "response" in data: - for item in data["response"]["items"]: - item["date"] = datetime.datetime.utcfromtimestamp(item["date"]).strftime("%Y-%m-%d %H:%M:%S") - if "likes" in item: - item["likes.count"] = item["likes"]["count"] - subcomments.append(item) - - return subcomments
    - - -
    -[docs] - def get_comments(self, owner_id, post_id, access_token): - """ - Get comments for a post on VK using the specified owner ID, post ID, and access token. - - Parameters: - owner_id (int): The ID of the post owner. - post_id (int): The ID of the post. - access_token (str): The access token for authentication. - - Returns: - list: A list of dictionaries containing comment information. - """ - params = { - "owner_id": owner_id, - "post_id": post_id, - "access_token": access_token, - "v": VKParser.API_VERISON, - "extended": 1, - "count": 100, - "need_likes": 1, - } - - comments = [] - - response = requests.get("https://api.vk.com/method/wall.getComments", params=params) - # print(response.json().keys()) - time.sleep(random.random()) - data = response.json() - - if "response" in data: - for item in data["response"]["items"]: - if item["text"] == "": - continue - item["date"] = datetime.datetime.utcfromtimestamp(item["date"]).strftime("%Y-%m-%d %H:%M:%S") - if "likes" in item: - item["likes.count"] = item["likes"]["count"] - comments.append(item) - if item["thread"]["count"] > 0: - params["comment_id"] = item["id"] - subcomments = VKParser.get_subcomments(params) - comments.extend(subcomments) - return comments
    - - -
    -[docs] - @staticmethod - def comments_to_dataframe(comments): - """ - Convert comments to a DataFrame. - - Args: - comments: List of comments to be converted. - - Returns: - DataFrame: A DataFrame containing specific columns from the input comments. - """ - df = pd.DataFrame(comments) - df = df[["id", "from_id", "date", "text", "post_id", "parents_stack", "likes.count"]] - return df
    - - -
    -[docs] - @staticmethod - def run_posts(domain, access_token, cutoff_date, number_of_messages=float("inf"), step=50): - """ - A function to retrieve posts from a social media API based on specified parameters. - - Parameters: - owner_id (int): The ID of the owner whose posts are being retrieved. - access_token (str): The authentication token for accessing the API. - step (int): The number of posts to retrieve in each API call. - cutoff_date (str): The date to stop retrieving posts (format: '%Y-%m-%d'). - number_of_messages (float): The maximum number of messages to retrieve (default is infinity). - - Returns: - pandas.DataFrame: A DataFrame containing the retrieved posts. - """ - - offset = 0 - all_posts = [] - if step > number_of_messages: - step = number_of_messages - while offset < number_of_messages: - print(offset, " | ", number_of_messages, end="\r") - - response = requests.get( - "https://api.vk.com/method/wall.get", - params={ - "access_token": access_token, - "v": VKParser.API_VERISON, - "domain": domain, - "count": step, - "offset": offset, - }, timeout=600 - ) - if response.ok: - # print(response.json().keys()) - data = response.json()["response"]["items"] - offset += step - current_posts = pd.json_normalize(data) - current_posts = current_posts[["date", "id", "text", "views.count", "likes.count", "reposts.count"]] - current_posts["date"] = [ - datetime.datetime.fromtimestamp(current_posts["date"][i]) for i in range(len(current_posts["date"])) - ] - current_posts["type"] = "post" - all_posts.append(current_posts) - print(current_posts.date.min()) - if any(current_posts["date"] < datetime.datetime.strptime(cutoff_date, "%Y-%m-%d")): - print("posts downloaded") - break - else: - continue - time.sleep(random.random()) - df_posts = pd.concat(all_posts).reset_index(drop=True) - df_posts = df_posts[df_posts.text.map(lambda x: len(x)) > 0] - df_posts["text"] = df_posts["text"].str.replace(r"\n", "", regex=True) - df_posts["link"] = df_posts["text"].str.extract(r"(https://\S+)") - return df_posts
    - - -
    -[docs] - @staticmethod - def run_comments(domain, post_ids, access_token): - owner_id = VKParser.get_owner_id_by_domain(domain, access_token) - all_comments = [] - for post_id in tqdm(post_ids): - comments = VKParser().get_comments(owner_id, post_id, access_token) - all_comments.extend(comments) - if len(all_comments) > 0: - df = VKParser.comments_to_dataframe(all_comments) - df["type"] = "comment" - df = df.reset_index(drop=True) - print("comments downloaded") - return df - else: - print("no comments") - return None
    - - -
    -[docs] - @staticmethod - def run_parser(domain, access_token, cutoff_date, number_of_messages=float("inf"), step=100): - """ - Runs the parser with the given parameters and returns a combined DataFrame of posts and comments. - - :param owner_id: The owner ID for the parser. - :param access_token: The user token for authentication. - :param step: The step size for fetching data. - :param cutoff_date: The cutoff date for fetching data. - :param number_of_messages: The maximum number of messages to fetch. Defaults to positive infinity. - :return: A combined DataFrame of posts and comments. - """ - owner_id = VKParser.get_owner_id_by_domain(domain, access_token) - df_posts = VKParser.run_posts(domain=owner_id, access_token=access_token, step=step, cutoff_date=cutoff_date, number_of_messages=number_of_messages) - post_ids = df_posts["id"].tolist() - - df_comments = VKParser.run_comments(domain=owner_id, post_ids=post_ids, access_token=access_token) - if df_comments is not None: - df_comments.loc[df_comments["parents_stack"].apply(lambda x: len(x) > 0), "type"] = "reply" - for i in range(len(df_comments)): - tmp = df_comments["parents_stack"].iloc[i] - if tmp is not None: - if len(tmp) > 0: - df_comments["parents_stack"].iloc[i] = tmp[0] - else: - df_comments["parents_stack"].iloc[i] = None - - df_combined = df_comments.join(df_posts, on="post_id", rsuffix="_post") - df_combined = pd.concat([df_posts, df_comments], ignore_index=True) - else: - df_combined = df_posts - df_group_name = VKParser.get_group_name(domain, access_token) - df_combined["group_name"] = df_group_name["group_name"][0] - - return df_combined
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/utils/data_processing/city_services_extract.html b/docs/build/html/_modules/sloyka/src/utils/data_processing/city_services_extract.html deleted file mode 100644 index b7d7d14..0000000 --- a/docs/build/html/_modules/sloyka/src/utils/data_processing/city_services_extract.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - sloyka.src.utils.data_processing.city_services_extract - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.utils.data_processing.city_services_extract

    -import numpy as np
    -from flair.models import SequenceTagger
    -from flair.data import Sentence
    -from rapidfuzz import fuzz
    -from sloyka.src.utils.constants import CITY_SERVICES_NAMES
    -from sloyka.src.utils.data_preprocessing.preprocessor import PreprocessorInput
    -
    -
    -[docs] -class City_services: - - def __init__(self, model_name:str="Glebosol/city_services"): - self.tagger = SequenceTagger.load(model_name) - -
    -[docs] - def extraction_services(self, text): - sentence = Sentence(text) - self.tagger.predict(sentence) - entities = sentence.get_spans("ner") - entity_names = [entity.text for entity in entities] - return entity_names
    - - -
    -[docs] - def remove_last_letter(words): - reduced_words = [word[:-1] for word in words] - return reduced_words
    - - -
    -[docs] - def replace_with_most_similar(list_of_entities): - similarity_matrix = np.zeros((len(list_of_entities), len(CITY_SERVICES_NAMES))) - for i, word1 in enumerate(list_of_entities): - for j, word2 in enumerate(CITY_SERVICES_NAMES): - similarity = fuzz.ratio(word1, word2) / 100.0 - similarity_matrix[i, j] = similarity - new_list_of_entities = list_of_entities.copy() - for i in range(len(list_of_entities)): - max_index = np.argmax(similarity_matrix[i]) - new_list_of_entities[i] = CITY_SERVICES_NAMES[max_index] - return new_list_of_entities
    - - -
    -[docs] - def run(self, df, text_column): - df = PreprocessorInput.run(df, text_column) - city_services = City_services() - df["City_services_extraced"] = df[text_column].apply(city_services.extraction_services) - df["City_services_cuted"] = df["City_services_extraced"].apply(City_services.remove_last_letter) - df["City_services"] = df["City_services_cuted"].apply(City_services.replace_with_most_similar) - df.drop("City_services_cuted", axis=1, inplace=True) - return df
    -
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_modules/sloyka/src/visual/graph_visualization.html b/docs/build/html/_modules/sloyka/src/visual/graph_visualization.html deleted file mode 100644 index f2dd706..0000000 --- a/docs/build/html/_modules/sloyka/src/visual/graph_visualization.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - sloyka.src.visual.graph_visualization - sloyka 0.2.1 documentation - - - - - - - - - - - - - - - - - Contents - - - - - - Menu - - - - - - - - Expand - - - - - - Light mode - - - - - - - - - - - - - - Dark mode - - - - - - - Auto light/dark, in light mode - - - - - - - - - - - - - - - Auto light/dark, in dark mode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to content - - - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    - - - - - Back to top - -
    -
    - -
    - -
    -
    -

    Source code for sloyka.src.visual.graph_visualization

    -import folium
    -import random
    -
    -
    -
    -[docs] -def visualize_graph(G, zoom: int): - """ - Visualizes a graph from the given graph_path using Folium and MarkerCluster. - - Args: - output_file (str, optional): The file to save the visualization to. Defaults to None. - - Returns: - folium.Map: The folium map object representing the visualized graph. - """ - - m = folium.Map( - zoom_start=zoom, - tiles="cartodb_positron", - control_scale=True, - ) - - nodes_group = folium.FeatureGroup(name='Nodes') - neighbors_group = folium.FeatureGroup(name='Neighbors') - lines_group = folium.FeatureGroup(name='Lines') - - for node, data in G.nodes(data=True): - if "Lat" in data and "Lon" in data: - main_node_location = [data["Lon"], data["Lat"]] - folium.Marker( - location=main_node_location, - popup=node, - icon=folium.DivIcon( - icon_size=(60,20), - icon_anchor=(0,0), - html='<div style="font-size: 6pt; color: blue">%s</div>' % node, - ) - ).add_to(nodes_group) - - for n in G.neighbors(node): - neighbor_location = [ - main_node_location[0] + random.uniform(-0.0008, 0.0008), - main_node_location[1] + random.uniform(-0.0008, 0.0008), - ] - folium.Marker( - location=neighbor_location, - popup=n, - icon=folium.DivIcon( - icon_size=(150,50), - icon_anchor=(0,0), - html=f'<div style="font-size: 10pt;color: darkred">{n}</div>', - ) - ).add_to(neighbors_group) - - folium.PolyLine([main_node_location, neighbor_location], color="purple", weight=1, opacity=1).add_to(lines_group) - - - m.add_child(nodes_group) - m.add_child(neighbors_group) - m.add_child(lines_group) - - folium.LayerControl().add_to(m) - - return m
    - -
    -
    -
    -
    - - -
    -
    - - Made with - Furo - -
    -
    - -
    -
    - -
    -
    - -
    -
    - - - - - \ No newline at end of file diff --git a/docs/build/html/_sources/404.rst.txt b/docs/build/html/_sources/404.rst.txt deleted file mode 100644 index 245be92..0000000 --- a/docs/build/html/_sources/404.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -Page Not Found --------------- - -.. raw:: html - - - -Sorry, we couldn't find that page. - -Try using the search box or go to the homepage. diff --git a/docs/build/html/_sources/about/includes/pipeline.rst.txt b/docs/build/html/_sources/about/includes/pipeline.rst.txt deleted file mode 100644 index 2cef1e3..0000000 --- a/docs/build/html/_sources/about/includes/pipeline.rst.txt +++ /dev/null @@ -1,5 +0,0 @@ -Main pipeline -============ - - -You can get more info about each step in: diff --git a/docs/build/html/_sources/about/installation.rst.txt b/docs/build/html/_sources/about/installation.rst.txt deleted file mode 100644 index a40358b..0000000 --- a/docs/build/html/_sources/about/installation.rst.txt +++ /dev/null @@ -1,8 +0,0 @@ -Installation -============ - -To install Sloyka, run: - -.. code-block:: bash - - pip install sloyka diff --git a/docs/build/html/_sources/about/introduction.rst.txt b/docs/build/html/_sources/about/introduction.rst.txt deleted file mode 100644 index 95c22a9..0000000 --- a/docs/build/html/_sources/about/introduction.rst.txt +++ /dev/null @@ -1,26 +0,0 @@ -Introduction -============ -Sloyka documentation -Date: June, 2024 Version: 0.6 -SLOYKA is a library aimed at enriching digital city models with data obtained from textual data of citizens' digital footprints, as well as at modeling vernacular assessment of urban environment quality. - -Its main element is a constructible spatial semantic hypergraph, augmented by machine recognition of urban entities and locations. - -The SLOYKA's final result is a spatial semantic hypergraph, which generates after two main stages: data receiving -(messages from the social network, mentioning particular city objects in them) and additional processes of data tagging of the collected data to obtain new columns in the resulting GeoDataFrame. -The resulting hypergraph can be used to predict events within existing urban objects (module :ref:`regional_activity`), -or to visualize already existing nodes and links and their further interpretation (module :ref:`graph_visualization`) - -SLOYKA also provides methods for modeling social risks regarding the emotional evaluation of mentioned places. - -Main features --------------- -* Social media parsing: getting posts, comments and replys -* City services and places extraction -* Emotion and text classifiers categorizing -* City's topic modelling -* Spatial-semantic graph building -* Regional activity evaluation - -SLOYKA's Community chat: -https://t.me/sloyka_community \ No newline at end of file diff --git a/docs/build/html/_sources/about/pipeline.rst.txt b/docs/build/html/_sources/about/pipeline.rst.txt deleted file mode 100644 index c19fc24..0000000 --- a/docs/build/html/_sources/about/pipeline.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -Main pipeline -=================== - -By selecting a limited urbanized area and a list of online communities in a social network, -it is possible to run this dataset across all major library functions. However, in some cases, -the order in which they are run is important. - -.. figure:: /image/etap.png - :align: center - :alt: photo - - SLOYKA's sections - -The main sections were divided into: -* Data receiving (a step possible to skip only if there is already geolocated -text data mentioning urban sites, otherwise the steps are very important - :ref:`data_getter` and :ref:`geocoder` ) - -* Data tagging: Characterization of messages and urban objects, which can be carried out in any order: :ref:`emotion_classifier` :ref:`text_classifier` :ref:`city_services` :ref:`topic_modeler` - -* Data modelling: Section consists of further synthesis of the obtained data, risk assessment and forecasting. Each of the methods in this group requires certain labeling columns: :ref:`sem_graph` :ref:`regional_activity` - -* Data visualization: The last step is applied to the already generated semantic graph - :ref:`graph_visualization` - -You can get more info about each step in! diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt deleted file mode 100644 index fbd55da..0000000 --- a/docs/build/html/_sources/index.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -Welcome to Sloyka's documentation! -================================== - -Sloyka is a library for analyzing city identity using social media data. - -.. toctree:: - :maxdepth: 1 - :caption: General: - - about/introduction - about/installation - about/pipeline - -.. figure:: /image/sloyka_map.png - :align: center - :alt: photo - - SLOYKA'S ROADMAP - -.. toctree:: - :maxdepth: 1 - :caption: Receiving: - :hidden: - - modules/data_getter - modules/geocoder - -.. toctree:: - :maxdepth: 1 - :caption: Tagging: - :hidden: - - modules/city_services_extract - modules/emotion_classifier - modules/text_classifier - modules/topic_modeler - -.. toctree:: - :maxdepth: 1 - :caption: Modelling: - :hidden: - - modules/semantic_graph - modules/regional_activity - modules/event_dynamic_prediction - -.. toctree:: - :maxdepth: 1 - :caption: Visualization: - :hidden: - - modules/visualize_graph - 404 - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/build/html/_sources/modules/GeoDataGetter.rst.txt b/docs/build/html/_sources/modules/GeoDataGetter.rst.txt deleted file mode 100644 index e007103..0000000 --- a/docs/build/html/_sources/modules/GeoDataGetter.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -.. _GeoDataGetter: - -GeoDataGetter -========================== -This class is used to retrieve geospatial data from OpenStreetMap (OSM) based on given OSM ID and tags. - -.. autoclass:: sloyka.src.utils.data_getter.geo_data_getter.GeoDataGetter - :members: - :undoc-members: \ No newline at end of file diff --git a/docs/build/html/_sources/modules/Geocoder_special.rst.txt b/docs/build/html/_sources/modules/Geocoder_special.rst.txt deleted file mode 100644 index f8254b7..0000000 --- a/docs/build/html/_sources/modules/Geocoder_special.rst.txt +++ /dev/null @@ -1,10 +0,0 @@ -.. _Geocoder_special: - -Geocoder -================== -.. autoclass:: sloyka.src.geocoder.geocoder.Geocoder - :members: - :undoc-members: - :no-members: run - -Back to all :ref:`geocoder` diff --git a/docs/build/html/_sources/modules/OtherGeoObjects.rst.txt b/docs/build/html/_sources/modules/OtherGeoObjects.rst.txt deleted file mode 100644 index 061ae50..0000000 --- a/docs/build/html/_sources/modules/OtherGeoObjects.rst.txt +++ /dev/null @@ -1,15 +0,0 @@ -.. _geo_objects: - -OtherGeoObjects -================== -.. currentmodule:: sloyka.src.geocoder - -.. autoclass:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects - :members: - :undoc-members: - -.. automethod:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.get_and_process_osm_data -.. automethod:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.run_osm_dfs -.. automethod:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.calculate_centroid -.. automethod:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.extract_geo_obj -.. automethod:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects.restoration_of_normal_form \ No newline at end of file diff --git a/docs/build/html/_sources/modules/StreetExtractor.rst.txt b/docs/build/html/_sources/modules/StreetExtractor.rst.txt deleted file mode 100644 index c7ee4a2..0000000 --- a/docs/build/html/_sources/modules/StreetExtractor.rst.txt +++ /dev/null @@ -1,8 +0,0 @@ -.. _street_extractor: - -StreetExtractor -================== - -.. autoclass:: sloyka.src.geocoder.street_extractor.StreetExtractor - :members: - :undoc-members: process_pipeline \ No newline at end of file diff --git a/docs/build/html/_sources/modules/Streets.rst.txt b/docs/build/html/_sources/modules/Streets.rst.txt deleted file mode 100644 index f04cb31..0000000 --- a/docs/build/html/_sources/modules/Streets.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -.. _Streets: - -Streets -========================== -A class for working with street data. - -.. autoclass:: sloyka.src.utils.data_getter.street_getter.Streets - :members: - :undoc-members: diff --git a/docs/build/html/_sources/modules/VKParser.rst.txt b/docs/build/html/_sources/modules/VKParser.rst.txt deleted file mode 100644 index 4020c27..0000000 --- a/docs/build/html/_sources/modules/VKParser.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -.. _vkparser: - -VKparser -========================== -.. autoclass:: sloyka.src.utils.data_getter.vk_data_getter.VKParser - :members: - :undoc-members: \ No newline at end of file diff --git a/docs/build/html/_sources/modules/city_services_extract.rst.txt b/docs/build/html/_sources/modules/city_services_extract.rst.txt deleted file mode 100644 index 38388fd..0000000 --- a/docs/build/html/_sources/modules/city_services_extract.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -.. _city_services: - -Services extraction -========================== -The City_services class is designed to extract city service names from text using a string comparison algorithm, taking into account -the changing service endings in the text. Using the flair library, the City_services.run() method in messages extracts named entities -from the Sentence object as a list, as well as the most probable service type, and stores them in new columns of the original DataFrame(). - -.. automodule:: sloyka.src.utils.data_processing.city_services_extract - :members: - :undoc-members: - \ No newline at end of file diff --git a/docs/build/html/_sources/modules/data_getter.rst.txt b/docs/build/html/_sources/modules/data_getter.rst.txt deleted file mode 100644 index 6366a49..0000000 --- a/docs/build/html/_sources/modules/data_getter.rst.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. _data_getter: - -Data getter -========================== - -This module contains classes for retrieving and working with various types of data. -Sloyka uses class :ref:`vkparser` data from the social network VK (Vkontakte) , as well as data from the OSM retrieved using -:ref:`GeoDataGetter` - -@class:: This class is used to retrieve geospatial data from OpenStreetMap (OSM) based on given OSM ID and tags. - -.. _GeoDataGetter: - A class for parsing and working with VK comments and posts. Combines posts and comments into one dataframe. - - -@class:Streets: A class for working with street data. - - -more: -------------------------------------- -.. toctree:: - :maxdepth: 1 - :caption: Advanced geocoding - - VKParser - Streets - GeoDataGetter \ No newline at end of file diff --git a/docs/build/html/_sources/modules/emotion_classifier.rst.txt b/docs/build/html/_sources/modules/emotion_classifier.rst.txt deleted file mode 100644 index b36b787..0000000 --- a/docs/build/html/_sources/modules/emotion_classifier.rst.txt +++ /dev/null @@ -1,17 +0,0 @@ -.. _emotion_classifier: - -Emotion classifier -================== - -.. automodule:: sloyka.src.risks.emotion_classifier - :members: - :undoc-members: - - -Example -------- -.. code-block:: bash - - df = pd.read_csv('data.csv') - recognizer = EmotionRecognizer() - df['emotion'] = df['text'].apply(recognizer.recognize_emotion) diff --git a/docs/build/html/_sources/modules/event_dynamic_prediction.rst.txt b/docs/build/html/_sources/modules/event_dynamic_prediction.rst.txt deleted file mode 100644 index a1f5709..0000000 --- a/docs/build/html/_sources/modules/event_dynamic_prediction.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -.. _modules: - -Event detector -================== - -.. automodule:: sloyka.src.risks.event_detector - :members: - :undoc-members: - \ No newline at end of file diff --git a/docs/build/html/_sources/modules/geocoder.rst.txt b/docs/build/html/_sources/modules/geocoder.rst.txt deleted file mode 100644 index 4ef23d8..0000000 --- a/docs/build/html/_sources/modules/geocoder.rst.txt +++ /dev/null @@ -1,31 +0,0 @@ -.. _geocoder: -================== - -Geocoding -================== -To perform classification with generalized linear models, see :ref:`Geocoder_special`. - -Geocoder -------------------- -.. autoclass:: sloyka.src.geocoder.geocoder.Geocoder - :members: run - -OtherGeoObjects ---------------------- -.. autoclass:: sloyka.src.geocoder.city_objects_extractor.OtherGeoObjects - :members: run - -StreetExtractor ---------------------- -.. autoclass:: sloyka.src.geocoder.street_extractor.StreetExtractor - :members: process_pipeline - -more: -------------------------------------- -.. toctree:: - :maxdepth: 1 - :caption: Advanced geocoding - - Geocoder_special - OtherGeoObjects - StreetExtractor \ No newline at end of file diff --git a/docs/build/html/_sources/modules/regional_activity.rst.txt b/docs/build/html/_sources/modules/regional_activity.rst.txt deleted file mode 100644 index 2077771..0000000 --- a/docs/build/html/_sources/modules/regional_activity.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -.. _regional_activity: - -Regional activity -================== -The regional_activity module is designed to aggregate data by region and provide information about user activity. -The RegionalActivity class creates a GeoDataFrame with basic information about user activity, using other modules such as geocoder, -text classifier, city_services_extract and emotion_classifier to process the data. The processed data is stored in the class attribute -processed_geodata and can be called after the class is initialized with RegionalActivity.processed_geodata. The class includes the get_risks() -function, which returns a DataFrame with social risk information based on the provided texts. \ No newline at end of file diff --git a/docs/build/html/_sources/modules/semantic_graph.rst.txt b/docs/build/html/_sources/modules/semantic_graph.rst.txt deleted file mode 100644 index b9e1fa5..0000000 --- a/docs/build/html/_sources/modules/semantic_graph.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -.. _sem_graph: - -Semantic graph -------------------------------------------------- - -.. automodule:: sloyka.src.semantic_graph.semantic_graph_builder - :members: - :undoc-members: - -As a result of the main method Semgraph.build_graph(), the input set of messages is cleaned from duplicates, digits, identified place names -and references. For each message, a given number of keywords is extracted using the KeyBERT library model; thanks to the application of pytorch, -the semantic proximity between keywords is determined as the cosine distance in the resulting embeddings. The final result of the module is a graph, -the nodes of which are toponyms (obtained by the geolocation module) and keywords. \ No newline at end of file diff --git a/docs/build/html/_sources/modules/text_classifier.rst.txt b/docs/build/html/_sources/modules/text_classifier.rst.txt deleted file mode 100644 index e1cf13c..0000000 --- a/docs/build/html/_sources/modules/text_classifier.rst.txt +++ /dev/null @@ -1,14 +0,0 @@ -.. _text_classifier: - -Text Classifier -========================== -The text_classifiers module is designed to classify texts by city functions, such as housing and utilities, public amenities, transportation, -health care, and others, using a pre-trained BERT family model in Russian. The module processes the input text and classifies it into specific urban functions using a -pre-trained rubert-tiny2 model trained on 90,000 marked accesses. The main method, run_text_classifier(), calls the model, takes text as input, and returns up to three predicted -city functions with their probability of being correctly identified. - - -.. automodule:: sloyka.src.risks.text_classifier - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/build/html/_sources/modules/topic_modeler.rst.txt b/docs/build/html/_sources/modules/topic_modeler.rst.txt deleted file mode 100644 index 38631d1..0000000 --- a/docs/build/html/_sources/modules/topic_modeler.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. _topic_modeler: - -Topic Modelling -========================== - -The TopicModeler class is designed to dynamically model topics of city texts. It has a process_topics method that processes -topics for each day in the specified date range and merges topics to create a global topic model. -The clustering of posts into topics is done using the embedding models in BERTopic. -The TopicModeler.process_topics() method results in the addition of the incoming GeoDataFrame with data about -the identified topics stored. Some of the messages may not belong to any of the topic clusters, will belong to cluster -1. - -@class:TopicModeler: -The main class of the topic extraction module. It is aimed to dynamically model city-wide topics from texts. - -The TopicModeler class has the following methods: - -@method:process_topics: -The main function, which is used to process the topics for each day in the specified date range, and merge topics to create a global topic model. - - -Topics = TopicModeler(gdf, start_date, end_date, min_texts=15, embedding_model_name="cointegrated/rubert-tiny2") \ No newline at end of file diff --git a/docs/build/html/_sources/modules/visualize_graph.rst.txt b/docs/build/html/_sources/modules/visualize_graph.rst.txt deleted file mode 100644 index f5e1255..0000000 --- a/docs/build/html/_sources/modules/visualize_graph.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -.. _graph_visualization: - -Graph visualization -========================== -The function results in an interactive map, which will display graph nodes grouped by clusters. -Each cluster will have its own color and name. Node markers will have a random offset to avoid overlapping. - -.. automodule:: sloyka.src.visual.graph_visualization - :members: visualize_graph \ No newline at end of file diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css deleted file mode 100644 index f316efc..0000000 --- a/docs/build/html/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/build/html/_static/custom.css b/docs/build/html/_static/custom.css deleted file mode 100644 index 01eee54..0000000 --- a/docs/build/html/_static/custom.css +++ /dev/null @@ -1,426 +0,0 @@ -/****************************************************************************/ -/* Furo Theme: -/* https://pradyunsg.me/furo/kitchen-sink/ -/* -/* Furo variables can be found here: -/* https://github.com/pradyunsg/furo/blob/main/src/furo/assets/styles/variables/_index.scss -/* -/* Inline tabs variables: -/* https://github.com/pradyunsg/sphinx-inline-tabs/blob/main/src/sphinx_inline_tabs/static/tabs.css -/****************************************************************************/ - -h1, h2, h3 -{ - margin-top: 1.75rem !important; -} - -h4 -{ - margin-top: 1.5rem !important; -} - -h1 + section > h2, h2 + section > h3, h3 + section > h4 -{ - margin-top: 1.25rem !important; -} - -.tab-content -{ - padding-top: 1rem; - padding-bottom: 1rem; - border-bottom: solid 2px var(--tabs--border); - /* Make tabbed content stand out a little. */ - background: var(--color-background-secondary); - border-left: solid 2px var(--tabs--border--active); -} - -.figure -{ - padding-left: 0 !important; - padding-right: 0 !important; -} - -/* Disable extension styling. */ -.hoverxref -{ - border-bottom: none !important; -} - -#frequent-setup-issues section h3, -#frequently-asked-questions section h2 -{ - font-size: 110%; - font-weight: bold; - margin-bottom: 0.75rem; -} - - -/* Hide sections as these can get long. */ -.toctree-wrapper *[href~="user/faq.html"] + ul, -.toctree-wrapper *[href~="about/history.html"] + ul -{ - display: none; -} - -/* Compatibility admonition is right at the top so it needs more margin. */ -article[role="main"] > .admonition:first-child -{ - margin-top: 2rem; -} - -#assets .sphinx-bs.container.pb-4.docutils -{ - /* Assets have too much padding. */ - padding-bottom: 0 !important; -} - - -/****************************************************************************/ -/* Sidebar Logo -/****************************************************************************/ - -.sidebar-logo -{ - /* Make the square part of the logo centered for symmetry. */ - padding-right: 0.5rem; -} - -.sidebar-brand-text -{ - font-weight: 700; - font-size: 3rem; - margin-top: 0; -} - -/****************************************************************************/ -/* 16:9 Aspect Ration YouTube Embeds */ -/****************************************************************************/ - -.video-container -{ - position: relative; - padding-bottom: 56.25%; /* 16:9 */ - height: 0; - margin-bottom: 2rem; -} - -.figure .video-container -{ - margin-bottom: 0; -} - -.video-container iframe -{ - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -/****************************************************************************/ -/* Dark Theme Integration for HoverXRef -/****************************************************************************/ - -.tooltipster-box -{ - background-color: var(--color-background-primary) !important; -} - -.tooltipster-content -{ - color: var(--color-foreground-primary) !important; -} - -.tooltipster-arrow-border -{ - border-right-color: var(--color-background-primary) !important; -} - -/****************************************************************************/ -/* Dark Theme Integration for Search -/****************************************************************************/ - -.search__outer::before -{ - content: ""; - position: absolute; - left: 0.5rem; - top: 0.75rem; - width: 1.25rem; - height: 1.25rem; - background-color: var(--color-sidebar-search-icon); - -webkit-mask-image: var(--icon-search); - mask-image: var(--icon-search); -} - -.search__outer, -.rtd__search__credits -{ - background-color: var(--color-background-primary) !important; -} - -.search__result__subheading -{ - color: var(--color-foreground-primary) !important; -} - -.rtd__search__credits, -.rtd__search__credits a, -.search__result__content -{ - color: var(--color-foreground-primary) !important; -} - -.search__outer__input -{ - background-color: transparent !important; - color: var(--color-foreground-primary) !important; - background-image: var(--icon-search) !important; - padding-top: 0.4rem !important; - padding-bottom: 0.5rem !important; - height: auto !important; - padding-left: 1.5rem !important; -} - -.search__outer__input -{ - background-image: none !important; -} - -.search__cross__img -{ - fill: var(--color-foreground-primary) !important; -} - -.search__result__single -{ - border-color: var(--color-foreground-border) !important; -} - -.outer_div_page_results:hover, -.search__outer .search__result__content span -{ - background-color: var(--color-highlighted-background) !important; - border-bottom-color: var(--color-foreground) !important; -} - -/****************************************************************************/ -/* Dark Theme Integration for Image Zoom -/****************************************************************************/ - -.medium-zoom-overlay -{ - background-color: var(--color-background-primary) !important; -} - - -/**************************************************************************** -/* Expand Tabs Beyond Container -/**************************************************************************** -/* -/* We use rems since we do not want font size to influence the spacing. -/* -/****************************************************************************/ - -.tab-set -{ - width: calc(100% + 6rem); - margin-left: -3rem; -} - -.tab-set > label:first-of-type -{ - margin-left: 3rem; -} - -.tab-content -{ - padding-left: 3rem !important; - padding-right: 3rem !important; -} - -@media (max-width: 46em) -{ - .tab-set - { - width: calc(100% + 2rem); - margin-left: -1rem; - } - - .tab-set > label:first-of-type - { - margin-left: 1rem; - } - - .tab-content - { - padding-left: 1rem !important; - padding-right: 1rem !important; - } -} - - -/****************************************************************************/ -/* Fix Medium Zoom */ -/****************************************************************************/ - -.medium-zoom-overlay, -.medium-zoom-image--opened -{ - z-index: 999; -} - - -/****************************************************************************/ -/* Custom Admonitions */ -/****************************************************************************/ - -/* https://squidfunk.github.io/mkdocs-material/reference/admonitions/ */ -/* https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/ */ - -.admonition.admonition-bug -{ - border-left-color: #f50057; -} - -.admonition.admonition-bug > p.admonition-title -{ - background-color: rgba(245, 0, 87, 0.1); -} - -.admonition.admonition-bug > p.admonition-title::before -{ - background-color: #f50057; -} - -.admonition.admonition-bug > p.admonition-title::before -{ - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,"); - mask-image: url("data:image/svg+xml;charset=utf-8,"); -} - -.admonition.admonition-example -{ - border-left-color: #018786; -} - -.admonition.admonition-example > p.admonition-title -{ - background-color: rgba(1, 135, 134, 0.1); -} - -.admonition.admonition-example > p.admonition-title::before -{ - background-color: #018786; -} - -.admonition.admonition-example > p.admonition-title::before -{ - -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,"); - mask-image: url("data:image/svg+xml;charset=utf-8,"); -} - -.admonition.admonition-research -{ - border-left-color: #9e9e9e; -} - -.admonition.admonition-research > p.admonition-title::before -{ - background-color: #9e9e9e; -} - -.admonition.admonition-research > .admonition-title -{ - - background-color: hsla(0, 0%, 62%, 0.1); -} - -.admonition.admonition-preview > p.admonition-title::before, -.admonition.admonition-research > p.admonition-title::before -{ - -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); - mask-image: url('data:image/svg+xml;charset=utf-8,'); -} - -.admonition.admonition-technical-note -{ - border-left-color: #9e9e9e; -} - -.admonition.admonition-technical-note > p.admonition-title::before -{ - background-color: #9e9e9e; -} - -.admonition.admonition-technical-note > .admonition-title -{ - background-color: hsla(0, 0%, 62%, 0.1); -} - -.admonition.admonition-technical-note > p.admonition-title::before -{ - -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); - mask-image: url('data:image/svg+xml;charset=utf-8,'); -} - -.admonition.admonition-sponsor -{ - border-left-color: #ea4aaa; -} - -.admonition.admonition-sponsor > p.admonition-title -{ - background-color: rgba(234, 74, 170, 0.1); -} - -.admonition.admonition-sponsor > p.admonition-title::before -{ - background-color: #ea4aaa; -} - -.admonition.admonition-sponsor > p.admonition-title::before -{ - /* GitHub's heart. */ - -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); - mask-image: url('data:image/svg+xml;charset=utf-8,'); -} - -.admonition.admonition-deprecated -{ - border-left-color: #ff9100; -} - -.admonition.admonition-deprecated > p.admonition-title -{ - background-color: rgba(225, 145, 0, 0.1); -} - -.admonition.admonition-deprecated > p.admonition-title::before -{ - background-color: #ff9100; -} - -.admonition.admonition-obsolete -{ - border-left-color: #f50057; -} - -.admonition.admonition-obsolete > p.admonition-title -{ - background-color: hsla(0, 0%, 62%, 0.1); -} - -.admonition.admonition-obsolete > p.admonition-title::before -{ - background-color: #f50057; -} - -.admonition.admonition-deprecated > p.admonition-title::before, -.admonition.admonition-obsolete > p.admonition-title::before -{ - /* Trash can. */ - -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,'); - mask-image: url('data:image/svg+xml;charset=utf-8,'); -} diff --git a/docs/build/html/_static/custom.js b/docs/build/html/_static/custom.js deleted file mode 100644 index 2c0e66d..0000000 --- a/docs/build/html/_static/custom.js +++ /dev/null @@ -1,134 +0,0 @@ - -// Add zoom to images. -$(document).ready(_ => mediumZoom(".main .content img")) -// Make external links open new window/tab. -$(document).ready(_ => $("a.reference.external").attr("target", "_blank")) - -// Taken from: https://stackoverflow.com/a/8747204 -jQuery.expr[':'].icontains = (a, i, m) => jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0 - -// Adapted from: https://stackoverflow.com/a/4106957 -jQuery.fn.textNodes = function () { - return this.contents().filter(function () { - return (this.nodeType === Node.TEXT_NODE && this.nodeValue.trim() !== "") - }) -} - -const RENDER_PIPELINES = [ - "birp", - "hdrp", - "urp", -] - -const isLocalHost = location.hostname === "localhost" || location.hostname === "127.0.0.1" || location.hostname === "" -const isLatest = window.location.pathname.startsWith("/en/latest/") || isLocalHost -const isStable = window.location.pathname.startsWith("/en/stable/") -const version = isLocalHost ? "latest" : window.location.pathname.split("/").filter(x => x)[1] -// NOTE: regex could be expanded to support pre-release versions (eg 1.0-alpha). -const isVersion = !isLatest && !isStable && /^[\dX]+(?:\.[\dX]+)*$/i.test(version) - -function updateLinksWithRenderPipeline(renderPipeline) { - $("a.reference.internal").attr("href", (_, href) => { - const url = new URL(href, window.location) - url.searchParams.set("rp", renderPipeline) - // We are replacing Sphinx's relative URLs with absolute URLs as a side-effect. Should be okay. - return url.href - }) -} - -function updateLocationWithRenderPipeline(renderPipeline) { - const url = new URL(window.location) - url.searchParams.set("rp", renderPipeline) - // Changes the URL without reloading. - window.history.pushState({}, "", url) -} - -// Add support for RP URL parameter. -$(document).ready(_ => { - const renderPipeline = new URLSearchParams(window.location.search).get('rp') - if (renderPipeline != null) { - $(`.tab-label:icontains("${renderPipeline}")`).click() - updateLinksWithRenderPipeline(renderPipeline) - } - $(".tab-label").click(x => { - const tabName = $(x.target).text().toLowerCase() - // Check that the tab is actually a render pipeline tab. - if (RENDER_PIPELINES.includes(tabName)) { - updateLinksWithRenderPipeline(tabName) - updateLocationWithRenderPipeline(tabName) - } - }) - - // Add "(unreleased)" to the latest version when not viewing a stable release. - if (isLatest && window.location.pathname.endsWith("history.html")) { - const headingNode = $("#version h2").textNodes().first() - headingNode.replaceWith(headingNode.text() + " (unreleased)") - } - - if (isLatest) { - // Adapted from: - // https://github.com/godotengine/godot-docs/blob/21979b61badb5dd9d46c9859824fd0f0c0205bbd/_static/js/custom.js#L212-L228 - // Add a compatibility notice using JavaScript so it doesn't end up in the automatically generated - // `meta description` tag. - const stableUrl = location.href.replace('/latest/', '/stable/') - $("article[role='main']").prepend(` -
    -

    Attention

    -

    - You are reading the latest - (unstable) version of this documentation, which may document features not available - or compatible with the latest Crest packages released on the Unity Asset Store. -

    -

    - View the stable version of this page. -

    -
    - `) - } -}) - -// Redirect to latest documentation when visitor lands on an unpublished version. -if (typeof isPage404 !== 'undefined' && isPage404 && isVersion) { - $.ajax({ - type: "HEAD", - url: `/en/${version}/`, - error: _ => { - var newUrl = new URL(window.location) - if (!newUrl.pathname.endsWith("/") && !newUrl.pathname.endsWith(".html")) newUrl.pathname += "/" - newUrl.href = newUrl.href.replace(`/${version}/`, "/latest/") - $("#404-page-script").before(` -
    -

    Attention

    -

    - Looks like you are on a version without a published tag. - We will redirect you to the latest documentation automatically. - If it does not redirect automatically in a few seconds, please click the follow: - ${newUrl.href} -

    -
    - `) - - window.location.replace(newUrl) - } - }) -} - -// Light/Dark mode support for UAS store widgets. -if (window.matchMedia) { - function applyLightOrDarkMode(isDarkMode) { - const iframes = $("iframe.asset-store") - if (iframes.length == 0) return - // NOTE: Not robust. Will break if we remove the question mark. - const dark = "/widget-wide?" - const light = "/widget-wide-light?" - const oldWidget = isDarkMode ? light : dark - const newWidget = isDarkMode ? dark : light - - if (iframes.attr("src").includes(oldWidget)) { - iframes.attr("src", iframes.attr("src").replace(oldWidget, newWidget)) - } - } - - $(document).ready(_ => applyLightOrDarkMode(window.matchMedia('(prefers-color-scheme: dark)').matches)) - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => applyLightOrDarkMode(event.matches)) -} diff --git a/docs/build/html/_static/debug.css b/docs/build/html/_static/debug.css deleted file mode 100644 index 74d4aec..0000000 --- a/docs/build/html/_static/debug.css +++ /dev/null @@ -1,69 +0,0 @@ -/* - This CSS file should be overridden by the theme authors. It's - meant for debugging and developing the skeleton that this theme provides. -*/ -body { - font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, - "Apple Color Emoji", "Segoe UI Emoji"; - background: lavender; -} -.sb-announcement { - background: rgb(131, 131, 131); -} -.sb-announcement__inner { - background: black; - color: white; -} -.sb-header { - background: lightskyblue; -} -.sb-header__inner { - background: royalblue; - color: white; -} -.sb-header-secondary { - background: lightcyan; -} -.sb-header-secondary__inner { - background: cornflowerblue; - color: white; -} -.sb-sidebar-primary { - background: lightgreen; -} -.sb-main { - background: blanchedalmond; -} -.sb-main__inner { - background: antiquewhite; -} -.sb-header-article { - background: lightsteelblue; -} -.sb-article-container { - background: snow; -} -.sb-article-main { - background: white; -} -.sb-footer-article { - background: lightpink; -} -.sb-sidebar-secondary { - background: lightgoldenrodyellow; -} -.sb-footer-content { - background: plum; -} -.sb-footer-content__inner { - background: palevioletred; -} -.sb-footer { - background: pink; -} -.sb-footer__inner { - background: salmon; -} -.sb-article { - background: white; -} diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js deleted file mode 100644 index 4d67807..0000000 --- a/docs/build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js deleted file mode 100644 index add8e0c..0000000 --- a/docs/build/html/_static/documentation_options.js +++ /dev/null @@ -1,13 +0,0 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '0.2.1', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/docs/build/html/_static/file.png b/docs/build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/docs/build/html/_static/language_data.js b/docs/build/html/_static/language_data.js deleted file mode 100644 index 367b8ed..0000000 --- a/docs/build/html/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, if available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/docs/build/html/_static/logo.png b/docs/build/html/_static/logo.png deleted file mode 100644 index fe0d1d446d077633b16209105806ac942439e828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234283 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

    h7z5*(>_zKn(zA0Xaw2x3H_9lfKtkzY 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

    iN2Iin}5xPjzPFHL~v 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 diff --git a/docs/build/html/_static/minus.png b/docs/build/html/_static/minus.png deleted file mode 100644 index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK diff --git a/docs/build/html/_static/plus.png b/docs/build/html/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz diff --git a/docs/build/html/_static/pygments.css b/docs/build/html/_static/pygments.css deleted file mode 100644 index 02b4b12..0000000 --- a/docs/build/html/_static/pygments.css +++ /dev/null @@ -1,258 +0,0 @@ -.highlight pre { line-height: 125%; } -.highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -.highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -.highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #8f5902; font-style: italic } /* Comment */ -.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ -.highlight .g { color: #000000 } /* Generic */ -.highlight .k { color: #204a87; font-weight: bold } /* Keyword */ -.highlight .l { color: #000000 } /* Literal */ -.highlight .n { color: #000000 } /* Name */ -.highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ -.highlight .x { color: #000000 } /* Other */ -.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ -.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #a40000 } /* Generic.Deleted */ -.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ -.highlight .ges { color: #000000; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #ef2929 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #000000; font-style: italic } /* Generic.Output */ -.highlight .gp { color: #8f5902 } /* Generic.Prompt */ -.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000000 } /* Literal.Date */ -.highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ -.highlight .s { color: #4e9a06 } /* Literal.String */ -.highlight .na { color: #c4a000 } /* Name.Attribute */ -.highlight .nb { color: #204a87 } /* Name.Builtin */ -.highlight .nc { color: #000000 } /* Name.Class */ -.highlight .no { color: #000000 } /* Name.Constant */ -.highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #ce5c00 } /* Name.Entity */ -.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000000 } /* Name.Function */ -.highlight .nl { color: #f57900 } /* Name.Label */ -.highlight .nn { color: #000000 } /* Name.Namespace */ -.highlight .nx { color: #000000 } /* Name.Other */ -.highlight .py { color: #000000 } /* Name.Property */ -.highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000000 } /* Name.Variable */ -.highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ -.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ -.highlight .mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */ -.highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ -.highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ -.highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ -.highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ -.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ -.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ -.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ -.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ -.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ -.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ -.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000000 } /* Name.Function.Magic */ -.highlight .vc { color: #000000 } /* Name.Variable.Class */ -.highlight .vg { color: #000000 } /* Name.Variable.Global */ -.highlight .vi { color: #000000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000000 } /* Name.Variable.Magic */ -.highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ -@media not print { -body[data-theme="dark"] .highlight pre { line-height: 125%; } -body[data-theme="dark"] .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } -body[data-theme="dark"] .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } -body[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -body[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -body[data-theme="dark"] .highlight .hll { background-color: #404040 } -body[data-theme="dark"] .highlight { background: #202020; color: #d0d0d0 } -body[data-theme="dark"] .highlight .c { color: #ababab; font-style: italic } /* Comment */ -body[data-theme="dark"] .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -body[data-theme="dark"] .highlight .esc { color: #d0d0d0 } /* Escape */ -body[data-theme="dark"] .highlight .g { color: #d0d0d0 } /* Generic */ -body[data-theme="dark"] .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ -body[data-theme="dark"] .highlight .l { color: #d0d0d0 } /* Literal */ -body[data-theme="dark"] .highlight .n { color: #d0d0d0 } /* Name */ -body[data-theme="dark"] .highlight .o { color: #d0d0d0 } /* Operator */ -body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ -body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ -body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ -body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ -body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ -body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ -body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ -body[data-theme="dark"] .highlight .gd { color: #ff3a3a } /* Generic.Deleted */ -body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ -body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -body[data-theme="dark"] .highlight .gr { color: #ff3a3a } /* Generic.Error */ -body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ -body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ -body[data-theme="dark"] .highlight .go { color: #cccccc } /* Generic.Output */ -body[data-theme="dark"] .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ -body[data-theme="dark"] .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ -body[data-theme="dark"] .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ -body[data-theme="dark"] .highlight .gt { color: #ff3a3a } /* Generic.Traceback */ -body[data-theme="dark"] .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ -body[data-theme="dark"] .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ -body[data-theme="dark"] .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ -body[data-theme="dark"] .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ -body[data-theme="dark"] .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ -body[data-theme="dark"] .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ -body[data-theme="dark"] .highlight .ld { color: #d0d0d0 } /* Literal.Date */ -body[data-theme="dark"] .highlight .m { color: #51b2fd } /* Literal.Number */ -body[data-theme="dark"] .highlight .s { color: #ed9d13 } /* Literal.String */ -body[data-theme="dark"] .highlight .na { color: #bbbbbb } /* Name.Attribute */ -body[data-theme="dark"] .highlight .nb { color: #2fbccd } /* Name.Builtin */ -body[data-theme="dark"] .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ -body[data-theme="dark"] .highlight .no { color: #40ffff } /* Name.Constant */ -body[data-theme="dark"] .highlight .nd { color: #ffa500 } /* Name.Decorator */ -body[data-theme="dark"] .highlight .ni { color: #d0d0d0 } /* Name.Entity */ -body[data-theme="dark"] .highlight .ne { color: #bbbbbb } /* Name.Exception */ -body[data-theme="dark"] .highlight .nf { color: #71adff } /* Name.Function */ -body[data-theme="dark"] .highlight .nl { color: #d0d0d0 } /* Name.Label */ -body[data-theme="dark"] .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ -body[data-theme="dark"] .highlight .nx { color: #d0d0d0 } /* Name.Other */ -body[data-theme="dark"] .highlight .py { color: #d0d0d0 } /* Name.Property */ -body[data-theme="dark"] .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ -body[data-theme="dark"] .highlight .nv { color: #40ffff } /* Name.Variable */ -body[data-theme="dark"] .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ -body[data-theme="dark"] .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ -body[data-theme="dark"] .highlight .w { color: #666666 } /* Text.Whitespace */ -body[data-theme="dark"] .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ -body[data-theme="dark"] .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ -body[data-theme="dark"] .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ -body[data-theme="dark"] .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ -body[data-theme="dark"] .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ -body[data-theme="dark"] .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ -body[data-theme="dark"] .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ -body[data-theme="dark"] .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ -body[data-theme="dark"] .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ -body[data-theme="dark"] .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ -body[data-theme="dark"] .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ -body[data-theme="dark"] .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ -body[data-theme="dark"] .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ -body[data-theme="dark"] .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ -body[data-theme="dark"] .highlight .sx { color: #ffa500 } /* Literal.String.Other */ -body[data-theme="dark"] .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ -body[data-theme="dark"] .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ -body[data-theme="dark"] .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ -body[data-theme="dark"] .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ -body[data-theme="dark"] .highlight .fm { color: #71adff } /* Name.Function.Magic */ -body[data-theme="dark"] .highlight .vc { color: #40ffff } /* Name.Variable.Class */ -body[data-theme="dark"] .highlight .vg { color: #40ffff } /* Name.Variable.Global */ -body[data-theme="dark"] .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ -body[data-theme="dark"] .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ -body[data-theme="dark"] .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ -@media (prefers-color-scheme: dark) { -body:not([data-theme="light"]) .highlight pre { line-height: 125%; } -body:not([data-theme="light"]) .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } -body:not([data-theme="light"]) .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } -body:not([data-theme="light"]) .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -body:not([data-theme="light"]) .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -body:not([data-theme="light"]) .highlight .hll { background-color: #404040 } -body:not([data-theme="light"]) .highlight { background: #202020; color: #d0d0d0 } -body:not([data-theme="light"]) .highlight .c { color: #ababab; font-style: italic } /* Comment */ -body:not([data-theme="light"]) .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -body:not([data-theme="light"]) .highlight .esc { color: #d0d0d0 } /* Escape */ -body:not([data-theme="light"]) .highlight .g { color: #d0d0d0 } /* Generic */ -body:not([data-theme="light"]) .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ -body:not([data-theme="light"]) .highlight .l { color: #d0d0d0 } /* Literal */ -body:not([data-theme="light"]) .highlight .n { color: #d0d0d0 } /* Name */ -body:not([data-theme="light"]) .highlight .o { color: #d0d0d0 } /* Operator */ -body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ -body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ -body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ -body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ -body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ -body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ -body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ -body:not([data-theme="light"]) .highlight .gd { color: #ff3a3a } /* Generic.Deleted */ -body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ -body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -body:not([data-theme="light"]) .highlight .gr { color: #ff3a3a } /* Generic.Error */ -body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ -body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ -body:not([data-theme="light"]) .highlight .go { color: #cccccc } /* Generic.Output */ -body:not([data-theme="light"]) .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ -body:not([data-theme="light"]) .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ -body:not([data-theme="light"]) .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ -body:not([data-theme="light"]) .highlight .gt { color: #ff3a3a } /* Generic.Traceback */ -body:not([data-theme="light"]) .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ -body:not([data-theme="light"]) .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ -body:not([data-theme="light"]) .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ -body:not([data-theme="light"]) .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ -body:not([data-theme="light"]) .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ -body:not([data-theme="light"]) .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ -body:not([data-theme="light"]) .highlight .ld { color: #d0d0d0 } /* Literal.Date */ -body:not([data-theme="light"]) .highlight .m { color: #51b2fd } /* Literal.Number */ -body:not([data-theme="light"]) .highlight .s { color: #ed9d13 } /* Literal.String */ -body:not([data-theme="light"]) .highlight .na { color: #bbbbbb } /* Name.Attribute */ -body:not([data-theme="light"]) .highlight .nb { color: #2fbccd } /* Name.Builtin */ -body:not([data-theme="light"]) .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ -body:not([data-theme="light"]) .highlight .no { color: #40ffff } /* Name.Constant */ -body:not([data-theme="light"]) .highlight .nd { color: #ffa500 } /* Name.Decorator */ -body:not([data-theme="light"]) .highlight .ni { color: #d0d0d0 } /* Name.Entity */ -body:not([data-theme="light"]) .highlight .ne { color: #bbbbbb } /* Name.Exception */ -body:not([data-theme="light"]) .highlight .nf { color: #71adff } /* Name.Function */ -body:not([data-theme="light"]) .highlight .nl { color: #d0d0d0 } /* Name.Label */ -body:not([data-theme="light"]) .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ -body:not([data-theme="light"]) .highlight .nx { color: #d0d0d0 } /* Name.Other */ -body:not([data-theme="light"]) .highlight .py { color: #d0d0d0 } /* Name.Property */ -body:not([data-theme="light"]) .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ -body:not([data-theme="light"]) .highlight .nv { color: #40ffff } /* Name.Variable */ -body:not([data-theme="light"]) .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ -body:not([data-theme="light"]) .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ -body:not([data-theme="light"]) .highlight .w { color: #666666 } /* Text.Whitespace */ -body:not([data-theme="light"]) .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ -body:not([data-theme="light"]) .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ -body:not([data-theme="light"]) .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ -body:not([data-theme="light"]) .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ -body:not([data-theme="light"]) .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ -body:not([data-theme="light"]) .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ -body:not([data-theme="light"]) .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ -body:not([data-theme="light"]) .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ -body:not([data-theme="light"]) .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ -body:not([data-theme="light"]) .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ -body:not([data-theme="light"]) .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ -body:not([data-theme="light"]) .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ -body:not([data-theme="light"]) .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ -body:not([data-theme="light"]) .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ -body:not([data-theme="light"]) .highlight .sx { color: #ffa500 } /* Literal.String.Other */ -body:not([data-theme="light"]) .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ -body:not([data-theme="light"]) .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ -body:not([data-theme="light"]) .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ -body:not([data-theme="light"]) .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ -body:not([data-theme="light"]) .highlight .fm { color: #71adff } /* Name.Function.Magic */ -body:not([data-theme="light"]) .highlight .vc { color: #40ffff } /* Name.Variable.Class */ -body:not([data-theme="light"]) .highlight .vg { color: #40ffff } /* Name.Variable.Global */ -body:not([data-theme="light"]) .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ -body:not([data-theme="light"]) .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ -body:not([data-theme="light"]) .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ -} -} \ No newline at end of file diff --git a/docs/build/html/_static/scripts/furo-extensions.js b/docs/build/html/_static/scripts/furo-extensions.js deleted file mode 100644 index e69de29..0000000 diff --git a/docs/build/html/_static/scripts/furo.js b/docs/build/html/_static/scripts/furo.js deleted file mode 100644 index 0abb2af..0000000 --- a/docs/build/html/_static/scripts/furo.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see furo.js.LICENSE.txt */ -(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;(function(t){const e=Math.floor(r.getBoundingClientRect().top);console.log(`headerTop: ${e}`),0==e&&t!=e?r.classList.add("scrolled"):r.classList.remove("scrolled")})(n=t),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); -//# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/build/html/_static/scripts/furo.js.LICENSE.txt b/docs/build/html/_static/scripts/furo.js.LICENSE.txt deleted file mode 100644 index 1632189..0000000 --- a/docs/build/html/_static/scripts/furo.js.LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * gumshoejs v5.1.2 (patched by @pradyunsg) - * A simple, framework-agnostic scrollspy script. - * (c) 2019 Chris Ferdinandi - * MIT License - * http://github.com/cferdinandi/gumshoe - */ diff --git a/docs/build/html/_static/scripts/furo.js.map b/docs/build/html/_static/scripts/furo.js.map deleted file mode 100644 index 80ea12b..0000000 --- a/docs/build/html/_static/scripts/furo.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader(positionY) {\n const headerTop = Math.floor(header.getBoundingClientRect().top);\n\n console.log(`headerTop: ${headerTop}`);\n if (headerTop == 0 && positionY != headerTop) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader(positionY);\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","headerTop","floor","scrollHandlerForHeader","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/build/html/_static/searchtools.js b/docs/build/html/_static/searchtools.js deleted file mode 100644 index 92da3f8..0000000 --- a/docs/build/html/_static/searchtools.js +++ /dev/null @@ -1,619 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms, highlightTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) { - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms, anchor) - ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - "Search finished, found ${resultCount} page(s) matching the search query." - ).replace('${resultCount}', resultCount); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms, - highlightTerms, -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; -// Helper function used by query() to order search results. -// Each input is an array of [docname, title, anchor, descr, score, filename]. -// Order the results by score (in opposite order of appearance, since the -// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. -const _orderResultsByScoreThenName = (a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString, anchor) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - for (const removalQuery of [".headerlinks", "script", "style"]) { - htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); - } - if (anchor) { - const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); - if (anchorContent) return anchorContent.textContent; - - console.warn( - `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` - ); - } - - // if anchor not specified or not found, fall back to main content - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent) return docContent.textContent; - - console.warn( - "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - _parseQuery: (query) => { - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; - }, - - /** - * execute search (requires search index to be loaded) - */ - _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // Collect multiple result groups to be sorted separately and then ordered. - // Each is an array of [docname, title, anchor, descr, score, filename]. - const normalResults = []; - const nonMainIndexResults = []; - - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase().trim(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - normalResults.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id, isMain] of foundEntries) { - const score = Math.round(100 * queryLower.length / entry.length); - const result = [ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]; - if (isMain) { - normalResults.push(result); - } else { - nonMainIndexResults.push(result); - } - } - } - } - - // lookup as object - objectTerms.forEach((term) => - normalResults.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) { - normalResults.forEach((item) => (item[4] = Scorer.score(item))); - nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); - } - - // Sort each group of results by score and then alphabetically by name. - normalResults.sort(_orderResultsByScoreThenName); - nonMainIndexResults.sort(_orderResultsByScoreThenName); - - // Combine the result groups in (reverse) order. - // Non-main index entries are typically arbitrary cross-references, - // so display them after other results. - let results = [...nonMainIndexResults, ...normalResults]; - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - return results.reverse(); - }, - - query: (query) => { - const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); - const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - if (!terms.hasOwnProperty(word)) { - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord)) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - } - if (!titleTerms.hasOwnProperty(word)) { - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord)) - arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); - }); - } - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (!fileMap.has(file)) fileMap.set(file, [word]); - else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords, anchor) => { - const text = Search.htmlToText(htmlText, anchor); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/docs/build/html/_static/skeleton.css b/docs/build/html/_static/skeleton.css deleted file mode 100644 index 467c878..0000000 --- a/docs/build/html/_static/skeleton.css +++ /dev/null @@ -1,296 +0,0 @@ -/* Some sane resets. */ -html { - height: 100%; -} - -body { - margin: 0; - min-height: 100%; -} - -/* All the flexbox magic! */ -body, -.sb-announcement, -.sb-content, -.sb-main, -.sb-container, -.sb-container__inner, -.sb-article-container, -.sb-footer-content, -.sb-header, -.sb-header-secondary, -.sb-footer { - display: flex; -} - -/* These order things vertically */ -body, -.sb-main, -.sb-article-container { - flex-direction: column; -} - -/* Put elements in the center */ -.sb-header, -.sb-header-secondary, -.sb-container, -.sb-content, -.sb-footer, -.sb-footer-content { - justify-content: center; -} -/* Put elements at the ends */ -.sb-article-container { - justify-content: space-between; -} - -/* These elements grow. */ -.sb-main, -.sb-content, -.sb-container, -article { - flex-grow: 1; -} - -/* Because padding making this wider is not fun */ -article { - box-sizing: border-box; -} - -/* The announcements element should never be wider than the page. */ -.sb-announcement { - max-width: 100%; -} - -.sb-sidebar-primary, -.sb-sidebar-secondary { - flex-shrink: 0; - width: 17rem; -} - -.sb-announcement__inner { - justify-content: center; - - box-sizing: border-box; - height: 3rem; - - overflow-x: auto; - white-space: nowrap; -} - -/* Sidebars, with checkbox-based toggle */ -.sb-sidebar-primary, -.sb-sidebar-secondary { - position: fixed; - height: 100%; - top: 0; -} - -.sb-sidebar-primary { - left: -17rem; - transition: left 250ms ease-in-out; -} -.sb-sidebar-secondary { - right: -17rem; - transition: right 250ms ease-in-out; -} - -.sb-sidebar-toggle { - display: none; -} -.sb-sidebar-overlay { - position: fixed; - top: 0; - width: 0; - height: 0; - - transition: width 0ms ease 250ms, height 0ms ease 250ms, opacity 250ms ease; - - opacity: 0; - background-color: rgba(0, 0, 0, 0.54); -} - -#sb-sidebar-toggle--primary:checked - ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--primary"], -#sb-sidebar-toggle--secondary:checked - ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--secondary"] { - width: 100%; - height: 100%; - opacity: 1; - transition: width 0ms ease, height 0ms ease, opacity 250ms ease; -} - -#sb-sidebar-toggle--primary:checked ~ .sb-container .sb-sidebar-primary { - left: 0; -} -#sb-sidebar-toggle--secondary:checked ~ .sb-container .sb-sidebar-secondary { - right: 0; -} - -/* Full-width mode */ -.drop-secondary-sidebar-for-full-width-content - .hide-when-secondary-sidebar-shown { - display: none !important; -} -.drop-secondary-sidebar-for-full-width-content .sb-sidebar-secondary { - display: none !important; -} - -/* Mobile views */ -.sb-page-width { - width: 100%; -} - -.sb-article-container, -.sb-footer-content__inner, -.drop-secondary-sidebar-for-full-width-content .sb-article, -.drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 100vw; -} - -.sb-article, -.match-content-width { - padding: 0 1rem; - box-sizing: border-box; -} - -@media (min-width: 32rem) { - .sb-article, - .match-content-width { - padding: 0 2rem; - } -} - -/* Tablet views */ -@media (min-width: 42rem) { - .sb-article-container { - width: auto; - } - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 42rem; - } - .sb-article, - .match-content-width { - width: 42rem; - } -} -@media (min-width: 46rem) { - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 46rem; - } - .sb-article, - .match-content-width { - width: 46rem; - } -} -@media (min-width: 50rem) { - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 50rem; - } - .sb-article, - .match-content-width { - width: 50rem; - } -} - -/* Tablet views */ -@media (min-width: 59rem) { - .sb-sidebar-secondary { - position: static; - } - .hide-when-secondary-sidebar-shown { - display: none !important; - } - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 59rem; - } - .sb-article, - .match-content-width { - width: 42rem; - } -} -@media (min-width: 63rem) { - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 63rem; - } - .sb-article, - .match-content-width { - width: 46rem; - } -} -@media (min-width: 67rem) { - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 67rem; - } - .sb-article, - .match-content-width { - width: 50rem; - } -} - -/* Desktop views */ -@media (min-width: 76rem) { - .sb-sidebar-primary { - position: static; - } - .hide-when-primary-sidebar-shown { - display: none !important; - } - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 59rem; - } - .sb-article, - .match-content-width { - width: 42rem; - } -} - -/* Full desktop views */ -@media (min-width: 80rem) { - .sb-article, - .match-content-width { - width: 46rem; - } - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 63rem; - } -} - -@media (min-width: 84rem) { - .sb-article, - .match-content-width { - width: 50rem; - } - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 67rem; - } -} - -@media (min-width: 88rem) { - .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content .sb-article, - .drop-secondary-sidebar-for-full-width-content .match-content-width { - width: 67rem; - } - .sb-page-width { - width: 88rem; - } -} diff --git a/docs/build/html/_static/sphinx_highlight.js b/docs/build/html/_static/sphinx_highlight.js deleted file mode 100644 index 8a96c69..0000000 --- a/docs/build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,154 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '

    " - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); diff --git a/docs/build/html/_static/styles/furo-extensions.css b/docs/build/html/_static/styles/furo-extensions.css deleted file mode 100644 index 8229587..0000000 --- a/docs/build/html/_static/styles/furo-extensions.css +++ /dev/null @@ -1,2 +0,0 @@ -#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} -/*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/build/html/_static/styles/furo-extensions.css.map b/docs/build/html/_static/styles/furo-extensions.css.map deleted file mode 100644 index c26eac7..0000000 --- a/docs/build/html/_static/styles/furo-extensions.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAEE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cAIA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UCzCN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/build/html/_static/styles/furo.css b/docs/build/html/_static/styles/furo.css deleted file mode 100644 index 05a56b1..0000000 --- a/docs/build/html/_static/styles/furo.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,p,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{display:flex}.theme-toggle{background:transparent;border:none;cursor:pointer;display:flex;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;width:1.25rem}.theme-toggle-header{align-items:center;display:flex;justify-content:center}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.5rem;width:1.5rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.content{margin-left:auto;margin-right:auto;padding:0 1em}}@media(max-width:63em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.theme-toggle-header,.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.5rem;width:1.5rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}}@media(max-width:48em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){article[role=main] aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}[role=main] .table-wrapper.container{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} -/*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/build/html/_static/styles/furo.css.map b/docs/build/html/_static/styles/furo.css.map deleted file mode 100644 index 3ecc371..0000000 --- a/docs/build/html/_static/styles/furo.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles/furo.css","mappings":"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sCAIA,aADF,WACE,CAKF,SACE,CAHJ,kBAEE,CAJE,gBAEJ,CAHI,iBAMA,yFAKA,aACA,eACA,cElbJ,iBAEE,aADA,iBACA,6BAEA,kCAEA,SACA,UAIA,gCACA,CALA,SAEA,SAEA,CAJA,0EAEA,CAFA,OAKA,CAGA,mDACE,iBAGF,gCACE,CADF,UACE,aAEJ,iCAEE,CAFF,UAEE,wCAEA,WACA,WADA,UACA,CACA,4CAGA,MACA,CADA,KACA,wCACA,UAGA,CAJA,UAIA,6DAUA,0CACE,CAFF,mBAEE,wEACA,CAVA,YACA,CAMF,mBAJE,OAOA,gBAJJ,gCACE,CANE,cACA,CAHA,oBACA,CAGA,QAGJ,CAII,0BACA,CADA,UACA,wCAEJ,kBACE,0DACA,gCACE,kBACA,CADA,YACA,oEACA,2CAMF,mDAII,CALN,YACE,CANE,cAKJ,CACE,iBAII,kEACA,yCACE,kDACA,yDACE,+CACA,uBANN,CAMM,+BANN,uCACE,qDACA,4BAEE,mBADA,0CACA,CADA,qBACA,0DACE,wCACA,sGALJ,oCACA,sBACE,kBAFF,UAEE,2CACA,wFACE,cACA,kEANN,uBACE,iDACA,CADA,UACA,0DACE,wDAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kE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","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote, p\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto-light\n display: block\n\n @media (prefers-color-scheme: dark)\n .theme-toggle svg.theme-icon-when-auto-dark\n display: block\n .theme-toggle svg.theme-icon-when-auto-light\n display: none\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n --font-stack--headings: var(--font-stack);\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #6b6f76; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #0a4bff;\n --color-brand-content: #2757dd;\n --color-brand-visited: #872ee0;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n\n --color-api-added: #21632c;\n --color-api-added-border: #38a84d;\n --color-api-changed: #046172;\n --color-api-changed-border: #06a1bc;\n --color-api-deprecated: #605706;\n --color-api-deprecated-border: #f0d90f;\n --color-api-removed: #b30000;\n --color-api-removed-border: #ff5c5c;\n\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline--hover: var(--color-foreground-border);\n\n --color-link--visited: var(--color-brand-visited);\n --color-link-underline--visited: var(--color-background-border);\n --color-link--visited--hover: var(--color-brand-visited);\n --color-link-underline--visited--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #cfd0d0; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #3d94ff;\n --color-brand-content: #5ca5ff;\n --color-brand-visited: #b27aeb;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n --color-api-added: #3db854;\n --color-api-added-border: #267334;\n --color-api-changed: #09b0ce;\n --color-api-changed-border: #056d80;\n --color-api-deprecated: #b1a10b;\n --color-api-deprecated-border: #6e6407;\n --color-api-removed: #ff7575;\n --color-api-removed-border: #b03b3b;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-family: var(--font-stack--headings)\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:visited\n color: var(--color-link--visited)\n text-decoration-color: var(--color-link-underline--visited)\n &:hover\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &:visited\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n.skip-to-content\n position: fixed\n padding: 1rem\n border-radius: 1rem\n left: 0.25rem\n top: 0.25rem\n z-index: 40\n background: var(--color-background-primary)\n color: var(--color-foreground-primary)\n\n transform: translateY(-200%)\n transition: transform 300ms ease-in-out\n\n &:focus-within\n transform: translateY(0%)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n display: flex\n\n.theme-toggle\n display: flex\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n height: 1.25rem\n width: 1.25rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n display: flex\n align-items: center\n justify-content: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1.5rem\n width: 1.5rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page, .view-this-page\n svg\n color: inherit\n height: 1.25rem\n width: 1.25rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $content-padded-width + $sidebar-width)\n // Center the page\n .content\n margin-left: auto\n margin-right: auto\n padding: 0 $content-padding--small\n\n@media (max-width: $content-padded-width--small + $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon, .theme-toggle-header\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: 1.5rem\n width: 1.5rem\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: calc(var(--header-height) + 2.5rem)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n\n@media (max-width: $content-width + 2* $content-padding--small)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n article[role=main] aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$content-padded-width: $content-width + 2 * $content-padding;\n$content-padded-width--small: $content-width + 2 * $content-padding--small;\n$full-width: $content-padded-width + 2 * $sidebar-width;\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 4.25rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved\n border-left: 0.1875rem solid\n border-radius: 0.125rem\n\n padding-left: 0.75rem\n\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\ndiv.versionadded\n border-color: var(--color-api-added-border)\n .versionmodified\n color: var(--color-api-added)\n\ndiv.versionchanged\n border-color: var(--color-api-changed-border)\n .versionmodified\n color: var(--color-api-changed)\n\ndiv.deprecated\n border-color: var(--color-api-deprecated-border)\n .versionmodified\n color: var(--color-api-deprecated)\n\ndiv.versionremoved\n border-color: var(--color-api-removed-border)\n .versionmodified\n color: var(--color-api-removed)\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > *:not(span),\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n","[role=main] .table-wrapper.container\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 2.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(2.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(2.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n color: var(--color-sidebar-link-text)\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the