File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/atomicfile.cpython-310.pyc
o
�N�g � @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddl
Z dZejdkrqdd� Z
dd� Zz-ddlZd Zd
ZejjjZdd� Z
ejjjZejjjZejjjZejjjZdZd
d� ZW n eyk Y nw dd� Z nej!Z dZG dd� d�Z"ddd�Z#dS )zY
A module written originally by Armin Ronacher to manage file transfers in an
atomic way
� NF�ntc C � dS �NF� ��src�dstr r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/atomicfile.py�_rename � r
c C r r r r r r r �_rename_atomic r r � � c C s� t | t�st| t�� �} t |t�st|t�� �}t| |�rdS d}d}|sB|dk rBt| |ttB �}|s<t� d� |d7 }|sB|dk s)|S )NTr F�d ���MbP?r
)
�
isinstance�str�sys�getfilesystemencodingr �_MoveFileEx�_MOVEFILE_REPLACE_EXISTING�_MOVEFILE_WRITE_THROUGH�time�sleep)r r �retry�rvalr r r r
! s"