1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
U
Þ=®d’)ã@sRddlZddlZddlZddlZddlZejrRddlZGdd„dej    ƒZ
e  d¡Z dZ e dej¡Ze dej¡Zdd    d
œd d „ZGd d„deƒZGdd„dejƒZe dee¡Zeejejejejgefedœdd„ZGdd„dƒZz(ddl m!Z!ddl m"Z"ddl m#Z#Wn:e$k
rLddl%m!Z!ddl%m"Z"ddl%m#Z#YnXdS)éNc@seZdZedœdd„ZdS)ÚHasHTML©ÚreturncCsdS©N©©ÚselfrrúJd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\markupsafe/__init__.pyÚ__html__ szHasHTML.__html__N)Ú__name__Ú
__module__Ú __qualname__Ústrr
rrrr    r
srÚ_Pz2.1.3z
<!--.*?-->z<.*?>zt.Callable[_P, str]zt.Callable[_P, Markup])Úfuncrcs&t ˆ¡dddddœ‡fdd„ ƒ}|S)NÚMarkupz_P.argsz    _P.kwargs)rÚargsÚkwargsrcs>tt|ƒt|ƒ|jƒ}t|| ¡|jƒ| ˆ|f|ž|Ž¡Sr)Ú_escape_argspecÚlistÚ    enumerateÚescapeÚitemsÚ    __class__)rrrÚarg_list©rrr    Úwrappedsz)_simple_escaping_wrapper.<locals>.wrapped)Ú    functoolsÚwraps)rrrrr    Ú_simple_escaping_wrappersrcsâeZdZdZdZd@ejejeeddœ‡fdd    „ Z    dd
œd d „Z
ej ed fddœ‡fdd„ Z ej ed fddœdd„Z dddœ‡fdd„ ZeZejddœ‡fdd„ Zed
œ‡fdd„ Zejej ed fddœ‡fdd„ Zejje_dAejeeejdd œ‡fd!d"„ Zejje_dBejeeejdd œ‡fd#d$„ Zejje_dCeejdd&œ‡fd'd(„ Zejje_ed
œd)d*„Zed
œd+d,„Zeejdd-œd.d/„ƒZeejƒZeej ƒZ eej!ƒZ!eej"ƒZ"eej#ƒZ#eej$ƒZ$eej%ƒZ%eej&ƒZ&eej'ƒZ'eej(ƒZ(eej)ƒZ)eej*ƒZ*eej+ƒZ+eej,ƒZ,eej-ƒZ-eej.ƒZ.eej/ƒZ/e0j1d0krdeej2ƒZ2eej3ƒZ3eej4d1d2œ‡fd3d4„ Z5eej4d1d2œ‡fd5d6„ Z6ejejdd7œd8d9„Z7ej8eejfdd:œd;d<„Z9edd=œd>d?„Z:‡Z;S)Dra®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úte.Self)ÚbaseÚencodingÚerrorsrcs:t|dƒr| ¡}|dkr(tƒ ||¡Stƒ ||||¡S©Nr
)Úhasattrr
ÚsuperÚ__new__)Úclsr#r$r%©rrr    r)Gs
 
zMarkup.__new__rcCs|Srrrrrr    r
RszMarkup.__html__r)Úotherrcs0t|tƒst|dƒr,| tƒ | |¡¡¡StSr&)Ú
isinstancerr'rr(Ú__add__rÚNotImplemented©rr,r+rr    r.UszMarkup.__add__cCs(t|tƒst|dƒr$| |¡ |¡StSr&)r-rr'rr.r/r0rrr    Ú__radd__[szMarkup.__radd__zte.SupportsIndex)Únumrcs t|tƒr| tƒ |¡¡StSr)r-Úintrr(Ú__mul__r/)rr2r+rr    r4as
zMarkup.__mul__)Úargrcsht|tƒr"t‡fdd„|Dƒƒ}n4tt|ƒdƒrHt|tƒsHt|ˆjƒ}nt|ˆjƒf}ˆ tƒ     |¡¡S)Nc3s|]}t|ˆjƒVqdSr)Ú_MarkupEscapeHelperr)Ú.0Úxrrr    Ú    <genexpr>lsz!Markup.__mod__.<locals>.<genexpr>Ú __getitem__)
r-Útupler'Útyperr6rrr(Ú__mod__)rr5r+rr    r=is 
zMarkup.__mod__cs|jj›dtƒ ¡›dS)Nú(ú))rr r(Ú__repr__rr+rr    r@vszMarkup.__repr__)Úseqrcs| tƒ t|j|ƒ¡¡Sr)rr(ÚjoinÚmapr)rrAr+rr    rBysz Markup.joinéÿÿÿÿ)ÚsepÚmaxsplitrcs‡fdd„tƒ ||¡DƒS)Ncsg|]}ˆ |¡‘qSrr+©r7Úvrrr    Ú
<listcomp>sz Markup.split.<locals>.<listcomp>)r(Úsplit©rrErFr+rr    rJ~sz Markup.splitcs‡fdd„tƒ ||¡DƒS)Ncsg|]}ˆ |¡‘qSrr+rGrrr    rIˆsz!Markup.rsplit.<locals>.<listcomp>)r(ÚrsplitrKr+rr    rL…sz Markup.rsplitF)Úkeependsrcs‡fdd„tƒ |¡DƒS)Ncsg|]}ˆ |¡‘qSrr+rGrrr    rIsz%Markup.splitlines.<locals>.<listcomp>)r(Ú
splitlines)rrMr+rr    rNŒszMarkup.splitlinescCsddlm}|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)ÚhtmlrOr)rrOrrr    rO“s zMarkup.unescapecCs4t d|¡}t d|¡}d | ¡¡}| |¡ ¡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_rerBrJrrO)rÚvaluerrr    Ú    striptagsžs  zMarkup.striptags)ÚsrcCst|ƒ}|j|k    r||ƒS|S)ztEscape a string. Calls :func:`escape` and ensures that for
        subclasses the correct type is returned.
        )rr)r*rWÚrvrrr    r«s
