
    ,j$	                    F   % S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  \" \R                  R                  SS5      5      r\R                  5       (       d%  \" S\ 35        \" S5        \R                  " S 5        0 rS	\S
'   / rS\S'   S r\R'                  5        r\ GH  r\R-                  5       r\(       d  M   \R.                  " \5      r\S-  r\" \R                  S5      =(       d    S5      r\R9                  \S S S S S S S S.5      r\" \S   5      S-   \S'   \R                  S5      r\S;   a  \" \\   5      S-   \\'   \R                  S5      r \!" \ \5      (       a.  \ S :  a(  \S;   a"  \" \S   5      \ -   \S'   \" \S   5      S-   \S'   \S:X  d  M  \RE                  \5        GM     SSS5        \" S\ 35        \" S\ 35        \" S5        \#" \5       H  r\\   r\" \S   5      \" \S   5      -   \" \S   5      -   r$\$(       a  \" \S   5      \$-  S-  OSr%\" \S   5      (       a  \" \S   5      \" \S   5      -  OSr&\" S\ S \S    S!\S    S"\S    S#\S    S$\S%    S&\%S' S(\&S' 35        M     \" S)5        \S*S  Hn  r\" S\R                  S+5       S,\R                  S5       S-\R                  S.5       S/\R                  S05       S1\R                  S25      =(       d    S3 3
5        Mp     g! \ a     GMn  f = f! , (       d  f       GNf= f)4    )annotationsN)defaultdict)PathPI_TOOL_USAGE_FILEz+/home/sebas/runtime/tool-usage/events.jsonlzevents_file=zevents=0zdict[str, dict[str, object]]statszlist[dict[str, object]]recent_failures   nameunknown)count	succeededfailed	cancelledstartedduration_sumduration_countr   status)r   r   r   r   duration_ms)r   r   r   r   r   r   zevents=z	
by_tool:r   r   g      Y@g        z- z: count=z	 success=z failed=z cancelled=z	 started=r   z success_rate=z.1fz	% avg_ms=z
recent_failures:its z cwd=cwdz exit=	exit_codez error=error_summary )'
__future__r   jsonossyscollectionsr   pathlibr   environgetEVENTSexistsprintexitr   __annotations__r   r   openfhlinestriploadsevent	Exceptionstrr
   
setdefaultsintr   dur
isinstanceappendsortedterminalsuccess_rateavg_ms     +/home/sebas/pi-config/bin/tool-usage-report<module>r=      s{   "  	 
 # 	bjjnn13`a	b}}	L
!"	*HHQK&(# (+-( -	[[]bzz|	JJt$E 	
599V$1	2T$
  7_q('
8$DDAfI*AfIii&c3C1H;_1_ #An$5 6 <An"%a(8&9":Q">AX""5)9  > VH  w  l 5MDdA1[>"S8%55AkN8KKH?GC+'(2U:SLDGJZH[D\D\c!N#$s1-=+>'??beF	
TF(1W:,i+/?x(} U{^$Ia	l^>,WZI[[deklodp	r   ST"E	
UYYt_Quyy01uyy7G6HuyyYdOeNf g?+1r2	4 #M  		 ]s7    L=LC	LLL	LLL
L 