
     f*                        d dl Z d dlZd dlZd dlZej        r'd dlZ G d dej                  Z	 ej
        d          ZdZdd
Z G d de          Z G d dej                  Z ej        dee          Zdedej        ej                 dej        ej        gef         defdZ G d d          Z	 ddlmZ ddlmZ ddlmZ dS # e$ r ddl mZ ddl mZ ddl mZ Y dS w xY w)    Nc                       e Zd ZdefdZdS )HasHTMLreturnc                     d S N selfs    V/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/markupsafe/__init__.py__html__zHasHTML.__html__
   s    D    N)__name__
__module____qualname__strr   r   r   r   r   r   	   s/        	c 	 	 	 	 	 	r   r   _Pz2.1.5funct.Callable[_P, str]r   t.Callable[_P, Markup]c                 H     t          j                   d	 fd            }|S )
Nr
   Markupargs_P.argskwargs	_P.kwargsr   c                     t          t          |          t          |          | j                  }t          ||                                | j                   |                      | g|R i |          S r   )_escape_argspeclist	enumerateescapeitems	__class__)r
   r   r   arg_listr   s       r   wrappedz)_simple_escaping_wrapper.<locals>.wrapped   sj    "4::yLL<<<~~dd4=(===f==>>>r   )r
   r   r   r   r   r   r   r   )	functoolswraps)r   r$   s   ` r   _simple_escaping_wrapperr'      s=    _T? ? ? ? ? ?
 Nr   c            	           e Zd ZdZdZ	 d0dej        dej        e         ded	d
f fdZ	d1dZ
dej        edf         d	d
f fdZdej        edf         d	d
fdZd2 fdZeZdej        d	d
f fdZd	ef fdZdej        ej        edf                  d	d
f fdZej        j        e_        	 d3dej        e         ded	ej        d
         f fdZej        j        e_        	 d3dej        e         ded	ej        d
         f fdZej        j        e_        	 d4ded	ej        d
         f fd Zej        j        e_        d	efd!Zd	efd"Zed#ej        d	d
fd$            Z eej                  Z eej                   Z  eej!                  Z! eej"                  Z" eej#                  Z# eej$                  Z$ eej%                  Z% eej&                  Z& eej'                  Z' eej(                  Z( eej)                  Z) eej*                  Z* eej+                  Z+ eej,                  Z, eej-                  Z- eej.                  Z. eej/                  Z/e0j1        d%k    r  eej2                  Z2 eej3                  Z3ded	ej4        d&         f fd'Z5ded	ej4        d&         f fd(Z6d)ej        d*ej        d	d
fd+Z7d,ej8        eej        f         d	d
fd-Z9d.ed	d
fd/Z: xZ;S )5r   a  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    Nstrictbaseencodingerrorsr   te.Selfc                     t          |d          r|                                }|"t                                          | |          S t                                          | |||          S Nr   )hasattrr   super__new__)clsr+   r,   r-   r"   s       r   r3   zMarkup.__new__C   s^     4$$ 	#==??D77??3---wwsD(F;;;r   c                     | S r   r   r	   s    r   r   zMarkup.__html__N   s    r   otherr   c                     t          |t                    st          |d          rG|                     t	                                          |                     |                              S t          S r0   )
isinstancer   r1   r"   r2   __add__r    NotImplemented)r
   r6   r"   s     r   r9   zMarkup.__add__Q   s\    eS!! 	GWUJ%?%? 	G>>%''//$++e2D2D"E"EFFFr   c                     t          |t                    st          |d          r(|                     |                              |           S t
          S r0   )r8   r   r1   r    r9   r:   )r
   r6   s     r   __radd__zMarkup.__radd__W   sK    eS!! 	4WUJ%?%? 	4;;u%%--d333r   numte.SupportsIndexc                     t          |t                    r4|                     t                                          |                    S t
          S r   )r8   intr"   r2   __mul__r:   )r
   r=   r"   s     r   rA   zMarkup.__mul__]   s=    c3 	8>>%''//#"6"6777r   argc                     t          |t                    rt           fd|D                       }n^t          t          |          d          r+t          |t                    st          | j                  }nt          | j                  f}                     t                      	                    |                    S )Nc              3   B   K   | ]}t          |j                  V  d S r   )_MarkupEscapeHelperr    ).0xr
   s     r   	<genexpr>z!Markup.__mod__.<locals>.<genexpr>h   s0      II+At{;;IIIIIIr   __getitem__)
r8   tupler1   typer   rE   r    r"   r2   __mod__)r
   rB   r"   s   ` r   rL   zMarkup.__mod__e   s    c5!! 	;IIIISIIIIICCT#YY.. 	;z#s7K7K 	;%c4;77CC 'sDK88:C~~eggooc22333r   c                 d    | j         j         dt                                                       dS )N())r"   r   r2   __repr__)r
   r"   s    r   rP   zMarkup.__repr__r   s/    .)AAEGG,<,<,>,>AAAAr   seqc                     |                      t                                          t          | j        |                              S r   )r"   r2   joinmapr    )r
   rQ   r"   s     r   rS   zMarkup.joinu   s1    ~~eggll3t{C+@+@AABBBr   sepmaxsplitc                 b      fdt                                          ||          D             S )Nc                 :    g | ]}                     |          S r   r"   rF   vr
   s     r   
