o
    Df                     @   sV   d Z ddlZddlZddlZG dd dZG dd deejZG dd deejZdS )	zT
Extension for ``click`` to provide a group
with a git-like *did-you-mean* feature.
    Nc                
       st   e Zd ZdZdejdejddf fddZdejdej	e
 dejeje
 ejej ej	e
 f f fd	d
Z  ZS )DYMMixinz
    Mixin class for click MultiCommand inherited classes
    to provide git-like *did-you-mean* functionality when
    a certain command is not registered.
    argskwargsreturnNc                    s2   | dd| _| dd| _t j|i | d S )Nmax_suggestions   cutoffg      ?)popr   r   super__init__)selfr   r   	__class__ R/home/ubuntu/webapp/venv/lib/python3.10/site-packages/click_didyoumean/__init__.pyr      s   zDYMMixin.__init__ctxc              
      s   z
t t| ||W S  tjjyK } z3t|}tj|d }t	
|| || j| j}|r?d|}|d7 }|d| 7 }tj||jd}~ww )z
        Overrides clicks ``resolve_command`` method
        and appends *Did you mean ...* suggestions
        to the raised exception message.
        r   z
    z

zDid you mean one of these?
    N)r
   r   resolve_commandclick
exceptions
UsageErrorstrutilsmake_strdifflibget_close_matcheslist_commandsr   r   joinr   )r   r   r   error	error_msgoriginal_cmd_namematchesfmt_matchesr   r   r   r      s$   

zDYMMixin.resolve_command)__name__
__module____qualname____doc__typingAnyr   r   ContextListr   TupleOptionalCommandr   __classcell__r   r   r   r   r      s    r   c                   @      e Zd ZdZdS )DYMGroupz
    click Group to provide git-like
    *did-you-mean* functionality when a certain
    command is not found in the group.
    Nr"   r#   r$   r%   r   r   r   r   r/   5       r/   c                   @   r.   )DYMCommandCollectionz
    click CommandCollection to provide git-like
    *did-you-mean* functionality when a certain
    command is not found in the group.
    Nr0   r   r   r   r   r2   =   r1   r2   )	r%   r   r&   r   r   Groupr/   CommandCollectionr2   r   r   r   r   <module>   s    )