
    zh3                    X   S SK Jr  S SKJr  S SKrS SKr SSKJ	r	  \R                  (       a  S SKr " S S\R                  5      r " S S\R                  5      rSS
 jrSS jrSS jr " S S	\5      r " S S\R.                  5      r " S S5      rSS jrg! \
 a	    SSKJ	r	   Nf = f)    )annotationsN   )_escape_innerc                      \ rS rSrSS jrSrg)_HasHTML   c                   g N selfs    K/var/www/auris/envauris/lib/python3.13/site-packages/markupsafe/__init__.py__html___HasHTML.__html__   s    #    r   Nreturnstr)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r      s    %r   r   c                      \ rS rSrSS jrSrg)	_TPEscape   c                   g r
   r   )r   ss     r   __call___TPEscape.__call__   s    sr   r   Nr   t.Anyr   Markup)r   r   r   r   r   r   r   r   r   r   r      s    2r   r   r#   c                   [        U 5      [        L a  [        [        U 5      5      $ [	        U S5      (       a  [        U R                  5       5      $ [        [        [        U 5      5      5      $ )a  Replace the characters ``&``, ``<``, ``>``, ``'``, and ``"`` in
the string with HTML-safe sequences. Use this if you need to display
text that might contain such characters in HTML.

If the object has an ``__html__`` method, it is called and the
return value is assumed to already be safe for HTML.

:param s: An object to be converted to a string and escaped.
:return: A :class:`Markup` string with the escaped text.
r   )typer   r#   r   hasattrr   r   s    r   escaper(      sQ     Aw#~mA&''q*ajjl##-A'((r   c               2    U c
  [        5       $ [        U 5      $ )zLike :func:`escape` but treats ``None`` as the empty string.
Useful with optional values, as otherwise you get the string
``'None'`` when the value is ``None``.

>>> escape(None)
Markup('None')
>>> escape_silent(None)
Markup('')
)r#   r(   r'   s    r   escape_silentr*   0   s     	yx!9r   c               F    [        U [        5      (       d  [        U 5      $ U $ )a|  Convert an object to a string if it isn't already. This preserves
a :class:`Markup` string rather than converting it back to a basic
string, so it will still be marked as safe and won't be escaped
again.

>>> value = escape("<User 1>")
>>> value
Markup('&lt;User 1&gt;')
>>> escape(str(value))
Markup('&amp;lt;User 1&amp;gt;')
>>> escape(soft_str(value))
Markup('&lt;User 1&gt;')
)
isinstancer   r'   s    r   soft_strr-   @   s     a1vHr   c                    ^  \ rS rSrSrSr S+       S,U 4S jjjrS-S jrS.U 4S jjrS.S jr	S/U 4S jjr
S/U 4S	 jjrS0U 4S
 jjrS1U 4S jjrS2U 4S jjr S3     S4U 4S jjjr S3     S4U 4S jjjr S5   S6U 4S jjjrS1S jrS1S jr\S7S j5       rS8U 4S jjrS-U 4S jjrS-U 4S jjrS-U 4S jjrS-U 4S jjrS9S:U 4S jjjrS;S<U 4S jjjrS;S<U 4S jjjrS=S>U 4S jjjrS=S>U 4S jjjrS;S<U 4S jjjr S=S>U 4S jjjr!    S?U 4S jjr"S@SAU 4S  jjjr#S-U 4S! jjr$SBU 4S" jjr%S-U 4S# jjr&SCU 4S$ jjr'SDU 4S% jjr(SEU 4S& jjr)SEU 4S' jjr*SFS( jr+    SGS) jr,SHS* jr-Sr.U =r/$ )Ir#   T   aB  A string that is ready to be safely inserted into an HTML or XML
document, either because it was escaped or because it was marked
safe.

Passing an object to the constructor converts it to text and wraps
it to mark it safe without escaping. To escape the text, use the
:meth:`escape` class method instead.

>>> Markup("Hello, <em>World</em>!")
Markup('Hello, <em>World</em>!')
>>> Markup(42)
Markup('42')
>>> Markup.escape("Hello, <em>World</em>!")
Markup('Hello &lt;em&gt;World&lt;/em&gt;!')

This implements the ``__html__()`` interface that some frameworks
use. Passing an object that implements ``__html__()`` will wrap the
output of that method, marking it safe.

>>> class Foo:
...     def __html__(self):
...         return '<a href="/foo">foo</a>'
...
>>> Markup(Foo())
Markup('<a href="/foo">foo</a>')

