
    ̆h+              
      h   S 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Jr  \(       a  SS
KJr  SSKJr  SSKrSSKJs  Jr  SrSrSrSrSSSSSSSSSS.	rS\-  rS\-  rSrSrS\-  rS \-  rS!r S"\-  r!S#r"S$\-  r#S%\-  r$S&\-  r%S'r&S(r'S)r(\S*-   r) " S+ S,\5      r* " S- S.\5      r+S/ r,g)0z
Convert ASCII dashes, quotes and ellipses to their HTML entity equivalents.

See the [documentation](https://Python-Markdown.github.io/extensions/smarty)
for details.
    )annotations   )	Extension   )HtmlInlineProcessorHTML_RE)InlineProcessor)Registry)TYPE_CHECKINGSequence)Markdown)inlinepatternsNz)[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]z[\s.,;:!?)]z[^\ \t\r\n\[\{\(\-\u0002\u0003]u1   (\s|&nbsp;|--|–|—|&[mn]dash;|&#8211;|&#8212;)z&mdash;z&ndash;z&hellip;z&laquo;z&raquo;z&lsquo;z&rsquo;z&ldquo;z&rdquo;)	mdashndashellipsisleft-angle-quoteright-angle-quoteleft-single-quoteright-single-quoteleft-double-quoteright-double-quotez
^'(?=%s\B)z
^"(?=%s\B)z"'(?=\w)z'"(?=\w)z
(?<=%s)\'"z
(?<=%s)\"'z(?<!\w)'(?=\d{2}s)z	%s"(?=\w)z"(?=\s)z(?<=%s)"z	%s'(?=\w)z(?<=%s)'(?!\s|s\b|\d)z	'(\s|s\b)'"z(?!\>)c                  (    \ rS rSrSS jrSS jrSrg)SubstituteTextPattern   c                H    [         R                  " X5        X l        X0l        g)z!Replaces matches with some text. N)r   __init__replacemd)selfpatternr   r    s       R/opt/services/DDDS/venv/lib/python3.13/site-packages/markdown/extensions/smarty.pyr   SubstituteTextPattern.__init__   s    $$T3    c                   SnU R                    HT  n[        U[        5      (       a  X1R                  U5      -  nM-  X0R                  R
                  R                  U5      -  nMV     X1R                  S5      UR                  S5      4$ )N r   )	r   
isinstanceintgroupr    	htmlStashstorestartend)r!   mdataresultparts        r#   handleMatch!SubstituteTextPattern.handleMatch   sl    LLD$$$''$-'''++11$77	 !
 wwqz1558++r%   )r    r   N)r"   strr   z#Sequence[int | str | etree.Element]r    r   )r/   zre.Match[str]r0   r5   returnztuple[str, int, int])__name__
