HEX
Server: Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System: Linux ns565604.ip-54-39-133.net 4.18.0-553.50.1.el8_10.x86_64 #1 SMP Tue Apr 15 08:09:22 EDT 2025 x86_64
User: greer489 (1034)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/__pycache__/atomic_helper.cpython-36.pyc
3

\�me�	�@s�ddlZddlZddlZddlZddlZddlmZmZdZej	e
�Zdd�Zdd�Z
edd	fd
d�Zdd
�Zdd�Zefdd�ZdS)�N)�	b64decode�	b64encodei�cCs,t|�}y
|jd�Stk
r&|SXdS)Nzutf-8)r�decode�UnicodeDecodeError)�sourceZdecoded�r�#/usr/lib/python3.6/atomic_helper.py�b64ds

r	cCs"t|t�s|jd�}t|�jd�S)Nzutf-8)�
isinstance�bytes�encoderr)rrrr�b64es

r
�wbFcCs�|r4ytj|�}tj|j�}Wntk
r2YnXd}ydtjtjj|�d|d�}t	j
d||j||t|��|j
|�|j�tj|j|�tj|j|�Wn:tk
r�}z|dk	r�tj|j�|�WYdd}~XnXdS)NF)�dir�delete�modezOAtomically writing to file %s (via temporary file %s) - %s: [%o] %d bytes/chars)�os�stat�S_IMODE�st_mode�OSError�tempfileZNamedTemporaryFile�path�dirname�LOG�debug�name�len�write�close�chmod�rename�	Exception�unlink)�filenameZcontentr�omodeZ
preserve_modeZ	file_statZtf�errr�
write_file s2


r'cCs2ydjt|��Stk
r,djt|��SXdS)z1Handler for types which aren't json serializable.z
ci-b64:{0}z)Warning: redacted unserializable type {0}N)�formatr
�AttributeError�type)Z_objrrr�json_serialize_defaultDsr+cCstj|dddtd�S)z%Return data in nicely formatted json.�T�,�: )�indentZ	sort_keysZ
separators�default)r-r.)�json�dumpsr+)�datarrr�
json_dumpsLsr4cCst|t|�dd|d�S)N�
�w)r%r)r'r4)r$r3rrrr�
write_jsonWs

r7)r1Zloggingrrr�base64rrZ
_DEF_PERMSZ	getLogger�__name__rr	r
r'r+r4r7rrrr�<module>s

	#