OwlCyberSecurity - MANAGER
Edit File: filesystem.cpython-312.pyc
� ����S;0hV��������������� ������������d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZ�d�dlmZ�d�dl m Z mZmZm Z mZmZ�d�dlmZ�d�dlmZ�d�dlmZ�ded efd �Zedede d eeddf���fd���������Z��ed d��������ej4�������������������������Zded efd�Zded efd�Zdeded e e���fd�Zded eeef���fd�Z ded efd�Z!ded eeef���fd�Z"ded efd�Z#y)�����N)�contextmanager)�NamedTemporaryFile)�Any�BinaryIO� Generator�List�Union�cast)�get_path_uid)�format_size)�retry�path�returnc�����������������������t���������j������������������dk(��st��������t��������d�������syt��������j������������������j������������������|��������sJ��d�}|�|k7��r�t��������j������������������j ������������������|��������rLt��������j��������������������������dk(��r �t��������|��������}|dk(��S�t��������j������������������|�t��������j�������������������������S�|�t��������j������������������j������������������|��������}�}|�|k7��r��y#�t��������$�r�Y�yw�xY�w)N�win32�geteuidTr���F) �sys�platform�hasattr�osr����isabs�lexistsr���r����OSError�access�W_OK�dirname)r����previous�path_uids��� �M/opt/hc_python/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py�check_path_ownerr ������s���������|�|�w��g�b�)�&<�� �7�7�=�=������H� �(� � �7�7�?�?�4� ��z�z�|�q� �!�+�D�1�H�� �1�}�$��y�y��r�w�w�/�/�!�2�7�7�?�?�4�#8�d�H���(� �������!� �!�s����C �� C,�+C,�kwargsc��������������+�������K����t��������ddt��������j������������������j������������������|��������t��������j������������������j ������������������|��������dd�|��5�}t��������t��������|�������} �|���|j���������������������������t��������j������������������|j���������������������������������� �ddd��������y#�|j���������������������������t��������j������������������|j����������������������������������w�xY�w#�1�sw�Y���yxY�w�w)a%��Return a file-like object pointing to a tmp file next to path. The file is created securely and is ensured to be written to disk after the context reaches its end. kwargs will be passed to tempfile.NamedTemporaryFile to control the way the temporary file will be opened. Fz.tmp)�delete�dir�prefix�suffixN��) r���r���r���r����basenamer ���r����flush�fsync�fileno)r���r!����f�results��� r����adjacent_tmp_filer.���*���s����������� �� ���G�G�O�O�D�!��w�w����%�� � �� �� ��h��"�� &��L��L�L�N��H�H�V�]�]�_�%� �� ��� �L�L�N��H�H�V�]�]�_�%�� �� �s6����AC$� C�B �#3C� C$� 5C�C�C!�C$����g�������?)�stop_after_delay�waitc������������������R����t���������j������������������j������������������|��������sGt���������j������������������j������������������|��������}||�k(��rn"|}�t���������j������������������j������������������|��������s�Gt���������j������������������dk(��r$t��������j ������������������|�t���������j�������������������������S�t��������|��������S�)zgCheck if a directory is writable. Uses os.access() on POSIX, tries creating files on Windows. �posix)r���r����isdirr����namer���r����_test_writable_dir_win)r����parents��� r����test_writable_dirr8���H���su��������g�g�m�m�D�!�������&���T�>���� ��g�g�m�m�D�!�� �w�w�'���y�y��r�w�w�'�'�!�$�'�'�����c������������������������d}d�t��������d�������D�]���}|dj�������������������fd�t��������d�������D����������������z���}t��������j������������������j������������������|�|�������} �t��������j������������������|t��������j ������������������t��������j������������������z��t��������j������������������z���������}t��������j������������������|��������t��������j������������������|���������y�t��������d ��������#�t��������$�r�Y���t��������$�r�Y��yw�xY�w) N�(accesstest_deleteme_fishfingers_custard_�$abcdefghijklmnopqrstuvwxyz0123456789� �����c��������������3����H����K����|�]��}t��������j�������������������������������y��w�N)�random�choice)�.0�_�alphabets��� �r���� <genexpr>z)_test_writable_dir_win.<locals>.<genexpr>`���s����������!L�8�a�&�-�-��"9�8�s����"����TFz3Unexpected condition testing for writable directory) �range�joinr���r����open�O_RDWR�O_CREAT�O_EXCL�close�unlink�FileExistsError�PermissionErrorr���)r���r(���rD���r5����file�fdrE���s��� @r���r6���r6���Z���s���������:�H�5�H� �2�Y���"�'�'�!L�5��8�!L�L�L���w�w�|�|�D�$�'�� �����r�y�y�2�:�:�5�� � �A�B�B�� �H�H�R�L��I�I�d�O��#��(��G� H�H����� ���� ��� �s����AC� C0�$C0�/C0�patternc������������������������g�}t��������j������������������|��������D�]6��\���}}t��������j������������������||�������}|j �������������������fd�|D������������������8�|S�)z�Returns a list of absolute paths of files beneath path, recursively, with filenames which match the UNIX-style shell glob pattern.c��������������3����^����K����|�]$��}t���������j������������������j�������������������|�����������&�y��wr@���)r���r���rI���)rC���r,����roots��� �r���rF���zfind_files.<locals>.<genexpr>|���s!����������=�W��b�g�g�l�l�4��+�W�s����*-)r����walk�fnmatch�filter�extend)r���rT���r-���rD����files�matchesrW���s��� @r���� find_filesr^���v���sK���������F��'�'�$�-���a���.�.���0��� � �=�W�=�=��(���Mr9���c�����������������������t���������j������������������j������������������|��������ryt���������j������������������j������������������|��������S�)Nr���)r���r����islink�getsize�r���s��� r���� file_sizerc�������s(������ �w�w�~�~�d��� �7�7�?�?�4� � r9���c������������������*�����t��������t��������|���������������S�r@���)r���rc���rb���s��� r����format_file_sizere�������s�������y���'�'r9���c�����������������������d}t��������j������������������|��������D�];��\��}}}|D�]0��}t���������j������������������j������������������||�������}|t ��������|�������z ��}�2��=�|S�)Ng��������)r���rX���r���rI���rc���)r����sizerW����_dirsr\����filename� file_paths��� r����directory_sizerk�������sT�������D� �g�g�d�m���e�U��H������T�8�4�I��I�i�(�(�D����,���Kr9���c������������������*�����t��������t��������|���������������S�r@���)r���rk���rb���s��� r����format_directory_sizerm�������s�������~�d�+�,�,r9���)$rY���r����os.pathrA���r���� contextlibr����tempfiler����typingr���r���r���r���r ���r ����pip._internal.utils.compatr����pip._internal.utils.miscr����pip._internal.utils.retryr ����str�boolr ���r.����replacer8���r6���r^����int�floatrc���re���rk���rm���r'���r9���r����<module>rz������s/������� ���� �� ��%��'��>��>��3��0��+��3���4���6��&�C��&�3��&�9�X�t�T�=Q�3R��&���&�0�/�%��� .�r�z�z� :�� (�C��(�D��(�$I���I���I�8�S���3���4��9���!�C��!�E�#�u�*�-��!�(�3��(�3��(������s�E�z�!2���-���-���-r9���