From 88a797fcf6e986161c2c749e1ec7e372f6be8c6c Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 25 Oct 2025 22:49:27 +0330 Subject: [PATCH 1/3] add multi-stage-docker doc --- docs/Multi-stage Docker Image.docx | Bin 0 -> 14978 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Multi-stage Docker Image.docx diff --git a/docs/Multi-stage Docker Image.docx b/docs/Multi-stage Docker Image.docx new file mode 100644 index 0000000000000000000000000000000000000000..1205a8f1cef2bbedafcb31a2615b04636725abd2 GIT binary patch literal 14978 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 literal 0 HcmV?d00001 From d5ae4fd0b938edee767c12c0e6b740f530473b09 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 25 Oct 2025 23:13:24 +0330 Subject: [PATCH 2/3] Remove ignored files (pycache, .pyc) from tracking --- .gitignore | 2 ++ __pycache__/main.cpython-312.pyc | Bin 1468 -> 0 bytes app/__pycache__/__init__.cpython-312.pyc | Bin 156 -> 0 bytes app/alembic/__pycache__/env.cpython-312.pyc | Bin 2503 -> 0 bytes app/auth/__pycache__/__init__.cpython-312.pyc | Bin 161 -> 0 bytes app/auth/__pycache__/dependency.cpython-312.pyc | Bin 1276 -> 0 bytes app/auth/__pycache__/routes.cpython-312.pyc | Bin 3884 -> 0 bytes app/auth/__pycache__/schemas.cpython-312.pyc | Bin 668 -> 0 bytes app/core/__pycache__/__init__.cpython-312.pyc | Bin 161 -> 0 bytes app/core/__pycache__/config.cpython-312.pyc | Bin 1118 -> 0 bytes .../__pycache__/cookie_utils.cpython-312.pyc | Bin 1631 -> 0 bytes app/core/__pycache__/db.cpython-312.pyc | Bin 799 -> 0 bytes app/core/__pycache__/jwt_utils.cpython-312.pyc | Bin 3527 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 169 -> 0 bytes .../__pycache__/i18n.cpython-312.pyc | Bin 1062 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 165 -> 0 bytes app/expenses/__pycache__/models.cpython-312.pyc | Bin 1667 -> 0 bytes app/expenses/__pycache__/routes.cpython-312.pyc | Bin 6824 -> 0 bytes .../__pycache__/schemas.cpython-312.pyc | Bin 900 -> 0 bytes app/users/__pycache__/__init__.cpython-312.pyc | Bin 162 -> 0 bytes app/users/__pycache__/models.cpython-312.pyc | Bin 2467 -> 0 bytes app/users/__pycache__/routes.cpython-312.pyc | Bin 2355 -> 0 bytes app/users/__pycache__/schemas.cpython-312.pyc | Bin 1676 -> 0 bytes tests/__pycache__/__init__.cpython-312.pyc | Bin 158 -> 0 bytes .../conftest.cpython-312-pytest-8.4.2.pyc | Bin 5111 -> 0 bytes .../test_auth.cpython-312-pytest-8.4.2.pyc | Bin 13317 -> 0 bytes .../test_expenses.cpython-312-pytest-8.4.2.pyc | Bin 10233 -> 0 bytes .../test_users.cpython-312-pytest-8.4.2.pyc | Bin 7871 -> 0 bytes 28 files changed, 2 insertions(+) delete mode 100644 __pycache__/main.cpython-312.pyc delete mode 100644 app/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/alembic/__pycache__/env.cpython-312.pyc delete mode 100644 app/auth/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/auth/__pycache__/dependency.cpython-312.pyc delete mode 100644 app/auth/__pycache__/routes.cpython-312.pyc delete mode 100644 app/auth/__pycache__/schemas.cpython-312.pyc delete mode 100644 app/core/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/core/__pycache__/config.cpython-312.pyc delete mode 100644 app/core/__pycache__/cookie_utils.cpython-312.pyc delete mode 100644 app/core/__pycache__/db.cpython-312.pyc delete mode 100644 app/core/__pycache__/jwt_utils.cpython-312.pyc delete mode 100644 app/dependencies/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/dependencies/__pycache__/i18n.cpython-312.pyc delete mode 100644 app/expenses/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/expenses/__pycache__/models.cpython-312.pyc delete mode 100644 app/expenses/__pycache__/routes.cpython-312.pyc delete mode 100644 app/expenses/__pycache__/schemas.cpython-312.pyc delete mode 100644 app/users/__pycache__/__init__.cpython-312.pyc delete mode 100644 app/users/__pycache__/models.cpython-312.pyc delete mode 100644 app/users/__pycache__/routes.cpython-312.pyc delete mode 100644 app/users/__pycache__/schemas.cpython-312.pyc delete mode 100644 tests/__pycache__/__init__.cpython-312.pyc delete mode 100644 tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc delete mode 100644 tests/__pycache__/test_auth.cpython-312-pytest-8.4.2.pyc delete mode 100644 tests/__pycache__/test_expenses.cpython-312-pytest-8.4.2.pyc delete mode 100644 tests/__pycache__/test_users.cpython-312-pytest-8.4.2.pyc diff --git a/.gitignore b/.gitignore index e15ef69..2228d9f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ __pycache__/ .pytest_cache/ .mypy_cache/ .ruff_cache/ +*.py[cod] +*.pyo # Virtual environment .venv/ diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 90fc9b4c58d1ad2712c12192e17c257467aa9321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1468 zcmah{-D@0G6hC+F?9P5~ny-oObRu2hBw1uZD}uSUUk*r#^Z(VAN9 zt9H)GHw%ehM8A~yW%Mfqm}X`eX)9*-6LlvU)vPMO2&>-Ec5tRV%?UPfZf@w0TUJOb zu+yU}O8;9?d8p#}c>kf#l(fRkF>2q@F`s-Kc8gpA{(ze8XXZqf^+PFF5YFZjM~8M@rH zwkC8gLceiw=AmpS6sC8w4>lG$j&5$e&Vuv8 z^EVv*ywK0iw~-g!x8~cHtJ|2g+=jmyZtH4L(AH;w6{Jxe<8a z2w4*!#AWyYoRm*fxk@i9LQCOCce|wApgYMHYfx8L)=?E1#<|C%B2pm2pk;U_i?SvY zx@FfDK8YP8Eq;F_RUO7O5S&jT!n0`Vlvku*m1Y`EAeXMyYP^JZG-HH;@SIjh2)~6i z3`NIh5j!l4pF^_+zdZKjmup|OuD8CY-!A^J{N3`c>R#pjtvBu#4_{mSV)gUYZ{F(_ zmv+^q0hYr`eLB*TSL1RTm)vkkYIG>cH+Z7zAl@=6BqFx0vt05NO`&!htm`vWe$a>o z9q^n)s%f^B$b3SUhEhODT~vyr6t7BL4@D=1i!w;iSPHQkql)Dkc4)HnyF(*BS{>ar zZF~yJ%XQ$AnjwF=Q;uhbHhYC1!<^J}a1~9T5<-54lY4M-AD+eEJ$P{+PVB?;{VXUm zeT9;_&$I`C*MO#p`z6pS+udHawncvedIu)=U~>D_9?Ts?r+QF3h+gi&5!o$??9TkkjPa3w@CH*YgkJTTXfAehkIi{|gY+S)Kp@ diff --git a/app/__pycache__/__init__.cpython-312.pyc b/app/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5347708b16ff5dbcf73835370f4e921dc679d98d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmX@j%ge<81Q!LKW`O9&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdW$kPg6Iz^FR2<`& zk(-zjKECA@NCbIwl diff --git a/app/alembic/__pycache__/env.cpython-312.pyc b/app/alembic/__pycache__/env.cpython-312.pyc deleted file mode 100644 index 19b2d90bd9a435f04f1b8669fb38e60eee77d2a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2503 zcmZ`)O>7fK6rT02?cMcX;>1qkq{f8&U_{c=LaRootpgF23Q>Vj2`iGd$&SOC{c&g3 zkVH^LZ4a$fsp^SCd*E7yLyx_JxbwhsMG6Qhm-fxt8=H`h<(c>1ym>qO z-uJ%!EfSFtj4v`TZv5*<=x?TYLud-SWe%ZxNJT2ABZJFx9Fu*zFYkku*Lg$83$9Jj z{YD@kFoOA@tNV4)kn)l%2Xxs8NY^MPuCjdg>g9{Mi|0O`x^%s8J~xw_%w3%-T)T2HqtT3M*%^qI(aa1sZ)wCb z4Q$$(TME&XIUUpSQC*jO5`5PiP=#e<;m@ZWt5(>-K2YlTp$S&?>U+ru2P z1D;*wRG-Rg+yh~?xy!Xj5k0@w>gDkadd1U4ddrJRo+lvD&weeGEcuV2Q;2f6eH^+D zaiB*2MgBUv&1D12N3T@OjG-+M#nvp7vdoNH#i9Yx6p%g$&i?cQOe^S_ z5ULA_nvmEEAKU63-AJZ3l7sgzR1+s(NPd6dc@)W=b!o6B4X#T=TVkv(rfXt)P0YOH zkvv?NhHBE#9t}aPUlX|`|1jy#9SI(ev1OO3S{SqUF;)V0J2={Q_tDn!(U6A*m9zIz zRyqVl4}7Z(;V|x^JE#Mh6_UFA2@g@GoZ$>kPB4F_uGZTmc*wC=*=N z79EN4*1WDz3Pu^QZbAnDc3n(QXTyZm&j~bHF2wqWHawho!&uNv&9f0!Pe+`t==!G+ z*CkCB&}}8c670q$ER`ey6FfB3d?@2I@&?!_15YMHdSP)A2eIzH6d8iO5$5|9OaS#b z061C~Q#CR5)4TQl)3yH7zsx-m-`|K0Y{irJ#(o%k9u&F)E1&Fyk({VY12t)2O-kQC z;o`opCidOWKR&W9UVawou17{{k&*St@vU%IJv>+o53YrWpeLf)mq8>SsY>aW0Z^)u z<9nWAkFpCrjJ-8^ihuZFVshC3s9Oa2(XfAVTzYgO$mCQ0$%!CKJ;8Q`nA6#m6V+W`m^t3fibNk zdeqveGUFn*Qcg^x9!nM21qka9(!(aV%HmnDR&@LUc?WFlQ$>G-X@}=HZW|5%fuwEJ z|0jBL8x3uvfo*hh8;$IUz+c~|zfG?Mo~8!tsfk)@qKbMpgXvAVyPCNAM4qV%GaD#S zN68vWR(nRP*^kyx?kO+T`PA=xYEy`QbE_U3sl`UtgwdxBn5@Kh12T7XHx=fFchX4c bUwIF_YkX>rAJ`O9>%zcaLf^X3?_T~t#2q;o diff --git a/app/auth/__pycache__/__init__.cpython-312.pyc b/app/auth/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d29b1a90fe45256628f972558653d1dc58b67f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmX@j%ge<81lQ}HW`O9&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxd<=|`;6Iz^FR2<`& zk(-zj7%Q6rTO}ZxS|Xh$tfFKpRWcDI^@A1u4XlicpiPb&$HUv|8_sn{~XqW_Ap? za-;}x;e-%}a6pJ7C^_`Vkvo@IMsgUnY9+*ho2%r+sc+U^TS7d^GvCa-_h#PrzV+|< zdsQRT*6@@bny zjOTAvDtETNa7l}KVZil>IjkLVqfA;Pz)?}=`UApjT;s+)5=G!slz4hKBJ_5MNfQ?H zn79D#&j|JE9h-&wB;W=e=a(T;r-Zd>-~tB|(*P;(J70u1AE7R4Opd0YAw2$LSid5<1T|6#n$B20QIg0nC6-N2x-wQzwB+PK=}L`!ayFgWOo9`Z8!sh0 z)48ks@0%x`IWZ>D^V6sV9go3*+EwqNVrrY`9M=WfN31?9ZM4}Q37F?PqFaT!<24C> zvoLZh#MBppkQM4-JHRDqUUt+^TXcx)m@tUo`p6%8mx)7c)@c!Lw4tfChhbZWF~bcv z4EH?}aRn4WRd^c}O!G@ZGWPoQx9r{Rjor$vox2}dTV*P=&NWaK?a;Kq>AKfskh0d{ zN*Iu$Mg`?G7yFH5k{@XYk5!Y6pAgm>#AT7Vt03&(4>#Yd3dKd$jXmGN)iR0pS=g%j z&OUQ$*Xj-w+48Q{y})T!omQ*r08LdKE0_dsr_}23IiX^=O)1c4i)&~B@{6x9dI-ZI z8m3Tw;hUYWcLurTUT*oPnMZ0r_s-$gpV_&`GnXGPy*5}{?=7vL&2L_4%4}wclyv4I zg)Xi9to^$3$HL~}?K5-XXyx0LAKvYoZw$=Up1Jzy{lQwfw^sh`et&J})LiYGcLrvq zXIA>=Cx;(D%PyX(i|24V+Aij~F|LCO(NF27Leo48WtH5Jk`k^_@oFjr&gaCos3t1; z;&Y5f%$pPM#^+Ei^WZ?VC$9MyL|+$pStLl^gt&H-d_b?lQv7{HH(?kmk|aGvH~Q$t vQ*`wSy7C0Q{XB!_U-|yZcdO5}y!7%}eqpG<{46y)6zidm^w|poP@Me**t9&4 diff --git a/app/auth/__pycache__/routes.cpython-312.pyc b/app/auth/__pycache__/routes.cpython-312.pyc deleted file mode 100644 index 3c8fbff9bbfd17f8b7bfe08ed2e9d7639bcdf142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3884 zcmb_fO>7&-72aJgm;XQFkA6%^rfo$sYm2mOSyJp+wGzp;YFlz7J531z#ELtVNbQo$ z>@v0l3Sf%@O%6pJ^k5h0K}QP~koMH{-a~<2NKgRng#y=TQJ_E%bS$GlPkl4wl9Z7k zD9`~o^Y+b~H*aRX_s#GxE|;Bw5?ub*deFfze?0q7>SWsnNip{t8j5n zF~v;^ALkWw+^h(3fhGN%Y*DOnE0s;MO|i%AROV%e;*2{LSKLLv&9YnZ#646NWUtZ{ z?^1kmpW=`Esm>w?lwdrlbjQ1uo_G({S>;}(FWyIGn|w?O#X~H^F^HAyl4FhCb3TPA zNs0HP{>_qw{gFVsmr8 zzK;1$ZXSz-{z;Y+5p>(ko%y9)K|@#H#d!wR&`z$ zvujDd15pCVCiuM`qPbaQGfixF*f3f%BN)cOR>s`f-;j$;hIo6cWNdFK;M2hU9^3K< zobh%sthV_gub$9cM!)7Zq>R^)+AYTvIf*m;?wO2C`59Z}Gyb-nAwkpuLvFXm`2WYe zT94sZ;%Rhd!+VN#7Bcj(j($UKw}#JcK|5|}zsJ&|ooHE_i> zMmyD^w-_<7Owqi|L@WycFEb=pTHYF%&weV(X(>!HDk~}|oWtQeqN?7{VJW)H>5fK9 zL*7V87bK*?D0~vUZ*|c$4XXv3dZ~gOCCQr1Wi`M!CV@qKx*75vZ(?%vx-FHKfh7{F zo0u$6H_N&EKpN&$8mk&6c*F$QdVsJ;V*K2>#QQU|iKV#@@69dW)jiF`%Qu75t%igN zKy?Qlbsk17-o#x*!=)wcBVGyIum`G$6_Z22WcPJ8fd@$IAUT@It!7YC)2%=ml#6s{ zlTsSl?>a&TD!CBD&GMh=4=$~c?Ne7~))i4&nMLY`mdmdw;)W)!j;2J|!hCu(mClOt zikQ!@5FS{;gfi7=ep9#8w5L>oFM#79{M3IyRbuLH#vgoi`is-QeYfg+r{;@Qe6ioH z{XzM?Qk$5sOw3m&ZkBzqs_$0Kw^Z>hReg6$H=jGY58R=H-oaY$g-Y**=l(!BI9~N% zJT#j;_Bvy-+3Qxu*;8{2R~*AT_iH1Qm66GP$JF->ImcxhCzrpR-kq)nE|qTooew@--*N8q zqX&HV!v{M9`+V$~!(Uo_4J&1~EQI`EOCl_Vj_&Ma&?F%^qqGQb7Br6-twnbd3&{yj z46ht{S^m9=g8oxly`tz;``7 zz0Zf}rr>cf-Ezm8up6Z){Pu0=h9y3Ng=b*I+a=Rlbh}4lCB|TcZBx+%4B5I1v=;wo zj5l96H)FPp6=8a|Dt)FeGnA@g(?**a$n4_lc^T;EmA1 zc)=#)jV10a%-p+sV{vIdJ~xZWWk;#30X{-w27^%qQt*)l>Xy8?Dd$89zem2jS#$0I_q5E1^nfve@q$UKijhl&_uudIG^ofkJNq|Q*JvNoaz{-7hy*AEYx)q%d#(+ z+coC)8;)bSH&%uneZh=;%?!U_KB_Pu{hQ-i?iB;o8#}{}ea)PEY4bfEDM#KdpT4wj zyId0L0>fE<5&CK9vyZE6_bY+%AA3Cf>)3O_^;xzm3_SM+A4~h*Q?G1&Y~Y!zzixu| zuU1dp3@zZx;r@p7yf!ghPn{#WDZ}4ScCOWiCMrV{rBIcfd}%lwe5X7-Q5~FYdA3-< zqc2o9LkrP>N1`Dfr|KNh1)3hqu7M{LwKG>LXRZ*J(=U6E@3^bIu|MAX^Z5RiJFiS# XB*Z|Swv(5>AuVz9!&e+gbT|JC%Aba| diff --git a/app/auth/__pycache__/schemas.cpython-312.pyc b/app/auth/__pycache__/schemas.cpython-312.pyc deleted file mode 100644 index 6ce3600829b29f8895d1432e7c39cdf68c471a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmY*Wzi$&U7`5+5a!FfNKoqHBiNwMQHC<6vKustxl!~hAayrQ}vD349zB_D3kS=rp zsccNNe*&oePgsh`QZEdMp%X}jg$etv0b%Jrzt8V|etPGRb8}5#)|;2#lJ92!YMbfu zFTq9EfI~n4fhpiHg4~H5?nW*I4tNNN^9m4`!eh76N8Z>A{d3!du5R?Oq>pn#Q|&)s zG$lG%R?K4gbf`alwnR0(oKYTPDZK4vj{yK;k06e zXQsrAEjGWNM+j$GuCR5K2#HyH>PjU(fC~e`?|c2_*rt*3YQiyz?^C&}@*?JVSK+6N zLo5|8*y507IE`^p#CW8VSeCJ6w-}4Mxuq=DTHZ9}H8^WuKkC2lpWb;gX>abY9o+ux zZJxCjj&7XZTAj3d`;QI=6R#((O-DCE-$We~oGCUC_Svf-HbZ4_)uK}0GDrt2RsOr8 gZCYqPxnRl<7ee?2EPVn?KWh%`!?)}guzNZB2l?r)NB{r; diff --git a/app/core/__pycache__/__init__.cpython-312.pyc b/app/core/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fe5ac13719dfc82a3f4fd2f211a69599ea8c0d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmX@j%ge<81b+pdW`O9&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxd<=|`;6Iz^FR2<`& zk(-zj3i?f*Vp&`90~;hwzqeF ztqs!vd?%!5J`Z#sVsHQypip&CCZ4WS4Z2J>m@-2F8VEpPUIK+x={9p-Q)X$PvTaYG z>}yd8-w(o;6Eq5@WJ{G)+t&0|3x#_qZRj;^HKSGSs#oW_A&+$LQKSnMlqm(2=@L*G zl~t%Y9Ci`iM@%2FF7n|#UmtM<;qEwfVEwA6eZj3qE)Wm?BlFsS${cFrFDLf5R|eYn zpAl319|n849Bc&=Lx?+{CyGi>^2vNU%P+0KOtP3vB_$q~3V9SR@R^)+`B~`E(;`gf z1+kDTW|zlL}# ztW*tC#Ru8lnP$u6u!wt*+hc9w;}z(PPdMyE=X%UxW1YyD!;W=EqYfMG+@5mSsm`rQ zhn@Tqx!W0u97Ok{2l4%QCwOH~*cJA~UGZJ&NH`RZ#6$6Y>O?pePQ+vJW7fIPJMjf4 zD0~|0GITg_%7NJA*`RNf+sT{pUJnV*Buk1$nk_}vZLJC|@7kH72}nRA64N@RC>xOxn{_jl&4|UU&SI->#dh5W8{;&v zc%j7t`*T)zCiDX6Q>eF$zyW!>KUJFk14EUlc6Pb!CLPH^w*92j3O_8F+6g?xRTy(U zg*4!i^0b5Ey`;mnBeFx$LFs2$AYwhMkr^Aq>L_=#~y4(2YrxfB?OG%(@E4vkamK^B*iJ}KE%C_^C* zJ3Ymvp7DI2OW90w+|y>{-953j+2(z1edI+wD8#-}P`#+HZOQ$f0E_fuEcW-UaxFzZ&zxy=H9z+RjSR(d$(`xR+{hJs@~bF)bzCE zs_7?5JLD&(z}gBdhIkr?#4@j~t^K{T{aWLW~PsuNw*PuZRLHi-twgK zy5V{&?08Yb>vkJ{A~+Ddwb@f)BsaQ!eHBAxDUW?(1p?qhHt`!%tQJFf%DyDo~L=%=u0dAzJ^&w?YJk4wAeE}XgR19$z>uB}|!HL(h} z`~QL(6r92o@Na`~OaOF~Ua;W`=&6x|lU}yRoZJI&WL1GEFHwOo7SE)zcHwix70*xs zPDF*om}}#jxPHVvk@=-~9y~X23kpYM$Y#!1alnfAKmCyve`XsOhR?w83wtR|v0A#K z3mI|*rl;osIU9%^Ao!h3(VJp>+`%!nr4lJ@1a={feL~U;$8U2s<0R-s{B=dvCsd^S)u;WwRN;cvbjS zyGH=N%Va-jpL8lnHo*ahc;FL*5Xlu!@u@+5)lj=R^%A~jXap2sglWsU{Wb^dmfFTM zWEd$_(RMEZBkd&C!N@cj+nYpqHpW2SB8BH3$xI$d=OXyS@u)Sc45^ z6Wy-Cvh49s>`zaiiS7TVS%o`v30BE#x=M69e@UmYT6O~`PFsyAtauGki!+kiq3^qq zPPsfX)_VTqgzbfbp}VB$nHJK)$=~DCOGH-P z9jmy3<(XE!ZrUMdrc*A|o3U19QOPOu0qi7SfjEQk1NK_*IXC$H+>6CGjqTiQ>+-Hb z6T_c!gO9S`Qu!y@huO#Zy$8u2`6Gt#r~Ai>KsMA-cyY5@eW5Uw;8sEWGpp diff --git a/app/core/__pycache__/jwt_utils.cpython-312.pyc b/app/core/__pycache__/jwt_utils.cpython-312.pyc deleted file mode 100644 index 39190f219ad434e98e4a80fea63ee3a7518e9fec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3527 zcmeHJO>7%Q6rT0|*k1poaowbC2yT-?+y+xZTdI%*BFFuO0I>_yiexR`ak7s8G&^aU z$f+X4p-~T^5>k->smDewq6gFy2PELcrN&4OOHh%Jkhmb1=78YBo3%G_N&_utM!WCL z&o^)0%)EK;eeLnc2+GI5{yh0E)P7Qb(&Y5uLzitM)gn4A>UctGcj9b;Iw#+dzT`dRu3?kna~ZaWrHz9I8Sw)pFQyGOFS%RYII0 zr3(49HUR+F2u>AL93`YcjKInKIVG#9F>NBR&}mZd29)PSJpO9*d&KYPGML# z?9)0XNli6me7>j=tS2=XBp9aVQ#MO^;1c{i{P#LJcBm9+y=0nEjlSy*K5wI9ql!wl zjCCbUu_ULA8}oi7yE%|DiB1QkNwylOevmn#y%9Lda3L&AA> z|Ad{i;XU<6JQ<5d#-j1$>F8O*!`j0y9e-u)WcLi$)>CN(^eAdirM0}09aoCQ@l=7}aZo5Z zO|`5ZF3uW(37p3S%r{v-f+Q_W;XK(3i#XV7(?Ax`nuJ{brQXHfOW}pcs_eO#TFNcv zE)^Bkha?fixKt*#m83$GSN*W;N{LNf>0t_$c;p>f6B6W#7|PZ-3d_U-1r9 zVr+>7I?fX$oVfmu!Jakqh`slcXeNB8fA~+zB0l5 zUBjcy+rW3O`>qY3YO_3IiJN*3PJK7^SffqX`2b(0^5Cx;e*0~XviEP647= zXvjy{HL&fi$5z6!I`TN{<|i;E?9~#Mpcny`TO|)2d?tBjbofmC1O(eebi@qa^(ecW zL75LAECn*0>v>p6Bt5J<#0ZPP_3VJdI*aCJAg=pPe_fH}IZU+lY{PLr3z!4&>w}Oz zEufmMOO#hz16TH6-oN7B_TG`Izo+c)`7~WUa;kjf)a}EkAp-j4i}sp?-2SEK7oUIk zT*cLSb^kZ6-qqH}S3CArJC2q+j;^#t)fbzdXk%*4f&9C!9JqYoeeK%zN^AI{{X5@|&FIsc&@F8jy}z%z zcKn6}*ob%cYI|q3{ZP66(2BnwfIb;Ca>`7jJr97em75@eze57O*Iv68x$Qr=f&8<^ z!&-mnEdIP5>54pozIbBT7j5UiJlq-e^I!QzsE0V>gYl5xG>ZDYGT(0aAnysYyax!& z#v3^pBtcL##nVzVdFLLJ|0p`{iO^r`HgO~6 c?va1Q-R!XFm7#27narpI__mH2{97 zpN<%9=Q1gsJ%9m*Hb^O}*|4Ogw343EA;3B|@>1L*aC@L|b=Lr{)mDQ!Cm&?i7L}nqrIKLX7pIs5b#Oz#rbs^b3ifPo8EvcfM zNwz^W`Zw|9QF@gT%F^-m62j>OVH><$Nte(DM{83##5k%Hrg8-b*=ba%q_N8nak2%% z(uMmEo$1P^=*NVUEYB!}Rg@<*D7*XAm}#l%;LHl2SYr)q?8F*xSmOtC$JS&$@zu0; zjW0u!jo@UnKeA)}v__AN(Mws;!g!5pMTSeYEuB5UyKAU{4wdpPz%9tTbQimns+KLm zlG+-`L#%%?4%_i9t)>+fA2(!6uj!I{&!RBxau(Ty315jYCNId6F z$syZbL)i_P;i=GqBOjIA5hriCusB5yvk@3BG3txsel=#fJLRyeiiJK z<(dBp^tL<<$&bxQRR^bre`jL*MKd^De|8!gItfiQLK972xEUU8Mh189HbVnfeoxq2 ze}3Kr{E-viNW(W$k2kHJ`cta<#Qbzv8ez7#O%;PwVW7QA^{JrFICav+2H7Ya@Rfr5sBys1kb%*cx(UFIgsW<q>aN|4%{5eKe8J)p>zh)1e=;M7}D+6yOU){o`}bNC-S-+ur6 zkC`WlL=3R?;@YdtpF;rr#hva7cZ}0J%=jKa00j$RK@+g3i8!Q%u%t;itc9_x$vC1# z1db6c1xK|gj%hKhYHIK;WW{kpO9ZxLC2>+q3P1!40EWK?P)3OZ7Mm}vuM){B&$*e6 zQ27&|nDz#ZEZRQWK!i#KwCz)6&hSye#E44kWxGUU^A17ghJ6cFXn5Xo3_ly9a^7%V z1Ze^XS}!?P8QU~YkY)I$V|$yXn-!=uV|a*Z1u{;bah7=O?vgvk=??<000No-fhMl7 zN@yVwAPI$`2*txt@BA`~AZ3{ShN4iq&U72aWDJH67z%?j zMtk@K!zVlJu`V9BVm+%$FxfXVPyMMG~pLY*+az3nUF@frJL~icP!m`J{5M^vWztg z(Xem&OsNogC1SdKf;PGZ%8F!&*)#&tx>2@#DjV1-+dd;mGQxX|v%3>xf!Uxzoz197 zM)_ZT9f)I>T|R^~*47+DqbqDT$cZJATr)~ry6d=QHp0jYj%%5ozmy%NimuxRM!HU8 zx{e)KwzwVF^}A)m>g*(R-RH@)U81t+MB*aN1%C%<$Ye$7({;nP9lw1~be$-Ce}D^q zO-Uv|dOjiig&=$eNR*2az7byMH<0kFLn8b`$aX#_7rC3{VvLJ8-;j8@e*&k>2LH^= zepuwmdd2BYY{23i^0s`(En;Jf9eQ%z@O;BHC)Z8eu!`(T7rQMkvTTv%<=hHMacVAj zTT}Jp>FTZ8;Qi3IBMoV~ zHJaVOT)%wO-yF?X=Xd67@9*XtQoc3*&ZErH#L=ZcCVroIa-})GQoUJ|Yum@EHyhFl z+dWZIdzroTkC_LVhZpLr^}=tfzpVbMy$p$$9wKVMBXMgls$OPAvoxKdm4hasI0oV5_?i}aE&B* zoS<((aVNPO#D1GIDc9ShHbvfJE`Qy;2_{~I1VMNPmj49H$6)yxm^ubiPr>L@aPg(A O3d=(6+AF|y!1OOgb*;hx diff --git a/app/expenses/__pycache__/routes.cpython-312.pyc b/app/expenses/__pycache__/routes.cpython-312.pyc deleted file mode 100644 index 5be7b0f555a84b0565876e13ea3996272f5f1dfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6824 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 BD1`t3 diff --git a/app/expenses/__pycache__/schemas.cpython-312.pyc b/app/expenses/__pycache__/schemas.cpython-312.pyc deleted file mode 100644 index 1ee840c5d528261a24406571aad0a98d386e936a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmZWnJ5L)y5Z=9qU%X=3#GufifW#p|grYPNiUrOggY0B zgp`I3mz0UjKS>h_H*Aw4Nrmm6vvSH zZOrMLh)`eJyB_sPJ*`dA8aaceGR^=6HAq0sI8fJ7lR#ozm^~xSsae#f8DecJcf{Ja z*lfaPZn4>m+)Ztc=2dN8v+aU2Axk^QF%3DbGKvM=uQzFc*RQt}?Lb)w@GnNW&w0PL@rn8aAzAMnkf|Ib})H3k56cSV=?j zs99}Q#-NwU?0xJ_^Az*y1k diff --git a/app/users/__pycache__/__init__.cpython-312.pyc b/app/users/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 25095044b603dba55431e51671870c04e06214ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmX@j%ge<81m=QIGeGoX5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!a&)$e2`x@7Dvoi? z$W2U%aY-%CF3B&5$xX~INlemBODrx)EXdSN%gjs6iAgLdh$#gtj*rjG%PfhH*DI*J g#bJ}1pHiBWYFESxG?5XAi$RQ!%#4hTMa)1J0JJ+Ot^fc4 diff --git a/app/users/__pycache__/models.cpython-312.pyc b/app/users/__pycache__/models.cpython-312.pyc deleted file mode 100644 index 9fba16d3266cff06ad71e2cffc7cad4e293f5dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2467 zcma(SO-vM5_|5L@?Cd`X!t$pW3}vyPjn<^pilCx4kr;u*Oi3og&RbcTnO)z^qT6!V zgH7Pjgj4Mi-uvG7|M%um zBoZXBT896c{me(mpNLc!;Lh5+2itw35|z`4&Pkl^kvzIr^6I?A>pscHAC(}B$`BctGCcL(A zRmowE@`+_h|B zCW)xcD>*BZ@YsGcIZJhF+Ci0O8BKzmnsmK&p-@5ge&sNMlt`RPB+nEiQu0FRJoTv_ z)wAKP1u0NJ7280J22}nG?8pUQQ1z{Y4qU3R;jg7C1pMI&zxXzOun?$Oi0qRHRwY3H zey!1cJfRv-4D^I+mK%Vlv0^z=<2eAnHr?uTJ>3u2E67H)rr{uHXsKw3{eKPbw9rtC zwRN9`#)^fwdO&U3Xs&tDrXHkWwS|ULyxMw?m)a|MBj9nsJ6v3C1H2vZ&U{;k7-ub2M*9uu0NJl0kPlL(#jIkQcQQ-`DZffnN=~!vK-!d*q?Mk>4vm6>dCKG} zF$e~+4`syyo!zK2R$<8)xh(d!9dvi(vBMYdW~pIPHx?fKL9H`Na!$@>vN;$LXz)nY z57`|AMy(t(l9ho4BZT0X;FL2dvo*--7xRbj(Domz3X#A{V z&aQcE-lSTJy$1p&n(FTUcli9!G^XC19+}k@b@~D|=d4V2T36;QWo96yn3j@F52VtD zqD{lNPdmk#*0ECNU>3@Ps^w}ppSPkiC-%YD2ywL81fW3vh_ye79o~)|UWt@qgOA0* zJ-8;X#m>Wp6ZjAaZ1A2qhfwI_Sm5`2X$BwKFY&L)2^<7sfHvCu|W*-1`{I$qxRXqWu`vg3%yh4E1 zR=t`FM6S{El{h>MW#8g|*rZn7`Ifr#`|l5dyx9z(K%T}spTzsOy%M8=N+8w%SG1iHwQxN<`vcpK=XW$3K@Wp3-#Jxu54m*Nq7(ovL{MFhbbtler z^KuFarva=HClsfy3|r3uC}K83Qokfmn>z|ucUpQ@E)|=%Cd)0?3!{s|qPY|*@z-}c z6KlPjP3y;g_LV!w3YQmC%M(j;C4OwDt@pwFYVzS1#i^}R<+f{ui;Jh1dzL;f@z+3R zwYT_TxpSn>KeBV^*y^R?Wcko&;mYFtvbwZT;zwWfoY;(S^=%#ft?!q?P zQR9h5J80h46b=8!dAC|lU7hmOYZ9$94Q80`RNUFgN3 z7Fv1+NY3-bB1ppFbjvh?CmbDjB*ims_nl>9aEIeyVvTpb9LGH;!@rZ^=j7}*Is1%s jJ|kVvNZ*TS`^x2&p<-`2I#LL|5)N`h%ltnCHb?7!{XS#a diff --git a/app/users/__pycache__/routes.cpython-312.pyc b/app/users/__pycache__/routes.cpython-312.pyc deleted file mode 100644 index 6792f20d787dc51aab8139985b9777cf2f4c5797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2355 zcmbVOO-vg{6rTO@t{2;YAq2ut>NE+CgK+3inwG?*2uMPc0s@+-t|M#lj=|0@c4rpx zBaonql=RdbA|+B)DOC?40;xTw>Y=^22P`9*tccR8hpJK!Cgjvp->kiurl)iy&wKOU zn{Q^`-}+~tuL{9fZT)NNiHOkeY~c*4%F3K5vlsAN^V2DwXV{%@1 z8B$cTc|n&AchqetQN>=1dX?dcdJJ#WYp-3p&!~=8bBITn(y@>`;X14wg2j5(noyDfs))U7aAP)-oaVuvB(HgIy4Fe}6s?CdLgmFi zqWR#Alluf^cD>rU-G8uau-nELwc3672j~5vxc~nq zB^g-CW0+EgCQV{9u1x@#!Zv@H(XhTCotgojS}vP_xs)Y1nVPdiQ=Oz1cM3$F((U32 z*kM(Z@+IO11F(2)B2jj!?G@&1_S?Mz(>=6^()+cx2|{K$s0caXNW03aeZ&dN61T{W zp%6C|5-iuJGnmX1FPK?^s_P-1)B{g^Fj0mY2>gA%uRF$GNMpTIhN{K-F}-1CvN1!w zVX70INfq9cO?4(y)2bd*v)P#a_84KYpyBMir`RsKs4abU{F_~}eVOBd_y4K+;RO4U$4qqZo z_)1t8ojUrAGt1SASnAYO&>im8&scXk=u7+}pKfrFDikmeR#pz@c!y(gVXfq)vB>|+ zqU9wuEFB+m$ZT`8`+RuVkyR+`dZ~R~57J&4f{JxPeW&yVKTGStY|5Mp*n;lBLR}z5 z1FBB2s?7)R9Q1=Q)P$XKl7>y#1r_XOi9D?un6$!Kgk5H#&Bk)l6l(!GlSn|TNY3c` z{2qp!$V{7f+6>ha=D1SfDan)$Z6`i4Z{t}mJu?ek%#}?1j}uf)v!q1EFj6LwnPshw@MhN=@xIZ4-tmF{ zkU*LlJ}Y|5!=4q-Or&wbq%3a&fdFY_8lUqnyMzhr-E0T_1*T>6tE}9bTbaA7znTOV9296y~qe){pXAFqFZy$~76 zMMmgSQ(UQwujW9RZ-Y><0^#sdbR)(G4O-tVO zL-PwWAJQ=`6EDuvAG6aXU3Bvvg5Y{EE+R7gL13*hDA=%xNSOT<8%Ttb8 zSA6)gCF+oqb`Q10YzEj942wnN5wfpeikSNxz|H8mhr9zS_RXLVVJZq7$2~)lJc>L; zC;veG&rt9wYX42CyMJOexO!+)d23lJN{DygYF=sH66HHr3k|_sL-4T(LCL*4QWOyH z-9FN*h9pvMrjh43NpN-LMif~JL6*8AGocz$h)T45y`PCr4VogxE$Q3CQ~N`EY8=cOqG^ey2hhv_ znu*Zt0Gb;>vk^MnLvtj%r^Hc7{sG#HRb&mfMoI-Sy22^DOIKYUQnu{WsgKJ~zm+~G z=cVd;W>7Q3IyKj&+apzEef*j2(Z*_67db+?!`x=*1`T0E-tA%&bN*?-$fPY&d zg;HLmZ5wE^ZIQKYKOpNK=)<=C@jCWmgz3_kjevmiih^z9Mk5F#?zwG8brl*9SyUu; z0X$P6E=utTu}RP;K%^4^Avu-eOLRDPacA!Pxz3x52V+Z{^INZX^`*n&_|BEiOScb- zmCZX_PFJrSPF~)<(s}j$gUQ8?UVJD`i)WpFH;SF-X1d1Jzg5jJk2I7jMOvHzeB6;w zeHSRq$C05~`D=)Vzm+QuCnL<8vX5wQ zgxk?{m@X-^g3L##E@7imiR+mG4X9>05WvPlDaS6s=6MiPAR?w-l$y}oM#xOCMRZ&S ztxqAFhV6f}yZ~De(B%9LDI_f;7aq>-S_dQ7H!E9OSHFI?+-I0O(3j$<5Nn|{B!3?* zf*YahFqoD&J*axz9#J<$-#(p>NZ*P(@hv8&8o{5C!=?Vx6h(QAX1i$iIF(h*o$+HN SU&j-ga#z_I{|CW4O5k675u0!T diff --git a/tests/__pycache__/__init__.cpython-312.pyc b/tests/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5f380482ed79781a4e3ff982cb67b6125793367c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 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 diff --git a/tests/__pycache__/test_expenses.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_expenses.cpython-312-pytest-8.4.2.pyc deleted file mode 100644 index 6892cc7a0695599f98cd30c4ad08efe9c44e8913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10233 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 diff --git a/tests/__pycache__/test_users.cpython-312-pytest-8.4.2.pyc b/tests/__pycache__/test_users.cpython-312-pytest-8.4.2.pyc deleted file mode 100644 index a7dfa4b4359c386f5ace58f537fe89865a83d68e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7871 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 Date: Sat, 25 Oct 2025 23:17:40 +0330 Subject: [PATCH 3/3] testing ci pipeline --- requirements-dev.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index b426714..e69de29 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,2 +0,0 @@ -uv -ruff \ No newline at end of file