Ñò Tö Lc@sÎdZddkZddklZdddgZeidƒZeidƒZd efd „ƒYZ d „Z d e fd „ƒYZ yddk lZlZWn)ej oddklZlZnXdS(sž markupsafe ~~~~~~~~~~ Implements a Markup string. :copyright: (c) 2010 by Armin Ronacher. :license: BSD, see LICENSE for more details. iÿÿÿÿN(timaptModulet soft_unicodetescapes(|<[^>]*>)s &([^;]+);tMarkupcBs…eZdZd&Zdd'dd„Zd„Zd„Zd„Zd„Z e Z d„Z d „Z d „Z ei ie _d „Zeiie_d „Zeiie_d „Zeiie_d„Zd„Zed„ƒZd„Zx!d(D]Zeeƒeƒe>> Markup("Hello World!") Markup(u'Hello World!') >>> class Foo(object): ... def __html__(self): ... return 'foo' ... >>> Markup(Foo()) Markup(u'foo') If you want object passed being always treated as unsafe you can use the :meth:`escape` classmethod to create a :class:`Markup` object: >>> Markup.escape("Hello World!") Markup(u'Hello <em>World</em>!') Operations on a markup string are markup aware which means that all arguments are passed through the :func:`escape` function: >>> em = Markup("%s") >>> em % "foo & bar" Markup(u'foo & bar') >>> strong = Markup("%(text)s") >>> strong % {'text': 'hacker here'} Markup(u'<blink>hacker here</blink>') >>> Markup("Hello ") + "" Markup(u'Hello <foo>') utstrictcCsTt|dƒo|iƒ}n|djoti||ƒSti||||ƒS(Nt__html__(thasattrRtNonetunicodet__new__(tclstbasetencodingterrors((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR Cs  cCs|S(N((tself((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyRJscCsHt|dƒpt|tƒo$|it|ƒtt|ƒƒƒStS(NR(Rt isinstancet basestringt __class__R RtNotImplemented(Rtother((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt__add__Ms $cCsHt|dƒpt|tƒo$|itt|ƒƒt|ƒƒStS(NR(RRRRR RR(RR((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt__radd__Rs $cCs4t|ttfƒo|iti||ƒƒStS(N(RtinttlongRR t__mul__R(Rtnum((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyRWscCsNt|tƒottt|ƒƒ}n t|ƒ}|iti||ƒƒS(N(RttupleRt_MarkupEscapeHelperRR t__mod__(Rtarg((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR]s cCsd|iiti|ƒfS(Ns%s(%s)(Rt__name__R t__repr__(R((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR ds cCs"|iti|tt|ƒƒƒS(N(RR tjoinRR(Rtseq((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR!jscOst|iti|||ŽƒS(N(tmapRR tsplit(Rtargstkwargs((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR$nscOst|iti|||ŽƒS(N(R#RR trsplit(RR%R&((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR'rscOst|iti|||ŽƒS(N(R#RR t splitlines(RR%R&((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR(vscs5ddkl‰‡fd†}ti|t|ƒƒS(sÔUnescape markup again into an unicode string. This also resolves known HTML4 and XHTML entities: >>> Markup("Main » About").unescape() u'Main \xbb About' iÿÿÿÿ(t HTML_ENTITIESc s—|idƒ}|ˆjotˆ|ƒSyR|d djott|ddƒƒS|idƒott|dƒƒSWntj onXdS( Niis#xs#Xit#u(s#xs#X(tgrouptunichrRt startswitht ValueError(tmtname(R)(s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt handle_match‚s (tmarkupsafe._constantsR)t _entity_retsubR (RR1((R)s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pytunescapezs cCs1ditid|ƒiƒƒ}t|ƒiƒS(sUnescape markup into an unicode string and strip all tags. This also resolves known HTML4 and XHTML entities. Whitespace is normalized to one: >>> Markup("Main » About").striptags() u'Main \xbb About' u t(R!t _striptags_reR4R$RR5(Rtstripped((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt striptagss!cCs+t|ƒ}|i|j o ||ƒS|S(s²Escape the string. Works like :func:`escape` with the difference that for subclasses of :class:`Markup` this function would return the correct subclass. (RR(R tstrv((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyR›s  cs:tt|ƒ‰‡fd†}ˆi|_ˆi|_|S(NcsGtt|ƒt|ƒƒ}t||iƒƒ|iˆ|||ŽƒS(N(t_escape_argspectlistt enumeratet iteritemsR(RR%R&(torig(s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pytfunc¨s(tgetattrR Rt__doc__(R0RA((R@s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt make_wrapper¦s   t __getitem__t capitalizettitletlowertuppertreplacetljusttrjusttlstriptrstriptcentertstript translatet expandtabstswapcasetzfillt partitiont rpartitiontformatt __getslice__(N(s __getitem__s capitalizestitleslowersuppersreplacesljustsrjustslstripsrstripscentersstrips translates expandtabssswapcaseszfill(Rt __module__RCt __slots__RR RRRRt__rmul__RR R!R R$R'R(R5R9t classmethodRRDtmethodtlocalsRRURVRWRX(((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyRsH*             cCsOxH|D]@\}}t|dƒpt|tƒot|ƒ||ÔscCstt|iƒƒS((tstrRR_(R:((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyReÕscCstt|iƒƒS((R RR_(R:((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyReÖscCsttt|iƒƒƒS((RfRtreprR_(R:((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyRe×scCs t|iƒS((RR_(R:((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyReØscCs t|iƒS((tfloatR_(R:((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyReÙs( RRYRCRcREt__str__t __unicode__R t__int__t __float__(((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyRÎs      (RR(RCtret itertoolsRt__all__tcompileR7R3R RR<tobjectRtmarkupsafe._speedupsRRt ImportErrortmarkupsafe._native(((s9/usr/lib64/python2.6/site-packages/markupsafe/__init__.pyt s °