o
    š„L=  ã                   @   s(   d Z ddlZddlZG dd„ deƒZdS )Ú
é    Nc                   @   s2   e Zd ZdZdejfdd„Zdd„ Zd
dd	„ZdS )ÚSlotzB
    A generic text slot which can be overwritten repeatedly.
    Ú c                 C   s8   d|v rt dƒ‚|| _d | _d| _|r|  |¡ d S d S )Nr   zslots cannot undo newlinesF)Ú	ExceptionÚstreamÚ	last_textÚis_finishedÚupdate)ÚselfÚtextr   © r   úA/var/www/html/env/lib/python3.10/site-packages/consoleLog/slot.pyÚ__init__   s   ÿzSlot.__init__c                 C   sŽ   | j rtdƒ‚t|tƒr| d¡}| jr7t | j¡}| j 	dt | j¡ ¡ t |¡}||k r7|d||   }| j 	|¡ | j 
¡  || _d S )Nz(slot already finalized, cannot update itÚutf8úú )r   r   Ú
isinstanceÚunicodeÚencoder   Ú
shellColorÚrealLenr   ÚwriteÚflush)r
   r   Úlast_lenÚthis_lenr   r   r   r	      s   




zSlot.updateNc                 C   s"   |r|   |¡ t| j?  d| _d S )NT)r	   Úprintr   r   )r
   r   r   r   r   Úfinish0   s   


zSlot.finish)N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚsysÚstdoutr   r	   r   r   r   r   r   r      s
    	r   )r    r!   r   Úobjectr   r   r   r   r   Ú<module>   s   	