o
    ëyAfI	  ã                   @   s    d dl mZ G dd„ deƒZdS )é    )ÚVersionSourceInterfacec                       sT   e Zd ZdZ‡ fdd„Zedd„ ƒZedd„ ƒZedd	„ ƒZd
d„ Z	dd„ Z
‡  ZS )ÚVCSVersionSourceÚvcsc                    s(   t ƒ j|i |¤Ž d | _d | _d | _d S )N)ÚsuperÚ__init__Ú%_VCSVersionSource__config_tag_patternÚ*_VCSVersionSource__config_fallback_versionÚ%_VCSVersionSource__config_raw_options)ÚselfÚargsÚkwargs©Ú	__class__© ú=/usr/lib/python3.10/site-packages/hatch_vcs/version_source.pyr   
   s   
zVCSVersionSource.__init__c                 C   ó6   | j d u r| j dd¡}t|tƒstdƒ‚|| _ | j S )Nztag-patternÚ z%option `tag-pattern` must be a string)r   ÚconfigÚgetÚ
isinstanceÚstrÚ	TypeError)r
   Ztag_patternr   r   r   Úconfig_tag_pattern   ó   

z#VCSVersionSource.config_tag_patternc                 C   r   )Nzfallback-versionr   z*option `fallback-version` must be a string)r   r   r   r   r   r   )r
   Úfallback_versionr   r   r   Úconfig_fallback_version   r   z(VCSVersionSource.config_fallback_versionc                 C   s6   | j d u r| j di ¡}t|tƒstdƒ‚|| _ | j S )Nzraw-optionsz$option `raw-options` must be a table)r	   r   r   r   Údictr   )r
   Zraw_optionsr   r   r   Úconfig_raw_options'   r   z#VCSVersionSource.config_raw_optionsc                 C   s^   ddl m} || jƒ}| d| j¡ | d| j¡ | jr!| j|d< | dd ¡ | dd ¡ |S )Nr   )ÚdeepcopyÚrootZ	tag_regexr   Zwrite_toZwrite_to_template)Úcopyr   r   Ú
setdefaultr   r   r   Úpop)r
   r   r   r   r   r   Úconstruct_setuptools_scm_config2   s   

z0VCSVersionSource.construct_setuptools_scm_configc                 C   s&   ddl m} |di |  ¡ ¤Ž}d|iS )Nr   )Úget_versionÚversionr   )Zsetuptools_scmr$   r#   )r
   r$   r%   r   r   r   Úget_version_dataC   s   z!VCSVersionSource.get_version_data)Ú__name__Ú
__module__Ú__qualname__ZPLUGIN_NAMEr   Úpropertyr   r   r   r#   r&   Ú__classcell__r   r   r   r   r      s    





r   N)Z)hatchling.version.source.plugin.interfacer   r   r   r   r   r   Ú<module>   s   