
    W|h                     h   S SK r S SKrS SKr S SKr\R                  " SS9r\R                  SSSSS	9  \R                  S
SSSS	9  \R                  SSSSS	9  \R                  SSSSS	9  \R                  SSSSS9  \R                  SSSSS	9  \R                  5       u  r
r\" \5      S:w  a"  \R                  5         \ R                  " S5        \S SS2   u  rr\
R"                  (       a  \" \
R"                  5      rOSrSS jrSS jrS rS rS r\S:X  a  \" 5         gg! \ a	    \" S5      ef = f)    Nz6[ERROR] Please make sure whisper is installed properlyz%prog [options] path_a path_b)usagez	--summaryF
store_truezshow summary of differences)defaultactionhelpz--ignore-emptyz,skip comparison if either value is undefinedz	--columnszprint output in simple columnsz--no-headerszdo not print column headersz--untilintzEUnix epoch time of the end of your requested interval (default: None))r   typer   z--jsonzOutput results in JSON form      c           
      "   U(       a  SnSnOSnSnU(       a"  [         R                  R                  US-  5        U  H  u  pVnU(       aT  [         R                  R                  SXVR                  5       U4-  5        [         R                  R                  US-  5        U Hi  nU(       a1  [         R                  R                  USUS	   US
   US   4-  5        M;  [         R                  R                  XEUS	   US
   US   4-  5        Mk     M     g )Nz%7s %11s %13s %13s
z%7s %11d %13s %13s
z%s %s %s %s
z%s %d %s %s
)archive	timestampvalue_avalue_bz(Archive %d (%d of %d datapoints differ)
) r   r   r   r   r   r   r
   sysstdoutwrite__len__)	diffsprettyheadershfr   pointstotalps	            S/home/james-whalen/.local/lib/python3.13/site-packages/../../../bin/whisper-diff.pyprint_diffsr    )   s    AAAAJJQGGH %gu	jjB!159: ;	jjqBBC	

b!A$!ad334

qtQqT1Q4889	  !&    c                     U(       a  SnOSnU(       a"  [         R                  R                  US-  5        U  H7  u  pEn[         R                  R                  X4XeR                  5       4-  5        M9     g )Nz%7s %9s %9s
z	%s %s %s
)r   r   	differingr   )r   r   r   r   r   r   r   s          r   print_summaryr$   >   sZ    AAJJQ::; %guJJQ5..*:;;< !&r!   c                     [        [        R                  " UUU  VVVs/ s H  u  p4nUUUR                  5       S.PM     snnnS.SSSS95        g s  snnnf )N)r   r   r   path_apath_barchivesTr
   ,z : 	sort_keysindent
separatorsprintjsondumpsr   )r   r'   r(   r   r   r   s         r   print_summary_jsonr4   I   sq    

f$ @E!F @E%;We .5+0,2NN,<"> @E!FG "!	F G!Fs   !Ac                     [        [        R                  " UUU  VVVVs/ s H9  u  p4nUUUR                  5       U Vs/ s H  nUS   US   US   S.PM     snS.PM;     snnnnS.SSSS	95        g s  snf s  snnnnf )
Nr   r   r
   )r   r   r   )r   r   r   	datapointr&   Tr*   r,   r0   )r   r'   r(   r   r   r   r   s          r   print_diffs_jsonr7   S   s    

f$ @E!F @E%;We .5+0,2NN,<
 06	07 06! 45Q41211211& 06	07"8 @E!F
G "!	F G
07!Fs   A6A1"	A61A6c                     [         R                  " [        [        [        R
                  [        S9n [        R                  (       a]  [        R                  (       a  [        U [        [        5        g [        U [        R                  (       + [        R                  (       + S9  g [        R                  (       a  [        U [        [        5        g [        U [        R                  (       + [        R                  (       + S9  g )N)ignore_empty
until_time)r   r   )whisperdiffr'   r(   optionsr9   r:   summaryr2   r4   r$   columns
no_headersr7   r    )archive_diffss    r   mainrB   b   s    ,,vvG<P<P*46-__||7Mw+>!(!3!336 ||}ff5-W__)<&1114r!   __main__)TT)r   optparser2   r;   ImportError
SystemExitOptionParseroption_parser
add_option
parse_argsr=   argslen
print_helpexitr'   r(   untilr   r:   r    r$   r4   r7   rB   __name__ r!   r   <module>rR      s     M %%,OP   eL;  =   )5L  N   eL>  @   |;  =   Du9  :   5;  =  **,$t9>((1+1: 
==7==!**:*=GG4" z& U  MKLLMs   D" "D1