o
    èyAfÜ  ã                   @  s0   d dl mZ d dlmZmZ G dd„ deƒZdS )é    )Úannotations)ÚABCÚabstractmethodc                   @  sT   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dd„ZdS )ÚMetadataHookInterfaceaÅ  
    Example usage:

    ```python tab="plugin.py"
    from hatchling.metadata.plugin.interface import MetadataHookInterface


    class SpecialMetadataHook(MetadataHookInterface):
        PLUGIN_NAME = 'special'
        ...
    ```

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

    from .plugin import SpecialMetadataHook


    @hookimpl
    def hatch_register_metadata_hook():
        return SpecialMetadataHook
    ```
    Ú ÚrootÚstrÚconfigÚdictÚreturnÚNonec                 C  s   || _ || _d S )N)Ú_MetadataHookInterface__rootÚ_MetadataHookInterface__config)Úselfr   r	   © r   úH/usr/lib/python3.10/site-packages/hatchling/metadata/plugin/interface.pyÚ__init__"   s   
zMetadataHookInterface.__init__c                 C  ó   | j S )z/
        The root of the project tree.
        )r   ©r   r   r   r   r   &   s   zMetadataHookInterface.rootc                 C  r   )z‡
        The hook configuration.

        ```toml config-example
        [tool.hatch.metadata.hooks.<PLUGIN_NAME>]
        ```
        )r   r   r   r   r   r	   -   s   	zMetadataHookInterface.configÚmetadatac                 C  s   dS )zT
        This updates the metadata mapping of the `project` table in-place.
        Nr   )r   r   r   r   r   Úupdate8   s    zMetadataHookInterface.updateú	list[str]c                 C  s   g S )zw
        This returns extra classifiers that should be considered valid in addition to the ones known to PyPI.
        r   r   r   r   r   Úget_known_classifiers>   s   z+MetadataHookInterface.get_known_classifiersN)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   r      s    

r   N)Ú
__future__r   Úabcr   r   r   r   r   r   r   Ú<module>   s    