<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
ReR                 @   s   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ erd dlmZ d dlmZmZmZmZmZmZ d dlmZ d d	lmZ ejeZejd
d Zejdd ZG dd de Z!dS )    )absolute_importN)contextlib2)TempDirectory)MYPY_CHECK_RUNNING)TracebackType)DictIteratorOptionalSetTypeUnion)InstallRequirement)Linkc              k   s   t j}t }i }xJ| j D ]>\}}y|| ||< W n tk
rN   |||< Y nX |||< qW z
d V  W d x:|j D ].\}}||kr||= qrt|tst|||< qrW X d S )N)osenvironobjectitemsKeyError
isinstancestrAssertionError)changestargetnon_existent_markersaved_valuesname	new_valueoriginal_value r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/req/req_tracker.pyupdate_env_context_manager   s     
r    c              c   st   t jjd} tj V}| d krL|jtddj} |jt| d t	j
d|  t| }|V  W d Q R X W d Q R X d S )NPIP_REQ_TRACKERzreq-tracker)kind)r!   z Initialized build tracking at %s)r   r   getr   	ExitStackenter_contextr   pathr    loggerdebugRequirementTracker)rootctxtrackerr   r   r   get_requirement_tracker2   s    

r-   c               @   sR   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jdd ZdS )r)   c             C   s    || _ t | _tjd| j  d S )NzCreated build tracker: %s)_rootset_entriesr'   r(   )selfr*   r   r   r   __init__D   s    zRequirementTracker.__init__c             C   s   t jd| j | S )NzEntered build tracker: %s)r'   r(   r.   )r1   r   r   r   	__enter__J   s    zRequirementTracker.__enter__c             C   s   | j   d S )N)cleanup)r1   exc_typeexc_valexc_tbr   r   r   __exit__O   s    zRequirementTracker.__exit__c             C   s$   t j|jj j }tjj| j|S )N)	hashlibsha224url_without_fragmentencode	hexdigestr   r&   joinr.   )r1   linkhashedr   r   r   _entry_pathX   s    zRequirementTracker._entry_pathc             C   s   |j s
t| j|j }y t|}|j }W dQ R X W n0 tk
rf } z|jtjkrV W Y dd}~X nX dj|j |}t	||| j
kstt|d}|jt| W dQ R X | j
j| tjd|| j dS )z5Add an InstallRequirement to build tracking.
        Nz{} is already being built: {}wzAdded %s to build tracker %r)r?   r   rA   openreadIOErrorerrnoENOENTformatLookupErrorr0   writer   addr'   r(   r.   )r1   req
entry_pathfpcontentsemessager   r   r   rK   ]   s     


zRequirementTracker.addc             C   s<   |j s
ttj| j|j  | jj| tjd|| j	 dS )z:Remove an InstallRequirement from build tracking.
        z Removed %s from build tracker %rN)
r?   r   r   unlinkrA   r0   remover'   r(   r.   )r1   rL   r   r   r   rS   ~   s    
zRequirementTracker.removec             C   s0   xt | jD ]}| j| qW tjd| j d S )NzRemoved build tracker: %r)r/   r0   rS   r'   r(   r.   )r1   rL   r   r   r   r4      s    zRequirementTracker.cleanupc             c   s   | j | d V  | j| d S )N)rK   rS   )r1   rL   r   r   r   track   s    
zRequirementTracker.trackN)__name__
__module____qualname__r2   r3   r8   rA   rK   rS   r4   
contextlibcontextmanagerrT   r   r   r   r   r)   B   s   	!r)   )"
__future__r   rX   rF   r9   loggingr   pip._vendorr   pip._internal.utils.temp_dirr   pip._internal.utils.typingr   typesr   typingr   r   r	   r
   r   r   Zpip._internal.req.req_installr   pip._internal.models.linkr   	getLoggerrU   r'   rY   r    r-   r   r)   r   r   r   r   <module>   s"    
