From 4c847f7753d483aa56342237ea09b4cc1659593f Mon Sep 17 00:00:00 2001 From: "Ishan S. Patel" Date: Fri, 3 Oct 2025 14:28:55 -0400 Subject: [PATCH] YACWC --- __pycache__/kwq.cpython-312.pyc | Bin 1912 -> 3742 bytes __pycache__/kwq.cpython-313.pyc | Bin 1903 -> 3405 bytes __pycache__/settings.cpython-312.pyc | Bin 3007 -> 3007 bytes __pycache__/settings.cpython-313.pyc | Bin 3069 -> 3069 bytes __pycache__/util.cpython-312.pyc | Bin 5213 -> 5213 bytes __pycache__/video_meta.cpython-312.pyc | Bin 10177 -> 11388 bytes __pycache__/video_meta.cpython-313.pyc | Bin 10334 -> 11220 bytes __pycache__/wq.cpython-312.pyc | Bin 2869 -> 3209 bytes cache_checker.py | 11 +++ kwq.py | 102 ++++++++++++++++--------- util.py | 2 + video_meta.py | 29 ++++++- wq.py | 34 ++++----- 13 files changed, 121 insertions(+), 57 deletions(-) create mode 100644 cache_checker.py diff --git a/__pycache__/kwq.cpython-312.pyc b/__pycache__/kwq.cpython-312.pyc index 9cb26c51b63e4193f32da2aba6c253302e211061..af858040d1591e893a9c511f5851c1db14753502 100644 GIT binary patch literal 3742 zcmX@j%ge>Uz`&5=b2noaHv_|C5C?`?pp4Ib3=9m@8B!Qh7;_kM8KW2(L2RZRrYNQq zh7_h8<|yVAh7{%;mR!~-)?BtIHb#aNmMC^626u)O))s~ow$)4!lcG4lV(cvpDI9Py zP9}y_&eaeF3{hOETv6PqTv-xO0VFDlH-#&OvxPB=uaZfV`z1(5lkpadYhG!tpC;2S zj)0>4l+xtXqFWr!`FX{qxv51}!iJVcdWL2edWL#NCPr3|O=)Z~)P{JdLIhHzQ1 zR0@)um0V;2Vp=t_pqptStU zMn5AzH&wqRBQ+^Cv8Y%-I5iOz#riI(#hK}O#rn?qDXIDal_eSZdHT-zxw-jyV3F+d zLcM~@B6bD_1~9?Rz`#)K&A`CW!f->w?E;JH0~Lo0EXofQEH1Ff-%z%@z@qd(#^3^r z^anNu6%g-+wDAQNsT;E97g%I&$XHxpk$xbo+~9XZS|22=WPOoEzDNmXI!Ydd77h%b zLDJJ15P7hLA&NPLHHEo_F^VOHErq3pF^aX4Nt68+w|8P%cA|4mW@=tZGAs*&e9z0k zz`)GF!0_1#oSjSHawRZJ7*ZHhm{OQiSW;M1*izV2I8r!MxaM%JhN`S#h=;4JWYFaH zyTupm80-@t;N$4&7vdTb@{2dvImpphH`v2b*T~fD7H4s3L26NHF{s$dO)RPe1$yQT zD+Y#_Aa}e>VPIf*$;!aMkojOT3xg)tFTtez{F365qQnBd;?$zD)S}{Fg2k!HrJ(Go zS5TB+lAoNP^NX)Iu{cLBH#IpUF)y_w?1MVYC^RRSPJrCw5Ea&~@NnqF>k6=zOnUV3T~h$)<#T9TNO zSdyrhn^>Wjn4YSaTdc`k1S23o3StQ*+XaL7}Elqzp>49P#m) zd6^~g@l_&7v7-kQRRpCcLk0$h28KHl3U?F@Zzvkxkkh>(t8qhC{f3hI4RMJZ3d%Pm zrEVx|eiY?a;`+?MEy>-%(#s1@HGat;H-VxUgxO%xEW-${m>63aYFTQS8dVSxo&}Fa zkOl~@VS+_-7AQ&}f^aegE}O@g!cfav!%WaTW)jR}t6|6jxf^aDgptJwp^?cN#v0Zd zwi=c-%&VckW@Nyj8=m&)ly(H~kKGx&JN|-=?}?ZTQL)#fQZ7cN zT#ib+5Se~KEaR#`CO9ipv6hyk=~`$q-(t>At-QrrmY7qTdW$1DF((I<$u-$-v4Cr1 z)|ArRg5q0jsd>ryDXB%KpiIgR&B3==({f6SGc?(Y%s@r5HHdHo5ukFj$N{93Gds01 zKB=-KwfGh{*a`@z7!-X95CF;eETCYh5kJlX%ch}K0Btrg~1M2t_kba39VcDP{eGbLqu*2Js@qL;m0HdIb>&~u8`cJeIX$J0*CAsjs&=z^hFNos~oc6kU}XlK+RlG z^8M@sPWmPABv`{(#8ktW$C$!c!;GjJYM6?cYMAmEK~=;Y&RUidkY2E!8Wva*t!1rY z4Q9~f^t;8IlA4xSno|;=UX)*2;8vs#3QG+Tp$Q_iKmp1JQk&Y$_N>jzQ;P`){Xn0daXC}u6{Tqr#pt2sR=)b9^KU4C8 zsq05!E&;9%mM>xqA~G{vCfjvz+~61Q;0MQ}CX=7vN@hR5TWmRrC8@l3=9mQPz3QmgTi|{10vC2D+y~DY8Y#nR)f?tFfar&XflGjB|O=nwn{uCg22wx zWG?atxhMcc1cICd(xLz@bHGZ#1Xv2x4{Bhz!!3TDTm2%p`U;K>nip*SE_3@|VDX1I zI+THdL6iR$OKM(eZV||&A{S6{V=k^NzQqrU(VWuMypnjZGr%=_5y)4NR07J(kl={` zIR;cl6oG>A7JETyQch-Z2G}7*sNs2w!v@k=w=0TeU|;~X0g8PY7#Kbpp|t2Q~%~%?k_y-`Rv1Z9XyxG1`3B(qNSM$N(ZD7#RelyK5VGZg7h?aNOV$ VyUrzjkxROP{Raw&XB^|!jQtY znh7Eq#gW3^!Vtxo%9JGn5kV%SxS1GISyS0lIa4`PI8r!MxKg-Ncv5&%_)_>&1X2Xo z2(9LYsE^`F5lInlVT|IfWYQFU2@=#~yv5?0SDNdm$#jd?TR1T-J29XrKczG|wdfYF zH;6m&nlYosWG+TczDf>F&Rc9D{sErO!M7wQuVRv76rX&SNy0|BEHfoFzc{`;vm_%v zuQWY9wWRnKA5<_eKR&BCKkt?pln+vrUs?iFH`#|tpOI^F4U>v=5eEYULlGy40EJf( zH;Bc8a( zut?pI)(4SF))!gii$pw}f+3 zOA=EOOA_Nj!injrAVGnm)RLmg_@u<-?EJK}_}u#9TbwzWdFiP|AX#>hY-VclEy3c{ z!cgu(oRoW#t$_|oFkqP)c1R20F2 z#Ny)e{Gya(XhH`^4=AyM{QlVu962TRpb!Sjl)#mhuz&>^7#I+&6vi5c8paf+6y_9` z6xI~BHSDWFDTslAA(%mv!_Vy&M`~hGPG)LxNs$65RVac8B@m&^z`&r%U8DkvLjh2* zrlc097Qq5mT?i7gD1t(%d5K9msqu-WCHe8m`MJ57C6k|UYt$F%f(+CH5&9s)0Aw_C z5hy}$37|*fEgobuHJOUcKw8Wh7#NB{K2?AwEB@r7)Wnk1_~iV&;?msIq9SXMp&(Tt z(;FD>a7)~g(z+w5dPllm{f4a44ME8pBCGDS~E<-29Z%oK(9aCk6%vP<$5WFfcHDU}j`we99nt zn}Pc_1J`{9y$@^*qFNV(wJtCSd}m{4wE4&YB19PYOdGgv@C)}>byhX-Jmi+RA*Oai zSoVgf{0(uL8-ijtB;;<0O5EV%zah`V3zk#5A)$OjLg|Y%9}iOl#}_4DMu@ioWSWa5 diff --git a/__pycache__/kwq.cpython-313.pyc b/__pycache__/kwq.cpython-313.pyc index 9f2d65f1d851dd3a643fc81d3f090a412357b6c8..13536e1e28c5d36409110c0c78a04a10967ad211 100644 GIT binary patch literal 3405 zcmey&%ge>Uz`*cZcz4ESP6md@APx+(KpCGWFfcGoWe8>nX7pz8Vk}}*0I`|8nTnW# z8G@O-nTwc%8G@O;S-e<_SiRVa*c2FoS&G;t7?c=-S)~|)*-V)rCKYjj#n`17f;r$~ zoH3kA45knT3`JZqTt(b5TtO000VJx3H<&A!Q;H#rv4}67Nt62}NKTXS7K>|MX|A6p z(=CpGqWqN7c_lAJ85kInVW|$}T~I(WgZ%CU zHai+F7Y(zOA(%0kDVRB!C73msEtox+BbYOoOOMMGsxp)z2d*-mL6h6>7GJPquupt| zkE5qwh-*a1FWzA1AV*)_U=K%KBU7_moW-RDsYRv5pq!GMSX2oL<;)pY3=A(p?s%EP zz`*d5m4SgF^TA{m22HMCf=T)LCB-F0i3NJasYPX}Ma91ai&K+Ji!w_p^$LpeOY)QR zbAIs^Cl=@E<)$WQB<5un=lGauX}` z64O)la*H*Yi$JB-EdjVo;~_4+#Zdq)6hI|KacWLlF(}j&iX=hFmm@wtGcU6wKK_;n zQWWXIM8y~w7>W%U7#JED?no%yQ8c`vXm~?T_lB&-4O#UYO6oVnC2lAv-;k8Lp{)5) zlv|1GGXu9IcLz%^ZxJXN`6Ywg1d3u12Bk<)@P3wJ1ed0aQVe-4p-f4t3=GjAc`y!w zMJ1d0~0D1r!v%lb10Gvu*`G81JcGYMw0g)#)OA#8-Pf;eF;1RWt7 zkrK>o$)do3Lk}odB9wz!u+m?FA)P^!#V;8-5I|N4gL20baPA0YNaAN;K;)5N#!v=6 z24i>-fQ&$rWeQ~s0tGtQ8Uz8ekdGmlIg}AwpdzVY31tidMIJ&sn1xVb%mxceknNhR zepTY&)TEG-nv+?UT2!e3Dt=Q_tQ4w5eN&5z6Vp>+QmH8lCHV?fObXFeJh2LiB?|dz zX~n4}3YsjpSPP0W^Ga^9mgE;?Cg0*LNGvMJ1lJ^N5H*@ix0q9lif%FI7N-}3LQDag zsQF>m#uud)7glA1toZIaDuttfeJsx)z$ux0th2D{rxuCFYc--r`73%*g>|a!s~dEZ};M zHKjDSp!gPBYF=`FN@|e~D3h{7bMP(Jw4Bo73{CbTT~G;c3?i&Rgf)n;04e3nPOXej zsw_z@zQql;0>UWU-Dpa+Z!$o~ak|9@g);ml(Ez{6l+y|I3Z%XF_v zUNed(`(GE)x+tQx!u*Pe@d=j>&KuSa7p;A!q)gA6l(j(gvY7gHF};godMnDWh?!pq z3hUs$!NJqd+sS*KL-rzv?2ObM+802q1h}yDMGon!9J1g*N=8nppxPG1|C|6$_lP1Q zlu-km{ume%nHU&C8T}biYll!K6nQ3pMo@jB$C<|*4Kfd`Hx!=v^H@SzR2Ve5{BH54 zq^2d7=9I*z7v+~0+~P=0EXv7DEiQ2@k^_aWJcv*L5sILY=7XtD2G?quoJF9tQ^f(+ zte2TmC74)RlCK9zs(MAK#i=D#LaBL)Nja%{V439n+}zBPA~leS>L3E->LN`B28Jq5 zh?#nsDVj`0p!&NARO)H6g5&)b#ESULlv_}BASO$4eqP!wj$~-FuNb5O9N&=W=1(q4 zO)N=`hsocPMvi$jNdr(KumvZACyIvmRCH!?Y|y`R|aI#vmdy!)3Bv2geP5@eY1)jA}B1lkiF=KR->5B0-Qhg+K(TKr0dfu|VyKA{P+L z4@8KA2v9=^tR3w5B59Bqhyb-5ib007F??d;VdefJ!^JB1U4oZY0-_qE2Bqu-RX?CO z{|w4UQ<19~kSI7MAczP?Sd(0ZL6Z^Gp61C0HCy5#u~7tapC(h07sxfBA_BS00ZW1j zH&Eb#yw|{Rhg(S?2C3z3 zAnjbcqHqQV22k~1?8Cso@PV0;k?|>m=xqk>+YDUy8T3A|F^FhhU=aAu#?EN-k%67j v=DUanqr^uB5D~%1ARygc+rV>!TfBke2A9}%F6oP0(hcli*%%pZ!L|VavKTV0 delta 1154 zcmX>r^`1}tGcPX}0|NuY4DVeTk!%bMk3k$5=7TamPnxK1T(8eq#4f?0#1PCX#SqM9 z$^?-t;s|D!VkqK_VG0s~h#-?i+%c?53^D96oH3li9KoEyT*2JIJi)xde8K#|0+!rG zJi$W2f>I1wj77ZZOq#+kL7FugZ?U-MmFD_sGTq|!PE5;A3@FM^;Vw;1ErRkl-f&@( zVg#v$VrB*g1`z)2!@$5Wb@EMCB}RtHe^_Pf8BL+eR2Vdw{Hj<>OVV^LG?{O)WEJP< z-C|8C%`GUt#g>|voS%}a$#{#gtQe$Tp-7T}f#DX1O-^ENQc9v-kvszfgD3+7L$Npm z149GDl#=OHld2XdPOiN!u6#=r)cn$t_}t=KJh_P#@ku%P$=M(tXHI5bdTJ4f$zGINQk0omd`qx6HMz7X zv!pV(Q;SQAlo%Koij+Zw3W!i;U|`VXE>Z)9y8tLqQc{aki(tVb1PK;Y zvDCc8r23rH_{7qZ{P^Vj+}zBPTO8>{`K1N%nJKq8lXEgt^GZNWL9mMaw6x;XlK7(3 z;?$BNU67r6AVMER7=UbNE&@f_Edlgcy2XQRuO?HG8AyvcC^;~JLSpiLE{XagYX$}e zb&wdytOkZV+!A-BwC+f%-jPWkAD7#Kb< zGcqzhWe~m1zpp|t2Q~&#tqa0h7Z?P-v#~SUd}II-A`E<{4O}<)h5M^Is~UJ7 yns7_p5L3G$EPF##{)V{B4MDLReEc_fc)@~7HzbsANGO54%hbT}RgRYt;$Z-REIo+; diff --git a/__pycache__/settings.cpython-312.pyc b/__pycache__/settings.cpython-312.pyc index 8a68dc1b628dde977489bce152b1d519ec164193..6992ba8729b2e45804a0904336788b92d11e86ce 100644 GIT binary patch delta 20 ccmdllzF(aCG%qg~0|NuYW0Tz*xwmiw06l^Q^Z)<= delta 20 ccmdllzF(aCG%qg~0|Ntt?264Bxwmiw06M4zng9R* diff --git a/__pycache__/settings.cpython-313.pyc b/__pycache__/settings.cpython-313.pyc index 1be1650cd61b17476f39122389e094618f3cc32c..4d7fe5c1ad48082f57acce89642777a1f2c05e42 100644 GIT binary patch delta 20 ccmew>{#Ts)GcPX}0|NuYW0Tz*xj%6O07;4l)&Kwi delta 20 ccmew>{#Ts)GcPX}0|Ntt?264Bxj%6O07kF|d;kCd diff --git a/__pycache__/util.cpython-312.pyc b/__pycache__/util.cpython-312.pyc index 349b8d7e1aa3e058899c1f88092be222d9e83f5c..20cfc69911428921019254e1d4e0fef5580d5d6d 100644 GIT binary patch delta 73 zcmcbsaaV))G%qg~0|Ns?2>X?c=7qdmj88W6amg_;+HBV4NoQqrpFCCYHKW?(MxhOi e`kRe}B^iZy7-c@ma4-sd7Sm=FE)rv4U;qH(I1(EG delta 73 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 TzIp+F9uuSHCk7B%1X2V5E~r!z delta 678 zcmcZ-elLLUGcPX}0|NuYrCpmdj*D;Pd&0`NWAbO#c;gt3U@j>JQ;-}3149vCFt-## z5q}IvFb|TbKnzDPFPuNQkWHB*SfEHGT~JeK^B%T|EQ}eO{kZcPWkQ*QSy&ku7=#(Z zSc;kS8H$;N89YQ781fy0geG6)7M@(jYr_a(9phDD6qy{zBh1Pg$`B+nSx{DZvKU_< zBlqN`d=@<1X+?>-sm1Y`d1?8RRrpI7H7C#HPhox_EIOGSld_zHp4dR%|T#9~-nUf-~qHl7Sraj}K$)_}(rNmezJ~K10@qJ(tW0m-1z{@J~NsfaxjPZlmWJ9e9Y*irj z$&-(3SuiF}(w0z}1LA`$FPZ{kO$8AOAVLL1sDX&ZlWnvm7*|aW)h^(VWn$F)!~i0T I6d4#80P8Wl^lk2eo|ISYDs)rVrEWiN|iiResV6Ogch8Kum`HTI6JeTAT^~*6Q+D2 zqY`J827)I&`2iyvCqkZwNm`(|G&wo7xEP^~he?sMN)@I_pGl6hN(ILAXOcycli-J1 zsRmQAo=HLoW+Y57S8wtLkVYk#qVr7BoN#YUe#0ceS%oAgI$4@ocd{B|)#fB-4#vqn zOj9Q}vqaaMTwoEqA!~DiMe2r}-31ou8}bepSY)82R_Fy5^&6VO7g*G8AhUHtF0g3b z&qjl-w?|$QMa7FfbIcGB7YCGl8NPirE+# z7&gbUS};n;FfcIOVlOC7%E>IwDAHhHU;v2}yG_>Tl9+sy&4>kLz~m3?Vv_~g6FKA< z7#K8}i&Q38u`7sz6yD-3NGvK&jn7RjE>28OEz+I5p8ZZBSQ%T9Jk0JQ1rSRKWED$M zL4HAzF323FA~le(4g&*2G01TW3PoTe*^~40ic51-iwqbT7(gnEO(*MfNlyOCp};6T zS&Z|P8#aU4a*7i3(o=6S=cMK#n}3U?EHS4T#R8Us)YR-E)5&UFfsE3VE4UQuRX`2_ zh0-nV;F6-uFD!zL?u;EFUl>622Mq>Ru?E-cETR`#L??@LOMwF# E0Qp1&`2YX_ delta 646 zcmeB_+$zR*nwOW0fq{Wx6UU~Eb6gwwBp4?jV6I|RntYm3iRqT&*C2XnboC>*cccXir7H}2Z-PV5g-@cQl6Z^A~QLh<+Wsy5J*rMM2LV0Q4k@< zz`!v1I%{;A?gbXH8?vSsSfp;qnO|U$z9DaUfkg&NYWZDYQNN+-bAd(e1~OaM_X3O7 z4IS?bESfhUY&G`_EXp@jT`#aG-B7Z>z#SYH@L5dTNo$WM9@Phk=>= len(self.frames_info): + self.invalidate_timestamp_cache() + self.frames_info_rewrite() + ret_dict['frame_offsets'] = [self.frames_info[x]['offset'] for x in ret_dict['frame_numbers']] ret_dict['frame_time'] = [self.frames_info[x]['time'] for x in ret_dict['frame_numbers']] e_scores = self.embed_scores @@ -114,6 +127,16 @@ class FTPVideo: except Exception as e: logger.warn(pfm(f'WRITE TO CACHE FAILED: {e} while writing {cache_loc}')) + def invalidate_timestamp_cache(): + cache_loc = get_cache_loc(self.real_path) + os.remove(cache_loc) + + def frames_info_rewrite(self): + self._frame_info = None + + new_info = self.get_frames_info() + self.try_cache_write(self._frame_info) + self._frame_info = self.try_cache_read() @property def frames_info(self): @@ -142,7 +165,7 @@ class FTPVideo: logger.warn(pfm(f'RUNNING FFPROBE FAILED FOR {e} on {fpath}')) logger.info(pfm(f'RAN FFPROBE SUCCESSFULLY FOR {fpath}')) - + timestamps = list() for line in out.decode("UTF-8").split("\n"): if "," not in line: diff --git a/wq.py b/wq.py index 56a9d24..136f960 100644 --- a/wq.py +++ b/wq.py @@ -4,23 +4,23 @@ from enum import Enum import json class TOPICS(Enum): - ml_vision_to_score = 'ml_vision_to_score' - ml_vision_to_score_ext = 'ml_vision_to_score_ext' - ml_vision_objdet_failed = 'ml_vision_objdet_failed' - ml_vision_objdet_success = 'ml_vision_objdet_success' - ml_vision_objdet_skipped = 'ml_vision_objdet_skipped' - ml_vision_objdet_results_db_success = 'ml_vision_objdet_db_upload_success' - ml_vision_objdet_results_db_failed = 'ml_vision_objdet_db_upload_failed' - ml_vision_objdet_results_pg_success = 'ml_vision_objdet_pg_upload_success' - ml_vision_objdet_results_pg_failed = 'ml_vision_objdet_pg_upload_failed' - ml_vision_objdet_results_purge_success = 'ml_vision_objdet_purge_success' - ml_vision_objdet_results_purge_failed = 'ml_vision_objdet_purge_failed' - ml_vision_objdet_results_purge_skipped = 'ml_vision_objdet_purge_skipped' - ml_vision_videos_modify_success = 'ml_vision_videos_modify_success' - ml_vision_videos_modify_failed = 'ml_vision_videos_modify_failed' - ml_vision_embedding_success = 'ml_vision_embedding_success' - ml_vision_embedding_fail = 'ml_vision_embedding_fail' - ml_vision_embedding_skipped = 'ml_vision_embedding_skipped' + ml_vision_to_score = 'vision:ml_vision_to_score' + ml_vision_to_score_ext = 'vision:ml_vision_to_score_ext' + ml_vision_objdet_failed = 'vision:ml_vision_objdet_failed' + ml_vision_objdet_success = 'vision:ml_vision_objdet_success' + ml_vision_objdet_skipped = 'vision:ml_vision_objdet_skipped' + ml_vision_objdet_results_db_success = 'vision:ml_vision_objdet_db_upload_success' + ml_vision_objdet_results_db_failed = 'vision:ml_vision_objdet_db_upload_failed' + ml_vision_objdet_results_pg_success = 'vision:ml_vision_objdet_pg_upload_success' + ml_vision_objdet_results_pg_failed = 'vision:ml_vision_objdet_pg_upload_failed' + ml_vision_objdet_results_purge_success = 'vision:ml_vision_objdet_purge_success' + ml_vision_objdet_results_purge_failed = 'vision:ml_vision_objdet_purge_failed' + ml_vision_objdet_results_purge_skipped = 'vision:ml_vision_objdet_purge_skipped' + ml_vision_videos_modify_success = 'vision:ml_vision_videos_modify_success' + ml_vision_videos_modify_failed = 'vision:m.l_vision_videos_modify_failed' + ml_vision_embedding_success = 'vision:ml_vision_embedding_success' + ml_vision_embedding_fail = 'vision:ml_vision_embedding_fail' + ml_vision_embedding_skipped = 'vision:ml_vision_embedding_skipped' r = redis.StrictRedis()