+
    "Ý³j€  ã                  ó�   € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHtH	t	H
t
 ^RIHt ^RIHtHt  ! R R]4      t ! R R	4      tR	R.tR# )
zHBackend interfaces and ANSI implementations for region-composed screens.)ÚannotationsN)ÚCallableÚOptionalÚProtocolÚSequenceÚTuple)Úget_buffered_stdout)ÚRenderBackendStateÚrender_backend_statec                  óF   € ] tR t^tRtR R ltRR/R R lltR R	 ltR
tR# )ÚRegionScreenBackendz6Backend contract for region-composed screen renderers.c               ó   € V ^8„  d   QhRR/# ©é   Úreturnr	   © )Úformats   "ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/logbar/screen_backend.pyÚ__annotate__Ú RegionScreenBackend.__annotate__   s   € ÷ Qñ QÐ1ñ Qó    c                ó   € R# )zBProbe the current capabilities and geometry of the target backend.Nr   ©Úselfs   &r   Úbackend_stateÚ!RegionScreenBackend.backend_state   ó   ‚ r   r   Nc               ó$   € V ^8„  d   QhRRRRRR/# ©r   ÚlineszSequence[str]r   zOptional[RenderBackendState]r   ÚNoner   )r   s   "r   r   r      s-   € ÷ Jñ JàðJð 4ð	Jð
 
ñJr   c               ó   € R# )z;Paint one full composed frame represented as terminal rows.Nr   )r   r   r   s   &&$r   Úrender_linesÚ RegionScreenBackend.render_lines   r   r   c               ó   € V ^8„  d   QhRR/# ©r   r   r    r   )r   s   "r   r   r       s   € ÷ Jñ J�tñ Jr   c                ó   € R# )z;Restore backend state and release any fullscreen resources.Nr   r   s   &r   ÚcloseÚRegionScreenBackend.close    r   r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r"   r'   Ú__static_attributes__r   r   r   r   r      s(   † Ù@õQðJð 7;÷	J÷Jñ Jr   r   c                  óz   € ] tR t^$tRtRRRRRR/R R lltR	 R
 ltRR/R R lltR R ltR R lt	R R lt
RtR# )ÚAnsiRegionScreenBackendz9ANSI/stdout backend for region-composed screen rendering.ÚstreamNÚsize_providerÚuse_alternate_screenTc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r1   zOptional[object]r2   z'Optional[Callable[[], Tuple[int, int]]]r3   Úboolr   r    r   )r   s   "r   r   Ú$AnsiRegionScreenBackend.__annotate__'   s4   € ÷ 'ñ 'ð !ð'ð ?ð	'ð
 #ð'ð 
ñ'r   c               ó  € Ve   TM\         P                  V n        \        V P                  4      V n        W n        \        V4      V n        RV n        RV n	        . V n
        RV n        \        P                  ! 4       V n        R# )z.Bind the backend to one stream and size probe.NF)ÚsysÚstdoutÚ_base_streamr   Ú_streamÚ_size_providerr5   Ú_use_alternate_screenÚ_entered_alternate_screenÚ_cursor_hiddenÚ_last_rendered_linesÚ_last_rendered_sizeÚ	threadingÚRLockÚ_lock)r   r1   r2   r3   s   &$$$r   Ú__init__Ú AnsiRegionScreenBackend.__init__'   sk   € ð '-Ò&8™F¼c¿j¹jˆÔÜ*¨4×+<Ñ+<Ó=ˆŒØ+ÔÜ%)Ð*>Ó%?ˆÔ"Ø).ˆÔ&Ø#ˆÔØ/1ˆÔ!Ø>BˆÔ Ü—_’_Ó&ˆŽ
r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r6   :   s   € ÷ ñ Ð1ñ r   c                óª   € V P                   ;_uu_ 4        \        V P                  V P                  R7      uuRRR4       #   + '       g   i     R# ; i)z@Probe the current capabilities and geometry of the bound stream.)r1   r2   N)rD   r
   r;   r<   r   s   &r   r   Ú%AnsiRegionScreenBackend.backend_state:   s1   € ð �Z�Z‹ZÜ'Ø—|‘|Ø"×1Ñ1ô÷ �Z�Z‹Zús   •!AÁA	r   c               ó$   € V ^8„  d   QhRRRRRR/# r   r   )r   s   "r   r   r6   C   s-   € ÷ 9Dñ 9Dàð9Dð 4ð	9Dð
 
