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: //lib/python3/dist-packages/cloudinit/__pycache__/atomic_helper.cpython-38.pyc
U

Ӈg,�@s�ddlZddlZddlZddlZddlZddlmZmZddlm	Z	m
Z
dZe�e
�Ze	�d�dd��Ze	�d�d	d
��Zeddfd
d�Zeddfdd�Zdd�Ze	�d�dd��Zefdd�ZdS)�N)�	b64decode�	b64encode)�performance�utili�zBase64 decodingcCs2t|�}z|�d�WStk
r,|YSXdS)z�base64 decode data

    :param source: a bytes or str to decode
    :return: base64 as a decoded str if utf-8 encoded, otherwise bytes
    �utf-8N)r�decode�UnicodeDecodeError)�sourceZdecoded�r
�9/usr/lib/python3/dist-packages/cloudinit/atomic_helper.py�b64ds
rzBase64 encodingcCs"t|t�s|�d�}t|��d�S)zdbase64 encode data

    :param source: a bytes or str to decode
    :return: base64 encoded str
    r)�
isinstance�bytes�encoderr)r	r
r
r�b64es

r�wbFc
Cs8t�d|����t|||||�W5QR�SQRXdS)zCopen filename in mode omode, write content, set permissions to modezWriting N)rZTimed�_write_file)�filename�content�mode�omode�
preserve_moder
r
r�
write_file*src	
Cs�|r4zt�|�}t�|j�}Wntk
r2YnXd}zrtj�|�}t�|�t	j
|d|d�}t�d||j
||t|��|�|�|��t�|j
|�t�|j
|�Wn:tk
r�}z|dk	r�t�|j
�|�W5d}~XYnXdS)NF)�dir�deleterzOAtomically writing to file %s (via temporary file %s) - %s: [%o] %d bytes/chars)�os�stat�S_IMODE�st_mode�OSError�path�dirnamerZ
ensure_dir�tempfileZNamedTemporaryFile�LOG�debug�name�len�write�close�chmod�rename�	Exception�unlink)	rrrrrZ	file_statZtfr!�er
r
rr3s6

�	
rcCs8zd�t|��WStk
r2d�t|��YSXdS)z1Handler for types which aren't json serializable.z
ci-b64:{0}z)Warning: redacted unserializable type {0}N)�formatr�AttributeError�type)Z_objr
r
r�json_serialize_defaultUsr1zDumping jsoncCstj|dddtd�S)z%Return data in nicely formatted json.�T)�,z: )�indentZ	sort_keysZ
separators�default)�json�dumpsr1)�datar
r
r�
json_dumps]s�r9cCst|t|�dd|d�S)N�
�w)rr)rr9)rr8rr
r
r�
write_jsonis
�r<)r6Zloggingrrr"�base64rrZ	cloudinitrrZ
_DEF_PERMSZ	getLogger�__name__r#Ztimedrrrrr1r9r<r
r
r
r�<module>s0



�

�
"