
    5>qjֈ                       d Z ddlm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 ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddl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&m'Z' ddl(m)Z)m*Z* ddl+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZB ddlCmDZD ddlEmFZFmGZGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZO dd lPmQZQ erdd!lRmSZS  e<eT      ZU	 	 	 	 	 	 	 	 	 	 	 	 	 	 d/d"ZVd0d#ZWe	 G d$ d%             ZX	 	 d1	 	 	 	 	 	 	 	 	 d2d&ZY	 d1	 	 	 	 	 	 	 d3d'ZZ	 	 d1	 	 	 	 	 	 	 	 	 	 	 	 	 d4d(Z[	 d5	 	 	 	 	 	 	 	 	 d6d)Z\d7d*Z]	 	 	 	 	 	 	 	 d8d+Z^	 	 	 	 	 	 	 	 d9d,Z_ G d- d.      Z`y):z(Prepares a distribution for installation    )annotationsN)Iterable)	dataclass)Path)TYPE_CHECKING)InvalidRequirementcanonicalize_name)BuildEnvironmentInstallerBuildIsolationMode))make_distribution_for_install_requirement)InstalledDistribution)	DirectoryUrlHashUnsupportedHashMismatchHashUnpinnedInstallationErrorMetadataInconsistentMetadataInvalidNetworkConnectionErrorSidecarMetadataInconsistentVcsHashUnsupported)PackageFinder)BaseDistributionget_metadata_distribution)ArchiveInfo	DirectUrl)Linkjoin_within_directory)Wheel)
