Current File : //usr/lib/python3/dist-packages/uaclient/files/__pycache__/files.cpython-312.pyc
�

Uٵg�
����ddlZddlZddlZddlmZmZmZddlmZm	Z	m
Z
mZmZe	j�Zejej e��ZGd�d�ZGd�d�ZGd�d	e�Zy)
�N)�Any�Dict�Optional)�defaults�event_logger�
exceptions�system�utilc��eZdZejdfdededefd�Zedefd��Z	edefd��Z
ed	��Zd
efd�Zde
efd�Zd
�Zy)�UAFileT�name�	directory�privatec��||_||_||_tjj|j|j�|_y�N)�
_directory�
_file_name�_is_private�os�path�join�_path)�selfr
rrs    �6/usr/lib/python3/dist-packages/uaclient/files/files.py�__init__zUAFile.__init__
s8��$������"����W�W�\�\�$�/�/�4�?�?�C��
��returnc��|jSr)r�rs rrzUAFile.paths���z�z�rc��|jSr)rrs r�
is_privatezUAFile.is_privates�����rc�T�tjj|j�Sr)rr�existsrs r�
is_presentzUAFile.is_present s���w�w�~�~�d�i�i�(�(r�contentc��|jrtjntj}	tj
j
|j�tjk(r"t	j|jd��nt	j|j�tj|j
||�y#t$rY�-wxYw)Ni�)�mode)
r!r�ROOT_READABLE_MODE�WORLD_READABLE_MODErr�basenamer�PRIVATE_SUBDIR�makedirs�OSErrorr	�
write_file)rr%�	file_modes   r�writezUAFile.write$s������
�'�'��-�-�	�	��w�w������0�H�4K�4K�K����D�O�O�%�8����D�O�O�,�	���$�)�)�W�i�8���	��	�s�A;C�	C�Cc��d}	tj|j�}|S#t$r$tjd|j�Y|SwxYw)Nz(Tried to load %s but file does not exist)r	�	load_filer�FileNotFoundError�LOG�debug�rr%s  r�readzUAFile.read5sS����	M��&�&�t�y�y�1�G����!�	M��I�I�@�$�)�)�L���	M�s�%�)A�Ac�B�tj|j�yr)r	�ensure_file_absentrrs r�deletez
UAFile.delete=s���!�!�$�)�)�,rN)�__name__�
__module__�__qualname__r�DEFAULT_DATA_DIR�str�boolr�propertyrr!r$r0rr7r:�rrrrs���"�2�2��		D��	D��	D��		D���c����� �D� �� ��)��)�9�S�9�"�h�s�m��-rrc�`�eZdZdefd�Zdeeeffd�Zde	eeeffd�Z
d�Zed��Z
y	)
�ProJSONFile�pro_filec��||_yr)rE)rrEs  rrzProJSONFile.__init__Bs��!��
rr%c��|jjtj|tj
����y)N��cls)r%)rEr0�json�dumpsr
�DatetimeAwareJSONEncoderr6s  rr0zProJSONFile.writeHs-���
�
����J�J�w�D�,I�,I�J�	�	
rrc�,�|jj�}|r&	tj|tj
��Sy#tj$r<}tj|jjdt|�z���d}~wwxYw)NrH�
)�source�out)rEr7rJ�loadsr
�DatetimeAwareJSONDecoder�JSONDecodeErrorr�InvalidJsonrr?)rr%�es   rr7zProJSONFile.readMsz���-�-�$�$�&���
��z�z�'�t�/L�/L�M�M����'�'�
� �,�,��=�=�-�-�4�#�a�&�=����
�s�$A�B�7B�Bc�6�|jj�Sr)rEr:rs rr:zProJSONFile.deleteZs���}�}�#�#�%�%rc�.�|jjSr)rEr$rs rr$zProJSONFile.is_present]s���}�}�'�'�'rN)r;r<r=rrrr?rr0rr7r:rAr$rBrrrDrDAsU��!��!�
�T�#�s�(�^�
�
�h�t�C��H�~�.��&��(��(rrDc�$��eZdZdef�fd�Z�xZS)�
UserCacheFiler
c�N��t�|�|tj�d��y)NF)rr)�superrr	�get_user_cache_dir)rr
�	__class__s  �rrzUserCacheFile.__init__cs%���
����F�5�5�7��	�	
r)r;r<r=r?r�
__classcell__)r]s@rrYrYbs���
�S�
�
rrY)rJ�loggingr�typingrrr�uaclientrrrr	r
�get_event_logger�event�	getLogger�replace_top_level_logger_namer;r4rrDrYrBrr�<module>rfsl����	�&�&�E�E�%��%�%�'���g���:��:�:�8�D�E��2-�2-�j(�(�B
�F�
r