<listcomp>z Markup.split.<locals>.<listcomp>}   %    HHHaq!!HHHr   )r2   splitr
   rV   rW   r"   s   `  r   r_   zMarkup.splitz   s3     IHHH577==h+G+GHHHHr   c                 b      fdt                                          ||          D             S )Nc                 :    g | ]}                     |          S r   rZ   r[   s     r   r]   z!Markup.rsplit.<locals>.<listcomp>   s%    IIIaq!!IIIr   )r2   rsplitr`   s   `  r   rc   zMarkup.rsplit   s3     JIII577>>#x+H+HIIIIr   Fkeependsc                 `      fdt                                          |          D             S )Nc                 :    g | ]}                     |          S r   rZ   r[   s     r   r]   z%Markup.splitlines.<locals>.<listcomp>   r^   r   )r2   
splitlines)r
   rd   r"   s   ` r   rg   zMarkup.splitlines   s3     IHHH577+=+=h+G+GHHHHr   c                 >    ddl m}  |t          |                     S )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)htmlri   r   )r
   ri   s     r   ri   zMarkup.unescape   s,     	"!!!!!xD		"""r   c                    t          |           }	 |                    d          }|dk    rn7|                    d|          }|dk    rn|d|          ||dz   d          }S	 |                    d          }|dk    rn7|                    d|          }|dk    rn|d|          ||d	z   d          }Sd
                    |                                          }|                     |                                          S )u   :meth:`unescape` the markup, remove tags, and normalize
        whitespace to single spaces.

        >>> Markup("Main &raquo;	<em>About</em>").striptags()
        'Main » About'
        Tz<!--rU   z-->N   <>    )r   findrS   r_   r"   ri   )r
   valuestartends       r   	striptagszMarkup.striptags   s    D		
	8JJv&&E{{ **UE**CbyyVeV}7eC!GHHo77E	8 	8JJsOOE{{**S%((CbyyVeV}7eC!GHHo77E	8 ''~~e$$--///r   sc                 L    t          |          }|j        | ur | |          S |S )ztEscape a string. Calls :func:`escape` and ensures that for
        subclasses the correct type is returned.
        )r    r"   )r4   rv   rvs      r   r    zMarkup.escape   s.    
 AYY<s""3r77N	r   )rl   	   )r.   r.   r.   c                     t                                          |                     |                    \  }}}| j        } ||           ||           ||          fS r   )r2   	partitionr    r"   r
   rV   lrv   rr4   r"   s         r   r{   zMarkup.partition   sX    ''##DKK$4$4551ans1vvss1vvss1vv%%r   c                     t                                          |                     |                    \  }}}| j        } ||           ||           ||          fS r   )r2   
rpartitionr    r"   r|   s         r   r   zMarkup.rpartition   sX    ''$$T[[%5%5661ans1vvss1vvss1vv%%r   r   r   c                 ~    t          | j                  }|                     |                    | ||                    S r   EscapeFormatterr    r"   vformat)r
   r   r   	formatters       r   formatzMarkup.format   s5    #DK00	~~i//dFCCDDDr   rT   c                 ~    t          | j                  }|                     |                    | d|                    S )Nr   r   )r
   rT   r   s      r   
format_mapzMarkup.format_map   s7     $DK00	~~i//b#>>???r   format_specc                 (    |rt          d          | S )Nz,Unsupported format specification for Markup.)
ValueError)r
   r   s     r   __html_format__zMarkup.__html_format__   s     	MKLLLr   )r)   Nr*   )r   r.   )r=   r>   r   r.   )NrU   )F)<r   r   r   __doc__	__slots__tAnyOptionalr   r3   r   Unionr9   r<   rA   __rmul__rL   rP   IterablerS   r@   Listr_   rc   boolrg   ri   ru   classmethodr    r'   rI   
