a
    »ÏOc  ã                   @   s2   d dl Z d dlZd dlZdd„ ZG dd„ dƒZdS )é    Nc                 C   s   dS )zL
    loops through a search path list, expands anything starting with $
    N© )Úpathr   r   úB/var/www/html/gsl.tools/lib/python3.9/site-packages/munge/click.pyÚexpand_env_var   s    r   c                   @   s„   e Zd ZdZdZdZedd„ ƒZedd„ ƒZedd	„ ƒZ	ed
d„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚContextz%(message)sz,%(name)s %(message)s %(filename)s:%(lineno)dz%%(asctime)s %(levelname)s %(message)sc              	   C   sF   d| j  ¡  tj dd| j  ¡tj tj dd| j  ¡¡t | j ¡gS )Nz$%s_HOMEÚ.ú~)Úapp_nameÚupperÚosr   ÚjoinÚ
expanduserÚclickZget_app_dir©Úclsr   r   r   Úsearch_path   s
    
üzContext.search_pathc              	   C   sH   t dddd d�t ddd |  ¡ ¡ d d�t d	d
dd d�t dddd d�gS )Nú--debugúenable extra debug outputT)ÚnameÚhelpÚis_flagÚdefaultú--homeú<specify the home directory, by default will check in order: ú, )r   r   r   ú	--verboseúenable more verbose outputú--quietúno output at all)Údictr   r   r   r   r   r   Úoption_list   s*    üÿüüízContext.option_listc                 C   sh   t jdddd d�|ƒ}t jddd |  ¡ ¡ d d�|ƒ}t jd	d
dd d�|ƒ}t jdddd d�|ƒ}|S )Nr   r   T)r   r   r   r   r   r   )r   r   r   r   r   r   )r   Úoptionr   r   )r   Úfr   r   r   Úoptions4   s2    ÿþÿüûÿþÿþzContext.optionsc                    s   d}‡ fdd„|D ƒS )N)ÚdebugÚhomeÚverboseÚquietc                    s   i | ]}|ˆ   |d ¡“qS )N)Úpop)Ú.0Úk©Úkwargsr   r   Ú
<dictcomp>J   ó    z'Context.pop_options.<locals>.<dictcomp>r   )r   r,   Úkeysr   r+   r   Úpop_optionsG   s    zContext.pop_optionsc                 C   s
   |   |¡S )z
        deprecated
        )r0   )r   r,   r   r   r   Úget_optionsL   s    zContext.get_optionsc                 C   s   t j| dd�S )NT)Zensure)r   Zmake_pass_decoratorr   r   r   r   Úpass_contextS   s    zContext.pass_contextc                 C   s    t | dd ƒst | j¡| _| jS )NÚ_logger)ÚgetattrÚloggingÚ	getLoggerr	   r3   ©Úselfr   r   r   ÚlogW   s    zContext.logc                 K   s,   d| _ d| _d| _d | _d | _|  |¡ d S )NF)r$   r'   r&   r%   ÚconfigÚupdate_options)r8   r,   r   r   r   Ú__init__]   s    zContext.__init__c                 C   s  | j  |¡}| dd ¡d ur&|d | _| dd ¡d ur@|d | _| dd ¡d urZ|d | _| dd ¡d ur†|d | _| j| jd�| _n„| j�s
g }| j  	¡ D ]F}| 
d¡rØ|dd … tjvr¾qœ| tj|dd …  ¡ qœ| |¡ qœ| j|d�| _| jj�r
| jjd	 | _|  ¡  d S )
Nr$   r&   r'   r%   )Úreadú$é   )Ztry_readZ
config_dir)Ú	__class__r1   Úgetr$   r&   r'   r%   Zconfig_classr:   r   Ú
startswithr   ÚenvironÚappendÚmetaÚinit)r8   r,   Úoptr   r   r   r   r   r;   g   s,    





zContext.update_optionsc                 C   sn   g t  ¡ _| jr$t jt j| jd� nF| jr>t jt j| j	d� n,| j
sXt jt j| j	d� nt  ¡  t  ¡ ¡ dS )z-
        call after updating options
        )ÚlevelÚformatN)r5   r6   Úhandlersr$   ÚbasicConfigÚDEBUGÚlog_format_debugr&   ÚINFOÚ
log_formatr'   ÚERRORÚ
addHandlerÚNullHandlerr7   r   r   r   rF   Š   s    
zContext.initN)Ú__name__Ú
__module__Ú__qualname__rO   rM   Zlog_format_fileÚclassmethodr   r    r#   r0   r1   r2   Úpropertyr9   r<   r;   rF   r   r   r   r   r      s(   







#r   )r5   r   r   r   r   r   r   r   r   Ú<module>   s   