o
    h                     @   sl   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 dejZ	dd Z
d	d
 Zed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                   @   s    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_ r   r   U/var/www/html/ai/venv/lib/python3.10/site-packages/accelerate/commands/menu/cursor.pyr      s    r   c                  C   |   t jdkr*t } tjjd}tjj|t|  d| _	tjj
|t|  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handler   r   r   hide_cursor"      

r#   c                  C   r   )Nr   r   Tr   z[?25hr   r    r   r   r   show_cursor.   r$   r%   c                   c   s$    zt   dV  W t  dS t  w )z+Context manager to hide the terminal cursorN)r#   r%   r   r   r   r   hide:   s
   r&   )__doc__r   r   
contextlibr   r   r
   msvcrt	Structurer   r#   r%   r&   r   r   r   r   <module>   s   
