
    5>qjp                        d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d d	lmZ e	rd d
lmZ e
d   ZddZ G d d      Z G d de      Z G d ded   ej6                        Zy)    )annotationsN)Iterable)AbstractContextManager)TYPE_CHECKINGLiteralProtocol)Version)
get_scheme)get_default_environmentget_environment)get_requirement)InstallRequirement)offvirtualvenvc                    | |k7  r| |fS | fS N )abs     [/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/build_env/base.py_dedupr      s    !VAq6%!%    c                      e Zd ZddddZy)PrefixN)venv_executablec                   || _         d| _        t        d|      }|j                  | _        t        |j                  |j                        | _        || _	        y )NF )prefix)
pathsetupr
   scriptsbin_dirr   purelibplatliblib_dirsr   )selfr    r   schemes       r   __init__zPrefix.__init__   sE    	
Bt,~~v~~v~~>.r   )r    strr   z
str | NonereturnNone)__name__
__module____qualname__r)   r   r   r   r   r      s
    CG /r   r   c                  ,    e Zd ZdZ	 	 	 	 	 	 	 	 	 	 ddZy)BuildEnvironmentInstallerz]
    Interface for installing build dependencies into an isolated build
    environment.
    c                    y r   r   )r'   requirementsr   kindfor_reqs        r   installz!BuildEnvironmentInstaller.install*   s     r   N)
r3   Iterable[str]r   r   r4   r*   r5   InstallRequirement | Noner+   r,   )r-   r.   r/   __doc__r6   r   r   r   r1   r1   $   s<    
# 
  + 
r   r1   c                      e Zd ZU dZded<   ded<   ej                  dd       Z	 	 	 	 ddZej                  dd		 	 	 	 	 	 	 	 	 dd
       Z	y)BuildEnvironmentzACreates and manages an isolated environment to install build depsz	list[str]r&   r*   python_executablec                     y r   r   )r'   	installers     r   r)   zBuildEnvironment.__init__:   s    >Ar   c                |   t               }t               }|r"t        | d      rt        | j                        n	t	               }|D ]  }t        |      }|j                  |j                  j                  ddi      s8|j                  |j                        }|s|j                  |       gt        |j                  t              r|j                   d|j                   }n|j                   d|j                   }|j                  j                  |j                  d      r|j                  ||f        ||fS )zReturn 2 sets:
        - conflicting requirements: set of (installed, wanted) reqs tuples
        - missing requirements: set of reqs
        r&   extrar   z==z===T)prereleases)sethasattrr   r&   r   r   markerevaluateget_distributionnameadd
isinstanceversionr	   	specifiercontains)	r'   reqsmissingconflictingenvreq_strreqdistinstalled_req_strs	            r   check_requirementsz#BuildEnvironment.check_requirements=   s    %e 4,  .,. 
   B%g. ::)#**2E2EwPRm2T++CHH5KK(dllG4+.88*Bt||n(E%+.88*C~(F%}}--dll-MOO%6$@AB" G##r   N)r5   c                    y r   r   )r'   r3   prefix_as_stringr4   r5   s        r   install_requirementsz%BuildEnvironment.install_requirements_   s     r   )r>   r1   )rM   r7   r+   z%tuple[set[tuple[str, str]], set[str]])
r3   r7   rW   r*   r4   r*   r5   r8   r+   r,   )
r-   r.   r/   r9   __annotations__abcabstractmethodr)   rU   rX   r   r   r   r;   r;   4   s    KA A $! $	. $D 	 .2# 
  + 
 r   r;   )	metaclass)r   r*   r   r*   r+   ztuple[str] | tuple[str, str])
__future__r   rZ   collections.abcr   
contextlibr   ContextManagertypingr   r   r   pip._vendor.packaging.versionr	   pip._internal.locationsr
   pip._internal.metadatar   r   pip._internal.utils.packagingr   pip._internal.req.req_installr   BuildIsolationModer   r   r1   ABCMetar;   r   r   r   <module>ri      si    " 
 $ ? 3 3 1 . K 9@ 56 &/ /  3~d+s{{ 3r   