
    E d%                     $   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	dZ
 ej        dej                  Z ej        dej                  Zdedej        d	         f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    \C:\Users\ChattiNader\Documents\MyHotelMatch\api\dev\Lib\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   z2.1.2z
<!--.*?-->z<.*?>namer   ).Markupc           	          t          t          |           t          j                  dddt          j        dt          j        ddffd            }|S )Nr
   r   argskwargsr   c                     t          t          |          t          |          | j                  }t          ||                                | j                   |                      | g|R i |          S r   )_escape_argspeclist	enumerateescapeitems	__class__)r
   r   r   origs      r   wrappedz)_simple_escaping_wrapper.<locals>.wrapped   sj    tDzz9T??DKHH<<<~~dd49$999&99:::r   )getattrr   	functoolswrapstAny)r   r   r   s     @r   _simple_escaping_wrapperr%      sl    3D_T;h ;qu ; ;( ; ; ; ; ; ;
 Nr   c            	           e Zd ZdZdZ	 d-dej        dej        e         ded	d f fd
Z	d.dZ
dej        edf         d	d f fdZdej        edf         d	d fdZd/ 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_        	 d0dej        e         ded	ej        d          f fdZej        j        e_        	 d0dej        e         ded	ej        d          f fdZej        j        e_        d1d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d$D ]Z ee           e             e<   [ded	ej!        d%         f fd&Z"ded	ej!        d%         f fd'Z#d(ej        d)ej        d	d fd*Z$d+ed	d fd,Z% xZ&S )2r   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   c                     t          |d          r|                                }|"t                                          | |          S t                                          | |||          S Nr   )hasattrr   super__new__)clsr)   r*   r+   r   s       r   r0   zMarkup.__new__F   s^     4$$ 	#==??D77??3---wwsD(F;;;r   c                     | S r   r   r	   s    r   r   zMarkup.__html__Q   s    r   otherr   c                     t          |t                    st          |d          rG|                     t	                                          |                     |                              S t          S r-   )
isinstancer   r.   r   r/   __add__r   NotImplemented)r
   r3   r   s     r   r6   zMarkup.__add__T   s\    eS!! 	GWUJ%?%? 	G>>%''//$++e2D2D"E"EFFFr   c                     t          |t                    st          |d          r(|                     |                              |           S t
          S r-   )r5   r   r.   r   r6   r7   )r
   r3   s     r   __radd__zMarkup.__radd__Z   sK    eS!! 	4WUJ%?%? 	4;;u%%--d333r   numte.SupportsIndexc                     t          |t                    r4|                     t                                          |                    S t
          S r   )r5   intr   r/   __mul__r7   )r
   r:   r   s     r   r>   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>k   s0      II+At{;;IIIIIIr   __getitem__)
r5   tupler.   typer   rB   r   r   r/   __mod__)r
   r?   r   s   ` r   rI   zMarkup.__mod__h   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   r/   __repr__)r
   r   s    r   rM   zMarkup.__repr__u   s/    .)AAEGG,<,<,>,>AAAAr   seqc                     |                      t                                          t          | j        |                              S r   )r   r/   joinmapr   )r
   rN   r   s     r   rP   zMarkup.joinx   s1    ~~eggll3t{C+@+@AABBBr   sepmaxsplitc                 b      fdt                                          ||          D             S )Nc                 :    g | ]}                     |          S r   r   rC   vr
   s     r   
<listcomp>z Markup.split.<locals>.<listcomp>   %    HHHaq!!HHHr   )r/   splitr
   rS   rT   r   s   `  r   r\   zMarkup.split}   s3     IHHH577==h+G+GHHHHr   c                 b      fdt                                          ||          D             S )Nc                 :    g | ]}                     |          S r   rW   rX   s     r   rZ   z!Markup.rsplit.<locals>.<listcomp>   s%    IIIaq!!IIIr   )r/   rsplitr]   s   `  r   r`   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   rW   rX   s     r   rZ   z%Markup.splitlines.<locals>.<listcomp>   r[   r   )r/   
