Viewing File: /usr/lib64/python2.7/HTMLParser.pyo

ó
ì—sjc@sdZddlZddlZejdƒZejdƒZejdƒZejdƒZejdƒZejdƒZ	ejd	ƒZ
ejd
ƒZejdƒZejdƒZ
ejd
ejƒZejdƒZejdƒZdefd„ƒYZdejfd„ƒYZdS(sA parser for HTML and XHTML.iÿÿÿÿNs[&<]s
&[a-zA-Z#]s%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]s)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]s	<[a-zA-Z]t>s--\s*>s(([a-zA-Z][-.a-zA-Z0-9:_]*)(?:\s|/(?!>))*s[a-zA-Z][^	

 />]*s]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*s
  <[a-zA-Z][-.a-zA-Z0-9:_]*          # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
s#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>tHTMLParseErrorcBs#eZdZdd„Zd„ZRS(s&Exception raised for all parse errors.cCs'||_|d|_|d|_dS(Nii(tmsgtlinenotoffset(tselfRtposition((s"/usr/lib64/python2.7/HTMLParser.pyt__init__9s	
cCsW|j}|jdk	r,|d|j}n|jdk	rS|d|jd}n|S(Ns, at line %ds, column %di(RRtNoneR(Rtresult((s"/usr/lib64/python2.7/HTMLParser.pyt__str__?s	N(NN(t__name__t
__module__t__doc__RRR
(((s"/usr/lib64/python2.7/HTMLParser.pyR6st
HTMLParsercBs
eZdZdZd„Zd„Zd„Zd„Zd„ZdZ
d„Zd	„Zd
„Z
d„Zd„Zd
d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdZd„Z RS( sÇFind tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  Entity references are
    passed by calling self.handle_entityref() with the entity
    reference as the argument.  Numeric character references are
    passed to self.handle_charref() with the string containing the
    reference as the argument.
    tscripttstylecCs|jƒdS(s#Initialize and reset this instance.N(treset(R((s"/usr/lib64/python2.7/HTMLParser.pyR_scCsSd|_d|_t|_d|_g|_d|_d|_t	j
j|ƒdS(s1Reset this instance.  Loses all unprocessed data.ts???iiN(trawdatatlasttagtinteresting_normaltinterestingRt
cdata_elemt_pendingt_pending_lent_parse_thresholdt
markupbaset
ParserBaseR(R((s"/usr/lib64/python2.7/HTMLParser.pyRcs							cCsã|jt|ƒ7_|j|jkr:|jj|ƒn¥|jsU|j|7_n2|jj|ƒ|jdj|jƒ7_|j2d|_t|jƒ}|jdƒt|jƒ|krÍd|_nt|jƒ|_dS(s‘Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        RiiN(RtlenRRtappendRtjointgoahead(Rtdatatn((s"/usr/lib64/python2.7/HTMLParser.pytfeedns
		
cCsH|jr7|jdj|jƒ7_|j2d|_n|jdƒdS(sHandle any buffered data.RiiN(RRRRR (R((s"/usr/lib64/python2.7/HTMLParser.pytcloseŒs
	cCst||jƒƒ‚dS(N(Rtgetpos(Rtmessage((s"/usr/lib64/python2.7/HTMLParser.pyterror”scCs|jS(s)Return full source of start tag: '<...>'.(t_HTMLParser__starttag_text(R((s"/usr/lib64/python2.7/HTMLParser.pytget_starttag_text™scCs2|jƒ|_tjd|jtjƒ|_dS(Ns</\s*%s\s*>(tlowerRtretcompiletIR(Rtelem((s"/usr/lib64/python2.7/HTMLParser.pytset_cdata_modescCst|_d|_dS(N(RRRR(R((s"/usr/lib64/python2.7/HTMLParser.pytclear_cdata_mode¡s	c
Csb|j}d}t|ƒ}xî||kr|jj||ƒ}|rT|jƒ}n|jraPn|}||krŠ|j|||!ƒn|j||ƒ}||kr¬Pn|j}|d|ƒr7t	j
||ƒrè|j|ƒ}n¯|d|ƒr	|j|ƒ}nŽ|d|ƒr*|j
|ƒ}nm|d|ƒrK|j|ƒ}nL|d|ƒrl|j|ƒ}n+|d|kr–|jdƒ|d}nP|dkr"|s­Pn|jd|dƒ}|dkr|jd|dƒ}|dkr|d}qn
|d7}|j|||!ƒn|j||ƒ}q|d	|ƒrÿtj
||ƒ}|rÂ|jƒd
d!}	|j|	ƒ|jƒ}|d|dƒsª|d}n|j||ƒ}qqd||krû|j|dd
!ƒ|j|d
ƒ}nPq|d
|ƒrtj
||ƒ}|r†|jdƒ}	|j|	ƒ|jƒ}|d|dƒsn|d}n|j||ƒ}qntj
||ƒ}|rÎ|rÊ|jƒ||krÊ|jdƒnPq|d|kr|jd
ƒ|j||dƒ}qPqqW|rQ||krQ|jrQ|j|||!ƒ|j||ƒ}n|||_dS(Nit<s</s<!--s<?s<!iRs&#iiÿÿÿÿt;t&s#EOF in middle of entity or char ref(RRRtsearchtstartRthandle_datat	updatepost
startswithtstarttagopentmatchtparse_starttagtparse_endtagt
parse_commenttparse_pitparse_html_declarationtfindtcharreftgroupthandle_charreftendt	entityrefthandle_entityreft
incompleteR'(
RRDRtiR"R:tjR8tktname((s"/usr/lib64/python2.7/HTMLParser.pyR ¨s 			







cCsì|j}|||d!dkr0|jdƒn|||d!dkrT|j|ƒS|||d!dkrx|j|ƒS|||d!jƒd	krÛ|jd
|dƒ}|dkr»dS|j||d|!ƒ|dS|j|ƒSdS(
Nis<!s+unexpected call to parse_html_declaration()is<!--is<![i	s	<!doctypeRiÿÿÿÿi(RR'R=tparse_marked_sectionR*R@thandle_decltparse_bogus_comment(RRHRtgtpos((s"/usr/lib64/python2.7/HTMLParser.pyR?s	

icCs|j}|||d!dkr0|jdƒn|jd|dƒ}|dkrVdS|rw|j||d|!ƒn|dS(	Nis<!s</s"unexpected call to parse_comment()Riÿÿÿÿi(s<!s</(RR'R@thandle_comment(RRHtreportRtpos((s"/usr/lib64/python2.7/HTMLParser.pyRNs	cCs]|j}tj||dƒ}|s)dS|jƒ}|j||d|!ƒ|jƒ}|S(Niiÿÿÿÿ(RtpicloseR4R5t	handle_piRD(RRHRR:RI((s"/usr/lib64/python2.7/HTMLParser.pyR>'s	cCsnd|_|j|ƒ}|dkr(|S|j}|||!|_g}tj||dƒ}|jƒ}|jdƒjƒ|_	}xî||krut
j||ƒ}|s°Pn|jdddƒ\}	}
}|
sÝd}nX|d dkoü|dkns%|d dko |dknr5|dd!}n|rM|j|ƒ}n|j|	jƒ|fƒ|jƒ}qˆW|||!j
ƒ}|dkr|jƒ\}
}d
|jkrî|
|jjd
ƒ}
t|jƒ|jjd
ƒ}n|t|jƒ}|j|||!ƒ|S|jd	ƒr;|j||ƒn/|j||ƒ||jkrj|j|ƒn|S(Niiiis'iÿÿÿÿt"Rs/>s
(Rs/>(RR(tcheck_for_whole_start_tagRttagfindR:RDRBR*RtattrfindtunescapeRtstripR%tcountRtrfindR6tendswiththandle_startendtagthandle_starttagtCDATA_CONTENT_ELEMENTSR/(RRHtendposRtattrsR:RJttagtmtattrnametrestt	attrvalueRDRR((s"/usr/lib64/python2.7/HTMLParser.pyR;3sP			$$cCsý|j}tj||ƒ}|rí|jƒ}|||d!}|dkrR|dS|dkr²|jd|ƒrx|dS|jd|ƒrŽdS|j||dƒ|jdƒn|dkrÂdS|d	krÒdS||krâ|S|dSntd
ƒ‚dS(NiRt/s/>iiÿÿÿÿsmalformed empty start tagRs6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZswe should not get here!(RtlocatestarttagendR:RDR8R7R'tAssertionError(RRHRRdRItnext((s"/usr/lib64/python2.7/HTMLParser.pyRVgs,	cCsg|j}tj||dƒ}|s)dS|jƒ}tj||ƒ}|sþ|jdk	rt|j|||!ƒ|St	j||dƒ}|s¿|||d!dkr¯|dS|j
|ƒSn|jƒjƒ}|j
d|jƒƒ}|j|ƒ|dS|jdƒjƒ}|jdk	rL||jkrL|j|||!ƒ|Sn|j|ƒ|jƒ|S(Niiÿÿÿÿiis</>R(Rt	endendtagR4RDt
endtagfindR:RRR6ttagfind_tolerantRNRBR*R@t
handle_endtagR0(RRHRR:ROt	namematchttagnameR.((s"/usr/lib64/python2.7/HTMLParser.pyR<‡s6	


cCs!|j||ƒ|j|ƒdS(N(R_Ro(RRcRb((s"/usr/lib64/python2.7/HTMLParser.pyR^¯scCsdS(N((RRcRb((s"/usr/lib64/python2.7/HTMLParser.pyR_´scCsdS(N((RRc((s"/usr/lib64/python2.7/HTMLParser.pyRo¸scCsdS(N((RRK((s"/usr/lib64/python2.7/HTMLParser.pyRC¼scCsdS(N((RRK((s"/usr/lib64/python2.7/HTMLParser.pyRFÀscCsdS(N((RR!((s"/usr/lib64/python2.7/HTMLParser.pyR6ÄscCsdS(N((RR!((s"/usr/lib64/python2.7/HTMLParser.pyRPÈscCsdS(N((Rtdecl((s"/usr/lib64/python2.7/HTMLParser.pyRMÌscCsdS(N((RR!((s"/usr/lib64/python2.7/HTMLParser.pyRTÐscCsdS(N((RR!((s"/usr/lib64/python2.7/HTMLParser.pytunknown_declÓscs2d|kr|S‡fd†}tjd||ƒS(NR3cs|jƒd}yZ|ddkri|d}|dd
krSt|ddƒ}nt|ƒ}t|ƒSWntk
r†d|dSXd	dl}tjdkréid
d6}t_x0|jj	ƒD]\}}t|ƒ||<qÆWnyˆj|SWnt
k
rd|dSXdS(Nit#itxtXis&#R2iÿÿÿÿu'taposR3(RuRv(tgroupstinttunichrt
ValueErrorthtmlentitydefsRt
entitydefsRtname2codepointt	iteritemstKeyError(tstcR|R}RJtv(R(s"/usr/lib64/python2.7/HTMLParser.pytreplaceEntitiesÛs&



s#&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));(R+tsub(RRR„((Rs"/usr/lib64/python2.7/HTMLParser.pyRYØs(RRN(!RRR
R`RRR#R$R'RR(R)R/R0R R?RNR>R;RVR<R^R_RoRCRFR6RPRMRTRsR}RY(((s"/usr/lib64/python2.7/HTMLParser.pyRHs<									^			4	 	(										(R
RR+R,RRGRERAR9RStcommentcloseRWRnRXtVERBOSERiRlRmt	ExceptionRRR(((s"/usr/lib64/python2.7/HTMLParser.pyt<module>s&
	

Back to Directory File Manager