Downloader)HTTPRangeRequestUnsupporteddist_from_wheel_url)
PipSession)BuildTracker)InstallRequirement)	getLogger)direct_url_for_editabledirect_url_from_link)HashesMissingHashes)
indent_log)display_path	hash_filehide_urlredact_auth_from_requirement)get_requirement)TempDirectory)unpack_file)vcs)BarTypec                   t        |       }|j                  }|?|j                  | |      5  |j                  ||||       ddd       |j	                         S |j	                         S # 1 sw Y   |j	                         S xY w)z(Prepare a distribution for installation.N)r   build_tracker_idtrackprepare_distribution_metadatar   )reqbuild_trackerbuild_env_installerbuild_isolationcheck_build_depsallow_editablesabstract_dist
tracker_ids           _/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py_get_prepared_distributionrB   E   s     >cBM//J  j1 	77#_6F	 2244=2244		 2244s   A))Bc                    t        j                  | j                        }|J |j                  |t	        | j
                        |       y )N)url	verbosity)r3   get_backend_for_schemeschemeunpackr.   rD   )linklocationrE   vcs_backends       rA   unpack_vcs_linkrL   X   s@    ,,T[[9K"""xXdhh%79M    c                  .    e Zd ZU ded<   dZded<   ddZy)FilestrpathN
str | Nonecontent_typec                    | j                   )	 t        j                  | j                        d   | _         y y # t        $ r Y y w xY w)Nr   )rS   	mimetypes
guess_typerQ   OSError)selfs    rA   __post_init__zFile.__post_init__c   sH    $$-$8$8$CA$F!	 %
  s   '7 	AA)returnNone)__name__
__module____qualname____annotations__rS   rY    rM   rA   rO   rO   ^   s    
I#L*#rM   rO   c                    t        dd      }d }|rt        | ||      }|r|}d }n) || |j                        \  }}|r|j                  |       t	        ||      S )NrH   Tkindglobally_managed)r1   _check_download_dirrQ   check_against_pathrO   )rI   downloaddownload_dirhashestemp_diralready_downloaded_path	from_pathrS   s           rA   get_http_urlrm   m   sj     (TBH""5dL&"Q+	 #+4"?	<%%i0	<((rM   c                    d}|rt        | ||      }|r|}n| j                  }|r|j                  |       t        |d      S )z'Get file and optionally check its hash.N)re   	file_pathrf   rO   )rI   rh   ri   rk   rl   s        rA   get_file_urlrp      sM    
 #"5dL&"Q+	NN	 !!),	4  rM   c                   | j                   rt        | ||       y| j                         rJ | j                  rt	        | ||      }nt        | |||      }| j                  s!t        |j                  ||j                         |S )a_  Unpack link into location, downloading if required.

    :param hashes: A Hashes object, one of whose embedded hashes must match,
        or HashMismatch will be raised. If the Hashes is empty, no matches are
        required, and unhashable types of requirements (like VCS ones, which
        would ordinarily raise HashUnsupported) are allowed.
    )rE   Nri   )
is_vcsrL   is_existing_diris_filerp   rm   is_wheelr2   rQ   rS   )rI   rJ   rg   rE   rh   ri   files          rA   
unpack_urlrx      s      {{h)<##%%% ||D,v> 	
 ==DIIx):):;KrM   c                B   t        || j                        }t        j                  j	                  |      syt
        j                  d|       |r	 |j                  |       |S |S # t        $ r0 |rt
        j                  d|       t        j                  |       Y yw xY w)zCheck download_dir for previously downloaded file with correct hash
    If a correct file is found return its path else None
    NzFile was already downloaded %sz;Previously-downloaded file %s has bad hash. Re-downloading.)r   filenameosrQ   existsloggerinforf   r   warningunlink)rI   rh   ri   warn_on_hash_mismatchdownload_paths        rA   re   re      s     *,FM77>>-( KK0-@		%%m4 =  	$Q! IIm$	s   A% %6BBc                   t        |       }t        |j                        g}|j                  r@t	        d |j                  D              }|j                  ddj                  |       d       |j                  r$|j                  t        |j                               |j                  r|j                  d|j                          |j                  r|j                  d|j                          dj                  |      S )aa  Return a normalized form of a PEP 508 requirement string.

    Used to compare ``Requires-Dist`` entries from two sources of metadata
    for the same distribution without being confused by superficial
    differences in name casing, extra casing, or extras ordering. May raise
    ``InvalidRequirement`` if ``raw`` is not a valid PEP 508 string.

    TODO: once https://github.com/pypa/packaging/pull/1278 is released and
    vendored, ``Requirement.__eq__`` will canonicalize requested extras and
    this manual normalization can be dropped in favour of comparing
    ``Requirement`` objects directly.
    c              3  2   K   | ]  }t        |        y w)Nr	   ).0es     rA   	<genexpr>z,_canonicalize_requirement.<locals>.<genexpr>   s     "OA#4Q#7"Os   [,]z @ z;  )r0   r
   nameextrassortedappendjoin	specifierrP   rD   marker)rawparsedpartsnormalized_extrass       rA   _canonicalize_requirementr      s     S!F)&++67E}}""O"OOq"345Q78S))*+zzs6::,'(}}r&--)*775>rM   c           	         t               }|j                         D ]+  }	 |j                  t        |j	                                      - t        |      S # t
        $ r}t        | d| d|       d}~ww xY w)zReturn the canonicalized ``Requires-Dist`` entries of ``dist``.

    ``source`` describes which metadata file ``dist`` was parsed from, for
    use in error messages.
    zRequires-Dist in z: N)setiter_raw_dependenciesaddr   stripr   r   	frozenset)r9   distsource	canonicalr   r   s         rA   _canonical_requiresr     s     %I))+ J	J MM3CIIK@AJ Y " 	J!#):6("QC'HII	Js   (A	A4A//A4c                n   t        |j                        }t        |j                        }||k7  rt        | d||      |j                  |j                  k7  r4t        | dt	        |j                        t	        |j                              t        | |d      }t        | |d      }||k7  rDt        | ddj                  t        ||z
              dj                  t        ||z
                    |j                  |j                  k7  r4t        | dt	        |j                        t	        |j                              t        |j                               }t        |j                               }||k7  rDt        | ddj                  t        ||z
              dj                  t        ||z
                    y	)
ap  Check that a .metadata-based distribution matches the wheel's METADATA.

    Compare ``Name``, ``Version``, ``Requires-Dist``, ``Requires-Python``
    and ``Provides-Extra`` between the two and abort the install on any
    mismatch as PEP 658 requires the metadata files "MUST be identical".

    While the PEP doesn't mandate that consumers enforce the identical
    requirement, it's good nonetheless to check to prevent confusing
    behaviour when an index misbehaves.

    Also note for name and version, pip usually rejects wheels if they're
    inconsistent already. Checking them again here is purely defensive.
    NameVersionzthe PEP 658 .metadata filezthe wheel's METADATAzRequires-Distz, zRequires-PythonzProvides-ExtraN)r
   raw_namer   versionrP   r   r   r   requires_pythonr   iter_provided_extras)	r9   sidecar_dist
wheel_distsidecar_name
wheel_namesidecar_requireswheel_requiressidecar_extraswheel_extrass	            rA   _check_sidecar_matches_wheelr     s   & %\%:%:;L":#6#67Jz!)#v|ZPPz111)$$%
""#	
 	
 +\7 )j:PQN>))IIf->?@IIf^.>>?@	
 	
 ##z'A'AA),,-
**+	
 	
 |@@BCNZ<<>?L%)IIf^l:;<IIf\N:;<	
 	
 &rM   c                  >    e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZddZ	 	 	 	 	 	 ddZddZ	 	 	 	 ddZ	 	 	 	 ddZ		 	 	 	 ddZ
	 d	 	 	 	 	 dd	Z	 d	 	 	 	 	 dd
Z	 d	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZ	 	 	 	 ddZ	 	 	 	 	 	 ddZ xZS )RequirementPreparerzPrepares a Requirementc               2   t         |           || _        || _        || _        || _        t        ||	      | _        |
| _        || _	        || _
        || _        || _        || _        || _        || _        || _        || _        i | _        d| _        || _        y )N)r   r   )super__init__src_dir	build_dirr:   _sessionr    	_downloadfinderrh   r<   r;   r=   require_hashesuse_user_siteuse_lazy_wheelrE   legacy_resolver_downloaded_previous_requirement_headerr>   )rX   r   rh   r   r<   build_isolation_installerr=   r:   sessionprogress_barr   r   r   
lazy_wheelrE   r   r>   	__class__s                    rA   r   zRequirementPreparer.__init__Y  s    ( 	"*#G\: )  /#<  !1 - + ) #  / ,. -5)  /rM   c                   |j                   j                  r7|j                  s+d}t        t	        |j                   j
                              }n.d}|j                  rt        |j                        n
t        |      }|j                  rX|j                  rLt        |j                  t              r|j                  }n|j                  j                         }|r	|d| dz  }||f| j                  k7  r||f| _        t        j                  ||       |j                  r>t               5  t        j                  d|j                   j                         ddd       yy# 1 sw Y   yxY w)z3Provide context for the requirement being prepared.zProcessing %szCollecting %sz (from )zUsing cached %sN)rI   ru   is_wheel_from_cacherP   r,   ro   r9   r/   
comes_from
isinstancerl   r   r}   r~   r+   rz   )rX   r9   messageinformationr   s        rA   _log_preparing_linkz'RequirementPreparer._log_preparing_link  s   88C$;$;%Gl388+=+=>?K%GCF776sww?PSTWPXK 77s~~#..#.),
 ^^557
A66[!T%F%FF18+0FD-KK-"" B-sxx/@/@AB B #B Bs   &+EE$c                   |j                   j                  ry|j                  J |j                   j                         r|j                   j                  |_        y|j                  | j                  d|       |j                          y)z1Ensure source_dir of a linked InstallRequirement.NT)
autodeleteparallel_builds)rI   rv   
source_dirrt   ro   ensure_has_source_dirr   ensure_pristine_source_checkout)rX   r9   r   s      rA   _ensure_link_req_src_dirz,RequirementPreparer._ensure_link_req_src_dir  sz    
 88 ~~%%%88##% XX//CN 	!!NN+ 	" 	

 	++-rM   c                F   | j                   s|j                  d      S |j                  j                  r
t	               |j                  j                         r
t               |j                  s|j                  s
t               |j                  d      xs
 t               S )NT)trust_internetF)r   ri   rI   rs   r   rt   r   	is_direct	is_pinnedr   r*   rX   r9   s     rA   _get_linked_req_hashesz*RequirementPreparer._get_linked_req_hashes  s~     ""::T:22 88??$&&88##%-// }}S]].  zzz/B=?BrM   c                    | j                   rt        j                  d       y | j                  rt        j                  d       y | j	                  |      xs | j                  |j                        S )Nz9Metadata-only fetching is not used in the legacy resolverz?Metadata-only fetching is not used as hash checking is required)r   r}   debugr   $_fetch_metadata_using_link_data_attr _fetch_metadata_using_lazy_wheelrI   r   s     rA   _fetch_metadata_onlyz(RequirementPreparer._fetch_metadata_only  sk     LLK LLQ 88
 =22388<	=rM   c                   |j                   j                         }|y|j                  J t        j	                  d|j                  |       t        || j                  |j                               }t        |j                  d      5 }|j                         }ddd       t        |j                   j                  |j                  j                        }t        |j                        t        |j                  j                        k7  r,t!        |d|j                  j                  |j                        |S # 1 sw Y   xY w)zGFetch metadata from the data-dist-info-metadata attribute, if possible.Nz/Obtaining dependency information for %s from %srr   rbr   )rI   metadata_linkr9   r}   verboserm   r   	as_hashesopenrQ   readr   rz   r   r
   r   r   )rX   r9   r   metadata_filefmetadata_contentsmetadata_dists          rA   r   z8RequirementPreparer._fetch_metadata_using_link_data_attr  s    ..0 ww"""=GG	
 %NN **,

 -$$d+ 	)q !	) 2HHGGLL
 ]3348I#'',,8WW&VSWW\\=+A+A  %	) 	)s   	D::Ec                   | j                   sy|j                  s|j                  st        j	                  d|       yt        |j                        }|j                  }t        j                  d||j                         |j                  j                  dd      d   }	 t        ||| j                        S # t        $ r t        j	                  d|       Y yw xY w)z-Fetch metadata using lazy wheel, if possible.Nz=Lazy wheel is not used as %r does not point to a remote wheelz+Obtaining dependency information from %s %s#   r   z"%s does not support range requests)r   ru   rv   r}   r   r   rz   r   r~   r   rD   splitr"   r   r!   )rX   rI   wheelr   rD   s        rA   r   z4RequirementPreparer._fetch_metadata_using_lazy_wheel(  s     ""<<t}}LLO dmm$zz9MM	

 hhnnS!$Q'	&tS$--@@* 	LL=sC	s   B6 6CCc                   t        dd      j                  }i }|D ]  }|j                  sJ |||j                  <   ! | j                  j	                  |j                         |      }|D ]u  \  }\  }}	t        j                  d||       ||   }||_        || j                  |j                  j                  <   |j                  r\|j                  t        |             w |D ]  }| j                  ||        y)z>Download any requirements which were only fetched by metadata.rH   Trb   zDownloading link %s to %sN)r1   rQ   rI   r   batchkeysr}   r   local_file_pathr   rD   rv   needs_unpacked_archiver   _prepare_linked_requirement)
