
    h&                       S SK Jr  S SKJrJr  S SKrS SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJrJrJr  S/r\R6                  \R8                  R6                  \R:                  \R8                  R:                  \R<                  \R8                  R<                  \R>                  \R8                  R>                  \R@                  \R8                  R>                  \RB                  \R8                  R6                  0r"\RF                  \R8                  R6                  \RH                  \R8                  R6                  \RJ                  \R8                  R6                  \RL                  \R8                  R<                  \RN                  \R8                  R<                  \RP                  \R8                  R<                  \RR                  \R8                  R:                  \RT                  \R8                  R:                  \RV                  \R8                  R:                  0	r,\RZ                  R\                  \RZ                  R^                  \RZ                  R`                  S.r1SS jr2      SS jr3          SS jr4SS jr5   S           SS jjr6S r7SS jr8SS jr9 " S S\Rt                  5      r;g)    )annotations)SequenceOptionalN)const)colors)MTextMTextColumns)MTextParagraphAlignment)fonts)text_layout)MTextParserMTextContext	TokenTypeParagraphPropertiesestimate_mtext_extentsAbstractMTextRenderer)^/#c                    / nSU -  nUnXA:  aI  UR                  [        R                  " U[        R                  R                  5      5        XC-  nXA:  a  MI  U$ )Ng      @)appendtlTabStopTabStopTypeLEFT)
cap_heightwidth	tab_stopsstepposs        V/var/www/html/env/lib/python3.13/site-packages/ezdxf/render/abstract_mtext_renderer.pymake_default_tab_stopsr"   8   sT    ID
C
+C)<)<=> +     c                l   ^ SmU (       a  U S   R                   mU R                  U4S jU 5       5        g )N        c              3  J   >#    U  H  oR                   T:  d  M  Uv   M     g 7fN)r    ).0stoplast_poss     r!   	<genexpr>+append_default_tab_stops.<locals>.<genexpr>H   s     Kmdxx(7JTTms   #	#)r    extend)r   default_stopsr+   s     @r!   append_default_tab_stopsr0   B   s0     HR=$$KmKKr#   c                   / nU H  n[        U[        5      (       aM  [        USS  5      nUS   S:X  a  [        R                  R
                  nO@[        R                  R                  nO%[        R                  R                  n[        U5      nX`-  nX:  d  M  UR                  [        R                  " X5      5        M     [        XC5        U$ )N   r   c)
isinstancestrfloatr   r   CENTERRIGHTr   r   r   r0   )	r   r   r   r/   
_tab_stopsr*   valuekindr    s	            r!   make_tab_stopsr<   K   s     JdC  $qr(OEAw#~~~,,~~++>>&&D$KE ;bjj34  Z7r#   c                z   SnU R                   (       a  U[        R                  R                  -  nU R                  (       a  U[        R                  R
                  -  nU R                  (       a  U[        R                  R                  -  nU R                  (       a  U[        R                  R                  -  nU$ )Nr   )
	underliner   Stroke	UNDERLINEstrike_throughSTRIKE_THROUGHoverlineOVERLINEcontinue_strokeCONTINUE)ctxstrokes     r!   
get_strokerI   d   s|    F
}}"))%%%
"))***
||"))$$$
"))$$$Mr#   c                   U (       a  UR                   n[        R                  UR                  [        R
                  R                  5      nUR                  U-  nUR                  U-  n	XR                  U-  -   n
U=(       d    / nUnUR                  (       a  [        X$UR                  U5      n[        R                  " UXU	4UUS9nUR                  U 5        U$ [        R                  " UR                  US9nU$ )N)alignindentline_spacingr   )r   rM   )	paragraphALIGNgetrK   r   ParagraphAlignmentr   leftrightrL   r   r<   	Paragraphappend_contentEmptyParagraphr   )cellsrG   r   rM   r   r/   prK   rR   rS   first_default_stopsr   rN   s                 r!   new_paragraphr[   q   s     MM		!''2#8#8#=#=>vv
"*$xx*,,/</B"	;;&z!++~VILL'%	
	 	  '
  %%~~L
	 r#   c                 .    [         R                  " SSSS9$ )Nr   )r   	min_width	max_width)r   NonBreakingSpace r#   r!   
super_gluera      s    Q!qAAr#   c                d    U R                   R                  SS5      nUS:  a  [        U 5      u  pU$ )Nr   r%   ư>)dxfrP   r   )mtextr   heights      r!   defined_widthrg      s.    IIMM'3'Et|.u5Lr#   c                    U R                   (       a  [        U R                   5      nS US'   U$ [        U R                  5      nUS:  a  S /$ U/U R                  -  $ )Nr&   rc   )heightslistabsdefined_heightcount)columnsri   rl   s      r!   column_heightsro      sV    w'//0Nvgmm++r#   c                     \ rS rSrSS jr\R                  SS j5       r\R                  SS j5       r\R                  SS j5       r	\R                  SS j5       r
SS jrSS jrSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jrSrg)r      c                    0 U l         g r(   _font_cache)selfs    r!   __init__AbstractMTextRenderer.__init__   s
    OQr#   c                    g r(   r`   )ru   testrG   s      r!   wordAbstractMTextRenderer.word       r#   c                    g r(   r`   )ru   datarG   s      r!   fractionAbstractMTextRenderer.fraction   r|   r#   c                    g r(   r`   ru   re   s     r!   get_font_face#AbstractMTextRenderer.get_font_face   r|   r#   c                    g r(   r`   r   s     r!   make_bg_renderer&AbstractMTextRenderer.make_bg_renderer   r|   r#   c                   [        5       n[        [        R                  UR                  R
                  [        R                  R                  5      S9Ul	        U R                  U5      Ul        UR                  R                  Ul        UR                  R                  Ul        UR                   nUb  ["        R$                  " U6 Ul        U$ )N)rK   )r   r   ATTACHMENT_POINT_TO_ALIGNrP   rd   attachment_pointr   rQ   r   rN   r   	font_facechar_heightr   coloracirgbr   RGB)ru   re   rG   r   s       r!   make_mtext_context(AbstractMTextRenderer.make_mtext_context   s    n++//		**B,A,A,F,F

 **51..))//ii?jj#&CG
