o
    §i‰	  ã                   @   sˆ   d dl mZmZmZ er$d dlmZmZmZ ddlm	Z	m
Z
 ddlmZ eG dd„ deƒƒZeG dd	„ d	eƒƒZeG d
d„ deƒƒZdS )é    )ÚTYPE_CHECKINGÚProtocolÚruntime_checkable)ÚConsoleÚConsoleOptionsÚRenderableTypeé   )Ú	HelpEntryÚ	HelpPanel)Ú
ColumnSpecc                   @   s   e Zd ZdZd	dd„ZdS )
ÚRendererzJProtocol for column renderers that transform HelpEntry to display content.Úentryr	   Úreturnr   c                 C   s   d S )N© )Úselfr   r   r   ú]/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/cyclopts/help/protocols.pyÚ__call__   s    zRenderer.__call__N)r   r	   r   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   
   s    r   c                	   @   s2   e Zd ZdZddddded ded	 fd
d„ZdS )ÚColumnSpecBuilderz Protocol for ColumnSpecBuilders.Úconsoler   Úoptionsr   Úentriesr	   r   )r   .c                 C   ó   dS )aë  Build column specifications based on console settings and entries.

        Parameters
        ----------
        console : ~rich.console.Console
            The Rich console instance.
        options : ~rich.console.ConsoleOptions
            Console rendering options.
        entries : list[HelpEntry]
            List of help entries to be displayed.

        Returns
        -------
        tuple[ColumnSpec, ...]
            Tuple of column specifications for table rendering.
        Nr   )r   r   r   r   r   r   r   r      s   zColumnSpecBuilder.__call__N)r   r   r   r   ÚlistÚtupler   r   r   r   r   r      s    ÿÿÿþr   c                   @   s*   e Zd ZdZ									dd
d„Zd	S )ÚHelpFormattera¦  Protocol for help **formatter** functions.

    It's the Formatter's job to transform a :class:`.HelpPanel` into rendered text on the display.

    Implementations may optionally provide the following methods for custom rendering of "usage" and "description". If these methods are not provided, default rendering will be used.

    .. code-block:: python

        def render_usage(self, console: Console, options: ConsoleOptions, usage: Any) -> None:
            """Render the usage line."""
            ...

        def render_description(self, console: Console, options: ConsoleOptions, description: Any) -> None:
            """Render the description."""
            ...
    r   r   r   r   Úpanelr
   r   Nc                 C   r   )aN  Format and render a single help panel.

        Parameters
        ----------
        console : ~rich.console.Console
            Console to render to.
        options : ~rich.console.ConsoleOptions
            Console rendering options.
        panel : HelpPanel
            Help panel to render (commands, parameters, etc).
        Nr   )r   r   r   r    r   r   r   r   >   s   zHelpFormatter.__call__)r   r   r   r   r    r
   r   Nr   r   r   r   r   r   +   s    þýüûr   N)Útypingr   r   r   Úrich.consoler   r   r   Úhelpr	   r
   Úspecsr   r   r   r   r   r   r   r   Ú<module>   s    