Lines Matching refs:self
71 Start tags are handled by calling self.handle_starttag() or
72 self.handle_startendtag(); end tags by self.handle_endtag(). The
74 by calling self.handle_data() with the data as argument (the data
77 corresponding Unicode character (and self.handle_data() is no
79 self.handle_entityref() or self.handle_charref() with the string
86 def __init__(self, *, convert_charrefs=True):
92 self.convert_charrefs = convert_charrefs
93 self.reset()
95 def reset(self):
97 self.rawdata = ''
98 self.lasttag = '???'
99 self.interesting = interesting_normal
100 self.cdata_elem = None
101 _markupbase.ParserBase.reset(self)
103 def feed(self, data):
109 self.rawdata = self.rawdata + data
110 self.goahead(0)
112 def close(self):
114 self.goahead(1)
118 def get_starttag_text(self):
120 return self.__starttag_text
122 def set_cdata_mode(self, elem):
123 self.cdata_elem = elem.lower()
124 self.interesting = re.compile(r'</\s*%s\s*>' % self.cdata_elem, re.I)
126 def clear_cdata_mode(self):
127 self.interesting = interesting_normal
128 self.cdata_elem = None
133 def goahead(self, end):
134 rawdata = self.rawdata
138 if self.convert_charrefs and not self.cdata_elem:
153 match = self.interesting.search(rawdata, i) # < or &
157 if self.cdata_elem:
161 if self.convert_charrefs and not self.cdata_elem:
162 self.handle_data(unescape(rawdata[i:j]))
164 self.handle_data(rawdata[i:j])
165 i = self.updatepos(i, j)
170 k = self.parse_starttag(i)
172 k = self.parse_endtag(i)
174 k = self.parse_comment(i)
176 k = self.parse_pi(i)
178 k = self.parse_html_declaration(i)
180 self.handle_data("<")
194 if self.convert_charrefs and not self.cdata_elem:
195 self.handle_data(unescape(rawdata[i:k]))
197 self.handle_data(rawdata[i:k])
198 i = self.updatepos(i, k)
203 self.handle_charref(name)
207 i = self.updatepos(i, k)
211 self.handle_data(rawdata[i:i+2])
212 i = self.updatepos(i, i+2)
218 self.handle_entityref(name)
222 i = self.updatepos(i, k)
231 i = self.updatepos(i, i + 1)
237 self.handle_data("&")
238 i = self.updatepos(i, i + 1)
244 if end and i < n and not self.cdata_elem:
245 if self.convert_charrefs and not self.cdata_elem:
246 self.handle_data(unescape(rawdata[i:n]))
248 self.handle_data(rawdata[i:n])
249 i = self.updatepos(i, n)
250 self.rawdata = rawdata[i:]
255 def parse_html_declaration(self, i):
256 rawdata = self.rawdata
261 return self.parse_comment(i)
263 return self.parse_marked_section(i)
269 self.handle_decl(rawdata[i+2:gtpos])
272 return self.parse_bogus_comment(i)
276 def parse_bogus_comment(self, i, report=1):
277 rawdata = self.rawdata
284 self.handle_comment(rawdata[i+2:pos])
288 def parse_pi(self, i):
289 rawdata = self.rawdata
295 self.handle_pi(rawdata[i+2: j])
300 def parse_starttag(self, i):
301 self.__starttag_text = None
302 endpos = self.check_for_whole_start_tag(i)
305 rawdata = self.rawdata
306 self.__starttag_text = rawdata[i:endpos]
313 self.lasttag = tag = match.group(1).lower()
331 self.handle_data(rawdata[i:endpos])
335 self.handle_startendtag(tag, attrs)
337 self.handle_starttag(tag, attrs)
338 if tag in self.CDATA_CONTENT_ELEMENTS:
339 self.set_cdata_mode(tag)
344 def check_for_whole_start_tag(self, i):
345 rawdata = self.rawdata
378 def parse_endtag(self, i):
379 rawdata = self.rawdata
387 if self.cdata_elem is not None:
388 self.handle_data(rawdata[i:gtpos])
397 return self.parse_bogus_comment(i)
404 self.handle_endtag(tagname)
408 if self.cdata_elem is not None:
409 if elem != self.cdata_elem:
410 self.handle_data(rawdata[i:gtpos])
413 self.handle_endtag(elem)
414 self.clear_cdata_mode()
418 def handle_startendtag(self, tag, attrs):
419 self.handle_starttag(tag, attrs)
420 self.handle_endtag(tag)
423 def handle_starttag(self, tag, attrs):
427 def handle_endtag(self, tag):
431 def handle_charref(self, name):
435 def handle_entityref(self, name):
439 def handle_data(self, data):
443 def handle_comment(self, data):
447 def handle_decl(self, decl):
451 def handle_pi(self, data):
454 def unknown_decl(self, data):