+
     g
                         ^ RI t ^ RIt^ RIt^ RIHtHtHt ^ RIHtH	t	H
t
HtHt ]	P                  ! 4       t]P                  ! ]P                   ! ]4      4      t ! R R4      t ! R R4      t ! R R	]4      tR# )
    N)AnyDictOptional)defaultsevent_logger
exceptionssystemutilc                      a  ] tR t^t o ]P
                  R3V 3R lR llt]V 3R lR l4       t]V 3R lR l4       t	]R 4       t
V 3R	 lR
 ltV 3R lR ltR tRtV tR# )UAFileTc                ,   < V ^8  d   QhRS[ RS[ RS[/# )   name	directoryprivate)strbool)format__classdict__s   "6/usr/lib/python3/dist-packages/uaclient/files/files.py__annotate__UAFile.__annotate__   s.     	D 	D	D 	D 		D    c                    W n         Wn        W0n        \        P                  P                  V P                   V P                  4      V n        R # N)
_directory
_file_name_is_privateospathjoin_path)selfr   r   r   s   &&&&r   __init__UAFile.__init__   s2     $"WW\\$//4??C
r   c                    < V ^8  d   QhRS[ /# r   returnr   )r   r   s   "r   r   r      s      c r   c                    V P                   # r   )r"   r#   s   &r   r    UAFile.path   s    zzr   c                    < V ^8  d   QhRS[ /# r'   )r   )r   r   s   "r   r   r      s        D  r   c                    V P                   # r   )r   r+   s   &r   
is_privateUAFile.is_private   s    r   c                T    \         P                  P                  V P                  4      # r   )r   r    existsr+   s   &r   
is_presentUAFile.is_present    s    ww~~dii((r   c                    < V ^8  d   QhRS[ /# r   contentr)   )r   r   s   "r   r   r   $   s     9 9S 9r   c                   V P                   '       d   \        P                  M\        P                  p \        P
                  P                  V P                  4      \        P                  8X  d$   \        P                  ! V P                  R R7       M!\        P                  ! V P                  4        \        P                  ! V P
                  W4       R#   \         d     L0i ; i)i  )modeN)r/   r   ROOT_READABLE_MODEWORLD_READABLE_MODEr   r    basenamer   PRIVATE_SUBDIRmakedirsOSErrorr	   
write_file)r#   r7   	file_modes   && r   writeUAFile.write$   s      ''-- 		ww0H4K4KKDOO%8DOO, 	$))W8  		s   AC  C C%$C%c                0   < V ^8  d   QhRS[ S[,          /# r'   )r   r   )r   r   s   "r   r   r   5   s      hsm r   c                    R p \         P                  ! V P                  4      pV#   \         d%    \        P                  RT P                  4        T# i ; i)Nz(Tried to load %s but file does not exist)r	   	load_filer    FileNotFoundErrorLOGdebugr#   r7   s   & r   readUAFile.read5   sS    	M&&tyy1G  ! 	MII@$))L	Ms    & +AAc                F    \         P                  ! V P                  4       R # r   )r	   ensure_file_absentr    r+   s   &r   deleteUAFile.delete=   s    !!$)),r   )r   r   r   r"   N)__name__
__module____qualname____firstlineno__r   DEFAULT_DATA_DIRr$   propertyr    r/   r3   rB   rK   rO   __static_attributes____classdictcell__r   s   @r   r   r      sy      "22		D 	D       ) )9 9" - -r   r   c                   l   a  ] tR t^At o V 3R lR ltV 3R lR ltV 3R lR ltR t]R 4       t	R	t
V tR
# )ProJSONFilec                    < V ^8  d   QhRS[ /# )r   pro_file)r   )r   r   s   "r   r   ProJSONFile.__annotate__B   s     ! !!r   c                    Wn         R # r   r]   )r#   r]   s   &&r   r$   ProJSONFile.__init__B   s	     !r   c                6   < V ^8  d   QhRS[ S[S[3,          /# r6   )r   r   r   )r   r   s   "r   r   r^   H   s     
 
T#s(^ 
r   c                    V P                   P                  \        P                  ! V\        P
                  R 7      R7       R# )cls)r7   N)r]   rB   jsondumpsr
   DatetimeAwareJSONEncoderrJ   s   &&r   rB   ProJSONFile.writeH   s-    JJwD,I,IJ 	 	
r   c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# r'   )r   r   r   r   )r   r   s   "r   r   r^   M   s!      htCH~. r   c                J   V P                   P                  4       pV'       d(    \        P                  ! V\        P
                  R 7      # R#   \        P                   dB   p\        P                  ! T P                   P                  R\        T4      ,           R7      hRp?ii ; i)rd   
)sourceoutN)r]   rK   rf   loadsr
   DatetimeAwareJSONDecoderJSONDecodeErrorr   InvalidJsonr    r   )r#   r7   es   &  r   rK   ProJSONFile.readM   sz    --$$&zz't/L/LMM  ''  ,,==--4#a&= s   %A B"!<BB"c                6    V P                   P                  4       # r   )r]   rO   r+   s   &r   rO   ProJSONFile.deleteZ   s    }}##%%r   c                .    V P                   P                  # r   )r]   r3   r+   s   &r   r3   ProJSONFile.is_present]   s    }}'''r   r`   N)rQ   rR   rS   rT   r$   rB   rK   rO   rV   r3   rW   rX   rY   s   @r   r[   r[   A   s<     ! !
 

 & ( (r   r[   c                   >   a a ] tR t^bt oV3R lV 3R lltRtVtV ;t# )UserCacheFilec                    < V ^8  d   QhRS[ /# )r   r   r)   )r   r   s   "r   r   UserCacheFile.__annotate__c   s     
 
S 
r   c                R   < \         SV `  V\        P                  ! 4       R R7       R# )F)r   r   N)superr$   r	   get_user_cache_dir)r#   r   	__class__s   &&r   r$   UserCacheFile.__init__c   s%    F557 	 	
r    )rQ   rR   rS   rT   r$   rW   rX   __classcell__)r   r   s   @@r   rz   rz   b   s     
 
 
r   rz   )rf   loggingr   typingr   r   r   uaclientr   r   r   r	   r
   get_event_loggerevent	getLoggerreplace_top_level_logger_namerQ   rH   r   r[   rz   r   r   r   <module>r      se      	 & & E E%%'::8DE2- 2-j( (B
F 
r   