OwlCyberSecurity - MANAGER
Edit File: misc.cpython-312.pyc
� "��g�[ � �� � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Zd dlm Z d dlmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d l,m-Z- d d l.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 d d l5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< g d�Z= ej| e?� Z@ e)d� ZAe'e(eB eBef ZCe'eDeDeDf ZEe'eFe'e$eF e$eF f f ZGeeeeBgef ZHeeeeCgef ZIdZJdeFfd�ZKde'eDdf de'eDeDeDf fd�ZLdeFddfd�ZMdeFfd�ZN e:dd�� dtdeFd eOd!e$eH ddfd"�� ZPd#eddfd$�ZQd#eddfd%�ZReRd&�d'eded(e*eCeBf d!eHddf d)�ZSdeFdeFfd*�ZTdudeFd+eFdeFfd,�ZUd-eFd.e eF deFfd/�ZVd-eFddfd0�ZWd-eFd.e eF deFfd1�ZXd-eFdeFfd2�ZYd-eFdeFfd3�ZZd4eFdeDfd5�Z[d6e\deFfd7�Z]d8e e e de'e"eF e"eD f fd9�Z^deFdeOfd:�Z_eJfd;ed<eDdee`ddf fd=�ZadvdeFd?eOdeFfd@�ZbdeFde'eFeFf fdA�ZcdBeFdCeFddfdD�ZddeFdeOfdE�ZedFedGeddfdH�Zf G dI� dJe� ZgdKedLede(e fdM�ZhdNeFdOe$eD deFfdP�ZidwdQeFdReFdeFfdS�ZjdQeFde'e$eF e$eD f fdT�ZkdQeFdeGfdU�ZldQeFdeFfdV�ZmdWeFdXeeFge'edf f de'eFeGf fdY�ZndQeFdeGfdZ�ZodQeFde'eF fd[�ZpdWeFde'eFeFe'e$eF e$eF f f fd\�ZqdWeFdeFfd]�ZrdWeFdeFfd^�Zsd_e-deFfd`�Zt e d>�a� G db� dc� � ZuddeFdeufde�ZvdWeFdeufdf�ZwdgeOddfdh�Zxdxdi�ZydeOfdj�ZzdydeFdkeDde'eeDf fdl�Z{dme e de!e'eef fdn�Z|doeeAgeOf dme eA de'e eA e eA f fdp�Z} G dq� dre/� Z~dxds�Zy)z� N)� dataclass)�partial)�StringIO)�filterfalse�tee�zip_longest)�Path)�FunctionType� TracebackType)�Any�BinaryIO�Callable� Generator�Iterable�Iterator�List�Mapping�Optional�Sequence�TextIO�Tuple�Type�TypeVar�Union�cast)�Requirement)�BuildBackendHookCaller)�__version__)�CommandError�ExternallyManagedEnvironment)�get_major_minor_version)�WINDOWS)�retry)�running_under_virtualenv)�rmtree�display_path� backup_dir�ask�splitext�format_size�is_installable_dir�normalize_path�renames�get_prog� ensure_dir�remove_auth_from_url�check_externally_managed� ConfiguredBuildBackendHookCaller�T� �returnc �� � t j j t j j t � dd� } t j j | � } dt � d| � dt � � d�S )Nz..zpip z from z (python �))�os�path�join�dirname�__file__�abspathr r! )�pip_pkg_dirs �G/opt/hc_python/lib/python3.12/site-packages/pip/_internal/utils/misc.py�get_pip_versionr@ L sX � ��'�'�,�,�r�w�w���x�8�$��E�K��'�'�/�/�+�.�K� �+��f�[�M��;R�;T�:U�UV�W�W� �py_version_info.c � � t | � dk r| dt | � z dz z } nt | � dkD r| dd } t d| � S )ax Convert a tuple of ints representing a Python version to one of length three. :param py_version_info: a tuple of ints representing a Python version, or None to specify no version. The tuple can have any length. :return: a tuple of length three if `py_version_info` is non-None. Otherwise, return `py_version_info` unchanged (i.e. None). � )r N�VersionInfo)�lenr )rB s r? �normalize_version_inforG S sP � � �?��a���A��O� 4�4��<�<�� �_� �� !�)�"�1�-��� ��/�/rA r9 c �� � t j | � y# t $ rJ}|j t j k7 r#|j t j k7 r� Y d}~yY d}~yd}~ww xY w)z os.path.makedirs without EEXIST.N)r8 �makedirs�OSError�errno�EEXIST� ENOTEMPTY)r9 �es r? r/ r/ f sN � �� ���D���� ��7�7�e�l�l�"�q�w�w�%�/�/�'A�� (B�"���s � � A+�;A&�&A+c �� � t j j t j d � } | dv rt j � d�S | S # t t t f$ r Y yw xY w)Nr )z__main__.pyz-cz -m pip�pip) r8 r9 �basename�sys�argv� executable�AttributeError� TypeError� IndexError)�progs r? r. r. p s_ � � ��w�w��������,���(�(��n�n�%�W�-�-��K���I�z�2� ��� �s �AA � A �A"�!A"rD g �?)�stop_after_delay�wait�dir� ignore_errors�onexcc �� � |rt }|�t }t t |�� }t j dk\ rt j | |�� y t j | |�� y )N�r] )rD � )�onerror)�_onerror_ignore�_onerror_reraiser �rmtree_errorhandlerrR �version_info�shutilr% )r[ r\ r] �handlers r? r% r% } sM � � ����}� ���0��>�G� ���7�"�� � �c��)�� � �c�7�+rA �_argsc � � y �N� �rh s r? rb rb � s � �rA c � � � rj rk rl s r? rc rc � s � � rA r_ �func�exc_infoc �h � t j |� j }|t j z s2 t j ||t j z � | |� yt |t � s|\ }}} || ||� y# t $ r Y yw xY w# t $ r Y �;w xY w# t $ r Y �Jw xY w)a1 `rmtree` error handler to 'force' a file remove (i.e. like `rm -f`). * If a file is readonly then it's write flag is set and operation is retried. * `onerror` is the original callback from `rmtree(... onerror=onerror)` that is chained at the end if the "rm -f" still fails. N)r8 �stat�st_moderJ �S_IWRITE�chmod� isinstance� BaseException)rn r9 ro r] rr �_s r? rd rd � s� � � ��'�'�$�-�'�'�� �T�]�]�"� ��H�H�T�7�T�]�]�2�3� ��T� �� �h� �.�!���8�Q� �$��h���) � ���� � �� �� � �� �s4 �B �'B% �B � B�B� B"�!B"�% B1�0B1c �@ � t j j t j j | � � } | j t j � t j j z � r#d| t t j � � d z } | S )zTGives the display value for a given path, making it relative to cwd if possible.�.N)r8 r9 �normcaser= � startswith�getcwd�seprF �r9 s r? r&