o
    8)iq                     @  s"  d dl m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 ddgZerLddl	mZ ddlmZ ddlmZ d dlmZ e
jdZejdd dk rjddd9ddZnddd:ddZd;d$d%Zd<d'd(Zd=d*d+Z	d>d?d1d2Z	d>d@d7d8ZdS )A    )annotationsN)TYPE_CHECKING)Any)Callable)Iterator)cast   )_log)versionentry_pointsim)_types)Configuration)ParseFunction)metadataentrypoints   )   
   namegroupstrr   
str | Nonereturnlist[im.EntryPoint]c                   s2   t  }|| g } d ur fdd|D S |S )Nc                   s   g | ]	}|j  kr|qS  r   ).0epr   r   V/home/app/PyTorch/.pytorch/lib/python3.10/site-packages/setuptools_scm/_entrypoints.py
<listcomp>%   s    z entry_points.<locals>.<listcomp>)r   r   get)r   r   ZepsZ	group_epsr   r   r   r      s
   im.EntryPointsc                 C  s(   d| i}|d ur||d< t jdi |S )Nr   r   r   )r   r   )r   r   kwr   r   r   r   )   s   configr   
entrypointroot_t.PathTversion.ScmVersion | Nonec                C  sb   ddl m} td|| |||| D ]}| }||| d}td|| |d ur.|  S qd S )Nr   )iter_matching_entrypointszversion_from_ep %s in %s)r$   z%s found %r)Zdiscoverr)   logdebugload)r$   r%   r&   r)   r   fnZmaybe_versionr   r   r   version_from_entrypoint0   s   r.   
Any | Nonec                 C  s.   t | |dD ]}td|j |   S d S )N)r   r   zep found: %s)r   r*   r+   r   r,   )r   r   r   r   r   r   _get_ep?   s   r0   pathc              	   C  s<   ddl m} || | |}z| W S  ttfy   Y d S w )Nr   )
EntryPoint)importlib.metadatar2   r,   AttributeErrorModuleNotFoundError)r1   r   r2   r   r   r   r   _get_from_object_reference_strF   s   
r6   scheme_value_t.VERSION_SCHEMES_memoset[object] | None-Iterator[Callable[[version.ScmVersion], str]]c                 c  s    |d u rt  }t|trtdt| |pt|| }t|ttfr;|D ]}||vr8|| t	| ||dE d H  q#d S t
|rD|V  d S d S )Nr8   )r9   )set
isinstancer   r   r0   r6   listtupleadd_iter_version_schemescallable)r%   r7   r9   variantr   r   r   rA   Q   s&   



rA   r
   version.ScmVersiongiven_valuedefaultc                 C  sl   d}t ||D ]}d}|| }|d ur|  S q|s%td| d| d|d ur+|S td| d| d)	NFTz2Couldn't find any implementations for entrypoint "z" with value "z".zNone of the "z" entrypoints matching "z" returned a value.)rA   
ValueError)r
   r%   rE   rF   Zfound_any_implementationschemeresultr   r   r   _call_version_schemeh   s$   rJ   )r   r   r   r   r   r   )r   r   r   r   r   r"   )r$   r   r%   r   r&   r'   r   r(   )r   r   r   r   r   r/   )r1   r   r   r   r   r/   )N)r%   r   r7   r8   r9   r:   r   r;   )
r
   rD   r%   r   rE   r8   rF   r   r   r   )
__future__r   systypingr   r   r   r   r    r	   r
   __all__r   Z_t_configr   r   	importlibr   r   r*   getChildversion_infor   r.   r0   r6   rA   rJ   r   r   r   r   <module>   s8    


