o
    hi	                     @  sN   d dl mZ d dlZd dlmZmZ edZde fdddZ	dddZ
dS )    )annotationsN)IteratorSetzv(?P<distribution>.+)-(?P<version>.+)(-(?P<build_tag>.+))?-(?P<python_tag>.+)-(?P<abi_tag>.+)-(?P<platform_tag>.+)\.whl 
req_stringstrancestral_req_stringstuple[str, ...]parent_extrasSet[str]returnIterator[tuple[str, ...]]c           	      #  s   ddl }ddlm} |j|  t }||v rdS  jr2td|}t	 fdd|D r2dS z	|j
 j}W n |j
jyO   g ||R V  Y dS w  jrf jj|jdd	sfg ||R V  dS |jr~|jD ]}t|g ||R  jE dH  qldS d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   )	importlib) c                 3  s$    | ]} j jd |id V  qdS )extra)environmentN)markerevaluate).0ereqr   F/home/app/PyTorch/.pytorch/lib/python3.10/site-packages/build/_util.py	<genexpr>*   s   " z#check_dependency.<locals>.<genexpr>T)prereleases)Zpackaging.requirementsZ_compatr   requirementsRequirementr   r   	frozensetunionallmetadata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(   filenamere.Match[str] | Nonec                 C  s
   t | S )N)_WHEEL_FILENAME_REGEXmatch)r,   r   r   r   parse_wheel_filename>   s   
r0   )r   r   r   r	   r
   r   r   r   )r,   r   r   r-   )
__future__r   recollections.abcr   r   compiler.   r   r(   r0   r   r   r   r   <module>   s    /