This is a subclass of :class:`str`. It has the same methods, but
escapes their arguments and returns a ``Markup`` instance.

>>> Markup("<em>%s</em>") % ("foo & bar",)
Markup('<em>foo &amp; bar</em>')
>>> Markup("<em>Hello</em> ") + "<foo>"
Markup('<em>Hello</em> &lt;foo&gt;')
r   c                   > [        US5      (       a  UR                  5       nUc  [        TU ]  X5      $ [        TU ]  XX#5      $ Nr   )r&   r   super__new__)clsobjectencodingerrors	__class__s       r   r3   Markup.__new__z   sD     6:&&__&F7?3//wsH==r   c                   U $ r
   r   r   s    r   r   Markup.__html__   s    r   c                  > [        U[        5      (       d  [        US5      (       a-  U R                  [        TU ]  U R                  U5      5      5      $ [        $ r1   )r,   r   r&   r8   r2   __add__r(   NotImplementedr   valuer8   s     r   r=   Markup.__add__   sC    eS!!WUJ%?%?>>%'/$++e2D"EFFr   c                   [        U[        5      (       d  [        US5      (       a   U R                  U5      R	                  U 5      $ [
        $ r1   )r,   r   r&   r(   r=   r>   )r   r@   s     r   __radd__Markup.__radd__   s;    eS!!WUJ%?%?;;u%--d33r   c               @   > U R                  [        TU ]	  U5      5      $ r
   r8   r2   __mul__r?   s     r   rG   Markup.__mul__       ~~egoe455r   c               @   > U R                  [        TU ]	  U5      5      $ r
   rF   r?   s     r   __rmul__Markup.__rmul__   rI   r   c               R  >^  [        U[        5      (       a  [        U 4S jU 5       5      nO][        [        U5      S5      (       a,  [        U[        5      (       d  [        UT R                  5      nO[        UT R                  5      4nT R                  [        TT ]%  U5      5      $ )Nc              3  P   >#    U  H  n[        UTR                  5      v   M     g 7fr
   )_MarkupEscapeHelperr(   ).0xr   s     r   	<genexpr>!Markup.__mod__.<locals>.<genexpr>   s      Mu!-a==us   #&__getitem__)
r,   tupler&   r%   r   rO   r(   r8   r2   __mod__r?   s   ` r   rV   Markup.__mod__   sz    eU##MuMMET%[-00E39O9O't{{;E )<>E~~egoe455r   c               T   > U R                   R                   S[        TU ]  5        S3$ )N())r8   r   r2   __repr__r   r8   s    r   r[   Markup.__repr__   s*    ..))*!EG,<,>+?qAAr   c               h   > U R                  [        TU ]	  [        U R                  U5      5      5      $ r
   )r8   r2   joinmapr(   )r   iterabler8   s     r   r_   Markup.join   s&    ~~egl3t{{H+EFGGr   c               j   > [         TU ]  X5       Vs/ s H  o0R                  U5      PM     sn$ s  snf r
   )r2   splitr8   r   sepmaxsplitvr8   s       r   rd   Markup.split   s/     ,17=+GH+Gaq!+GHHH   0c               j   > [         TU ]  X5       Vs/ s H  o0R                  U5      PM     sn$ s  snf r
   )r2   rsplitr8   re   s       r   rl   Markup.rsplit   s/     ,17>#+HI+Haq!+HIIIrj   c               j   > [         TU ]  U5       Vs/ s H  o R                  U5      PM     sn$ s  snf r
   )r2   
splitlinesr8   )r   keependsrh   r8   s      r   ro   Markup.splitlines   s0     ,17+=h+GH+Gaq!+GHHHrj   c               0    SSK Jn  U" [        U 5      5      $ )u   Convert escaped markup back into a text string. This replaces
HTML entities with the characters they represent.

>>> Markup("Main &raquo; <em>About</em>").unescape()
'Main » <em>About</em>'
r   )unescape)htmlrs   r   )r   rs   s     r   rs   Markup.unescape   s     	"D	""r   c                  [        U 5      nUR                  S5      =nS:w  a@  UR                  SU5      =nS:X  a  O'USU  XS-   S  3nUR                  S5      =nS:w  a  M@  UR                  S5      =nS:w  a@  UR                  SU5      =nS:X  a  O'USU  XS-   S  3nUR                  S5      =nS:w  a  M@  S	R                  UR                  5       5      nU R	                  U5      R                  5       $ )
u   :meth:`unescape` the markup, remove tags, and normalize
whitespace to single spaces.

>>> Markup("Main &raquo;        <em>About</em>").striptags()
'Main » About'
z<!--z-->N   <>r    )r   findr_   rd   r8   rs   )r   r@   startends       r   	striptagsMarkup.striptags   s	    D	 

6**ur1zz%//B6Ve}oe!GHo%67E 

6**ur1 

3'uB.zz#u--"4Ve}oe!GHo%67E	 

3'uB. '~~e$--//r   c               J    [        U5      nUR                  U La  U " U5      $ U$ )zdEscape a string. Calls :func:`escape` and ensures that for
subclasses the correct type is returned.
)r(   r8   )r4   r   rvs      r   r(   Markup.escape   s'    
 AY<<s"r7N	r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   rT   )r   keyr8   s     r   rT   Markup.__getitem__   s    ~~eg1#677r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   
capitalizer\   s    r   r   Markup.capitalize   s    ~~eg0233r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   titler\   s    r   r   Markup.title       ~~egmo..r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   lowerr\   s    r   r   Markup.lower   r   r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   upperr\   s    r   r   Markup.upper   r   r   c               `   > U R                  [        TU ]	  XR                  U5      U5      5      $ r
   )r8   r2   replacer(   )r   oldnewcountr8   s       r   r   Markup.replace  s&    ~~egoc;;s3CUKLLr   c               ^   > U R                  [        TU ]	  XR                  U5      5      5      $ r
   )r8   r2   ljustr(   r   widthfillcharr8   s      r   r   Markup.ljust  $    ~~egmE;;x3HIJJr   c               ^   > U R                  [        TU ]	  XR                  U5      5      5      $ r
   )r8   r2   rjustr(   r   s      r   r   Markup.rjust  r   r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   lstripr   charsr8   s     r   r   Markup.lstrip
      ~~egnU344r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   rstripr   s     r   r   Markup.rstrip  r   r   c               ^   > U R                  [        TU ]	  XR                  U5      5      5      $ r
   )r8   r2   centerr(   r   s      r   r   Markup.center  s$    ~~egnUKK4IJKKr   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   stripr   s     r   r   Markup.strip      ~~egmE233r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   	translate)r   tabler8   s     r   r   Markup.translate  s    
 ~~eg/677r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   
expandtabs)r   tabsizer8   s     r   r   Markup.expandtabs  s    ~~eg09::r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   swapcaser\   s    r   r   Markup.swapcase       ~~eg.011r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   zfill)r   r   r8   s     r   r   Markup.zfill#  r   r   c               >   > U R                  [        TU ]	  5       5      $ r
   )r8   r2   casefoldr\   s    r   r   Markup.casefold&  r   r   c               @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   removeprefix)r   prefixr8   s     r   r   Markup.removeprefix)      ~~eg26:;;r   c                @   > U R                  [        TU ]	  U5      5      $ r
   )r8   r2   removesuffix)r   suffixr8   s     r   r   Markup.removesuffix,  r   r   c               n   > [         TU ]  U5      u  p!nU R                  nU" U5      U" U5      U" U5      4$ r
   )r2   	partitionr8   r   rf   leftrightr4   r8   s        r   r   Markup.partition/  s9     7,S15nn4y#c(CJ..r   c               n   > [         TU ]  U5      u  p!nU R                  nU" U5      U" U5      U" U5      4$ r
   )r2   
rpartitionr8   r   s        r   r   Markup.rpartition4  s9     7-c25nn4y#c(CJ..r   c                n    [        U R                  5      nU R                  UR                  XU5      5      $ r
   EscapeFormatterr(   r8   vformat)r   argskwargs	formatters       r   formatMarkup.format9  s,    #DKK0	~~i//FCDDr   c               p    [        U R                  5      nU R                  UR                  U SU5      5      $ )Nr   r   )r   mappingr   s      r   
format_mapMarkup.format_map=  s0    
 $DKK0	~~i//b'BCCr   c               *    U(       a  [        S5      eU $ )Nz,Unsupported format specification for Markup.)
ValueError)r   format_specs     r   __html_format__Markup.__html_format__E  s    KLLr   ) Nstrict)r5   r"   r6   
str | Noner7   r   r   te.Self)r   r   )r@   zstr | _HasHTMLr   r   )r@   t.SupportsIndexr   r   )r@   r"   r   r   r   )ra   zcabc.Iterable[str | _HasHTML]r   r   )Nrw   )rf   r   rg   r   r   list[te.Self])F)rp   boolr   r   )r   r"   r   r   )r   zt.SupportsIndex | slicer   r   )rw   )r   r   r   r   r   r   r   r   )r{   )r   r   r   r   r   r   r
   )r   r   r   r   )r   z#cabc.Mapping[int, str | int | None]r   r   )   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )rf   r   r   z tuple[te.Self, te.Self, te.Self])r   r"   r   r"   r   r   )r   zcabc.Mapping[str, t.Any]r   r   )r   r   r   r   )0r   r   r   r   __doc__	__slots__r3   r   r=   rC   rG   rK   rV   r[   r_   rd   rl   ro   rs   r   classmethodr(   rT   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__r8   s   @r   r#   r#   T   s   !F I MU	>	>+5	>FI	>		> 	>666BH FHI I3BI	I I FHJ J3BJ	J J #(II	I I
	#0> 	 	84///M MK KK K5 55 5L L4 4828 
	8; ;242<</
