HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/root/lib/python3/dist-packages/uaclient/files/__pycache__/files.cpython-38.pyc
U

��Jh�
�@s�ddlZddlZddlZddlmZmZmZddlmZm	Z	m
Z
mZmZe	�
�Ze�e�e��ZGdd�d�ZGdd�d�ZGdd	�d	e�ZdS)
�N)�Any�Dict�Optional)�defaults�event_logger�
exceptions�system�utilc@s~eZdZejdfeeed�dd�Zeed�dd��Z	eed�dd	��Z
ed
d��Zed�d
d�Ze
ed�dd�Zdd�ZdS)�UAFileT)�name�	directory�privatecCs*||_||_||_tj�|j|j�|_dS�N)�
_directoryZ
_file_name�_is_private�os�path�join�_path)�selfrrr
�r�6/usr/lib/python3/dist-packages/uaclient/files/files.py�__init__
szUAFile.__init__��returncCs|jSr)r�rrrrrszUAFile.pathcCs|jSr)rrrrr�
is_privateszUAFile.is_privatecCstj�|j�Sr)rr�existsrrrr�
is_present szUAFile.is_present��contentcCsr|jrtjntj}z6tj�|j�tjkr:tj	|jdd�nt�	|j�Wnt
k
r\YnXt�|j||�dS)Ni�)�mode)
rrZROOT_READABLE_MODEZWORLD_READABLE_MODErr�basenamerZPRIVATE_SUBDIR�makedirs�OSErrorrZ
write_file)rr Z	file_moderrr�write$s��zUAFile.writecCs<d}zt�|j�}Wn"tk
r6t�d|j�YnX|S)Nz(Tried to load %s but file does not exist)rZ	load_filer�FileNotFoundError�LOG�debug�rr rrr�read5szUAFile.readcCst�|j�dSr)rZensure_file_absentrrrrr�delete=sz
UAFile.deleteN)�__name__�
__module__�__qualname__rZDEFAULT_DATA_DIR�str�boolr�propertyrrrr%rr*r+rrrrr
s ��
r
c@s^eZdZed�dd�Zeeefd�dd�Ze	eeefd�dd	�Z
d
d�Zedd
��Z
dS)�ProJSONFile��pro_filecCs
||_dSrr3)rr4rrrrBszProJSONFile.__init__rcCs|jjtj|tjd�d�dS)N��clsr)r4r%�json�dumpsr	ZDatetimeAwareJSONEncoderr)rrrr%Hs�zProJSONFile.writerc
Csd|j��}|r`ztj|tjd�WStjk
r^}ztj|jj	dt
|�d��W5d}~XYnXdS)Nr5�
)�source�out)r4r*r7�loadsr	ZDatetimeAwareJSONDecoderZJSONDecodeErrorrZInvalidJsonrr/)rr �errrr*Ms

�zProJSONFile.readcCs
|j��Sr)r4r+rrrrr+ZszProJSONFile.deletecCs|jjSr)r4rrrrrr]szProJSONFile.is_presentN)r,r-r.r
rrr/rr%rr*r+r1rrrrrr2As�
r2cs"eZdZed��fdd�Z�ZS)�
UserCacheFile)rcst�j|t��dd�dS)NF)rr
)�superrrZget_user_cache_dir)rr��	__class__rrrcs
�zUserCacheFile.__init__)r,r-r.r/r�
__classcell__rrr@rr>bsr>)r7Zloggingr�typingrrrZuaclientrrrrr	Zget_event_loggerZeventZ	getLoggerZreplace_top_level_logger_namer,r'r
r2r>rrrr�<module>s5!