
    辙h                         d Z ddlZddlZddlZ G d d      Z G d deej
                        Z G d deej                        Zy)	zT
Extension for ``click`` to provide a group
with a git-like *did-you-mean* feature.
    Nc            
            e Zd ZdZdej
                  dej
                  ddf f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Z x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                     |j                  dd      | _        |j                  dd      | _        t        |   |i | y )Nmax_suggestions   cutoffg      ?)popr	   r   super__init__)selfr   r   	__class__s      U/var/www/Befach/backend/env/lib/python3.12/site-packages/click_didyoumean/__init__.pyr   zDYMMixin.__init__   s;    %zz*;Q?jj3/$)&)    ctxc                    	 t         t        |   ||      S # t        j                  j
                  $ r}t        |      }t        j                  j                  |d         }t        j                  || j                  |      | j                  | j                        }|rdj                  |      }|dz  }|d| z  }t        j                  j                  ||j                        d}~ww xY 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   s	           r   r   zDYMMixin.resolve_command   s    	D48dCC** 	DE
I % 4 4T!W =//!""3'$$	G &mmG4V#	?}MM	""--iCC	Ds    C+B2C&&C+)__name__
__module____qualname____doc__typingAnyr   r   ContextListr   TupleOptionalCommandr   __classcell__)r   s   @r   r   r      s    *fjj *FJJ *4 *
D==D(.C(8D	fooemm<fkk#>NN
D Dr   r   c                       e Zd ZdZy)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   r2   r2   5       r   r2   c                       e Zd ZdZy)DYMCommandCollectionz
    click CommandCollection to provide git-like
    *did-you-mean* functionality when a certain
    command is not found in the group.
    Nr3   r4   r   r   r7   r7   =   r5   r   r7   )	r(   r   r)   r   r   Groupr2   CommandCollectionr7   r4   r   r   <module>r:      sH   
   &D &DRx 8U%<%< r   