rX   partially_downloaded_reqsr   rj   links_to_fully_downloadr9   batch_downloadrI   filepath_s
             rA   _complete_partial_requirementsz2RequirementPreparer._complete_partial_requirementsE  s     !hFKK
 CE, 	4C88O803#CHH-	4 --.E.J.J.LhW#1 	;D-8QLL4dHE)$/C #+C .6DSXX\\* <<**4>:	;& - 	CC,,S/B	CrM   c                   |j                   sJ | j                  |       t               5  d}| j                  U|j                   j                  r?| j                  |      }t        |j                   | j                  ||j                         }|$|| j                  |j                   j                  <   ng| j                  |      }|Td|_        |j                  |       |j                  %t        |j                   |j                        |_        |cddd       S | j!                  ||      cddd       S # 1 sw Y   yxY w)z3Prepare a requirement to be obtained from req.link.N)r   T)rI   r   r+   rh   rv   r   re   r   r   rD   r   needs_more_preparationset_distdownload_infor(   r   r   )rX   r9   r   ro   ri   r   s         rA   prepare_linked_requirementz.RequirementPreparer.prepare_linked_requirementn  s-    xxx  %\ $	J I  ,1B1B44S9/HH%% /2.E.E*E	 $1:  . !% 9 9# > ,15C.LL/((0,@HHcnn-) )C$	J $	JH 33CII$	J $	J $	Js   C'D6D66D?c                   |D cg c]  }|j                   s| }}|D ]  }| j                  |j                  j                  s'| j	                  |      }t        |j                  | j                  |      }|\|| j                  |j                  j                  <   d|_          g }|D ]2  }|j                   r|j                  |       !| j                  ||       4 | j                  ||       yc c}w )z,Prepare linked requirements more, if needed.NF)r   )r   rh   rI   rv   r   re   r   rD   r   r   r   )rX   reqsr   r9   ri   ro   r   s          rA    prepare_linked_requirements_morez4RequirementPreparer.prepare_linked_requirements_more  s      $Bs'A'ABB 	7C  ,1B1B44S9/$:K:KVT	(5>D$$SXX\\216C.	7 ?A! 	GC)))00500oF		G 	++%+ 	, 	
