
    i                     ,    S SK r S SKr S rS rSS jrg)    Nc                 T   0 n[         R                  R                  U 5      (       d  U$ [        SU 5          [	        U S5       nU H  nUR                  SS5      n[        U5      S:X  d  M&  [        US   R                  5       5      n[        US   R                  5       5      n[        US   R                  5       5      nUS	   R                  5       nUS   R                  5       n	[        U5      [        U5      [        U5      U/X'   M     S S S 5          U$ ! , (       d  f       N= f)
Nz14:r;      r            )ospathexistsprintopensplitlenfloatstripsumvaluesitemstimewrite	Exception)filepathdbflinepartsctimeatimescore_type_valued
mean_scorefloornew_dbdataes                   !/root/v2sys/lib-py/quickSearch.pyqs_loadr+      s   	B77>>(##	 
%	 ;	h	D JJsA&E5zQuQx..01uQx..01uQx..01a((..*#El5<eeL
  
* >D Iq 
	s   %D,B!D
D'c                    UR                  5       nU(       d  g  [        R                  " 5       nUnSnSnSnX ;   a0  X   u  pXpXH-
  U-  n
U
S:  a  U	S-  n	OU
S:  a  U	S-  n	Xy-  nXTXq/X'   OXDXq/X'   [        USS	S
9 nUR                  SU SU SU SU SU S35        S S S 5        [        US-   SS	S
9 nUR                  SU SU SU S35        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)NiQ d   /   g      ?   g?azutf-8)encoding z; z 
z.logz- )r   r   r   r   )r   r"   r#   r   nowr   
day_in_sec	new_scorer    r!   days_agor   s               r*   	qs_updater8   W   s$   LLNFfF))+CEJIE|"$*EK:- ]ESLE\ESLE	94
 )2
 
hg	.!	!E7"SEI;br&EF 
/ 
hvosW	5	"SEE7!F83/0 
6	5	 
/	. 
6	5s   ="C5C+
C(+
C9c                 `  ^	 UR                  5       n/ nU R                  5        H\  u  m	nXS   ;   d  M  [        U	4S jUR                  S5       5       5      (       a  SOSnU(       d  MF  UR	                  T	US   /5        M^     UR                  S SS9  U Vs/ s H  owS   PM	     nnU$ s  snf )	zX
Returns top N paths. 
If query is provided, it filters paths that contain that string.
c              3   H   >#    U  H  oTR                  5       ;   v   M     g 7f)N)lower).0tokenps     r*   	<genexpr>qs_sugg.<locals>.<genexpr>   s     N=MEaggi/=Ms   "&r   r   c                     U S   $ )Nr    )xs    r*   <lambda>qs_sugg.<locals>.<lambda>   s    qt    T)keyreverse)r<   r   allr   appendsort)
r   r"   querylimitmatchesr$   foundmr   r?   s
            @r*   qs_suggrS   |   s     KKMEG 
1bE>NU[[=MNNNATUEu1Q4y)  LL^TL2 w!1wAH 	 s   B+)Nr   )r   r   r+   r8   rS   rD   rH   r*   <module>rT      s      	 M`"1JrH   