From 4634e729b9c7863b9f4ea2687f4742b5a2074702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E7=93=9C=C2=B0?= Date: Mon, 29 Jun 2026 01:34:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=A7=92=E8=89=B2=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/core/basic/equipment.py | 50 +++++++++++++++++--------------- backend/dataFiles/dcalc_0.db | Bin 860160 -> 860160 bytes backend/database/connect.py | 7 ++++- backend/openapi | 2 +- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/backend/core/basic/equipment.py b/backend/core/basic/equipment.py index 8549fb2f..383c5743 100644 --- a/backend/core/basic/equipment.py +++ b/backend/core/basic/equipment.py @@ -81,29 +81,33 @@ class Equipments: def __init__(self, version='0'): self.version = version self.engine = get_engine(version) - self.equs: list[Equ] = [] - self.oaths: list[Oath] = [] - self.oath_dict: dict[str, Oath] = {} - # self.stones: list[Equ] = [] - self.funs = self.init_func() - self.equ_dict: dict[str, Equ] = {} - # self.stone_dict: dict[str, Equ] = {} - self.jades = [] - self.enchants = [] - self.emblems = [] - self.suits: list[Suit] = [] - self.suit_dict: dict[str, Suit] = {} - self.suit_id_dict: dict[str, Suit] = {} - self.oath_suits: list[OathSuit] = [] - self.oath_suit_dict: dict[str, OathSuit] = {} - self.init_equs() - self.init_suits() - self.init_enchants() - # self.init_stones() - self.init_emblem() - self.init_jades() - self.init_oaths() - self.init_oath_suits() + try: + self.equs: list[Equ] = [] + self.oaths: list[Oath] = [] + self.oath_dict: dict[str, Oath] = {} + # self.stones: list[Equ] = [] + self.funs = self.init_func() + self.equ_dict: dict[str, Equ] = {} + # self.stone_dict: dict[str, Equ] = {} + self.jades = [] + self.enchants = [] + self.emblems = [] + self.suits: list[Suit] = [] + self.suit_dict: dict[str, Suit] = {} + self.suit_id_dict: dict[str, Suit] = {} + self.oath_suits: list[OathSuit] = [] + self.oath_suit_dict: dict[str, OathSuit] = {} + self.init_equs() + self.init_suits() + self.init_enchants() + # self.init_stones() + self.init_emblem() + self.init_jades() + self.init_oaths() + self.init_oath_suits() + finally: + self.engine.dispose() + self.engine = None def init_equs(self): """从数据库中获取所有装备信息""" diff --git a/backend/dataFiles/dcalc_0.db b/backend/dataFiles/dcalc_0.db index f5d94e9de3a0ad29268f6cf5feeaf066ba988630..c136b1012bef62afdfd7890044e20d348cc928c5 100644 GIT binary patch delta 18975 zcmaKU2YeLO_W#VCyF1%vlbEu*DYVc_$nK_slt{Bs1w=tg2rYyVks=5PGrOBXpN00g zc2rapA7W)i1s{kCf}qc*SWrQchdxEHH}rq*op$l%_viB=pM01z=brOD<(_-)8CL$Y zY~?@8Ru_nsYYGRrDut2}%hhSAY2vff&;z%H2MN+@*TIZHFh?oy&-U)}_|YJ&x_3T( zyniPoX%~CRed|z;n4A7{Jqn9B8jrMOfTNK}B%^~+ueQ#}$jZpb&CMm9 zH=6OoCZ!Q2|I$ zR#{HO%_tO3lzM%JNF`8bL*&E;2`#SYp%tM$iJWU9_Sq z9xJJ?sOlasiN-77XRNv$ewI~~N6RWIDibAS^&L!shwnhwi*2J7rPZ;LSXp)VSV>u& z{;XiXS5;J3Rm3aQMWp{-l$=~~7uqdFE23mxM_d$E7h+Bd4zJ;NqrEsYuAU+zicrhA)E_j zm6r7#vi1+6!`8AzMRHhh3F@*7oW<)^hqiPxItZR(`ooIsmO1u(7#(&{z{*6i4xDqc z7*>~MwamBV5ysc@RBc+O!?{tLXDi?RQPk7)lSx~^Pp-+}=s1wpZb5x1NL6t%@*XJ? z*4%jxVZGYhVn_-%QH&^N0wS>$&`Nm z1@w)n_d8~r^ ze#2^OYo0@& z8TMBXpl~Qu2xL~!b7YIt=%j-x4r-YZvStU1qvxJS$M}qtNmlP*5&G~B_P|IrAuI^u z1>jmiaqStL??;lLJS}w%Jm_ERTjrha>F$2VH3dny8c04DC9QoIlC_8NANn%--r*nC z0&PJ=Gcz`+V{MD=I*5)sbVzGYGWRe!I__Z%%#_#e+RhFVO$o(njGGy) z9L!f%M(s&|tE!}i(Q-O)Z*saU*oQu`ysuR#yFE~uM&UKSX+QeZHcBLvQQR`Kjjy9m zI1>lj0a*+9J#m2HXPPUVytIw8YCY%52j4(>;L0@r=U3o@_KNbH5D?l5XfEC>w+{Tx zyWcZB_@U5N94y`L`qp0}XzgNT)DdROi{3@wvYf``V)Seuj z=IpEZ1JuKGztXGa!mu{J0thYl&?egqXT62G{{P*tYYD%E-+GhG`Vjr-WLg@z#SoUQ zMWnSOBag74nsJ0#(%c0$+=pBdaToR;a<>iMo-tJEpd3Y~{d+x8X^XfE-n~x@YdvaU zHPi7Lv;sSDcN|COxWHAbNzEzdEmxdEDGRrvaB@L^L)vU8iDv3uENRoHK1KaZhwS<} zDhwx;Dh`m8lZ11=LhqXhpZOY+b$&mNVZur3lRih&tsGokNvoA8L~gt!UP^zKRmO}Q zJin4(#wn1BPorJd>y=fsgsCo%QYNJ__!+B+v)8o=eYw>&X9xK8BUrbnu zp1>zP-R1V{j`yDwR+nE25P)#4S&`c#Bg-f;$&Me;8(f;`aS@QU;5c9W!5qg-?4m&K z|DO3~`g`=IlNZENa{oE{@0-)-5SX7n7QIzznUih+Wie{W3TE1>@+jK~T*Hh-{wm9sZ_%4} z2tXhTe*kj70&vL)v09UuPk(@ z|BANRWk_MDe2^h7JSf7^;OyCO973#N0J|?smb2jCiO(gOmaq% z=;_HFl#YtU=3#}MRp8V?BcA?VR$0Z=^CyRmBK>9d!b4uk1+1(C8|ihs6hg^iq@OJ1 z0lzC`C8lRxV&$TKvXWjV-NDmh`&q zuHi^>?AZSU(>+CisqJ*+rJXnwNe#IYs7;4!Ohl6t;W)@Fusc^;3P8|u0Lr8SGCm9z z=rWF{mK^Gv!qPOLHfyKuqMx)XV1ShuNCW5tC|s8oNhL+f$8fgMGRA{qX5`nawqj&> zwglTVoNbIc;(`f|d+}twE|5NToP+LTnSg%)_M(idT4p>shcPzeCr?p+5@cbJC=Bu( zcMTIK2XYm6MgTzX8P-A*TVC|f66sSLy@=j0#ejm@W|inbF}%HWuVeuCO(&@=oHdyv zY#!zi_U3FKXMQY@mVb8C5Biv%mnwk?*p zRsysfrnXEMZO7PB;!8RO)I zx^NokXUU^F=(p`BaV?Lq;(G^D$1{TPjAxuHTRfzE=lj6_QSe97cBFVuDAf4BnA1Mf zpTl`CZocRm!`+x^QX`VxtnmMRko1EI(uW>g7OrXH35Pj^{V$Qer@8}3l|#YZm(Jw~ zwE+%cVkl&0BNNbbK6!Jv6e_CEeLBB0&0zMUdYZRFAR`i!?)6bD3SXvV%TlJ zNP?Z*+8p@!7v{ChY3D%3$!>1Q3ml9axD~h7Nbfqn23-apbQwltakTt`D-%r)#FSRP z5&pgz0f>}pIL>+(lKU@`vJoJwOqTxbxL>Mdv4I2I8WS$ZS=x`2YE5Lf{0x9~zK$c* zmNszMFGUzyWN04s+fLyb@ zWkLI1F1={OS*`>wg;Y~0c#q)~C_5u3Fhc1q6p9({F9ktuQn@DKWU8!LZ+}3$vWwP%^N3YsRAi&VB7!ESyG{CoZn_kad8&u*}(R(!42#Ib@ShkjM zpCLWR{GYad!wstBK*f`NI9++-e2p3aY|P-ORYO*ROTJjhJF=9a)|2}dGi}m~dC!fg^{UTtU7p2(>lmTwy3n5_ znNI|cLVGe#3I1D<#Xqq711TQ3UfJx+^$!yNfYfjbj?__-kzfmTOh~`m-j=TytC;`> z>~l0UYjw#1qtA`fIJ0t~9T<|=AcgXq%hU`9=Gs)$q5te==@fM|0PoOk08wCxsC8Gf zNmhbEbW2M5-PvBlr7G=FLrS1W!8#2Z6lP0wd{X+;j*_qx)Vh$jbSC*JUHZid?ugb! zr9El$G|97gv6&Ha(cK+T=q%3BtY|u0D6C7*}w@X7!Z-a((A$j*sDJ*7^Z|-D%B;O?s zHbH_mbTqPD%>zEIEf}UdaNY@zDJ6IuboFC6*iX0uWW78;(N~SYJLU#er^<;UOV%wL zq(va>dB=tPWVV`r9=)U6`t{NQN^c@%ogc*A0M}01LCtiF4+zpi*E;1&-zxbj@d0>n ztC*h{p|&+x(xcK$HIyiVx`!3&d+wL?{}mx$Ed+WqAV6eCgmYV^w}9R{EafK))FL2l z$r7JD29~g0mz@~$QS1Px`iCXmGz7F)yNm5f zn@8D$sz;@(P2A}b;R3~9F1W;eNx92i>)8*#=zxJoM9F$GWjlLg@ped~f0b*r+R;#h zA*9Vr)nvmTdYF9RX=7zDZ1?R_tjJ%ElGD^;j#>?+YAifQyufm_Rb8;7XJnSz9>@Vs z6Ml#M#B)+>klun5vM-te@=ir4SxfHS$>iO>Q=+#7w$;CQNebtBK8M^PV^LN*yX)o6 z(x;k?cyXup7f7>l8^JY2vBxynR54Q2Bnh}&^Z9+7lgEn z$nlqHf=U1UGDv6}k}BT$|4@9+>r8Q4wEuWeisvb?%gJJ%5ZLDJ=k|zsXry!#er?n7 z{$fO{P@}v^J*;{lz3JbQ`#j+*)L6@uv)?u-4dKJ#YL#ng*J}>Tl7C5F9^*bL*RAFW zProSzIE+zqoG9-y@96NZbP~LSsup}7cFQ?xPXNK}B-f|9IF3BweW{IkV!Yv~6psv3 zOE}78gG2fHQAsp+&qJR`@sRfi*x=t4gm>l1cs~j&#QUqiTW}w^+b*Q_CA&{EbG&yN zl;Oscg%P1>&%B2qF zz^{x<4PkoAX}XLk{V3gI0!vQ^;(YSS&&*4H z`q`)|0Y`cokgiqxlH)(KqV?2!C)oS_rtc(rp=JS@p$>3l z=IPdaOM50fkUas&ZV+Grm23I)uRQfVV{OBlt#VCPo^a_|+QBg^^Dy*d9)W($BZB1e z{VX5AMZvd)N5pr)JJ(_;IxZz=B}|LH4-lsHh$VS<^)gO!E!WoYF%k2XPmap9DS0VS z2DY!`it_cY>cx&#W;Rbud958}sS8guD>Hf;7Q2v4FQ!#$XD>c#dbb?FWs&acV2*`W z=dc(Pz%*iLb&(F@81>6;0B0wt6uXdbBuvjGZp`#E;cKOMcfshwScKjV9#9?#Oz{0E zU*<^)W5u;tcF}w8%7|92j&?AB5VgV}9nZsmNlasa(DZPg@Vgw$C8h|p)epB~(wuCC zow_g*?yHV%d8MbaVI|wSBZ+0|6+mcp_fkEqT0H%97TyP;Ng=o)8y8^jF0Gub3Dd>W zkA$%co>_$yP2!hxTsXy=LYO6S!wcB`vk~ACtyUfB=r~hrv{ybB!Srs;Y-SdQ2dE=> zLc6J-9#{a<7}<*60Y|hBDsBIpu+3DLTP(>rMPC0Ke`H{1?YQ(faFr7?Oz6=N4v@oM^ec~v!QJSRG+li_`Hm#Is7?f3Vz!`E0> z0+r?ThN?PBFStr8*fm!y%6jI>CbGH*v)tw$xEHJk2|iX5ucQ|t##Y=vAw?|Juh#E`qJ`~qj1_9UY#d%a^<%#9sjt-U&)WOZff<65^({!e}Ty{kM!+$V$+Fh6kyLUC_IU8vSO7MZWMwbRk}ar_GJ z+Afvr+}5e1tonqs>4V?l2!Z45mO1_&V;rqSsHj|vcRt53^FsU)OPH*Iuvn#ySkohU z0mT^J=VW?%!fo?}`@MB%`nQT`lhs+=OIn>}xAa$KxSJVMa9S-4_fco^gspAD;T0?s zna9+E2o$U{TBf|U(x8L{0aGr8;art#_40Zhs=~*tjMGZYA&0A(ZBJI?&uptl!kH@9 z$L3!@*9#xx^i9kqS$&x=ckYXKi2aS&iO1-za5=kEtAv|cdb3t$T-qpm!5yZF=w$Fu zUr%|PtE+!#U={qsCh4SSpL+nf!$7R{R_7CSAa$&C!4T{RsO&<#pUSl#mvGg_`-5;0 z2ra*jsLNE^6gSfkZ?gOm_<&6q5&M%B1DOUJ2EtM{G=ShW@V;5W%~$O#K@MMvj~fY* z8V~whkJqsGU#Y$72{lw0t>V zQJ1J(6Pc&nHWBaVFaScXi_8-~eKjNGY&#unTMH$rsB(Q|{*|p);e(uQrJupJ4+-Lf z!N-)#{XhFwdzxI|;~#{F(2roL87!mMIb98R8`%OYgoT*G3<0H$~Y zdAyd=IZiXq)@TlS_yO9y@` zAx~gW2|2U{x?tCgz(KNd4)&)zPsc}1N04X2jBJrcCv`0*DJMf;I1`_u?g+6A&4R*+ zHcfMLl-hjTE3U4`rIgZ2yjN&0AT%R|ch{F^zusJi(q;|0Ba#rBC96E6@>3J=)?%->2mWdf$$`(n3v^)~MmIc{u z^NmLU67=;8kh*~Ua{)8`kp=iA+s9OQBzeZIu%94(97e;sq5hZZwd_VH>mjB7F!XjiI9gCm}C@sVD?gx{MBP{K<- zxt{6ww7*Iz;WE7tCzooi$$cu5H=bl%sCzGKhB&Cv=buU556_vq=A2n4aTq zpm_&L=WVA8tBqQFATu)nM>hLzywkBJTwH3!EwUSb4}RWJHmu<9p#SrT zkP!;@2fG_NX0rL@VeXw;@HFS&yN7v%$#>dt)RiQB3+jYGC~+o(p_vh`@X)1XHnQ zPM9*YCF~<>`rH;qNx_B*)1q)Y&72ecE8(Vp7=(Z|8_8E^km%#gL54hzpW?usu61|7 z>_J?@({S{maGu$Ss{bQPO`q?vzeGjpL>tQ*4c^rAg$QXBm5WJ6>Zt zFP+#W>F01*98cbSjy*l~9KMx4H9=(a4z%l20rriFg$i7S`Gg7yeXFbr?s47Z8{=8w z-Y-;$>v5MgHTg&zPbTkW241umcjchK+IVQ7*Y0IGF!HkT%*ZI=a9r!vGM=9uGVrtr zCu+3oXT>(OO3dmmy<<0PmDuU9w?#58k`*TA*Fj@-9j!OJ-Z zMTt>l-fK*=Rj=W@;fd{#BQ9XMpL`#9ANE`;SGvyOJ<@tKL#zs9C~l$enwmlcA7f<>m1#q=(@^5oajg7=*pX6~!8EHe1zW2_{VTAm_o!fe(`2L&?-;qS$XJ(^z!8X1 zt4o{dVbn65N-tcEZ-`n=l3%s$h7*;|3&_Z;snY2)SIQda>XAfM^L*ej$VxW$S1IW& z+OJ^gCN!b%$*6Ww&Ev4s&7k0@y9g1BNr=fWA`KkBZ}Z%v-q@i#JR z1FGEchg?KfK7_pF&{)}XlL+o)w#{L}zB)(tS-6$P43lUJ^`K=yK$(3BVW2#wPQF~s zG)xjNt1xUbhxDDnc#WMQ4}(!%Fqkp3oV-|vfec%5_N9u!XX$LY12Xwk!z3-8aE9&j zlSanp$42=NYZX%@2$FQ$Hr}pqPMoR3=V}5g&A_`7S+>7?St}2;RVj-zrU|#M05!lx zeX%Lg+onD^O|JVZb*fDF1GVLgtGd|KduPgPP1?8-((Z5U@;wuox zdwdWB1I0+9UWX3_1y;&d3Js}Zo6}A6rR})?lmp=F4nN-?~L^hdNUpPTtVR=rE#T zrGk26e%DxXc|v|n>R~JiU$Zg+%j2b`rKuh|jG)kWC_3h_wDC^6zsajmHhqVqhgxn3 z$Tk4w>zC;;Kter(%GRjQqqBR)n`3nO0f~9NV}`OSSWfXiC17ElAgpt54BR4J1Cf`= zPhF+M)Qsi6^~oZKQQv#yClC`GX85ZOF&LxfZh9+2><%DylQHCJEPnGk8Cj~9RvO{U zRBg`CVSGdwYb6~vJ!`zv{Z9EL3K?it#0>kfcR<|_LER%Lzqv_=i4uWzB&aEtB;%I4 z&u@?in-^(k56d}<6cRi&%5?YJe)tvMc1ihql@6mBmX39Lt)pXblYE=h-7t;ivrI>A zw%!(uZ-!n&!fzYD^`r6t(R{_+2G|>^i}luqj2&2LH#w_}*eY*CxyC9nGsf6E$uZ=~ zhh=*0xBp?en?(|j8E$F#NQm6Cg^@hFMV^Z~7+fmM_+lhCBT zy^BPYDk3|dX0N{Uw7kILex3lS8^||17>WG6{ElJmGPvY1ENAG2br_+bPD%r>&X|)j zEI0f~d4k2(+T@r-dIp)eov~fGU7jJCs#}?rku+zJGcPg{&rYzvaojljlAIfOUXWWW z7vUFt3GsPQrZdz4Wet2J;I*!x&aF(D-$~{CCur%EpDPVVj{s z;8Xma?^1E7ybx6CCBo329<}&TkDi~(wLH4tzo9d1#+_A_7)sut!yJd@$Mu@zOgb$4 zKptz!8#~V{N9i$mhZR56dfZ?@!&~wr7Efkys^L(+df|kP=LI>D+{mX+{^0nS) zr4L<)Azt}E$uT;7hiDW9ut~C;S3{UR=j155z;O4{3ZpJ@pA;tn^YO5$U!%iG%F2rK zxlR2a-^p*-NLHG=Yc^T&EybB^_*OoXWiYiu(w`@g=v3d0kz_v|jy{%;)p48NpFhfl ze=U}^i8`ErtW9q|yUQ~q-}r;vOEe|776F}Sg30S5sZ1RX=~i;B*K6(M+VeNL(b~(c ze4J>|;RtG3pe{wvfyN>=zsUOxTfz5Fro$+nQb2s6AS`t6Ri@%?fqtmcOB`!)S@M%o5f*Hu>}&oVrq2u8y`~CHb=Fck?h(YPv%zUx$$!%g{^o28%d7(&xGEe`-sAF$~A85WIWD z6&@V?!nG=}5z)EidZ>Vx>O%}6X)V%}=w@^3UF5mag2D>ulv^KaQAdS&I=x6TpeV@p zOtXs33bW{2tY2yn)1yj*PCqj=aSM6IS~iJCjVzPsrC$ux=E0^Z={U*_1s-AvVpU+^ zyMqmCT6`J3ZiDxZR-P7oS6l|_E(V(n)?rA#l|VZ*;lk|GAf_?9GR8x zIos~MolEg80axuThUrEbVNwsz-z}Kzct4v988%(&Pqu!f-l?F-#J%Pn`eUIBN%2B4h-o>Z^H?2)C%^hC(^ zq}6RbgYAT7MtZ6vd8xgJ7EedodzPb~W|}mgvK^D|zCQ6r!QD+lc)oaJ@I_^!|DbPz zH%tB+mTZJ27wY5qC41US?x^dE$OnBsA#-Tghk^=l291cWg{;5Pp?!M(~e z!WgjuY0};JdGBWVBX{;X7)Xq0*{dRkGW1J;CERC_>k^*NoVE%jg!=>|_|GR?t}#NZ zsh78^0O(k?b3WZP)dT;{ht&rY^GWGSPo686&deC|GLu$%xc{dnJa$zP$4DD(cL!JN zo;FU;swgpdRU06*?jDo&H~I7elN?)ZU0!~Y@Z_iOy~$H@UUOvdD)?VjT6j5)Zw3Q6 zeL-;$c{0VY-W+mul77>h?2g3t>=s^mXl~36cd}s#yi8U0ICXU#h;+8fV`O4WZ6*p+tBN5#GED^2*~qs zd|`R_qXUdS@gbBJkmn+R>HO8(q@CM@Ubg6y=Zf)R4{rpR!QSRm$PvUu@bB_X@qC-G z!rj`HDg~Trj#k8r2`KVB3Mh_L`@DJ@RA_S^NB?B=+WI-l2q?IX9afbHYM^@6a{rEw z=v-u{q1FI0lqFlBteqf>lFzBQB_+PBf(OwN8x<>C0nDVrl2-T+^q!51mC5m88y^Ok zPDLQCHpv=uuCl;bW^BVFs1OVzRHRLvKr#bLW1_7 z!#%nK_2lmGue)&uQbuY0wlfQyupRuwU`iaR?S7Iye)CC`&E-;VHlHFS)r~p{zK=am zC2V)EbuE{sI|q}cs1vBmhXRq|ZDHI2x=l9sHs@FK3<@H~@h$s6U*QqiHe95yi97x* zx`)rNXc$S=?tC6O0!mtzwdi`emfAT}Zo56`tU2XWZPyEQ%Gw(*p!1eCl~x(?U*7dR zI%~y+#B@NJ%Cv^~_euYGSkL&vcZ&TChWU6Q75qwR#gh&5SCI}P)h%+oUKMF?`VH3%Y19#LFD8H zG4gGQ-zgnzFnPRb3QcdLlZGjzwaNpK?&pm*&|UAKGd9cc=f;=y=)35oWf`9KfYL3) zF6_nk&XAx#{5JsH=^oF6H)>tumuw!bj+5lcmmO)>Im0 z3$*)v^oxz9ywdoxrXE8-TP)?20Lo;^5>|B-{b*w;r#L?B-~R%bVQAtqZS*H>S+hPt z1Gv8&m?%N?t0{!nyBWLpa??moe~P;EDAhEH;<^;raUKJw?L2}0!{$sk4Wx9_az17u zBlI!4Wb)EAA70k2$L=#HK0v>jydb5cHvgaO<>r5)OH3&2kbx}EQNbhb5d0p`@1CrL z8{N;ieslG8o^cFDN5vhWwlJtIU)z70z53B<^oOzRv_NE0HJ^40Bqw!h7h~G7SI?rp zD8!QqNFX4YD6gc+L?{G*ON+{RG7;=+dpm3eovXh>GeyX3AevN#%Bk;_(S)S5i2f}L zm2m&NzK`u~#fn8IzCoSEwva!S6qG;;Q&Lb?LjP8j(tuP}RasG5Ay;Y_&!E;2dL3s` zROd0PtsLqVVEGAKPHAE?PftqI1i{&Q-n!i$(R{K3tO!ER%Rb14r3xG0wkbrCDZ#-SyIS}zyTAFT*TANkXdGx8+ zj`3a20#&F4sH$QaTyc3Br+cAx^lN6M=f6fTbK`sX8VSOnP=G;N*;3k;i|CNaHNdWp z4;%U$zzkPTn|>9a8qK#Glp14|v7whyKKJYuzeB=%^$wT%RQvvCras4i5avU$>`y5i z5dZCW|BZNrrRNBg-(Nd$n%Vr8AHau=gF|boeJ9!^_%3*kyKk3zlW))_@Ol{qBjc_~ zH?=fZ9u}Db{*Xe?9*-gH;kgl=ftLLOPD7DVoBH8YF=g*{*o92xXea(o(r{$>*v%5A zhnrb$>_BYrTL;u7Wsk;GAPg~mh&KEYW% z?Zg=YpW`~gB_;^IM?9IX1&)Ww5L|)UiwWR|KO&`#);Ec+M;o7nzpxBeNuFe>qF$b6 zL=f$CCO*SBVXE+7ulYfo zRcSp1XUTV4wCSo8(vGI$Zn5IlIGOLqkke#n6&-L|Fxq(nXi)czxnUfc0;fHu!S$(l z2G?NsCvbis;aVF`>1W}32k`)|O-N?aw0ko^YUG;nfQJ2s>g5W%XiNs(8{t%&|1?fZ z_2FLyN$e>2zx3>NwI}7+je=rFFt8*Mj&QYhy0QfQY^&uJ;sd4$!4d8TfSIYT1J;R)R$^%#;oC4>=amDzY&Ek?800sf3C9H1|K5bfD zn(szHfyP>*{_KVSW!hgr@zuwNUFZq0zcSdItBoqGq|%Sye}`E2@^331zF}M(olk5H5i0K!3;iKHjHf9 zMZ3P(Rw(c}9s*C^1QzJM(cQ^$miz9$J`{AECv!@1v z4OTaD8)S-%j)-(K96Emx{t3BQ&Qw-jp}mtp3WAXp^K58kfQ6oa6_^@Z1wcyJI=pY|f~=_Zh(tFBhgFb{Bf z)9{Oi>X6*1RZn7cUONfDV$m!&Xk)Ht&+D$oFPbzXdA8PW3U1?0DQyF>f6SN5wE1&z zwl;YR-e{7H<=M-%oGC1>4xNmji$iO)yH+!nyZl&O!)g8e8lbh)GRw6al;xJeb{UT+ zaf6+B32?rpmSH#82$kb8SI$-S7}ox;XG|zBMxa>rsGK_?>X{~vaOmnjjD~81v%gQhiHx0;~cGN zF5X~MN}V=l4jXm$9Q>@QhoD?1+lpy6VOsY_!2QMA(<61V01MTRNwrE%#MtU%-EY8| zTu&orK)|TeoFrTe`^?b{&gL0$n z1;y)Uu^KteSco?DW}BS{Z>7!dgYsCL5bqQzuQwAh0G)QrF4!DCDlz%Ty|r|Ic- zjo`aA;XBtD=Q^?i)c|QDPEV%b4xblIBaOeBjZKI}KwiQe5xcYx$sCAp$kWwz&%B6N-;V}xdQ*#x}bzpjPiChE=*0=up zNV#R$?LWfjxl?;Tg?*?&>-Q;o6=P?D^X#pen-DdH5tQO>=IA zjsAVX|BAP(dz14E$6V4IwDUd~*$ZM&DV2MHQ5bHip~JdTK4; zLj%77oN-GV$d`Kn%m~I7OiTGcY!zFAO1@kbAGiBE!2N}v_R)N~68O=BUcFLi^3#)+ z0On^+(iVIsb>mf#q=Q(}_J1aMVr$P}!nxag4wnU!<&aH?yxbHLJ9`cf;$EKrC6Jt~ z)qKgwT>d2u?sR#teGU1Q(p$C_=5meHAj)#Hu8wCGB&-<>=9T&;ncn!Kq zjLAn`!+`Zx@<5CAI(d?r0iZvjK0*)LG}Z(azicaM*>SrsLtVrq-6Qw6$h5<@|Awub zj-cX^`^Cro_y^$rLV9|%Uaq!`vNqhs;_JWG5O#nBUPs-1EiE`^Dole=ppqYHi-jw4nmn^gW&(#+r#a5)Zp*X0dWHu z>&-x0H<{K!^&O{9X=BoMK_pisM6?d7+n^1$=>WMhAEI^8zrwU{{eb%m8%XV=n?M`{D*vZdlz`Rx!-c#DP8MKC!gWF#d|nM;g#~W)~f2G-HpUM zc0(I-kUMHY8p)uRJl-M`9Ln_kcCCqN$=QKk@-+a{1B4y+STbo5L&wFJH!lg~S;kr} zkF`zEHtyB{xgv&^$z$RGQ&M6x(ul*1p@G13nU+WO8P+Lt%@rqR5PG+y-);u_%e3NY z;>@~zY;h(@6^p=P<6dv($+X;Wye2mp;d}}>r2|m|(=|$&S$22kqJpx+369vP0@-&cR926sNV^XnT2Qr`U zY>*i))4f0NRVqIbfm0WpZeB1;1fHOQX7`axy&cf9< zTXzyKwkWBps z_bb7l=#xB`63)2~x%Ns+oaN+wd>ow>zXBB;6oc|InN}Qig)fqG%wXg$CkGkRGyx3C zi)C7K)Jd@8{wyJHSSbVGXwfka?vEnC=_CXKQ{~yVVU=2Q5r0&WZrs}8OqL0LTW80$ zHF47`sXNm6Ob=r;NtzWOxTDJOTY5PYR9efnV&o!ujFC-gXL^uR=HWI)wiP4osLMUc zS=-i@DBEh@c3etta>|SrqE|az$}H=bQu4XU7E*|IvY0*pPciw>U?&ZQ=W0oP=<`^o zKIA#EFEfc!*2Yy{Oz&Sqa0f~+1o>4Uji_GnaUoIki{A5|!wLJ`D_zwRa_lEfuxULG zs=gieojQ3LP*lYaT+3}eK9dKN3eF|%-3cl;$V&mJyQLj?`YHm=Ky<^V%{xJ*uWYM} zEw|F7*q;N4$JhO0+A54R5Ezbwhdg8T6Hl0ozFo>LH(Usbp*jn2&gem0U5c*g* zFQlYt#Y5TitA>(uY$DW}kbJWyj$+RPqsT!cZwksQWm@jn1LPIn(x1F*nhy<-fdtfE z@Ne*K_TJ;UH(`tWE@`J@4PJ!WgVLNRsEkl-#kb|QhQa5@5@?LFqDqP)Sll(i!Otiz zdaofTfn?Y}z8_CAgHV@PWd{y2fg2}~(_9-jO$1lKBri^Q)IC7TC6D08&=btT)K!~|5aW78?>oAXBfTLBwI5_`Iz*(was?a7-!(UaiN*VLbB2dPrs)yrf zCW>Tg3uaRaVykD9uehq=^qCn{Y8Be>X-H5OnW}!|MpDEbk4Mk(3S_p%c40TiIMd9ZCNNp-39+; z-_PFqgwG)m-Y#u*KIYgk6a7hS(V3D?e3A3(`mylNs^F|P-iWacPLl%%%ZRR{rp+!-B+ijFnOjCJ% z8F|Gt6(Tn%t+aK^nK^&3l)Pvz6v5TX+T~30KbFID!<@yb+AS-XiZ`vWZKN3}?9xuJ zWIz0}l8om|gq<@}bZPUN*z;%;eNI=zRgDxM*I`R5ZMBLVHaAL9p%rqt)M$z7vydD! z7tB*Z@jk&n*4M||)sy1>#dX5Dg`|u3L7amS7g?du#xy-XH>g$z#vYl#(Uscp>+(zu3X5G9~wY3tW8itoCWoHJLJ zreuNu-G&=%U7s)C2A$q?YoI2KloajGHB1o?uFlg2Uoy9QNppvB6 zS~~5xZUMGeh(w+at!Kqg658i9`7ZL5X>b8~iqe%gO;LT$TxQzkx(#HPIco~*5*POR zI)Iszj=B}vvI$C{(iW)JUX#0-jOSXtc?&43UZFjkCeCb_i|yG$Dgg&%v(zNgL7{D$ z1~9tH3{-9JB|lo$3rz+}2biE9ix)H*$3pF@t>k&bJp=L_C671su=!c29^1%Eriugd zY$Z3Yux|I0=WX20RN7ml*v4GAk;F{ykUUdcx1P{$lLyzsbAv2sMkgsQ^iLr%;4k#9 zfrPz}ltF$$vEa8M*wAT(lz|QFBA0Ws1a?Sc|dZevV0w;BSznBSE2qPf5 zWmV-@x06qJlw?;3fGqwW$ijyx(wG#xLdXfXSBijjh=R;0!sg+TweI}dI9j{h*`>Gc zTzs4)#h!YE<#k|^&^DPBXs_sPlPzA4{rV`G$3qdcO=bmh6uoV-C2srU6h}kTR@yfS z3>H4g7##E@dCJn}3?<*vrpcagoOHe379gMw3>FZe$4Jmxy=_zud5^T919LxxEC@f-P2P2hWU+r>m!@N2e*Yo@X!<=^3H55k`6SKC+QpIBgx}mrKzp z3a#8-3FjR=dC!sc+|X$UskY=24u})A3okHjJ6|MgdB~#cXZQOg(n%@Tjy^zXh_!wO ztij-c-Bh4RNA1`i_VU+z$iFzrG+wcb2|bzFF8JT^t@mEzNrhyl(eXT#g9LFqa1jA6 zCM&dPr#sM0s7L7eTde=ri~!Q$LRg;woM&Me#$2MDwTTY+w(Ld$k>fTQ+PpkZ=3 z;bKK^LuF!Z<)f*H=w>_ZW2`rEj;Vn-%Oju96xNFPkEwKuF%4> zNv9=m$01rTGU+T)Xyw^t$-;SFqb6w3scZ0(;J?oo@+@}mmcDhq<9LYNfIEqoK!eA{ z*rj9SX9o&bYr8&$ZzfVWdoRt_##Fcpc!7C-sVga#`x!mc(d~m0hpUw#+MZ9@(dxG2 zf6*+{*ixHMk>*p5 zeW#q_^c?@cp_jE%@Lx*!%>5v=pobiPKpu4$nk82H{_sg&`kg_l7_00jeUyOYC0cd0 zM9V}Is--vC{CM$VVe>p2sj}68)OLjQn#n26){=*__d5@V=Y~a6cPFt+Bc(*K^%@}& z`yJll3F}=SOI;k-;EUoKn8JL>U~W*QpdbJV!Nia-x4B6$BEdalq-vB13`4hb6))l_ z)3yEM=}57U$4h<0j__kyL8!EtclM4^A;}iN2B@U^NS!H3yhhqBc3|L=N{;QSLZ&T@ zqS#`4ZL{FyUF`kRiej1nEs9P6g%V&Gbxe*n~gGzXeHwswif z1mEZ0ClYRu9&`30Pvf5AG2s0<2voDwL|}kboPhUmvdPw*8>N9F<(+=^R?6s77Hdap z*wW6|NMrRMOUv}H;T+oj2CkF_sa98t`DTL(iLSuf2#N*%^$90>TCFrfY!AcmHuz|% z3a3C*d#k&c^QoCDtw&td#UWm~i40NUC}^sWeUHJV9+@F^U`A6`PzBAd^lLq6+ut^w z&2R5?DZ!XuiCz|LtHL4Bm|s2n=7&qlsFVK7<_F*XaV$L~Ng^~Y{OGyXb;kLUV+vj% z)&QMwsT1+4aN?n6+?E;?Yt!X&a&MBp(G98!n)d1EgR|8(fQ4*~8frr{*IeqN1=5@P z1WWXOb!D>J8o=YZrSev6F1T!k)YA~G(~_gY@rdd)1q9bMw=o1iG<}hT{B{S3%-3#N z$w=9>QW~i$(A_H+NN`hk~xF1B}=h9YtFW`MTC@ln`#s z)>RbZ=EO#Ao~PY;pG2>f9=cB&%n;TnY#GgdZO3MYcy6@WFv^E%`YSkJ` zRPj#fPJIPe&>R`3B|gUH*Xc2-8|uc^SX#pM&*rDpt2w}|9+(@#9+TN`ACv}&ZP*)n zU}m!eqv1_R(Nq~4GVPi6i{a^G>${(Ay?Mbe6uVa6>Uux|W#|YlD zu-&~&I*4Ong?(X#qg6QI@f3sV(RPu2=f~2+`h2gjBDK9X@)#38>zK5HDW!#5MpIO1 z+2BSE0pHe=5S#It)SxdBe3gZKPC}Df2(Rc{ZoPu73w7Uz(s+XvJJroWwZNMC6^$Xk zpOAhqthvG#QGAZp;M&mJ>2@t~Ovd{V?dt3f#k)mnh{rc-MRnm~(+l%XOJj^}(b({> zS1YU_&#zUvGM@Ze>LvP2Wq|AGEi7%+a)S>LAF*0AVq4Eh-x-Uu`<LTs_FPL6pUr6ub&Mb6X5sugFoxP|Z5zvNm!wR#yIQstzEOpPjA^S;dWz$cyZ%=?sApbfx|W~|an)tE zPj9{~&270)k5l0@IUY5@K-qmMm(=H?RE%;Nbww3CN8+sY5d3|;A0&iaxspiMpdP?l z9-?0-U39x>(k&&py0(~aWRVJo6Jx&1SrMI&G8(zY7t2zQWW;Yq5=Mf5yRW@xX2K}x1IKL`0ZHE?6m@J) zVY5$5am~H>XWWPO|>B?=%-!c{2Rg5sg3%Go;JKDI$>nkfQ=Kig;QlV+Z zu+c`j(U`1;+PZ$Y@_g0hcjn80q8d1H%vPaCgi=it zteN37WA-tW?;6}<)Np|cjUq-qJ<~S-`FXC}#bjo^#tFpA7doh8c!cFcjED>}COf~o zt4R++#@U4Jl+nTJXdZ;<@@CpgQF$F*+l+ihKkKkKuFO-Rm&96#mB06E=NjH}A#GLY zATbxhihx`Z7dpF|bg;3IXh?-V5<~I=+ac(g9M>k)<%)1e%`ri|gZk_dPr$w1HQD)x zV-CKI_K0@?;|s*tcOh4bE2u11Cs;yfh6_#JA1HQ>Z8_ai^;!T=;OCf`?6AwHdwZE{ zeT(TTb5!UeqV~w??qEvJD0K~ODY>@_y+l0EphVNlBQAMh1-KgBQsAR#o#%bkF0s1M z{gdDo3Ix{?vd;gy?-{%T%@BtP1=2FdF3&g6JbT4IN>JMtrbevo4ZFTJkHJBu&FTz3 zF72dUZu=bZUd46Zsvxym4HpkQ5L^k1$gZ-pIR>Q?ZJlxz{0jC!~0g5LorLh<)ifn% zRhMF6d4zsL&6JS_UzL6-zx>78$hqfk(~6p*<~8ybDN8#FA4xnt;^Ii`BKW_7qsQ>@~ diff --git a/backend/database/connect.py b/backend/database/connect.py index 35a897ec..3c009340 100644 --- a/backend/database/connect.py +++ b/backend/database/connect.py @@ -3,6 +3,7 @@ from pathlib import Path import redis from sqlalchemy import create_engine from sqlalchemy.orm import Session +from sqlalchemy.pool import NullPool from config.main import config RedisPool = redis.ConnectionPool.from_url(config.REDIS_URL) @@ -21,7 +22,11 @@ def get_redis(): @cache def get_db_engine(version='0'): db_path = BACKEND_DIR / 'dataFiles' / f'dcalc_{version}.db' - return create_engine(f'sqlite:///{db_path}', connect_args={'check_same_thread': False}) + return create_engine( + f'sqlite:///{db_path}', + connect_args={'check_same_thread': False}, + poolclass=NullPool, + ) def get_db(): diff --git a/backend/openapi b/backend/openapi index 79295067..97fb4c18 160000 --- a/backend/openapi +++ b/backend/openapi @@ -1 +1 @@ -Subproject commit 79295067f0062b9a1d9c5b31a700b74d524c5e02 +Subproject commit 97fb4c180e55e53117e1edef9173848296ab3225