Viewing File: /usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyo

ó
ÄqPc@s¹dZddlmZddlmZddlmZddlm	Z	m
Z
mZy
eZ
Wnek
r{eefZ
nXyddlmZWn!ek
r³ddlmZnXyddlmZWn!ek
rëddlmZnXdefd	„ƒYZydd
lmZWnek
r)n Xdefd„ƒYZeƒZd
„Zedd„Zeedd„Zeedd„Z edd„Z!edd„Z"d„Z#eƒZ$dS(s?
An interface to html5lib that mimics the lxml.html interface.
iÿÿÿÿ(t
HTMLParser(tTreeBuilder(tetree(t_contains_block_level_tagtXHTML_NAMESPACEtElement(turlopen(turlparseRcBseZdZed„ZRS(s*An html5lib HTML parser with lxml as tree.cKs tj|d|dt|dS(Ntstrictttree(t_HTMLParsert__init__R(tselfRtkwargs((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyRs(t__name__t
__module__t__doc__tFalseR(((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyRs(tXHTMLParserRcBseZdZed„ZRS(s+An html5lib XHTML Parser with lxml as tree.cKs tj|d|dt|dS(NRR	(t_XHTMLParserRR(RRR
((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyR(s(RRRRR(((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyR%scCs6|j|ƒ}|dk	r|S|jdt|fƒS(Ns{%s}%s(tfindtNoneR(R	ttagtelem((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyt	_find_tag.scCsLt|tƒstdƒ‚n|dkr3t}n|j|d|ƒjƒS(s%Parse a whole document into a string.sstring requiredt
useChardetN(t
isinstancet_stringst	TypeErrorRthtml_parsertparsetgetroot(thtmlt
guess_charsettparser((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pytdocument_fromstring5s
	cCs¥t|tƒstdƒ‚n|dkr3t}n|j|dd|ƒ}|r¡t|dtƒr¡|r¡|djƒr”tjd|dƒ‚n|d=q¡n|S(s”Parses several HTML elements, returning a list of elements.

    The first item in the list may be a string.  If no_leading_text is true,
    then it will be an error if there is leading text, and it will always be
    a list of only elements.

    If `guess_charset` is `True` and the text was not unicode but a
    bytestring, the `chardet` library will perform charset guessing on the
    string.
    sstring requiredtdivRisThere is leading text: %rN(	RRRRRt
parseFragmenttstripRtParserError(R tno_leading_textR!R"tchildren((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pytfragments_fromstring@s		
cCs;t|tƒstdƒ‚nt|ƒ}t|d|d|d|ƒ}|r·t|tƒsgd}nt|ƒ}|r³t|dtƒr£|d|_|d=n|j|ƒn|S|sÏtj	dƒ‚nt
|ƒdkrótj	d	ƒ‚n|d}|jr.|jjƒr.tj	d
|jƒ‚nd|_|S(sXParses a single HTML element; it is an error if there is more than
    one element, or if anything but whitespace precedes or follows the
    element.

    If create_parent is true (or is a tag name) then a parent node
    will be created to encapsulate the HTML in a single element.  In
    this case, leading or trailing text is allowed.
    sstring requiredR!R"R(R$isNo elements foundisMultiple elements foundsElement followed by text: %rN(RRRtboolR*RttexttextendRR'tlenttailR&R(R t
create_parentR!R"taccept_leading_texttelementstnew_roottresult((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pytfragment_fromstring\s2

	


	cCst|tƒstdƒ‚nt|d|d|ƒ}|d jƒjƒ}|jdƒsj|jdƒrn|St|dƒ}t|ƒr|St|dƒ}t|ƒd	krò|j	sÈ|j	j
ƒrò|d
jsê|d
jj
ƒrò|dSt|ƒr
d|_
n	d
|_
|S(süParse the html, returning a single element/document.

    This tries to minimally parse the chunk of text, without knowing if it
    is a fragment or a document.

    base_url will set the document's base_url attribute (and the tree's docinfo.URL)
    sstring requiredR"R!i2s<htmls	<!doctypetheadtbodyiiÿÿÿÿiR$tspan(RRRR#tlstriptlowert
startswithRR.R,R&R/RR(R R!R"tdoctstartR6R7((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyt
fromstring…s$	,"	cCsj|dkrt}nt|tƒs-|}n*t|ƒrHt|ƒ}nt|dƒ}|j|d|ƒS(s·Parse a filename, URL, or file-like object into an HTML document
    tree.  Note: this returns a tree, not an element.  Use
    ``parse(...).getroot()`` to get the document root.
    trbRN(RRRRt_looks_like_urlRtopenR(tfilename_url_or_fileR!R"tfp((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyR¯s		cCst|ƒd}|dkS(Nit(R(tstrtscheme((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyR@¾sN(%Rthtml5libRR
t html5lib.treebuilders.etree_lxmlRtlxmlRt	lxml.htmlRRRt
basestringRt	NameErrortbytesREturllib2RtImportErrorturllib.requestRturllib.parseRRtxhtml_parserRtTrueRR#RR*R5R>RR@R(((s;/usr/lib64/python2.7/site-packages/lxml/html/html5parser.pyt<module>sB




		(*	
Back to Directory File Manager