o
    yAf7	                     @  s4   d dl mZ d dlZd dlmZ G dd deZdS )    )annotationsN)VersionSourceInterfacec                   @  s$   e Zd ZdZdddZdd
dZdS )
CodeSourcecodereturndictc              
   C  s  dd l }ddlm}m} | jd}|sd}t|t|ts%d}t	|t
jt
j| j|}t
j|s@d| }t|| jdpGd}t|tsSd	}t	|| jd
g }t|tsed}t	|g }	t|dD ]"\}
}t|tsd|
 d}t	||	t
jt
j| j| ql|t
j|d |}||}t|j}zg |	||jd d < |j| W ||jd d < n||jd d < w t|t|}d|iS )Nr   )module_from_specspec_from_file_locationpathzoption `path` must be specifiedzoption `path` must be a stringzfile does not exist: 
expression__version__z$option `expression` must be a stringzsearch-pathsz&option `search-paths` must be an array   zentry #z* of option `search-paths` must be a stringversion)sysimportlib.utilr   r	   configget
ValueError
isinstancestr	TypeErrorosr
   normpathjoinrootisfileOSErrorlist	enumerateappendsplitextloaderexec_moduleevalvars)selfr   r   r	   Zrelative_pathmessager
   r   Zsearch_pathsZabsolute_search_pathsisearch_pathspecmoduleZold_search_pathsr    r+   B/usr/lib/python3.10/site-packages/hatchling/version/source/code.pyget_version_data   sH   




 
 zCodeSource.get_version_datar   r   version_dataNonec                 C  s   d}t |)NzCannot rewrite loaded code)NotImplementedError)r%   r   r.   r&   r+   r+   r,   set_version>   s   zCodeSource.set_versionN)r   r   )r   r   r.   r   r   r/   )__name__
__module____qualname__ZPLUGIN_NAMEr-   r1   r+   r+   r+   r,   r      s    
3r   )
__future__r   r   Z)hatchling.version.source.plugin.interfacer   r   r+   r+   r+   r,   <module>   s    