+ Cs
   C4C4c           	        |j                   sJ |j                   }| j                  |      }|r|j                  r|j                  J |j                  sJ |j
                  sJ |j                  j                  rR|j                  j                  j                  r2|j                  |j                  j                  j                        rd }n2t        j                  d       |j                  |_         |j                   }| j                  ||       |j                         rd }n|j                  | j                  vr:	 t!        ||j"                  | j$                  | j&                  | j(                  |      }n9| j                  |j                     }|r|j/                  |       t1        |d       }|j                  |j2                  rJ t5        ||j"                        |_        |j                  j                  r|j                  j                  j                  so|rmt7        |j8                        d   j;                         }t=        |j                  j                  t?        d|i      |j                  j@                  	      |_        |r|j8                  |_!        tE        || jF                  | jH                  | jJ                  | jL                  | jN                        }	|j                  rA|jP                  5|jP                  |	ur'|jS                         tU        ||jP                  |	       |	S # t*        $ r}t-        d| d| d|       d }~ww xY w)
NzyThe hashes of the source archive found in cache entry don't match, ignoring cached built wheel and re-downloading source.zCould not install requirement z because of HTTP error z	 for URL )rS   r   sha256rr   )rD   archive_infosubdirectory)+rI   r   r   r   rv   ru   r  ri   
has_one_ofr}   r   cached_wheel_source_linkr   rt   rD   r   rx   r   r   rE   rh   r   r   rf   rO   editabler(   r-   rQ   	hexdigestr   r   r  r   rB   r:   r;   r<   r=   r>   _distributionr   r   )
rX   r9   r   rI   ri   
local_fileexcro   hashr   s
             rA   r   z/RequirementPreparer._prepare_linked_requirement  s    xxxxx,,S1c--$$000== =<<< !!..%%2299%%c&7&7&D&D&K&KL 1
 77xx%%c?;!JXXT---'NNNNNN%%
 ((2I)))4id;J $ ||## 4T3>> JC !!..))66== 1!4>>@ %.))--!,Xt4D!E!$!2!2!?!?%! ",//C)$$  !!  