splitlines)r
   ra   r   s   ` r   rd   zMarkup.splitlines   s0    H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)htmlrf   r   )r
   rf   s     r   rf   zMarkup.unescape   s,     	"!!!!!xD		"""r   c                     t                               d|           }t                              d|          }d                    |                                          }t          |                                          S )u   :meth:`unescape` the markup, remove tags, and normalize
        whitespace to single spaces.

        >>> Markup("Main &raquo;	<em>About</em>").striptags()
        'Main » About'
        r'    )_strip_comments_resub_strip_tags_rerP   r\   r   rf   )r
   values     r   	striptagszMarkup.striptags   s_     #&&r400""2u--''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   )r1   ro   rvs      r   r   zMarkup.escape   s.    
 AYY<s""3r77N	r   )rF   
capitalizetitlelowerupperreplaceljustrjustlstriprstripcenterstrip	translate
expandtabsswapcasezfill)r   r   r   c                     t                                          |                     |                    \  }}}| j        } ||           ||           ||          fS r   )r/   	partitionr   r   r
   rS   lro   rr1   r   s         r   r   zMarkup.partition   sX    ''##DKK$4$4551ans1vvss1vvss1vv%%r   c                     t                                          |                     |                    \  }}}| j        } ||           ||           ||          fS r   )r/   
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   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   )NrR   )F)'r   r   r   __doc__	__slots__r#   r$   Optionalr   r0   r   Unionr6   r9   r>   __rmul__rI   rM   IterablerP   r=   Listr\   r`   boolrd   rf   rn   classmethodr   methodr%   localsTupler   r   r   r   __classcell__rW   s   @r   r   r       s@       ! !F I PX	< 	<5	<)*C	<IL	<		< 	< 	< 	< 	< 	<   QWS)^4       agc9n5 (          H415 4X 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4 IAF84D I I I I I I /J	## 	# 	# 	# 	#(3 ( ( ( ( 	qu 	 	 	 	 [	 < <$ 43F;;&S &QW-I%J & & & & & &
&c &ag.J&K & & & & & &
EAE EQU Ex E E E E3 8        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   r/   __init__)r
   r   r   s     r   r   zEscapeFormatter.__init__   s&    r   rm   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.)
r.   r   r   rH   r   string	Formatterformat_fieldr   r   )r
   rm   r   rq   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   rW   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   )r5   r   r.   )r   r   r   keyrm   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 )rB   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__  s    r   itemc                 B    t          | j        |         | j                  S r   )rB   r   r   )r
   r   s     r   rF   z_MarkupEscapeHelper.__getitem__  s    "48D>4;???r   c                 P    t          |                     | j                            S r   )r   r   r   r	   s    r   __str__z_MarkupEscapeHelper.__str__  s    4;;tx(()))r   c                 j    t          |                     t          | j                                      S r   )r   r   reprr   r	   s    r   rM   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   rF   r   r   rM   r=   r   r   r   r   r   r   rB   rB     s        ,,!IAE 1:qugvo+F 4    @ @*? @ @ @ @* * * * *0# 0 0 0 0    5      r   rB      r   )escape_silent)soft_str)#r!   rer   typingr#   TYPE_CHECKINGtyping_extensionsteProtocolr   __version__compileDOTALLrj   rl   r   r   r%   r   r   r   TypeVarr   dictr   r   r$   r   rB   	_speedupsr   r   r   ImportError_nativer   r   r   <module>r      sR       				     ? """"    "+   
 RZry99 Hbi00	3 	1:m+D 	 	 	 	| | | | |S | | |~$ $ $ $ $f& $ $ $2 aitT22	 !
15 1;<:qugvo;V          4.++++++999999//////// . . .))))))777777---------.s    C4 4DD