r#   c                $   [         R                  " UR                  5      nX!R                  UR                  4nU R
                  R                  U5      nUc9  [         R                  " X!R                  UR                  5      nX@R
                  U'   U$ r(   )r   find_font_file_namer   r   width_factorrt   rP   	make_font)ru   rG   ttfkeyfonts        r!   get_fontAbstractMTextRenderer.get_font   sr    ''6NNC$4$45##C(<??38H8HID$(S!r#   c                    [        U5      $ r(   )rI   ru   rG   s     r!   rI    AbstractMTextRenderer.get_stroke   s    #r#   c                ^    [         R                  U[        R                  R                  5      $ r(   )STACKINGrP   r   StackingLINE)ru   type_s     r!   get_stacking"AbstractMTextRenderer.get_stacking   s    ||E2;;#3#344r#   c                @    U R                  U5      R                  5       $ r(   )r   space_widthr   s     r!   r   !AbstractMTextRenderer.space_width   s    }}S!--//r#   c                H    [         R                  " U R                  U5      S9$ Nr   )r   Spacer   r   s     r!   spaceAbstractMTextRenderer.space   s    xxd..s344r#   c                H    [         R                  " U R                  U5      S9$ r   )r   	Tabulatorr   r   s     r!   	tabulatorAbstractMTextRenderer.tabulator   s    ||$"2"23"788r#   c                H    [         R                  " U R                  U5      S9$ r   )r   r_   r   r   s     r!   non_breaking_space(AbstractMTextRenderer.non_breaking_space   s    "")9)9#)>??r#   c                *  ^^	^
^^^^ UR                   R                  mUR                   R                  mUU	U
UUUU4S jnU R                  U5      n[	        U5      m[        TT5      m
[        R                  " TS9mUR                  (       aJ  UR                  nUc   e[        U5       H)  nTR                  UR                  UUR                  US9  M+     OTR                  US9  UR                  5       nU R                  U5      m	/ m[!        UT	5       GHk  nUR"                  m	UR$                  [&        R(                  :X  a	  U" 5         M7  UR$                  [&        R*                  :X  a  U" 5         TR-                  5         Mn  UR$                  [&        R.                  :X  a"  TR1                  U R3                  T	5      5        M  UR$                  [&        R4                  :X  a"  TR1                  U R7                  T	5      5        M  UR$                  [&        R8                  :X  a#  TR1                  U R;                  T	5      5        GM/  UR$                  [&        R<                  :X  a  T(       aK  [?        TS   [        R@                  [        RB                  45      (       a  TR1                  [E        5       5        TR1                  U RG                  URH                  T	5      5        GM  UR$                  [&        RJ                  :X  d  GM  T(       aK  [?        TS   [        R@                  [        RB                  45      (       a  TR1                  [E        5       5        TR1                  U RM                  URH                  T	5      5        GMn     T(       a  U" 5         T$ )Nc                 j   > [        TTTTTT5      n TR                  U /5        TR                  5         g r(   )r[   append_paragraphsclear)rN   rW   rG   r/   initial_cap_heightlayoutrM   r   s    r!   append_paragraph=AbstractMTextRenderer.layout_engine.<locals>.append_paragraph   s:    %"I $$i[1KKMr#   r   )r   rf   gutterrenderer)r   r&   )'rd   r   line_spacing_factorr   rg   r"   r   Layouthas_columnsrn   ro   append_columnr   gutter_widthall_columns_raw_contentr   r   rG   typer   NEW_PARAGRAPH
NEW_COLUMNnext_columnSPACEr   r   NBSPr   	TABULATORr   WORDr4   TextFractionra   rz   r~   STACKr   )ru   re   r   bg_rendererrn   rf   contenttokenrW   rG   r/   r   r   rM   r   s           @@@@@@@r!   layout_engine#AbstractMTextRenderer.layout_engine   sy   "YY22yy44
	 
	 ++E2e$./A5I'mmG&&&(1$$!--!"//(	 %  2   + 6//1%%e,! #.E))CzzY444 "y333 """$y.TZZ_-y~~-T44S9:y222T^^C01y~~-Zb	BGGR[[3IJJLL.TYYuzz378y.Zb	BGGR[[3IJJLL.T]]5::s;<- /0 r#   rs   N)returnNone)ry   r5   rG   r   r   tl.ContentCell)r~   ztuple[str, str, str]rG   r   r   r   )re   r   r   zfonts.FontFace)re   r   r   ztl.ContentRenderer)re   r   r   r   )rG   r   r   zfonts.AbstractFontrG   r   r   int)r   r5   r   ztl.Stacking)rG   r   r   r6   )rG   r   )re   r   r   z	tl.Layout)__name__
__module____qualname____firstlineno__rv   abcabstractmethodrz   r   r   r   r   r   rI   r   r   r   r   r   r   __static_attributes__r`   r#   r!   r   r      s    R 	  	  	  	 5059@@r#   )r   r6   r   r6   r   list[tl.TabStop])r   r   r/   Sequence[tl.TabStop]r   r   )
r   r6   r   r6   r   r   r/   r   r   r   r   )r2   r   N)rW   rj   rG   r   r   r6   rM   r6   r   r6   r/   zOptional[Sequence[tl.TabStop]])re   r   r   r6   )rn   r	   r   zlist[Optional[float]])<
__future__r   typingr   r   r   ezdxf.lldxfr   ezdxfr   ezdxf.entities.mtextr   r	   ezdxf.enumsr
   ezdxf.fontsr   ezdxf.toolsr   r   ezdxf.tools.textr   r   r   r   r   __all__r   rQ   r8   r7   	JUSTIFIEDDISTRIBUTEDDEFAULTrO   MTEXT_TOP_LEFTMTEXT_MIDDLE_LEFTMTEXT_BOTTOM_LEFTMTEXT_TOP_CENTERMTEXT_MIDDLE_CENTERMTEXT_BOTTOM_CENTERMTEXT_TOP_RIGHTMTEXT_MIDDLE_RIGHTMTEXT_BOTTOM_RIGHTr   r   OVERr   SLANTEDr   r"   r0   r<   rI   r[   ra   rg   ro   ABCr   r`   r#   r!   <module>r      s   # % 
   4  )  #
#   ""7"7"<"<!!2#8#8#>#>""B$9$9$@$@%%r'<'<'F'F'')>)>)H)H##R%:%:%?%?	 
"//44	R2277	R2277	B1188	r44;;	r44;;	20066	b3399	b3399
  
								LL0DL	L  (	
 2
" 48	  	
  2@B,~CGG ~r#   