/
ED)D 
	D r   c                  @   ^  \ rS rSrSrSU 4S jjrSU 4S jjrSrU =r$ )r   iL  )r(   c                .   > Xl         [        TU ]	  5         g r
   )r(   r2   __init__)r   r(   r8   s     r   r   EscapeFormatter.__init__O  s    !'r   c                8  > [        US5      (       a  UR                  U5      nO][        US5      (       a3  U(       a  [        SU S[        U5       S35      eUR	                  5       nO[
        TU ]  U[        U5      5      n[        U R                  U5      5      $ )Nr   r   zFormat specifier z given, but z{ does not define __html_format__. A class that defines __html__ must define __html_format__ to work with format specifiers.)	r&   r   r   r%   r   r2   format_fieldr   r(   )r   r@   r   r   r8   s       r   r   EscapeFormatter.format_fieldS  s    5+,,&&{3BUJ'' '}Le NG G 
 !B %eS-=>B4;;r?##r   )r(   r   r   None)r@   r"   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   s   @r   r   r   L  s    I$ $r   r   c                  X    \ rS rSrSrS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)rO   ie  z"Helper for :meth:`Markup.__mod__`.objr(   c                    Xl         X l        g r
   r   )r   r  r(   s      r   r   _MarkupEscapeHelper.__init__j  s    !'r   c               T    U R                  U R                  U   U R                  5      $ r
   )r8   r  r(   )r   r   s     r   rT   _MarkupEscapeHelper.__getitem__n  s    ~~dhhsmT[[99r   c               J    [        U R                  U R                  5      5      $ r
   )r   r(   r  r   s    r   __str___MarkupEscapeHelper.__str__q  s    4;;txx())r   c               \    [        U R                  [        U R                  5      5      5      $ r
   )r   r(   reprr  r   s    r   r[   _MarkupEscapeHelper.__repr__t  s    4;;tDHH~.//r   c               ,    [        U R                  5      $ r
   )intr  r   s    r   __int___MarkupEscapeHelper.__int__w  s    488}r   c               ,    [        U R                  5      $ r
   )floatr  r   s    r   	__float___MarkupEscapeHelper.__float__z  s    TXXr   )r(   r  N)r  r"   r(   r   r   r   )r   r"   r   r   r   )r   r  )r   r  )r   r   r   r   r   r   r   rT   r  r[   r  r  r   r   r   r   rO   rO   e  s(    ,!I(:*0r   rO   c                    U S:X  a3  SS K nSS KnUR                  SSS9  UR                  R	                  S5      $ [        U 5      e)N__version__r   zThe '__version__' attribute is deprecated and will be removed in MarkupSafe 3.1. Use feature detection, or `importlib.metadata.version("markupsafe")`, instead.   )
stacklevel
markupsafe)importlib.metadatawarningswarnmetadataversionAttributeError)name	importlibr  s      r   __getattr__r!  ~  sP    }!D 	 	 	
 !!)),77

r   r!   )r   zt.Any | Noner   r#   )r   r"   r   r   )r  r   r   r"   )
__future__r   collections.abcabccabcstringtypingt	_speedupsr   ImportError_nativeTYPE_CHECKINGtyping_extensionsteProtocolr   r   r(   r*   r-   r   r#   	Formatterr   rO   r!  r   r   r   <module>r1     s    "   '( ??"&qzz &3

 3)0 (uS up$f&& $2 2k  '&'s   B B)(B)