U
    ee                     @  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mZmZ e	dZ
de fdddd	d
ddZdddddZejrejZndej  krdk sn dej  krdk sn dej  krdk sn dej  krdk sn dej  krdk rn nG dd dejZnejZdS )    )annotationsN)IteratorSetzv(?P<distribution>.+)-(?P<version>.+)(-(?P<build_tag>.+))?-(?P<python_tag>.+)-(?P<abi_tag>.+)-(?P<platform_tag>.+)\.whl strztuple[str, ...]zSet[str]zIterator[tuple[str, ...]])
req_stringancestral_req_stringsparent_extrasreturnc           	      #  s   ddl }ddlm} |j|  t }||kr4dS  jrbtd|}t	 fdd|D rbdS z|
 j}W n" |jk
r   ||fV  Y nTX  jr jj|jdd	s||fV  n,|jr|jD ]}t|||f jE dH  qdS )
z
    Verify that a dependency and all of its dependencies are met.

    :param req_string: Requirement string
    :param parent_extras: Extras (eg. "test" in myproject[test])
    :yields: Unmet dependencies
    r   N   )metadata) c                 3  s"   | ]} j jd |id V  qdS )extra)environmentN)markerevaluate).0ereqr   //tmp/pip-unpacked-wheel-f07x2s22/build/_util.py	<genexpr>-   s     z#check_dependency.<locals>.<genexpr>T)prereleases)Zpackaging.requirementsZ
_importlibr   requirementsRequirementr   r   	frozensetunionalldistributionnameZPackageNotFoundError	specifiercontainsversionrequirescheck_dependencyextras)	r   r   r	   	packagingr   Znormalised_req_stringr%   distZother_req_stringr   r   r   r$      s&    

r$   zre.Match[str] | None)filenamer
   c                 C  s
   t | S )N)_WHEEL_FILENAME_REGEXmatch)r(   r   r   r   parse_wheel_filenameA   s    r+   )         )r,   	   )r,   r/   r.   )r,   
   )r,   r0      )r,      )r,   r2      )r,      )r,      c                   @  s   e Zd ZeejZdS )TarFileN)__name__
__module____qualname__staticmethodtarfileZdata_filterZextraction_filterr   r   r   r   r6   T   s   r6   )
__future__r   resysr;   typingcollections.abcr   r   compiler)   r   r$   r+   TYPE_CHECKINGr6   version_infor   r   r   r   <module>   sR    /     