o
    i                     @   sj   d Z ddlZddlmZ ejdkrddlmZ nddlmZ er,ddlmZ ddl	m
Z
 G dd	 d	ZdS )
z@InlineText class for rich text rendering with appended metadata.    N)TYPE_CHECKING)      )Self)RenderableTypeTextc                   @   s\   e Zd ZdddddZedddded	B d
edededef
ddZdddZ	dd Z
d	S )
InlineTextFforce_empty_endprimary_renderabler   c                C   s   || _ g | _|| _d S N)r   textsr   )selfr   r    r   _/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/cyclopts/help/inline_text.py__init__   s   
zInlineText.__init__)r   show_errorscontentNformatr   r   returnc                C   s   |d u rddl m} |dd}nS|dkr!ddl m} || }nB|dv r0ddlm} ||}n3|dv rKdd	lm} dd
lm}	 |	|}
||
|d}n|dkr[ddl m} |	|}nt
d| d| ||dS )Nr   r    end	plaintext)markdownmd)Markdown)restructuredtextrst)RestructuredText)process_sphinx_directives)r   richzUnknown help_format ""r
   )	rich.textr   rstriprich.markdownr   rich_rstr    cyclopts.help.rst_preprocessorr!   from_markup
ValueError)clsr   r   r   r   r   r   r   r    r!   processed_contentr   r   r   from_format   s&   	
zInlineText.from_formattextr   c                 C   s   | j | d S r   )r   append)r   r.   r   r   r   r/   ;   s   zInlineText.appendc                 c   s   ddl m} ddlm} | js| jsd S g g }}|| j|D ]}|jdkr3|||g  g }q!|| q!|r@|| |sV| jrT|j	| j }|||E d H  d S |d d D ]
}	|	D ]}|V  q`q\|r|d }
|
ou|
d jdk}|r||

 nd }|
r|
d }||j |j|jd}||
d< |ddd}|
D ]}|jr||j|j q|d	}| jD ]}|r||7 }||7 }qt|||}| jr|d }|r|jds||d |r|| |E d H  d S d S )
Nr   )Segmentr   
)stylecontrolr   r    )rich.segmentr0   r$   r   r   r   renderr.   r/   assemblepopr%   r3   r4   listr   endswith)r   consoleoptionsr0   r   lines_of_segmentscurrent_linesegmentcombined_textline	last_linehas_newlinenewline_segmentlast_segmentlast_line_text	separatorr.   wrapped_segmentsr   r   r   __rich_console__>   sj   





zInlineText.__rich_console__)r   r   )r.   r   )__name__
__module____qualname__r   classmethodstrboolr   r-   r/   rJ   r   r   r   r   r	      s$    
$r	   )__doc__systypingr   version_infor   typing_extensionsrich.consoler   r$   r   r	   r   r   r   r   <module>   s    