capitalizetitlelowerupperreplaceljustrjustlstriprstripcenterstrip	translate
expandtabsswapcasezfillcasefoldsysversion_inforemoveprefixremovesuffixTupler{   r   r   Mappingr   r   __classcell__rZ   s   @r   r   r      s       ! !F I PX	< 	<5	<)*C	<IL	<		< 	< 	< 	< 	< 	<   QWS)^4       agc9n5 )          H415 4Y 4 4 4 4 4 4B# B B B B B BC
173	>#:; C	 C C C C C C 8#DL <>I I:c?I58I	
		I I I I I I
 I%EM <>J J:c?J58J	
		J J J J J J
 Z'FN  %I II	
		I I I I I I
 /J	## 	# 	# 	# 	#+03 +0 +0 +0 +0Z 	qu 	 	 	 	 [	 +*3?;;K))#.99J$$SY//E$$SY//E$$SY//E&&s{33G$$SY//E$$SY//E%%cj11F%%cj11F%%cj11F$$SY//E((77I))#.99J''55H$$SY//E''55H
6!!//0@AA//0@AA&S &QW-L%M & & & & & &
&c &ag.M&N & & & & & &
EAE EQU Ey E E E E@9S!%Z(@	@ @ @ @3 9        r   r   c                   p     e Zd ZdZdej        ej        gef         ddf fdZdej        de	de	fdZ
 xZS )	r   r    r    r   Nc                 V    || _         t                                                       d S r   )r    r2   __init__)r
   r    r"   s     r   r   zEscapeFormatter.__init__  s&    r   rr   r   c                    t          |d          r|                    |          }nxt          |d          r:|r#t          d| dt          |           d          |                                }n.t
          j                            | |t          |                    }t          | 	                    |                    S )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.)
r1   r   r   rK   r   string	Formatterformat_fieldr   r    )r
   rr   r   rx   s       r   r   zEscapeFormatter.format_field  s    5+,, 	N&&{33BBUJ'' 	N  G G Ge G G G  
 !!BB !..tUC<L<LMMB4;;r??###r   )r   r   r   r   r   Callabler   r   r   r   r   r   rZ   s   @r   r   r     s        Iqz15'6/: t      $!% $c $c $ $ $ $ $ $ $ $r   r   _ListOrDictobjiterabler    c                 |    |D ]8\  }}t          |t                    st          |d          r ||          | |<   9| S )z,Helper for various string-wrapped functions.r   )r8   r   r1   )r   r   r    keyrr   s        r   r   r      sQ      % %
UeS!! 	%WUJ%?%? 	%ve}}CHJr   c                       e Zd ZdZdZdej        dej        ej        gef         ddfdZ	dej        dd	fd
Z
defdZdefdZdefdZdefdZdS )rE   z"Helper for :meth:`Markup.__mod__`.r   r    r   r    r   Nc                 "    || _         || _        d S r   r   )r
   r   r    s      r   r   z_MarkupEscapeHelper.__init__0  s    r   itemr.   c                 N    |                      | j        |         | j                  S r   )r"   r   r    )r
   r   s     r   rI   z_MarkupEscapeHelper.__getitem__4  s    ~~dhtndk:::r   c                 P    t          |                     | j                            S r   )r   r    r   r	   s    r   __str__z_MarkupEscapeHelper.__str__7  s    4;;tx(()))r   c                 j    t          |                     t          | j                                      S r   )r   r    reprr   r	   s    r   rP   z_MarkupEscapeHelper.__repr__:  s$    4;;tDH~~..///r   c                 *    t          | j                  S r   )r@   r   r	   s    r   __int__z_MarkupEscapeHelper.__int__=  s    48}}r   c                 *    t          | j                  S r   )floatr   r	   s    r   	__float__z_MarkupEscapeHelper.__float__@  s    TXr   )r   r   r   r   r   r   r   r   r   r   rI   r   r   rP   r@   r   r   r   r   r   r   rE   rE   +  s        ,,!IAE 1:qugvo+F 4    ; ;) ; ; ; ;* * * * *0# 0 0 0 0    5      r   rE   ro   r   )escape_silent)soft_str)r   r   r   r   )!r%   r   r   typingr   TYPE_CHECKINGtyping_extensionsteProtocolr   	ParamSpecr   __version__r'   r   r   r   r   TypeVarr   dictr   r   r   r   r   rE   	_speedupsr    r   r   ImportError_nativer   r   r   <module>r      s%        



    ? """"    "+    
d		B    d d d d dS d d dN$ $ $ $ $f& $ $ $2 aitT22	 !
15 1;<:qugvo;V          4.++++++999999//////// . . .))))))777777---------.s   5C	 	C$#C$