+
    D#j^!                    R    ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt  ! R R4      tR# )    )annotationsN)Pathc                      ] tR t^
tR R ltR R ltR R ltR R ltR	 R
 lt]	R R l4       t
R R lt]	R R l4       t]	R R l4       t]	R R l4       t]	R R l4       tRtR# )HealthSnapshotStorec               $    V ^8  d   QhRRRRRR/# )   pathr   stale_after_sintreturnNone )formats   "]/home/user/overdeck-private-tests/subrouter-s5-systray-latest/modules/systray/health_store.py__annotate__ HealthSnapshotStore.__annotate__   s!     + +T +# +$ +    c                	    Wn         W n        R # Nr	   r
   )selfr	   r
   s   &&&r   __init__HealthSnapshotStore.__init__   s    	*r   c                    V ^8  d   QhRRRR/# )r   	snapshotsdict[str, AccountSnapshot]r   r   r   )r   s   "r   r   r      s     % %9 %d %r   c                	   V P                   P                  P                  R R R7       V P                  V4      p\        P
                  ! RRV P                   P                  RR7      ;_uu_ 4       p\        P                  ! W#R R7       VP                  4        \        P                  ! VP                  4       4       \        VP                  4      pRRR4       XP                  V P                   4       R#   + '       g   i     L-; i)T)parentsexist_okwutf-8F)encodingdirdelete)	sort_keysN)r	   parentmkdir_serialize_snapshotstempfileNamedTemporaryFilejsondumpflushosfsyncfilenor   namereplace)r   r   payload	temp_file	temp_paths   &&   r   writeHealthSnapshotStore.write   s    		td;++I6((		  	
 

 IIgD9OOHHY%%'(Y^^,I
 	$))$
 
s   /A"C66D	c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r       s      0 r   c                	>    V P                  4       w  rV'       g   / # V# r   )_read_snapshots)r   r   valids   &  r   readHealthSnapshotStore.read    s!    //1	Ir   c                   V ^8  d   QhRR/# )r   r   z!dict[str, AccountSnapshot] | Noner   )r   s   "r   r   r   &   s      = r   c                	    V P                  4       pVe   WP                  8  d   R # V P                  4       w  r#V'       g   R # V# r   )age_secondsr
   r:   )r   ager   r;   s   &   r   
read_freshHealthSnapshotStore.read_fresh&   s@     ;# 2 22//1	r   c                   V ^8  d   QhRR/# )r   r   float | Noner   )r   s   "r   r   r   /   s     ) )\ )r   c                	     V P                   P                  4       P                  p\        P                  ! 4       T,
          #   \         d     R # i ; ir   )r	   statst_mtimeOSErrortime)r   modified_ats   & r   r@   HealthSnapshotStore.age_seconds/   sD    	))..*33K yy{[((  		s   $A AAc                    V ^8  d   QhRRRR/# )r   r   r   r   zdict[str, dict[str, object]]r   )r   s   "r   r   r   7   s     &
 &
