Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
ЍEYc@sxdZddlZddlZddlmZddlmZmZmZm	Z	m
Z
mZdZdddd	gZ
ejd
ƒZejdƒZdefd„ƒYZd
efd„ƒYZeedƒrédejfd„ƒYZnd„Zdefd„ƒYZy ddlmZmZmZWn-ek
rWddlmZmZmZnXesteZe
j dƒndS(sž
    markupsafe
    ~~~~~~~~~~

    Implements a Markup string.

    :copyright: (c) 2010 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(tMapping(t	text_typetstring_typest	int_typestunichrt	iteritemstPY2s1.0tMarkuptsoft_unicodetescapet
escape_silents(<!--.*?-->|<[^>]*>)s&([^& ;]+);cBs|eZdZd)Zdd*dd„Zd„Zd„Zd„Zd„Z	e	Z
d„Zd	„Zd
„Z
ej
je
_d„Zejje_d„Zejje_d
„Zejje_d„Zd„Zed„ƒZd„Zx!d+D]Zeeƒeƒe<qñWeed"ƒr2d#„Zd$„Zneed%ƒrVd&„Zd'„Zneed(ƒrted(ƒZn[[RS(,sMarks a string as being safe for inclusion in HTML/XML output without
    needing to be escaped.  This implements the `__html__` interface a couple
    of frameworks and web applications use.  :class:`Markup` is a direct
    subclass of `unicode` and provides all the methods of `unicode` just that
    it escapes arguments passed and always returns `Markup`.

    The `escape` function returns markup objects so that double escaping can't
    happen.

    The constructor of the :class:`Markup` class can be used for three
    different things:  When passed an unicode object it's assumed to be safe,
    when passed an object with an HTML representation (has an `__html__`
    method) that representation is used, otherwise the object passed is
    converted into a unicode string and then assumed to be safe:

    >>> Markup("Hello <em>World</em>!")
    Markup(u'Hello <em>World</em>!')
    >>> class Foo(object):
    ...  def __html__(self):
    ...   return '<a href="#">foo</a>'
    ...
    >>> Markup(Foo())
    Markup(u'<a href="#">foo</a>')

    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 <em>World</em>!")
    Markup(u'Hello &lt;em&gt;World&lt;/em&gt;!')

    Operations on a markup string are markup aware which means that all
    arguments are passed through the :func:`escape` function:

    >>> em = Markup("<em>%s</em>")
    >>> em % "foo & bar"
    Markup(u'<em>foo &amp; bar</em>')
    >>> strong = Markup("<strong>%(text)s</strong>")
    >>> strong % {'text': '<blink>hacker here</blink>'}
    Markup(u'<strong>&lt;blink&gt;hacker here&lt;/blink&gt;</strong>')
    >>> Markup("<em>Hello</em> ") + "<foo>"
    Markup(u'<em>Hello</em> &lt;foo&gt;')
    utstrictcCsPt|dƒr|jƒ}n|dkr:tj||ƒStj||||ƒS(Nt__html__(thasattrRtNoneRt__new__(tclstbasetencodingterrors((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRGs
cCs|S(N((tself((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRNscCsJt|tƒst|dƒrF|jtt|ƒj|j|ƒƒƒStS(NR(	t
isinstanceRR
t	__class__tsuperRt__add__R	tNotImplemented(Rtother((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRQs(cCs8t|dƒst|tƒr4|j|ƒj|ƒStS(NR(R
RRR	RR(RR((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt__radd__VscCs,t|tƒr(|jtj||ƒƒStS(N(RRRRt__mul__R(Rtnum((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR[scsYt|tƒr.t‡fd†|Dƒƒ}nt|ˆjƒ}ˆjtjˆ|ƒƒS(Nc3s!|]}t|ˆjƒVqdS(N(t_MarkupEscapeHelperR	(t.0tx(R(sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pys	<genexpr>cs(RttupleRR	RRt__mod__(Rtarg((RsH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR"ascCsd|jjtj|ƒfS(Ns%s(%s)(Rt__name__Rt__repr__(R((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR%hs	cCs%|jtj|t|j|ƒƒƒS(N(RRtjointmapR	(Rtseq((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR&nscOs%tt|jtj|||ŽƒƒS(N(tlistR'RRtsplit(Rtargstkwargs((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR*rscOs%tt|jtj|||ŽƒƒS(N(R)R'RRtrsplit(RR+R,((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR-vscOs%tt|jtj|||ŽƒƒS(N(R)R'RRt
splitlines(RR+R,((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR.zscs5ddlm‰‡fd†}tj|t|ƒƒS(sÖUnescape markup again into an text_type string.  This also resolves
        known HTML4 and XHTML entities:

        >>> Markup("Main &raquo; <em>About</em>").unescape()
        u'Main \xbb <em>About</em>'
        iÿÿÿÿ(t
HTML_ENTITIEScs•|jdƒ}|ˆkr)tˆ|ƒSyN|d dkrStt|ddƒƒS|jdƒrvtt|dƒƒSWntk
rŠnX|jƒS(Niis#xs#Xit#(s#xs#X(tgroupRtintt
startswitht
ValueError(tmtname(R/(sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pythandle_match‡s
(tmarkupsafe._constantsR/t
_entity_retsubR(RR7((R/sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pytunescapes
cCs1djtjd|ƒjƒƒ}t|ƒjƒS(sUnescape markup into an text_type string and strip all tags.  This
        also resolves known HTML4 and XHTML entities.  Whitespace is
        normalized to one:

        >>> Markup("Main &raquo;  <em>About</em>").striptags()
        u'Main \xbb About'
        u t(R&t
_striptags_reR:R*RR;(Rtstripped((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt	striptags–s!cCs)t|ƒ}|j|k	r%||ƒ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.
        (R	R(Rtstrv((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR	¡s
cs:tt|ƒ‰‡fd†}ˆj|_ˆj|_|S(NcsStt|ƒt|ƒ|jƒ}t|t|ƒ|jƒ|jˆ|||ŽƒS(N(t_escape_argspecR)t	enumerateR	RR(RR+R,(torig(sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pytfunc®s!(tgetattrRR$t__doc__(R6RE((RDsH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pytmake_simple_escaping_wrapper¬s
t__getitem__t
capitalizettitletlowertuppertreplacetljusttrjusttlstriptrstriptcentertstript	translatet
expandtabstswapcasetzfillt	partitioncCs+tt|jtj||j|ƒƒƒƒS(N(R!R'RRRYR	(Rtsep((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRY¾scCs+tt|jtj||j|ƒƒƒƒS(N(R!R'RRt
rpartitionR	(RRZ((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR[ÁstformatcOsO|d|d}}t|jƒ}t||ƒ}|j|j|||ƒƒS(Nii(tEscapeFormatterR	t_MagicFormatMappingRtvformat(R+R,Rt	formatter((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR\ÇscCs|rtdƒ‚n|S(Ns,Unsupported format specification for Markup.(R4(Rtformat_spec((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt__html_format__Íst__getslice__(N(s__getitem__s
capitalizestitleslowersuppersreplacesljustsrjustslstripsrstripscentersstrips	translates
expandtabssswapcaseszfill(R$t
__module__RGt	__slots__RRRRRRt__rmul__R"R%R&RR*R-R.R;R?tclassmethodR	RHtmethodtlocalsR
RYR[R\RbRc(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRsH*													

		R^cBs2eZdZd„Zd„Zd„Zd„ZRS(sÍThis class implements a dummy wrapper to fix a bug in the Python
    standard library for string formatting.

    See http://bugs.python.org/issue13598 for information about why
    this is necessary.
    cCs||_||_d|_dS(Ni(t_argst_kwargst_last_index(RR+R,((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt__init__âs		cCsa|dkrV|j}|jd7_y|j|SWntk
rFnXt|ƒ}n|j|S(NR<i(RlRjtLookupErrortstrRk(Rtkeytidx((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRIçs	
cCs
t|jƒS(N(titerRk(R((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt__iter__òscCs
t|jƒS(N(tlenRk(R((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt__len__õs(R$RdRGRmRIRsRu(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR^Ús
			R\R]cBseZd„Zd„ZRS(cCs
||_dS(N(R	(RR	((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRmüscCs…t|dƒr!|j|ƒ}nQt|dƒrT|rEtdƒ‚n|jƒ}ntjj||t|ƒƒ}t|j|ƒƒS(NRbRsSNo format specification allowed when formatting an object with its __html__ method.(	R
RbR4Rtstringt	Formattertformat_fieldRR	(RtvalueRaRA((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRxÿs	(R$RdRmRx(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR]ús	cCsLxE|D]=\}}t|dƒs1t|tƒr||ƒ||<qqW|S(s,Helper for various string-wrapped functions.R(R
RR(tobjtiterableR	RpRy((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRBsRcBsHeZdZd„Zd„Zd„ZZd„Zd„Zd„Z	RS(sHelper for Markup.__mod__cCs||_||_dS(N(RzR	(RRzR	((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRms	cCst|j||jƒS(N(RRzR	(R@R ((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt<lambda>!scCst|j|jƒƒS(N(RR	Rz(R@((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR|"scCst|jt|jƒƒƒS(N(RoR	treprRz(R@((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR|#scCs
t|jƒS(N(R2Rz(R@((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR|$scCs
t|jƒS(N(tfloatRz(R@((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyR|%s(
R$RdRGRmRIt__unicode__t__str__R%t__int__t	__float__(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyRs		
		(R	R
Rtsoft_str(!RGtreRvtcollectionsRtmarkupsafe._compatRRRRRRt__version__t__all__tcompileR=R9RR^R
RwR]RBtobjectRtmarkupsafe._speedupsR	R
RtImportErrortmarkupsafe._nativeRƒtappend(((sH/home/tvault/.virtenv/lib/python2.7/site-packages/markupsafe/__init__.pyt<module>
s*.À