o
    ßý°jƒ  ã                   @  sŒ   d dl mZ d dlZd dlmZ ejrddlmZ eƒ Z	ej
dddd„ƒZej
dddd„ƒZdddd„Zd dd„Zd!dd„Zd"d#dd„ZdS )$é    )ÚannotationsN)Úlocalé   )ÚContextFÚsilentút.Literal[False]Úreturnr   c                 C  ó   d S ©N© ©r   r   r   ú€/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/click/globals.pyÚget_current_context   ó   r   .ÚboolúContext | Nonec                 C  r	   r
   r   r   r   r   r   r      r   c              
   C  sN   z
t  dtjd ¡W S  ttfy& } z| stdƒ|‚W Y d}~dS d}~ww )a‚  Returns the current click context.  This can be used as a way to
    access the current context object from anywhere.  This is a more implicit
    alternative to the :func:`pass_context` decorator.  This function is
    primarily useful for helpers such as :func:`echo` which might be
    interested in changing its behavior based on the current context.

    To push the current context, :meth:`Context.scope` can be used.

    .. versionadded:: 5.0

    :param silent: if set to `True` the return value is `None` if no context
                   is available.  The default behavior is to raise a
                   :exc:`RuntimeError`.
    r   éÿÿÿÿz!There is no active click context.N)ÚtÚcastÚ_localÚstackÚAttributeErrorÚ
IndexErrorÚRuntimeError)r   Úer   r   r   r      s   

ÿ€üÚctxÚNonec                 C  s   t j dg ¡ | ¡ dS )z*Pushes a new context to the current stack.r   N)r   Ú__dict__Ú
setdefaultÚappend)r   r   r   r   Úpush_context,   s   r    c                   C  s   t j ¡  dS )z%Removes the top level from the stack.N)r   r   Úpopr   r   r   r   Úpop_context1   s   r"   Úcolorúbool | Nonec                 C  s(   | dur| S t dd�}|dur|jS dS )zªInternal helper to get the default value of the color flag.  If a
    value is passed it's returned unchanged, otherwise it's looked up from
    the current context.
    NTr   )r   r#   )r#   r   r   r   r   Úresolve_color_default6   s   
r%   )F)r   r   r   r   ).)r   r   r   r   )r   r   r   r   )r   r   r
   )r#   r$   r   r$   )Ú
__future__r   Útypingr   Ú	threadingr   ÚTYPE_CHECKINGÚcorer   r   Úoverloadr   r    r"   r%   r   r   r   r   Ú<module>   s    

