
    g                         d Z ddlZddlZddlmZ ej        dk    rddlZddlZ G d dej                  Z	d Z
d Zed	             ZdS )
zv
A utility for showing and hiding the terminal cursor on Windows and Linux, based on https://github.com/bchao1/bullet
    N)contextmanagerntc                   2    e Zd Zdej        fdej        fgZdS )
CursorInfosizevisibleN)__name__
__module____qualname__ctypesc_intc_byte_fields_     [/var/www/html/ai-engine/env/lib/python3.11/site-packages/accelerate/commands/menu/cursor.pyr   r      s&        V\*Y,FGr   r   c                     t           j        dk    rt                      } t          j        j                            d          }t          j        j                            |t          j        |                      d| _	        t          j        j        
                    |t          j        |                      d S t           j        dk    r?t          j                            d           t          j                                         d S d S )Nr   Fposixz[?25losnamer   r   windllkernel32GetStdHandleGetConsoleCursorInfobyrefr   SetConsoleCursorInfosysstdoutwriteflushcihandles     r   hide_cursorr&   "   s    	w$\\'44S9933FFL<L<LMMM
33FFL<L<LMMMMM	G		
%%%
 
	r   c                     t           j        dk    rt                      } t          j        j                            d          }t          j        j                            |t          j        |                      d| _	        t          j        j        
                    |t          j        |                      d S t           j        dk    r?t          j                            d           t          j                                         d S d S )Nr   r   Tr   z[?25hr   r#   s     r   show_cursorr(   .   s    	w$\\'44S9933FFL<L<LMMM
33FFL<L<LMMMMM	G		
%%%
 
	r   c               #   r   K   	 t                       dV  t                       dS # t                       w xY w)z+Context manager to hide the terminal cursorN)r&   r(   r   r   r   hider*   :   s8      s   & 6)__doc__r   r   
contextlibr   r   r   msvcrt	Structurer   r&   r(   r*   r   r   r   <module>r/      s     
			 



 % % % % % % 7d??MMMMMMH H H H HV% H H H
	 	 		 	 	     r   