ñ9Dr   c          	     óø  € V P                   ;_uu_ 4        T;'       g    V P                  4       pV Uu. uF  p\        V4      NK  	  ppVP                  '       g„   RP	                  V4      pV'       d3   V P                  V4       V P                  R4       V P                  4        \        V4      V n        VP                  VP                  3V n         RRR4       R# . pV P                  VP                  VP                  38g  pV P                  '       d-   V P                  '       g   VP                  R4       RV n        RpV P                  '       g   VP                  R4       RV n        V'       g$   \!        V P                  4      \!        V4      8w  d0   VP                  R4       \        \#        \!        V4      4      4      p	M?\%        \'        V P                  V4      4       U
UUu. uF  w  p
w  r¼W¼8w  g   K  V
NK  	  p	pp
pV	 FG  pVP                  RV^,            R24       VP                  R	4       VP                  W],          4       KI  	  V'       d   VP                  R
4       V'       d1   V P                  RP	                  V4      4       V P                  4        \        V4      V n        VP                  VP                  3V n        RRR4       R# u upi u uppp
i   + '       g   i     R# ; i)zAPaint one frame of composed lines onto the ANSI terminal backend.Ú
Nz[?1049hTz[?25lz[2Jz[z;1Hz[2Kz[1;1HÚ )rD   r   ÚstrÚsupports_cursorÚjoinÚ_writeÚ_flushÚlistr@   Úcolumnsr   rA   r=   r>   Úappendr?   ÚlenÚrangeÚ	enumerateÚzip)r   r   r   ÚstateÚlineÚnormalized_linesÚpayloadÚ	sequencesÚsize_changedÚrow_indexesÚindexÚold_lineÚnew_lineÚ	row_indexs   &&$           r   r"   Ú$AnsiRegionScreenBackend.render_linesC   s\  € ð �Z�Z‹ZØ!×9Ð9 T×%7Ñ%7Ó%9ˆEÙ6;Ó<±e¨d¤ D¦	±eÐÐ<à×(×(Ð(ØŸ)™)Ð$4Ó5�ßØ—K‘K Ô(Ø—K‘K Ô%Ø—K‘K”MÜ,0Ð1AÓ,B�Ô)Ø,1¯M©M¸5¿;¹;Ð+G�Ô(Ø÷ ‰Zð $&ˆIØ×3Ñ3¸¿¹ÀuÇ{Á{Ð7SÑSˆLà×)×)Ð)°$×2P×2PÐ2PØ× Ñ  Ô/Ø15�Ô.Ø#�à×&×&Ð&Ø× Ñ  Ô-Ø&*�Ô#çœs 4×#<Ñ#<Ó=ÄÐEUÓAVÔVØ× Ñ  Ô+Ü"¤5¬Ð-=Ó)>Ó#?Ó@‘ô 8AÄÀT×E^ÑE^Ð`pÓAqÔ7rõá7rÑ3˜Ñ3 ØÑ+÷ �EÙ7rð ò ó )�	Ø× Ñ  5¨°Q­¨°sÐ!;Ô<Ø× Ñ  Ô+Ø× Ñ Ð!1Õ!<Ö=ñ )÷
  Ø× Ñ  Ô-çØ—‘˜BŸG™G IÓ.Ô/Ø—‘”ä(,Ð-=Ó(>ˆDÔ%Ø(-¯©°u·{±{Ð'CˆDÔ$÷c ‰Zùâ<ùô8÷= �ZˆZúsb   •K(´KÁ,K(Á5A K(Ã8K(ÄK(Ä*+K(ÅK(Å6A5K(Ç+K!Ç=K!ÈAK(ÉK(É5AK(ËK(Ë(K9	c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   r6   ~   s   € ÷ ,ñ ,�tñ ,r   c                ó   € V P                   ;_uu_ 4        . pV P                  '       d   VP                  R4       RV n        V P                  '       d   VP                  R4       RV n        V'       d1   V P	                  RP                  V4      4       V P                  4        . V n        RV n        RRR4       R#   + '       g   i     R# ; i)z:Restore terminal state and forget the last rendered frame.z[?25hFz[?1049lrM   N)	rD   r?   rU   r>   rQ   rP   rR   r@   rA   )r   r^   s   & r   r'   ÚAnsiRegionScreenBackend.close~   s“   € ð �Z�Z‹ZØ#%ˆIØ×"×"Ð"Ø× Ñ  Ô-Ø&+�Ô#Ø×-×-Ð-Ø× Ñ  Ô/Ø16�Ô.ßØ—‘˜BŸG™G IÓ.Ô/Ø—‘”Ø(*ˆDÔ%Ø'+ˆDÔ$÷ �Z�ZŠZús   •>B<ÁB<Á4>B<Â<C	c               ó    € V ^8„  d   QhRRRR/# )r   ÚdatarN   r   Úintr   )r   s   "r   r   r6   �   s   € ÷ (ñ (˜3ð ( 3ñ (r   c                ó8   € V P                   P                  V4      # )z1Write one raw payload to the bound output stream.)r;   Úwrite)r   rj   s   &&r   rQ   ÚAnsiRegionScreenBackend._write�   s   € ð �|‰|×!Ñ! $Ó'Ð'r   c               ó   € V ^8„  d   QhRR/# r%   r   )r   s   "r   r   r6   ”   s   € ÷ ñ ˜ñ r   c                óh   € \        V P                  RR4      p\        V4      '       d
   V! 4        R# R# )z-Flush the bound output stream when supported.ÚflushN)Úgetattrr;   Úcallable)r   rq   s   & r   rR   ÚAnsiRegionScreenBackend._flush”   s)   € ô ˜Ÿ™ g¨tÓ4ˆÜ�E�?Š?ÙŽGñ r   )	r:   r?   r>   r@   rA   rD   r<   r;   r=   )r)   r*   r+   r,   r-   rE   r   r"   r'   rQ   rR   r.   r   r   r   r0   r0   $   sU   † ÙCð'ð $(ð'ð BFð	'ð
 &*÷'õ&ð9Dð 7;÷	9Dõv,õ"(÷
ñ r   r0   )r-   Ú
__future__r   r8   rB   Útypingr   r   r   r   r   Úbufferr   Úterminalr	   r
   r   r0   Ú__all__r   r   r   Ú<module>rz      sH   ðñ Oå "ã 
Û ß @Õ @å 'ß >ôJ˜(ô J÷$uñ uðp %Ð&;Ð
<‚r   