(B &
Gc &
r   c           "     	   V P                  4        UUUu/ uEF  w  rTR VP                  P                  RVP                  RVP                  RVP
                  RVP                  RVP                  RVP                  RVP                   Uu. uFA  pRVP                  R	VP                  R
VP                  RVP                  RVP                  /NKC  	  upRVP                  f   RMYRVP                  P                   RVP                  P"                  RVP                  P$                  RVP                  P&                  /RVP(                  f   RMYRVP(                  P*                  RVP(                  P"                  RVP(                  P,                  RVP(                  P&                  //
bEK  	  uppp# u upi u upppi )statusprimary_used_pctsecondary_used_pctprimary_reset_atsecondary_reset_at
checked_atdetailnamed_limitskindgrouppercent	resets_atactiveextra_usageNusedlimitunitdisplayspendamountcurrency)itemsrO   valuerP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   )r   slugsnapshotr^   s   &   r   r(   (HealthSnapshotStore._serialize_snapshots6   s   L #,//"3I%
H #4G (////"H$=$=$h&A&A"H$=$=$h&A&Ah11(// "*!6!6	! "7 

!5==#U__ %,, "7	! ''/  $ H0055X1177H0055x33;;	 >>)  hnn33X^^11 7 7x~~55	9" "F #4I%
 %	
	!%
s   A6F9AF4.CF94F9c                   V ^8  d   QhRR/# )r   r   z'tuple[dict[str, AccountSnapshot], bool]r   )r   s   "r   r   r   _   s     D D!H Dr   c                	t   ^ RI HpHpHpHpHp  \        P                  ! V P                  P                  RR7      4      p\        T\        4      '       g   / R3# / pTP                  4        EF  w  r\        T\        4      '       d   \        T	\        4      '       g   K4   T! T	P!                  R4      4      p
T	P!                  R4      pT	P!                  R4      pT	P!                  R4      pT	P!                  R	4      pT	P!                  R
4      pT	P!                  R4      p. pT	P!                  R4      p\        T\$        4      '       d   T F  p\        T\        4      '       g   K  TP!                  R4      pTP!                  R4      p\        T\        4      '       d   T'       d   \        T\&        4      '       g   Ks  TP!                  R4      pTP)                  T! T\        T\        4      '       d   TMRT P+                  TP!                  R4      4      T P-                  TP!                  R4      4      TR7      4       K  	  T P/                  T	P!                  R4      T4      pT P1                  T	P!                  R4      T4      pT! T
\        T\2        4      '       d   TMR\        T\2        4      '       d   TMR\        T\2        \4        34      '       d"   \        T\&        4      '       g   \5        T4      MR\        T\2        \4        34      '       d"   \        T\&        4      '       g   \5        T4      MRT P-                  T4      \        T\        4      '       d   T'       d   TMR\7        T4      TTR7
      Yx&   EK  	  TR3#   \        \        P                  3 d    / R3u # i ; i  \"         d     EKJ  i ; i)r   )AccountSnapshotExtraUsageSummaryHealthStatus
NamedLimitSpendSummaryr!   )r"   FrO   rP   rQ   rR   rS   rT   rU   rV   rW   r[   rX   NrY   rZ   )rW   rX   rY   rZ   r[   r\   ra   )
rO   rP   rQ   rR   rS   rT   rU   rV   r\   ra   T)health_clientrk   rl   rm   rn   ro   r+   loadsr	   	read_textrI   JSONDecodeError
isinstancedictrd   strget
ValueErrorlistboolappend_coerce_percent_coerce_float_parse_extra_usage_parse_spendr   floattuple)r   rk   rl   rm   rn   ro   r3   r   rf   re   rO   primary	secondaryrR   rS   rT   rU   rV   
raw_limits	raw_limitrW   r[   rX   r\   ra   s   &                        r   r:   #HealthSnapshotStore._read_snapshots_   s   	
 	
	jj!4!4g!4!FGG '4((u902	"==?KDdC((
5$0G0G%eii&9: ii 23G		"67I$yy);<!&+?!@<0JYYx(F-/L>2J*d++!+I%i66 $==0D&]]84F%dC00JvW[D\D\ %MM'2E ''"!%+5eS+A+A%t$($8$8y9Q$R&*&8&8{9S&T#) "," 11%))M2JL]^K%%eii&8,GE-,6w,D,D$0:9c0J0J9PT.e==jQacgFhFh "''7!803,??
SegkHlHl $));#<--j9!+FC!8!8Vv"<0'IOG +f $s --. 	u9	  s#   0N !N'N$#N$'N76N7c                    V ^8  d   QhRRRR/# )r   re   objectr   rE   r   )r   s   "r   r   r      s      V  r   c                	    \        V \        4      '       d   R # \        V \        \        34      '       d   \        V 4      # R # r   )rt   rz   r   r   re   s   &r   r}   !HealthSnapshotStore._coerce_float   s0    eT""ec5\**<r   c                    V ^8  d   QhRRRR/# )r   re   r   r   z
int | Noner   )r   s   "r   r   r      s     ' 'v '* 'r   c                	    \        V \        4      '       d   \        V \        4      '       d   R # \        ^ \	        ^dV 4      4      # r   )rt   r   rz   maxminr   s   &r   r|   #HealthSnapshotStore._coerce_percent   s1    %%%E4)@)@1c#uo&&r   c               $    V ^8  d   QhRRRRRR/# r   re   r   summary_typeztype[object]r   zobject | Noner   )r   s   "r   r   r      &     
 

"
 

r   c           	     	   \        V \        4      '       g   R # \        P                  V P	                  R4      4      p\        P                  V P	                  R4      4      pV P	                  R4      pV P	                  R4      pVf3   Vf/   \        V\
        4      '       g   \        V\
        4      '       g   R # T! TT\        V\
        4      '       d   TMR \        V\
        4      '       d   VR7      # R R7      # )Nr]   r^   r_   r`   )r]   r^   r_   r`   rt   ru   r   r}   rw   rv   )re   r   r]   r^   r_   r`   s   &&    r   r~   &HealthSnapshotStore._parse_extra_usage   s    
 %&&"0061BC#11%))G2DEyy ))I&LtS))w,,#D#..D)'377G	
 	
 >B	
 	
r   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r   r   r      r   r   c           	     	   \        V \        4      '       g   R # \        P                  V P	                  R4      4      p\        P                  V P	                  R4      4      pV P	                  R4      pV P	                  R4      pVf3   Vf/   \        V\
        4      '       g   \        V\
        4      '       g   R # T! TT\        V\
        4      '       d   TMR \        V\
        4      '       d   VR7      # R R7      # )Nrb   r^   rc   r`   )rb   r^   rc   r`   r   )re   r   rb   r^   rc   r`   s   &&    r   r    HealthSnapshotStore._parse_spend   s    
 %&&$22599X3FG#11%))G2DE99Z())I&Nx--w,,!+Hc!:!:X)'377G	
 	
 >B	
 	
r   r   N)__name__
__module____qualname____firstlineno__r   r6   r<   rB   r@   staticmethodr(   r:   r}   r|   r~   r   __static_attributes__r   r   r   r   r   
   s    +%") &
 &
PDL   ' '
 
 
0 
 
r   r   )	
__future__r   r+   r.   r)   rJ   pathlibr   r   r   r   r   <module>r      s#    "  	   Y
 Y
r   