HEX
Server: Apache
System: Linux sg2plmcpnl492417.prod.sin2.secureserver.net 4.18.0-553.58.1.lve.el8.x86_64 #1 SMP Fri Jul 4 12:07:06 UTC 2025 x86_64
User: nyiet8349bzl (9207396)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/pyfakefs/__pycache__/fake_open.cpython-311.pyc
�

�|oi�;���dZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZddlmZmZmZmZddlmZmZmZmZmZmZerddl m!Z!ej"Z#d	d
ddd
dddd�Z$								d&dddee%de	e
e&fde%de&dee%dee%dee%de'd eed!e'd"e	eee
ffd#�Z(Gd$�d%��Z)dS)'zFA fake open() function replacement. See ``fake_filesystem`` for usage.�N)�S_ISDIR)
�Optional�Union�Any�Tuple�cast�AnyStr�
TYPE_CHECKING�Callable�IO�List)�helpers)�FakePipeWrapper�FakeFileWrapper�FakeFile�AnyFileWrapper)�	AnyString�is_called_from_skipped_module�is_root�	PERM_READ�
PERM_WRITE�
_OpenModes)�FakeFilesystem)TTFFFF)FFTTFF)FFTFTF)TTTFFF)FTTTFF)FTTFTF)FFTFFT)FTTFFT)�r�w�azr+zw+za+�xzx+r���TF�
filesystemr�
skip_names�file�mode�	buffering�encoding�errors�newline�closefd�opener�is_fake_open_code�returnc
��|
s;t||jtjdk���rt	||||||||	��St|��}|||||||||	��S)zTRedirect the call to FakeFileOpen.
    See FakeFileOpen.call() for description.
    )��)r �case_sensitive�check_open_code)r�is_case_sensitive�sys�version_info�io_open�FakeFileOpen)rr r!r"r#r$r%r&r'r(r)�fake_file_opens            �d/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pyfakefs/fake_open.py�	fake_openr7Js���$�
�!>��!�3��(�G�3�"�"�"�
�
���������	
�	
�		
�"�*�-�-�N��>��d�I�x���'�6����c���eZdZdZdZ		d"dddedefd�Zded	ed
efd�Z								d#de	e
efdedede
ede
ede
ededede
ed
efd�Zeded
efd���Zde
ede
dededed
efd�Zde	e
efd
ee
ee
e
e
ee
e
effd �Zdede
ede
ed
ee
eeffd!�ZdS)$r4z�Faked `file()` and `open()` function replacements.

    Returns :py:class:`FakeDirectory<pyfakefs.fake_file.FakeFile>` objects in a
        fake filesystem; replaces the `open()` function.
    Frr�delete_on_close�raw_ioc�0�||_||_||_dS)z�
        Args:
          filesystem:  FakeFilesystem used to provide file system information
          delete_on_close:  optional boolean, deletes file on close()
        N)r�_delete_on_closer;)�selfrr:r;s    r6�__init__zFakeFileOpen.__init__zs��%��� /�������r8�args�kwargsr*c��|j|i|��S)z:Redirects calls to file() or open() to appropriate method.)�call)r>r@rAs   r6�__call__zFakeFileOpen.__call__�s���t�y�$�)�&�)�)�)r8rrNT�file_r"r#r$r%r&r'r(�
open_modesc
��d|v}
|
r|rtd���|�|||	��\}}	t|t��}|�(|jdvr|||�|	����}|�|��\}}
}}}|��|
��|�/t|jj	��|ks|jj	|sttjd���|jj	|}|�J�|d}t|t��sJ�t|j|j|j|��}|j�|��}||_|S|
�J�|sd}|sT|	jrM|s&|j�|
��r1|jjs%|j�tj|
��|�J�|�||
|	||���}t1|j��rW|jjr&|j�tj|
��n%|j�tj|
��|
|_|	jr-t=j��}||_ |jjs||_!tE||
|	|	jo||j#|j||
|||||j$|�	��}|�3||_|jj	|}|�J�|�%|��n|j�|��|_|S)
a�Return a file-like object with the contents of the target
        file object.

        Args:
            file_: Path to target file or a file descriptor.
            mode: Additional file modes (all modes in `open()` are supported).
            buffering: the buffer size used for writing. Data will only be
                flushed if buffer size is exceeded. The default (-1) uses a
                system specific default buffer size. Text line mode (e.g.
                buffering=1 in text mode) is not supported.
            encoding: The encoding used to encode Unicode strings / decode
                bytes.
            errors: (str) Defines how encoding errors are handled.
            newline: Controls universal newlines, passed to stream object.
            closefd: If a file descriptor rather than file name is passed,
                and this is set to `False`, then the file descriptor is kept
                open when file is closed.
            opener: an optional function object that will be called with
                `file_` and the open flags (derived from `mode`) and returns
                a file descriptor.
            open_modes: Modes for opening files if called from low-level API.

        Returns:
            A file-like object containing the contents of the target file.

        Raises:
            OSError depending on Python version / call mode:
                - if the target object is a directory
                - on an invalid path
                - if the file does not exist when it should
                - if the file exists but should not
                - if permission is denied
            ValueError: for an invalid mode or mode combination
        �bz-binary mode doesn't take an encoding argumentN)�pathlibzpathlib._localzinvalid pipe file descriptorrT)�check_file_permission)rF�allow_updater:rr&�binaryr'r$r%r#r;�opened_as_fd)&�
ValueError�_handle_file_mode�
isinstance�int�
__module__�_open_flags_from_open_modes�_handle_file_arg�lenr�
open_files�OSError�errno�EBADFr�fd�	can_write�
add_open_file�filedes�must_not_exist�islink�
is_windows_fs�raise_os_error�EEXIST�_init_file_objectr�st_mode�EACCES�EISDIR�	opened_as�truncater�now�st_mtime�st_ctimerr=r;�append)r>rEr"r#r$r%r&r'r(rFrLrM�file_object�	file_pathr]�	real_pathr[�wrappers�existing_wrapper�wrapper�file_des�current_time�fakefile�open_files_lists                        r6rCzFakeFileOpen.call�s���\�����	N�h�	N��L�M�M�M�"�4�4�T�7�J�O�O����!�%��-�-��
��&�"3�<
�#
�#
��F�5�$�"B�"B�:�"N�"N�O�O�E�@D�@U�@U��A
�A
�=��Y���I���9�#4����t��1�2�2�g�=�=���1�'�:�>��e�k�+I�J�J�J���1�'�:�H��'�'�'�'��{���.��@�@�@�@�@�%��� �#� �*��	��G���4�4�W�=�=�H�&�G�O��N��$�$�$��	��G��		D��)�		D��			D�
�?�)�)�)�4�4�		D���5�
		D�
