o
    yAfL                     @  s0   d dl mZ d dlmZmZ G dd deZdS )    )annotations)ABCabstractmethodc                   @  sJ   e Zd ZdZdZ	 dd	d
ZedddZedddZe	dddZ
dS )VersionSchemeInterfacea  
    Example usage:

    ```python tab="plugin.py"
    from hatchling.version.scheme.plugin.interface import VersionSchemeInterface


    class SpecialVersionScheme(VersionSchemeInterface):
        PLUGIN_NAME = 'special'
        ...
    ```

    ```python tab="hooks.py"
    from hatchling.plugin import hookimpl

    from .plugin import SpecialVersionScheme


    @hookimpl
    def hatch_register_version_scheme():
        return SpecialVersionScheme
    ```
     rootstrconfigdictreturnNonec                 C  s   || _ || _d S )N)_VersionSchemeInterface__root_VersionSchemeInterface__config)selfr   r	    r   N/usr/lib/python3.10/site-packages/hatchling/version/scheme/plugin/interface.py__init__"   s   
zVersionSchemeInterface.__init__c                 C     | j S )z;
        The root of the project tree as a string.
        )r   r   r   r   r   r   &   s   zVersionSchemeInterface.rootc                 C  r   )zQ
        ```toml config-example
        [tool.hatch.version]
        ```
        )r   r   r   r   r   r	   -   s   zVersionSchemeInterface.configdesired_versionoriginal_versionversion_datac                 C  s   dS )z
        This should return a normalized form of the desired version and verify that it
        is higher than the original version.
        Nr   )r   r   r   r   r   r   r   update6   s    zVersionSchemeInterface.updateN)r   r   r	   r
   r   r   )r   r   )r   r
   )r   r   r   r   r   r
   r   r   )__name__
__module____qualname____doc__ZPLUGIN_NAMEr   propertyr   r	   r   r   r   r   r   r   r      s    
r   N)
__future__r   abcr   r   r   r   r   r   r   <module>   s    