, MM!!-!!-""$0(c.?.?FK * '4SE : E4&2 s   <8L, ,	M5M		Mc                F   | j                   J |j                  J |j                  }|j                  s|j                         r(|j                  r|j                  | j                          y |j                         rt        j                  d|       y |j                  y t        | j                   |j                        }t        j                  j                  |      sBt        j                  |j                  |       t!        |      }t        j#                  d|       y y )NzENot copying link to destination directory since it is a directory: %szSaved %s)rh   rI   rs   rt   r  archiver}   r   r   r   rz   r{   rQ   r|   shutilcopyr,   r~   )rX   r9   rI   download_locationr   s        rA   save_linked_requirementz+RequirementPreparer.save_linked_requirement.  s      ,,,xx###xx;;4//1cllKK))*!LL.
 &1$2C2CT]]Sww~~/0KK++->?():;MKK
M2 1rM   c           	     .   |j                   sJ d       t        j                  d|       t               5  | j                  rt        d| d      |j                  | j                         |j                          |j                  sJ t        |j                        |_        t        || j                  | j                  | j                   | j"                  | j$                        }|j'                  | j(                         ddd       |S # 1 sw Y   S xY w)z Prepare an editable requirement.z-cannot prepare a non-editable req as editablezObtaining %szThe editable requirement zT cannot be installed when requiring hashes, because there is no single file to hash.N)r  r}   r~   r+   r   r   r   r   update_editabler   r'   unpacked_source_directoryr   rB   r:   r;   r<   r=   r>   check_if_existsr   )rX   r9   r   s      rA   prepare_editable_requirementz0RequirementPreparer.prepare_editable_requirementH  s    
 ||LLL|NC(\ 	4""'/u 5  
 %%dll3!>>!> 78U8U VC-""(($$%%$$D  2 23+	4. /	4. s   CD

Dc                `   |j                   sJ d       |J d|j                           t        j                  d|||j                   j                         t	               5  | j
                  rt        j                  d       t        |      j                         cddd       S # 1 sw Y   yxY w)z)Prepare an already-installed requirement.z(req should have been satisfied but isn'tNz?did not get skip reason skipped but req.satisfied_by is set to zRequirement %s: %s (%s)zSince it is already installed, we are trusting this package without checking its hash. To ensure a completely repeatable environment, install into an empty virtualenv.)	satisfied_byr}   r~   r   r+   r   r   r   r   )rX   r9   skip_reasons      rA   prepare_installed_requirementz1RequirementPreparer.prepare_installed_requirementj  s     K!KK& 	
))*,	
& 	%{C9I9I9Q9Q	
 \ 	J""( )-GGI	J 	J 	Js    :B$$B-)"r   rP   rh   rR   r   rP   r<   r   r   r   r=   boolr:   r$   r   r#   r   r4   r   r   r   r   r   r   r   r   rE   intr   r   r>   r   rZ   r[   )r9   r%   rZ   r[   )r9   r%   r   r   rZ   r[   )r9   r%   rZ   r)   )r9   r%   rZ   BaseDistribution | None)rI   r   rZ   r"  )F)r   Iterable[InstallRequirement]r   r   rZ   r[   )r9   r%   r   r   rZ   r   )r  r#  r   r   rZ   r[   )r9   r%   rZ   r   )r9   r%   r  rP   rZ   r   )r\   r]   r^   __doc__r   r   r   r   r   r   r   r   r  r  r   r  r  r  __classcell__)r   s   @rA   r   r   V  s    ?/ ?/ !	?/
 ?/ ,?/ $=?/ ?/ $?/ ?/ ?/ ?/ ?/ ?/ ?/  !?/" #?/$ %?/& 
'?/BB6.%.8<.	..C@== 
!=&'' 
!'R 
!@ !&'C#?'C 'C 
	'CT @E*J%*J8<*J	*JZ KP
0
CG
	
<t%t8<t	tl34   
 DJJ J 
	JrM   r   )r9   r%   r:   r$   r;   r   r<   r   r=   r   r>   r   rZ   r   )rI   r   rJ   rP   rE   r!  rZ   r[   )NN)
rI   r   rg   r    rh   rR   ri   Hashes | NonerZ   rO   )rI   r   rh   rR   ri   r&  rZ   rO   )rI   r   rJ   rP   rg   r    rE   r!  rh   rR   ri   r&  rZ   zFile | None)T)
rI   r   rh   rP   ri   r&  r   r   rZ   rR   )r   rP   rZ   rP   )r9   r%   r   r   r   rP   rZ   zfrozenset[str])r9   r%   r   r   r   r   rZ   r[   )ar$  
__future__r   rU   r{   r  collections.abcr   dataclassesr   pathlibr   typingr   "pip._vendor.packaging.requirementsr   pip._vendor.packaging.utilsr
   pip._internal.build_envr   r   pip._internal.distributionsr   %pip._internal.distributions.installedr   pip._internal.exceptionsr   r   r   r   r   r   r   r   r   "pip._internal.index.package_finderr   pip._internal.metadatar   r   pip._internal.models.direct_urlr   r   pip._internal.models.linkr   r   pip._internal.models.wheelr   pip._internal.network.downloadr     pip._internal.network.lazy_wheelr!   r"   pip._internal.network.sessionr#   ,pip._internal.operations.build.build_trackerr$   pip._internal.req.req_installr%   pip._internal.utils._logr&   &pip._internal.utils.direct_url_helpersr'   r(   pip._internal.utils.hashesr)   r*   pip._internal.utils.loggingr+   pip._internal.utils.miscr,   r-   r.   r/   pip._internal.utils.packagingr0   pip._internal.utils.temp_dirr1   pip._internal.utils.unpackingr2   pip._internal.vcsr3   pip._internal.cli.progress_barsr4   r\   r}   rB   rL   rO   rm   rp   rx   re   r   r   r   r   r`   rM   rA   <module>rF     sS   . #  	  $ !    A 9 Q Q G
 
 
 = N B A , 5 5 E < . = 2  : 6 5 !7	8	5	55 35 (	5
 5 5 5&N   "  $ 	)
)) ) 	)
 
)2 JN!
!(!9F!	!:  $ (
(( ( 	(
 ( ( (^ #'	
   	
 <6 	 #3 =@  (>
	>
">
 !>
 
	>
BjJ jJrM   