
    l:i
                     n    d dl Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZ d Z G d	 d
e      Zd Zy)    N   )settings)NoRuleMatched)get_key)	get_alias)logsconstc               #   x  K   	 t               } | t        j                  t        j                  ddfv rt        j                   nt| t        j
                  t        j                  ddfv rt        j                   n=| t        j                  dfv rt        j                   n| dv rt        j                   w)z Yields actions for pressed keys.kejnq)
)r   r	   KEY_UP
KEY_CTRL_NACTION_PREVIOUSKEY_DOWN
KEY_CTRL_PACTION_NEXT
KEY_CTRL_CACTION_ABORTACTION_SELECT)keys    A/var/www/html/bot/venv/lib/python3.12/site-packages/thefuck/ui.pyread_actionsr      s     
i 5<<!1!13<<'''U^^U%5%5sC@@###U%%s++$$$L %%% s   B8B:c                   8    e Zd ZdZd Zd Zd Zd Zed        Z	y)CommandSelectorz*Helper for selecting rule from rules list.c                     || _         	 t        | j                         g| _        d| _        d| _        y# t        $ r t        w xY w)z8:type commands: Iterable[thefuck.types.CorrectedCommand]Fr   N)_commands_gennext	_commandsStopIterationr   	_realised_index)selfcommandss     r   __init__zCommandSelector.__init__   sK    %	 "4#5#567DN   	 	 s	   3 Ac                 |    | j                   s0| xj                  t        | j                        z  c_        d| _         y y )NT)r%   r#   listr!   r'   s    r   _realisezCommandSelector._realise(   s.    ~~NNd4#5#566N!DN     c                 x    | j                          | j                  dz   t        | j                        z  | _        y Nr   r-   r&   lenr#   r,   s    r   r"   zCommandSelector.next-   (    {{Q#dnn*==r.   c                 x    | j                          | j                  dz
  t        | j                        z  | _        y r0   r1   r,   s    r   previouszCommandSelector.previous1   r3   r.   c                 4    | j                   | j                     S )z%:rtype thefuck.types.CorrectedCommand)r#   r&   r,   s    r   valuezCommandSelector.value5   s     ~~dkk**r.   N)
__name__
__module____qualname____doc__r)   r-   r"   r5   propertyr7    r.   r   r   r      s-    4"
>> + +r.   r   c                 4   	 t        |       }t
        j                  s+t        j                  |j                         |j                  S t        j                  |j                         t               D ]  }|t        j                  k(  r-t        j                  j                  d       |j                  c S |t        j                   k(  rt        j                  d        y|t        j"                  k(  r0|j%                          t        j                  |j                         |t        j&                  k(  s|j)                          t        j                  |j                          y# t        $ r' t        j                  t	               dk(  rdnd       Y yw xY w)zReturns:

     - the first command when confirmation disabled;
     - None when ctrl+c pressed;
     - selected command.

    :type corrected_commands: Iterable[thefuck.types.CorrectedCommand]
    :rtype: thefuck.types.CorrectedCommand | None

    fuckzNo fucks givenzNothing foundNr   z
Aborted)r   r   r   failedr   r   require_confirmationshow_corrected_commandr7   confirm_textr   r	   r   sysstderrwriter   r   r5   r   r"   )corrected_commandsselectoractions      r   select_commandrJ   ;   s'   "#56 ((##HNN3~~hnn%. .U(((JJT">>!u)))KK$u,,,hnn-u(((MMOhnn-.  	v(=$(	*s   E' '-FF)rD   confr   
exceptionsr   systemr   utilsr    r   r	   r   objectr   rJ   r=   r.   r   <module>rQ      s0      %   & +f +@$.r.   