
    egS                         d dl Z d dlmZmZ e j                  dk\  rd dlmZ nd dlmZ ddlmZ ddl	m
Z
mZmZmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZ ed   Z G d d      Zy)    N)OptionalTuple)      )Literal   )	loop_last)ConsoleConsoleOptionsRenderableTypeRenderResult)Control)ControlTypeSegment)	StyleType)Text)cropellipsisvisiblec            	       j    e Zd ZdZ	 	 ddedededdfdZdeddfdZde	fd	Z
de	fd
ZdededefdZy)
LiveRenderzCreates a renderable that may be updated.

    Args:
        renderable (RenderableType): Any renderable object.
        style (StyleType, optional): An optional style to apply to the renderable. Defaults to "".
    
renderablestylevertical_overflowreturnNc                 <    || _         || _        || _        d | _        y )N)r   r   r   _shape)selfr   r   r   s       y/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py__init__zLiveRender.__init__   s!     %
!215    c                     || _         y)z|Set a new renderable.

        Args:
            renderable (RenderableType): Any renderable object, including str.
        N)r   )r   r   s     r   set_renderablezLiveRender.set_renderable'   s     %r!   c                     | j                   b| j                   \  }}t        t        j                  t        j                  dfgt        j
                  dft        j                  dff|dz
  z   S t               S )zGet control codes to move cursor to beginning of live render.

        Returns:
            Control: A control instance that may be printed.
           r   )r   r   r   CARRIAGE_RETURNERASE_IN_LINE	CURSOR_UPr   _heights      r   position_cursorzLiveRender.position_cursor/   s     ;;"IAv++**A.

 %..2$22A6 z	#	
 
 yr!   c                     | j                   N| j                   \  }}t        t        j                  gt        j                  dft        j
                  dff|z   S t               S )zGet control codes to clear the render and restore the cursor to its previous position.

        Returns:
            Control: A Control instance that may be printed.
        r   r%   )r   r   r   r&   r(   r'   r)   s      r   restore_cursorzLiveRender.restore_cursorD   sd     ;;"IAv++((!,{/H/H!.LMPVV  yr!   consoleoptionsc              #     K   | j                   }|j                  | j                        }|j                  |||d      }t	        j
                  |      }|\  }}||j                  j                  kD  r| j                  dk(  r/|d |j                  j                   }t	        j
                  |      }ny| j                  dk(  rj|d |j                  j                  dz
   }t        ddddd	
      }	|j                  t        |j                  |	                   t	        j
                  |      }|| _        t	        j                         }
t        |      D ]  \  }}|E d {    |r|
  y 7 w)NF)r   padr   r   r   z...center zlive.ellipsis)overflowjustifyendr   )r   	get_styler   render_linesr   	get_shapesizer+   r   r   appendlistrenderr   liner	   )r   r/   r0   r   r   linesshaper*   r+   overflow_textnew_linelastr?   s                r   __rich_console__zLiveRender.__rich_console__R   sI     __
!!$**-$$Z5$Q!!%(	6GLL'''%%/3 3 34))%0'':59!4!4q!8: $#$)! T'.."?@A))%0<<>#E* 	JD$OO	s   EE+E)E+"E+)r4   r   )__name__
__module____qualname____doc__r   r   VerticalOverflowMethodr    r#   r   r,   r.   r
   r   r   rE    r!   r   r   r      s     4>		6"	6 	6 2		6
 
	6% %D % * )7	r!   r   )systypingr   r   version_infor   pip._vendor.typing_extensions_loopr	   r/   r
   r   r   r   controlr   segmentr   r   r   r   textr   rJ   r   rK   r!   r   <module>rT      sN    
 "v5  J J  )   !>? ] ]r!   