�O�*�*�5�<��C�C�C��$�$�$��,�,�����&2�"2�-�
�
���;�&�'�'�	H���,�
H���.�.�u�|�Y�G�G�G�G���.�.�u�|�Y�G�G�G�!*�����	4�"�;�=�=�L�#/�K� ��?�0�
4�'3��$�"���!�#�-�;�)� �1����������;�%�
�
�
�� ��&�H��"�o�8��A�O�"�.�.�.��"�"�8�,�,�,�,�#��<�<�X�F�F�H���r8c�l�d}|jr|jr|tjz}n-|jr|tjz}n|jr|tjz}|jr|tjz}|jr|tj	z}|j
s|jr|tjz}|jr|jr|tj
z}|S)Nr)�can_readr[�os�O_RDWR�O_RDONLY�O_WRONLYrl�O_APPENDrh�O_TRUNC�
must_exist�O_CREATr^�O_EXCL)rF�flagss  r6rSz(FakeFileOpen._open_flags_from_open_modes(s�������	!�:�#7�	!��R�Y��E�E�
�
 �	!��R�[� �E�E�
�
!�	!��R�[� �E���	!��R�[� �E���	 ��R�Z��E��$�	 ��)=�	 ��R�Z��E��$�	��)=�	��R�Y��E��r8rmrnrorJc�n�|r�|rut��sg|jr|�t��r!|jr?|�t
��s%|j�tj	|��|jr|j
r|�d���n|jr%|j�tj
|��|j�|��r@|j�|d���}|j�J�t#t$|j��}n|}|j�|��rW|jjrtjn#|jjrtj
ntj}|j�||��|j�|dd���}|S)N�F)�follow_symlinksT)�create_missing_dirs�apply_umask)rrx�has_permissionrr[rrrarXrerh�set_contentsr�ENOENTr_�resolve�contentsrr	�ends_with_path_separatorr`�EINVAL�is_macosrf�create_file_internally)	r>rmrnrFrorJ�link_object�target_path�errors	         r6rczFakeFileOpen._init_file_object<s����&	�%�
H��	�	�
H� �(�	
H�2=�1K�1K�I�1V�1V�	
H�#�,�

H�!,� :� :�:� F� F�
H���.�.�u�|�Y�G�G�G��#�
1��&�1��,�,�R�0�0�0���$�
H���.�.�u�|�Y�G�G�G���%�%�i�0�0�
(�"�o�5�5�i�QV�5�W�W��"�+�7�7�7�"��K�0�����(����7�7��D�D�
A���4�&�E�L�L���/�&���������.�.�u�i�@�@�@��/�@�@��u�$�A���K��r8c��d}t|t��r�|}|j�|��}d}t|t��rdd|d|fSt|t
��r|j|_|j}tt|j�|�������}|�J�|j}|tt|��|tt|��|fStt|��}||jjjkr|jj}|}nP|j�|��}|j�|��r|j�|d���}||d|dfS)NTF)�check_read_perm)rPrQr�
get_open_filerrr:r=rKrr�
get_object�namer	�dev_null�resolve_path�exists�get_object_from_normpath)	r>rErmr]rrr[�pathrnros	         r6rTzFakeFileOpen._handle_file_argms���
���e�S�!�!�	� �G��o�3�3�G�<�<�G��I��'�?�3�3�
<��T�7�D�)�;�;��'�?�3�3�
1�(/�(?��%�#�0�	���$�/�7�7��@�@�K�K�M�M���K��*�*�*��#�D���V�T�"�"���V�T�"�"���
����'�'�	����0�5�5�5��/�2�K�!�I�I���4�4�Y�?�?�I���%�%�i�0�0�
�"�o�F�F��u�G�����I�t�Y��<�<r8c��|}d|vrd|vstjdkrd|vrtd|z���|�dd���dd��}|�dd���dd��}|js/|t
vrtd	|z���t
t
|�}|�J�||fS)
NrH�t)r,�
�UzInvalid mode: r��rUrzInvalid mode: %r)r1r2rN�replacer;�_OPEN_MODE_MAPr)r>r"r&rF�
orig_modess     r6rOzFakeFileOpen._handle_file_mode�s����
��4�K�K�C�4�K�K���w�&�&�3�$�;�;��-��4�5�5�5��|�|�C��$�$�,�,�S�"�5�5���|�|�D�#�&�&�.�.�s�C�8�8���{�	;��>�)�)� �!3�j�!@�A�A�A�#�^�D�%9�:�J��%�%�%��
�"�"r8)FF)rrNNNTNN)�__name__rR�__qualname__�__doc__�boolr?rrrDrr	rQ�strrrrC�staticmethodrSrrrcrrTrO�r8r6r4r4qsq���������H�
!&��	
�
�$�
��
��	
�
�
�
�*�c�*�S�*�^�*�*�*�*���"&� $�!%���+/�Y�Y��V�S�[�!�Y��Y��	Y�
�3�-�Y���
�
Y��#��Y��Y��Y��Z�(�Y�
�Y�Y�Y�Y�v��
��s�����\��&/��h�'�/��/��	/�
�/� $�
/�
�/�/�/�/�b)=��6�3�;�'�)=�	����H�V�,�h�s�m�X�f�=M�t�S�
�)=�)=�)=�)=�V#��#��#��#��Z�(�	#�

�x��}�j�(�	)�#�#�#�#�#�#r8r4)rrNNNTNF)*r�rX�ioryr1�statr�typingrrrrrr	r
rrr
�pyfakefsr�pyfakefs.fake_filerrrr�pyfakefs.helpersrrrrrr�pyfakefs.fake_filesystemr�openr3r�r�rQr�r7r4r�r8r6�<module>r�s���M�L�����	�	�	�	�	�	�	�	�
�
�
�
������������������������������������������������������������������8�7�7�7�7�7�7�
�'��

2�	1�	1�
1�
1�
1�	1�
1����$��"� �!��!%�#�$�$� �$��S�	�$�����
�$��	$�
�$��s�m�
$�
�S�M�$��c�]�$��$�
�X��$��$��>�2�c�7�"�#�$�$�$�$�Nz#�z#�z#�z#�z#�z#�z#�z#�z#�z#r8