z Markup.escape)éé    )r"r"r")rErcs4tƒ | |¡¡\}}}|j}||ƒ||ƒ||ƒfSr)r(Ú    partitionrr©rrEÚlrWÚrr*r+rr    r[ÍszMarkup.partitioncs4tƒ | |¡¡\}}}|j}||ƒ||ƒ||ƒfSr)r(Ú
rpartitionrrr\r+rr    r_ÒszMarkup.rpartition)rrrcOst|jƒ}| | |||¡¡Sr©ÚEscapeFormatterrrÚvformat)rrrÚ    formatterrrr    Úformat×s
z Markup.format)rCrcCst|jƒ}| | |d|¡¡S)Nrr`)rrCrcrrr    Ú
format_mapÛs
zMarkup.format_map)Ú format_specrcCs|r tdƒ‚|S)Nz,Unsupported format specification for Markup.)Ú
ValueError)rrfrrr    Ú__html_format__ászMarkup.__html_format__)r Nr!)NrD)NrD)F)<r r r Ú__doc__Ú    __slots__ÚtÚAnyÚOptionalrr)r
ÚUnionr.r1r4Ú__rmul__r=r@ÚIterablerBr3ÚListrJrLÚboolrNrOrVÚ classmethodrrr:Ú
capitalizeÚtitleÚlowerÚupperÚreplaceÚljustÚrjustÚlstripÚrstripÚcenterÚstripÚ    translateÚ
expandtabsÚswapcaseÚzfillÚcasefoldÚsysÚ version_infoZ removeprefixZ removesuffixÚTupler[r_rdÚMappingrerhÚ __classcell__rrr+r    r!s’#ÿþ  $
ÿþ
ÿþ
ÿþ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
þ rcsJeZdZdZejejgefddœ‡fdd„ Zeje    e    dœdd„Z
‡Z S)    ra©rN)rrcs||_tƒ ¡dSr)rr(Ú__init__)rrr+rr    rŠëszEscapeFormatter.__init__)rUrfrcCsjt|dƒr| |¡}nFt|dƒrH|r>td|›dt|ƒ›dƒ‚| ¡}ntj ||t|ƒ¡}t|     |¡ƒS)Nrhr
zFormat 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'rhrgr<r
ÚstringÚ    FormatterÚ format_fieldrr)rrUrfrXrrr    rïs
 
ÿ
zEscapeFormatter.format_field) r r r rjrkÚCallablerlrrŠrrrˆrrr+r    raès"raÚ _ListOrDict)ÚobjÚiterablerrcCs2|D](\}}t|tƒs t|dƒr||ƒ||<q|S)z,Helper for various string-wrapped functions.r
)r-rr')rr‘rÚkeyrUrrr    rs rc@s€eZdZdZdZejejejgefddœdd„Z    ejddœd    d
„Z
e d œd d „Z e d œdd„Z ed œdd„Zed œdd„ZdS)r6z"Helper for :meth:`Markup.__mod__`.©rrN)rrrcCs||_||_dSrr“)rrrrrr    rŠsz_MarkupEscapeHelper.__init__r")ÚitemrcCs| |j||j¡Sr)rrr)rr”rrr    r:sz_MarkupEscapeHelper.__getitem__rcCst| |j¡ƒSr)rrrrrrr    Ú__str__sz_MarkupEscapeHelper.__str__cCst| t|jƒ¡ƒSr)rrÚreprrrrrr    r@sz_MarkupEscapeHelper.__repr__cCs
t|jƒSr)r3rrrrr    Ú__int__!sz_MarkupEscapeHelper.__int__cCs
t|jƒSr)Úfloatrrrrr    Ú    __float__$sz_MarkupEscapeHelper.__float__)r r r rirjrkrlrŽrrŠr:rr•r@r3r—r˜r™rrrr    r6s"r6ér‰)Ú escape_silent)Úsoft_str)&rÚrer‹r„ÚtypingrkÚ TYPE_CHECKINGZtyping_extensionsÚteÚProtocolrZ    ParamSpecrÚ __version__ÚcompileÚDOTALLrRrTrrrrŒraÚTypeVarrÚdictrrprlrŽrr6Z    _speedupsrr›rœÚ ImportErrorZ_nativerrrr    Ú<module>s<
 
H
þ