o
    i
                     @   sp   d dl Z d dlmZ d dlmZmZ d dlmZmZm	Z	 er$d dl
mZ dedefdd	ZeG d
d dZdS )    N)TYPE_CHECKING)definefield)ArgumentArgumentCollectionToken)Appsreturnc                 C   s   |   dddddS )N-_.)upperreplacelstrip)r	    r   Z/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/cyclopts/config/_env.py
_transform   s   r   c                   @   s   e Zd ZU dZeed< edddZeed< edddZe	ed< edddZ
e	ed< d	eed
f defddZd	eed
f dedefddZddd	eed
f defddZdS )Env prefixenvT)defaultkw_onlysourcecommandshowcommands.r
   c                 C   s0   | j }| jr|r|ddd |D d 7 }|S )Nr   c                 s       | ]}|  V  qd S N)r   .0xr   r   r   	<genexpr>       zEnv._prefix.<locals>.<genexpr>)r   r   join)selfr   r   r   r   r   _prefix   s   
zEnv._prefixargumentc                 C   s   |  |t|j S )zjFor generating environment variable names for the help-page.

        Internal Cyclopts use only.
        )r'   r   name)r&   r   r(   r   r   r   _convert_argument   s   zEnv._convert_argumentappr   	argumentsc              	      s   t  }| |  fddtjD }|  d}|D ]^}z|j|t d  t|d\}}	}
W n	 ty8   Y qw t |j	| rAq|j
sL|	rL||	f}	tdd |	D }	t|tj| D ]\}}t||| j||	d}|| || q_qd S )Nc                    s   g | ]	}|  r|qS r   )
startswithr    r   r   r   
<listcomp>*   s    z Env.__call__.<locals>.<listcomp>r   )	transform	delimiterc                 s   r   r   )lowerr    r   r   r   r#   A   r$   zEnv.__call__.<locals>.<genexpr>)keywordvaluer   indexkeys)setr'   osenvironsortmatchlenr   
ValueErrortokenschildrenr%   tuple	enumerateenv_var_splitr   r   appendadd)r&   r+   r   r,   added_tokenscandidate_env_keysr1   candidate_env_keyr(   remaining_keysr   ir4   tokenr   r.   r   __call__%   s4   


zEnv.__call__N)__name__
__module____qualname__r   str__annotations__r   r   r   boolr   r@   r'   r   r*   r   rK   r   r   r   r   r      s   
 "r   )r8   typingr   attrsr   r   cyclopts.argumentr   r   r   cyclopts.corer   rO   r   r   r   r   r   r   <module>   s    