o
    b                     @  s   d dl mZ d dlZd dlmZ er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Z	ddddZ	ddddZdddZdS )    )annotationsN)TYPE_CHECKING   )_types)Configuration)data_from_mime)trace)meta)
ScmVersion)tag_to_versionUNKNOWNroot_t.PathTconfigConfiguration | NonereturnScmVersion | Nonec                 C  sF   t j| d}td| t|}|dt}|tkr!t|d|dS d S )NzPKG-INFOpkginfoVersionTpreformattedr   )ospathjoinr   r   get_UNKNOWNr	   )r   r   r   dataversion r   8usr/lib/python3.10/site-packages/setuptools_scm/hacks.pyparse_pkginfo   s   
r    c                 C  sV   t j| d}t j|sd S t |}td|| |sd S tt j||d |dS )Nzpip-egg-infor   )r   )r   r   r   isdirlistdirr   r    )r   r   pipdiritemsr   r   r   parse_pip_egg_info    s   
r%   r   c                 C  s   |j d ur0tjtj| \}}||j r0t|t|j d  |}|d ur0tt	|d|dS |j
d urAtd t|j
d|dS d S )NTr   FALLBACK)parentdir_prefix_versionr   r   splitabspath
startswithr   lenr	   strfallback_versionr   )r   r   _parent_namer   r   r   r   r-   -   s   

r-   )N)r   r   r   r   r   r   )r   r   r   r   r   r   )
__future__r   r   typingr    r   Z_tr   r   utilsr   r   r   r	   r
   r   r   r    r%   r-   r   r   r   r   <module>   s"    