o
    Vh	                     @  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   _/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/build/_util.py	<genexpr>*   s   " z#check_dependency.<locals>.<genexpr>T)prereleases)packaging.requirements_compatr   requirementsRequirementr   r   	frozensetunionallmetadatadistributionnamePackageNotFoundError	specifiercontainsversionrequirescheck_dependencyextras)	r   r   r
   	packagingr   normalised_req_stringr,   distother_req_stringr   r   r   r+      s.   

 r+   filenamere.Match[str] | Nonec                 C  s
   t | S )N)_WHEEL_FILENAME_REGEXmatch)r1   r   r   r   parse_wheel_filename>   s   
r5   )r   r   r   r	   r
   r   r   r   )r1   r   r   r2   )
__future__r   recollections.abcr   r   compiler3   r    r+   r5   r   r   r   r   <module>   s    /