__module____qualname____firstlineno__r   r3   __static_attributes__ r%   r#   r   r      s    ,r%   r   c                  t   ^  \ rS rSrSrU 4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S
rU =r$ )SmartyExtension   zAdd Smarty to Markdown. c                   > SS/SS/SS/SS/0 S/S.U l          [        TU ]  " S0 UD6  [        [        5      U l        U R                  R                  U R                  S	0 S
95        g )NTzEducate quotesFzEducate angled quoteszEducate dasheszEducate ellipseszOverwrite default substitutions)smart_quotessmart_angled_quotessmart_dashessmart_ellipsessubstitutionsrE   )defaultr<   )configsuperr   dictrE   update	getConfig)r!   kwargs	__class__s     r#   r   SmartyExtension.__init__   s|    !#34$)+B#C!#34#%78 "CD
 	/"6"-1--@!!$.."."MNr%   c                    [        U5       H6  u  pVXa4-  n[        U6 nSX54-  nU R                  R                  XgXE-
  5        M8     g )Nzsmarty-%s-%d)	enumerater   inlinePatternsregister)r!   r    patternsseriepriorityindr"   names           r#   _addPatternsSmartyExtension._addPatterns   sM     &h/LCuG+W5G!UL0D((E	 0r%   c                    [        SU R                  S   4U5      n[        SU R                  S   4U5      nU R                  R                  USS5        U R                  R                  USS5        g )	Nz(?<!-)---(?!-)r   z(?<!-)--(?!-)r   zsmarty-em-dashes2   zsmarty-en-dashes-   r   rE   rQ   rR   )r!   r    emDashesPatternenDashesPatterns       r#   educateDashesSmartyExtension.educateDashes   sv    / 2 27 ;=r
 0t11':<b
 	$$_6H"M$$_6H"Mr%   c                t    [        SU R                  S   4U5      nU R                  R                  USS5        g )Nz(?<!\.)\.{3}(?!\.)r   zsmarty-ellipses
   r]   )r!   r    ellipsesPatterns      r#   educateEllipsesSmartyExtension.educateEllipses   s<    /!D$6$6z$B#Db
 	$$_6GLr%   c                    [        SU R                  S   4U5      n[        SU R                  S   4U5      nU R                  R                  USS5        U R                  R                  USS5        g )	Nz\<\<r   z\>\>r   zsmarty-left-angle-quotes(   zsmarty-right-angle-quotes#   r]   )r!   r    leftAngledQuotePatternrightAngledQuotePatterns       r#   educateAngledQuotes#SmartyExtension.educateAngledQuotes   s~    !6d(();<>"
 #8d(()<=?#
 	$$%;=WY[\$$%<>Y[]^r%   c                   U R                   S   nU R                   S   nU R                   S   nU R                   S   n[        U44[        U44[        XB-   44[        X$-   44[
        X5-   44[        XS-   44[        U44[        SU44[        U44[        US44[        U44[        SU44[        U44[        U44[        U444nU R!                  XSS5        g )Nr   r   r   r   r   quotes   )rE   singleQuoteStartRedoubleQuoteStartRedoubleQuoteSetsResingleQuoteSetsRedoubleQuoteSetsRe2singleQuoteSetsRe2decadeAbbrReopeningSingleQuotesRegexclosingSingleQuotesRegexclosingSingleQuotesRegex2remainingSingleQuotesRegexopeningDoubleQuotesRegexclosingDoubleQuotesRegexclosingDoubleQuotesRegex2remainingDoubleQuotesRegexrX   )r!   r    lsquorsquoldquordquorS   s          r#   educateQuotesSmartyExtension.educateQuotes   s	   ""#67""#78""#67""#78%*%* 01 01%-!12%-!12E8$%5z2%x0&
3'%2%5z2%x0&1'%2
" 	""5r%   c                   U R                  5       n[        5       U l        US   (       a  U R                  U5        US   (       a  U R	                  U5        US   (       a<  U R                  U5        UR                  R                  [        [        U5      SS5        US   (       a  U R                  U5        [        U5      nU R                  Ul        UR                  R                  USS5        UR                  R                  S	S
/5        g )NrD   rA   rB   htmlZ   rC   smarty   r   r   )
getConfigsr
   rQ   re   r   rl   rR   r   HTML_STRICT_REr`   r	   treeprocessorsESCAPED_CHARSextend)r!   r    configsinlineProcessors       r#   extendMarkdownSmartyExtension.extendMarkdown  s    //#HP
#$  $>"r"()$$R( &&':>2'NPVXZ[>"r")"-)-)<)<&
""?Ha@
c
+r%   )rG   rQ   rE   )r    r   rS   z9Sequence[tuple[str, Sequence[int | str | etree.Element]]]rT   r5   rU   r)   )r    r   r6   None)r7   r8   r9   r:   __doc__r   rX   r`   re   rl   r   r   r;   __classcell__)rM   s   @r#   r>   r>      s^    #OFF LF 	F
 FNM_60, ,r%   r>   c                     [        S0 U D6$ )Nr<   )r>   )rL   s    r#   makeExtensionr     s    $V$$r%   )-r   
__future__r   r'   r   r   r   r   r   r	   utilr
   typingr   r   markdownr   rexml.etree.ElementTreeetreeElementTree
punctClassendOfWordClass
closeClassopeningQuotesBaserE   rq   rr   rs   rt   ru   rv   rw   r|   r}   r~   rx   ry   rz   r{   r   r   r   r>   r   r<   r%   r#   <module>r      s.  ^ #  9 ,  *!!)) >
/
	  !""#"#
 #Z/ "Z/  $ # "Z/ "Z/  % (*;;  & '*4  (*;;  4j@ (  " ! 9$,/ ,"_,i _,D%r%   