Your IP : 3.143.7.53


Current Path : /opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyc

�
�Rec@`sddlmZmZmZddlmZddlZddlmZm	Z	ddl
mZmZm
Z
ddl
mZmZmZddlmZmZdd	lmZd
je
�dZejded
�Zejded�ZiZed�dkZx�eej��D]�\Z Z!eo9ee!�dkpReoRee!�dkr[qne!dkr�ee!�dkr�ej"e!�Z!ne#e!�Z!e!ekp�e j$�r�e ee!<nnqWd�Z%ede%�de&d�Z'de(fd��YZ)de*fd��YZ+dS(i(tabsolute_importtdivisiontunicode_literals(t	text_typeN(tregister_errortxmlcharrefreplace_errorsi(tvoidElementstbooleanAttributestspaceCharacters(trcdataElementstentitiestxmlEntities(ttreewalkerst_utils(tescapeuu"'=<>`u[u]u_	

 /`  ᠎᠏           

   ]u􏿿iu&c
C`st|ttf�rqg}g}t}x�t|j|j|j!�D]�\}}|rbt}qDn||j}tj	|j|t
|j|dg�!�r�tj|j||d!�}t}nt
|�}|j|�qDWxz|D]r}tj|�}	|	r<|jd�|j|	�|	jd�sW|jd�qWq�|jdt|�d�q�Wdj|�|jfSt|�SdS(Niu&u;u&#x%s;u(t
isinstancetUnicodeEncodeErrortUnicodeTranslateErrortFalset	enumeratetobjecttstarttendR
tisSurrogatePairtmintsurrogatePairToCodepointtTruetordtappendt_encode_entity_maptgettendswiththextjoinR(
texctrest
codepointstskiptitctindext	codepointtcpte((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pythtmlentityreplace_errors*s0)
,	


uhtmlentityreplaceuetreecK`s1tj|�}t|�}|j||�|�S(u�Serializes the input token stream using the specified treewalker

    :arg input: the token stream to serialize

    :arg tree: the treewalker to use

    :arg encoding: the encoding to use

    :arg serializer_opts: any options to pass to the
        :py:class:`html5lib.serializer.HTMLSerializer` that gets created

    :returns: the tree serialized as a string

    Example:

    >>> from html5lib.html5parser import parse
    >>> from html5lib.serializer import serialize
    >>> token_stream = parse('<html><body><p>Hi!</p></body></html>')
    >>> serialize(token_stream, omit_optional_tags=False)
    '<html><head></head><body><p>Hi!</p></body></html>'

    (Rt
getTreeWalkertHTMLSerializertrender(tinputttreetencodingtserializer_optstwalkerts((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyt	serializeKsR.cB`s�eZdZdZeZeZeZeZ	eZ
eZeZeZ
eZeZeZeZdZd�Zd�Zd�Zdd�Zdd�Zdd�ZRS(ulegacyu"uquote_attr_valuesu
quote_charuuse_best_quote_charuomit_optional_tagsuminimize_boolean_attributesuuse_trailing_solidususpace_before_trailing_solidusuescape_lt_in_attrsu
escape_rcdatauresolve_entitiesualphabetical_attributesuinject_meta_charsetustrip_whitespaceusanitizec	K`s�t|�t|j�}t|�dkrJtdtt|����nd|krbt|_nx6|jD]+}t|||j	|t
||���qlWg|_t|_dS(uB
Initialize HTMLSerializer

        :arg inject_meta_charset: Whether or not to inject the meta charset.

            Defaults to ``True``.

        :arg quote_attr_values: Whether to quote attribute values that don't
            require quoting per legacy browser behavior (``"legacy"``), when
            required by the standard (``"spec"``), or always (``"always"``).

            Defaults to ``"legacy"``.

        :arg quote_char: Use given quote character for attribute quoting.

            Defaults to ``"`` which will use double quotes unless attribute
            value contains a double quote, in which case single quotes are
            used.

        :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute
            values.

            Defaults to ``False``.

        :arg escape_rcdata: Whether to escape characters that need to be
            escaped within normal elements within rcdata elements such as
            style.

            Defaults to ``False``.

        :arg resolve_entities: Whether to resolve named character entities that
            appear in the source tree. The XML predefined entities &lt; &gt;
            &amp; &quot; &apos; are unaffected by this setting.

            Defaults to ``True``.

        :arg strip_whitespace: Whether to remove semantically meaningless
            whitespace. (This compresses all whitespace to a single space
            except within ``pre``.)

            Defaults to ``False``.

        :arg minimize_boolean_attributes: Shortens boolean attributes to give
            just the attribute value, for example::

              <input disabled="disabled">

            becomes::

              <input disabled>

            Defaults to ``True``.

        :arg use_trailing_solidus: Includes a close-tag slash at the end of the
            start tag of void elements (empty elements whose end tag is
            forbidden). E.g. ``<hr/>``.

            Defaults to ``False``.

        :arg space_before_trailing_solidus: Places a space immediately before
            the closing slash in a tag using a trailing solidus. E.g.
            ``<hr />``. Requires ``use_trailing_solidus=True``.

            Defaults to ``True``.

        :arg sanitize: Strip all unsafe or unknown constructs from output.
            See :py:class:`html5lib.filters.sanitizer.Filter`.

            Defaults to ``False``.

        :arg omit_optional_tags: Omit start/end tags that are optional.

            Defaults to ``True``.

        :arg alphabetical_attributes: Reorder attributes to be in alphabetical order.

            Defaults to ``False``.

        iu2__init__() got an unexpected keyword argument '%s'u
quote_charN(
t	frozensettoptionstlent	TypeErrortnexttiterRtuse_best_quote_chartsetattrRtgetattrterrorststrict(tselftkwargstunexpected_argstattr((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyt__init__�sO)	cC`s9t|t�st�|jr1|j|jd�S|SdS(Nuhtmlentityreplace(RRtAssertionErrorR2tencode(RBtstring((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyRH�s	cC`s9t|t�st�|jr1|j|jd�S|SdS(Nustrict(RRRGR2RH(RBRI((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pytencodeStrict�s	cc`sn||_t}g|_|rI|jrIddlm}|||�}n|jrqddlm}||�}n|jr�ddl	m}||�}n|j
r�ddlm}||�}n|jr�ddl
m}||�}nx~|D]v}|d}|dkr�d|d}|dr9|d|d7}n|d	rP|d
7}n|d	r�|d	jd�dkr�|d	jd
�dkr�|jd�nd
}nd}|d||d	|f7}n|d7}|j|�Vq�|d3kra|dks|rF|r1|djd�dkr1|jd�n|j|d�Vqf|jt|d��Vq�|d4kr.|d}	|jd|	�V|	tkr�|jr�t}n|r�|jd�nx|dj�D]
\\}
}}|}
|}|jd�V|j|
�V|jsI|
tj|	t��kr�|
tjdt��kr�|jd�V|jdksxt|�dkr�t}nZ|jdkr�tj|�dk	}n3|jdkr�t j|�dk	}nt!d ��|j"d!d"�}|j#r|j"d#d$�}n|r�|j$}|j%rhd
|krDd|krDd}qhd|krhd
|krhd
}qhn|d
kr�|j"d
d%�}n|j"dd&�}|j|�V|j|�V|j|�Vq�|j|�Vq�q�W|	t&kr|j'r|j(r|jd'�Vq|jd(�Vn|jd�Vq�|d)kr�|d}	|	tkrYt}n|ro|jd�n|jd*|	�Vq�|d+kr�|d}|jd,�dkr�|jd-�n|jd.|d�Vq�|d/krU|d}	|	d0}|t)kr|jd1|	�n|j*r:|t+kr:t)|}n
d2|	}|j|�Vq�|j|d�q�WdS(5Ni(tFilterutypeuDoctypeu<!DOCTYPE %sunameupublicIdu PUBLIC "%s"usystemIdu SYSTEMu"iu'uBSystem identifier contains both single and double quote charactersu %s%s%su>u
CharactersuSpaceCharactersudatau</uUnexpected </ in CDATAuStartTaguEmptyTagu<%su+Unexpected child element of a CDATA elementu uu=ualwaysuspeculegacyu?quote_attr_values must be one of: 'always', 'spec', or 'legacy'u&u&amp;u<u&lt;u&#39;u&quot;u /u/uEndTagu</%s>uCommentu--uComment contains --u	<!--%s-->uEntityu;uEntity %s not recognizedu&%s;(u
CharactersuSpaceCharacters(uStartTaguEmptyTag(,R2RR@tinject_meta_charsettfilters.inject_meta_charsetRKtalphabetical_attributestfilters.alphabeticalattributeststrip_whitespacetfilters.whitespacetsanitizetfilters.sanitizertomit_optional_tagstfilters.optionaltagstfindtserializeErrorRJRHRR	t
escape_rcdataRtitemstminimize_boolean_attributesRRttupletquote_attr_valuesR9t_quoteAttributeSpectsearchtNonet_quoteAttributeLegacyt
ValueErrortreplacetescape_lt_in_attrst
quote_charR=Rtuse_trailing_solidustspace_before_trailing_solidusR
tresolve_entitiesR(RBt
treewalkerR2tin_cdataRKttokenttypetdoctypeRdtnamet_t	attr_namet
attr_valuetktvt
quote_attrtdatatkey((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyR6�s�						





	

	#
!						
	




cC`sE|r%djt|j||���Sdjt|j|���SdS(unSerializes the stream from the treewalker into a string

        :arg treewalker: the treewalker to serialize

        :arg encoding: the string encoding to use

        :returns: the serialized tree

        Example:

        >>> from html5lib import parse, getTreeWalker
        >>> from html5lib.serializer import HTMLSerializer
        >>> token_stream = parse('<html><body>Hi!</body></html>')
        >>> walker = getTreeWalker('etree')
        >>> serializer = HTMLSerializer(omit_optional_tags=False)
        >>> serializer.render(walker(token_stream))
        '<html><head></head><body>Hi!</body></html>'

        tuN(R!tlistR6(RBRhR2((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyR/wsuXXX ERROR MESSAGE NEEDEDcC`s&|jj|�|jr"t�ndS(N(R@RRAtSerializeError(RBRt((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyRW�s	(uquote_attr_valuesu
quote_charuuse_best_quote_charuomit_optional_tagsuminimize_boolean_attributesuuse_trailing_solidususpace_before_trailing_solidusuescape_lt_in_attrsu
escape_rcdatauresolve_entitiesualphabetical_attributesuinject_meta_charsetustrip_whitespaceusanitizeN(t__name__t
__module__R\RdRR=RTRZRReRfRcRXRgRNRLRPRRR8RFRHRJR_R6R/RW(((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyR.hs4	Y		�RxcB`seZdZRS(uError in serialized tree(RyRzt__doc__(((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyRx�s(,t
__future__RRRtpip._vendor.sixRtretcodecsRRt	constantsRRRR	R
RRvRR
txml.sax.saxutilsRR!t_quoteAttributeSpecCharstcompileR]R`RR9t_is_ucs4RwRYRqRrRRtislowerR,R_R6RR.t	ExceptionRx(((s�/builddir/build/BUILDROOT/alt-python27-pip-20.2.4-5.el8.x86_64/opt/alt/python27/lib/python2.7/site-packages/pip/_vendor/html5lib/serializer.pyt<module>s:

		
�0

?>