diff options
author | Georg Brandl <georg@python.org> | 2009-10-27 20:19:02 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-10-27 20:19:02 (GMT) |
commit | 22fff4363324c408b13761e5ccc5e318797fdc30 (patch) | |
tree | ca1ad7048b9cdffc0d23bb8b50224ef6180f96f4 /Demo/xml | |
parent | 7dc008d001ef3037d0634ba4c5bcb5631d4ec0ce (diff) | |
download | cpython-22fff4363324c408b13761e5ccc5e318797fdc30.zip cpython-22fff4363324c408b13761e5ccc5e318797fdc30.tar.gz cpython-22fff4363324c408b13761e5ccc5e318797fdc30.tar.bz2 |
Merged revisions 74609,74627,74634,74645,74651,74738,74840,75016,75316-75317,75323-75324,75326,75328,75330,75338,75340-75341,75343,75352-75353,75355,75357,75359 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
................
r74609 | senthil.kumaran | 2009-08-31 18:43:45 +0200 (Mo, 31 Aug 2009) | 3 lines
Doc fix for issue2637.
................
r74627 | georg.brandl | 2009-09-02 22:31:26 +0200 (Mi, 02 Sep 2009) | 1 line
#6819: fix typo.
................
r74634 | georg.brandl | 2009-09-03 14:34:10 +0200 (Do, 03 Sep 2009) | 9 lines
Merged revisions 74633 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74633 | georg.brandl | 2009-09-03 14:31:39 +0200 (Do, 03 Sep 2009) | 1 line
#6757: complete the list of types that marshal can serialize.
........
................
r74645 | georg.brandl | 2009-09-04 10:07:32 +0200 (Fr, 04 Sep 2009) | 1 line
#5221: fix related topics: SEQUENCEMETHODS[12] doesnt exist any more.
................
r74651 | georg.brandl | 2009-09-04 13:20:54 +0200 (Fr, 04 Sep 2009) | 9 lines
Recorded merge of revisions 74650 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74650 | georg.brandl | 2009-09-04 13:19:34 +0200 (Fr, 04 Sep 2009) | 1 line
#5101: add back tests to test_funcattrs that were lost during unittest conversion, and make some PEP8 cleanups.
........
................
r74738 | georg.brandl | 2009-09-09 18:51:05 +0200 (Mi, 09 Sep 2009) | 9 lines
Merged revisions 74737 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74737 | georg.brandl | 2009-09-09 18:49:13 +0200 (Mi, 09 Sep 2009) | 1 line
Properly document copy and deepcopy as functions.
........
................
r74840 | georg.brandl | 2009-09-16 18:40:45 +0200 (Mi, 16 Sep 2009) | 13 lines
Merged revisions 74838-74839 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74838 | georg.brandl | 2009-09-16 18:22:12 +0200 (Mi, 16 Sep 2009) | 1 line
Remove some more boilerplate from the actual tests in test_pdb.
........
r74839 | georg.brandl | 2009-09-16 18:36:39 +0200 (Mi, 16 Sep 2009) | 1 line
Make the pdb displayhook compatible with the standard displayhook: do not print Nones. Add a test for that.
........
................
r75016 | georg.brandl | 2009-09-22 15:53:14 +0200 (Di, 22 Sep 2009) | 1 line
#6969: make it explicit that configparser writes/reads text files, and fix the example.
................
r75316 | georg.brandl | 2009-10-10 23:12:35 +0200 (Sa, 10 Okt 2009) | 9 lines
Merged revisions 75313 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75313 | georg.brandl | 2009-10-10 23:07:35 +0200 (Sa, 10 Okt 2009) | 1 line
Bring old demo up-to-date.
........
................
r75317 | georg.brandl | 2009-10-10 23:13:21 +0200 (Sa, 10 Okt 2009) | 9 lines
Merged revisions 75315 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75315 | georg.brandl | 2009-10-10 23:10:05 +0200 (Sa, 10 Okt 2009) | 1 line
Remove unneeded "L" suffixes.
........
................
r75323 | georg.brandl | 2009-10-10 23:48:05 +0200 (Sa, 10 Okt 2009) | 9 lines
Recorded merge of revisions 75321 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75321 | georg.brandl | 2009-10-10 23:43:21 +0200 (Sa, 10 Okt 2009) | 1 line
Remove outdated comment and fix a few style issues.
........
................
r75324 | georg.brandl | 2009-10-10 23:49:24 +0200 (Sa, 10 Okt 2009) | 9 lines
Merged revisions 75322 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75322 | georg.brandl | 2009-10-10 23:47:31 +0200 (Sa, 10 Okt 2009) | 1 line
Show use of range() step argument nicely.
........
................
r75326 | georg.brandl | 2009-10-10 23:57:03 +0200 (Sa, 10 Okt 2009) | 9 lines
Merged revisions 75325 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75325 | georg.brandl | 2009-10-10 23:55:11 +0200 (Sa, 10 Okt 2009) | 1 line
Modernize factorisation demo (mostly augassign.)
........
................
r75328 | georg.brandl | 2009-10-11 00:05:26 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75327 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75327 | georg.brandl | 2009-10-11 00:03:43 +0200 (So, 11 Okt 2009) | 1 line
Style fixes.
........
................
r75330 | georg.brandl | 2009-10-11 00:32:28 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75329 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75329 | georg.brandl | 2009-10-11 00:26:45 +0200 (So, 11 Okt 2009) | 1 line
Modernize all around (dont ask me how useful that script is nowadays...)
........
................
r75338 | georg.brandl | 2009-10-11 10:31:41 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75337 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75337 | georg.brandl | 2009-10-11 10:18:44 +0200 (So, 11 Okt 2009) | 1 line
Update morse script, avoid globals, use iterators.
........
................
r75340 | georg.brandl | 2009-10-11 10:42:09 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75339 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75339 | georg.brandl | 2009-10-11 10:39:16 +0200 (So, 11 Okt 2009) | 1 line
Update markov demo.
........
................
r75341 | georg.brandl | 2009-10-11 10:43:08 +0200 (So, 11 Okt 2009) | 1 line
Fix README description.
................
r75343 | georg.brandl | 2009-10-11 10:46:56 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75342 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75342 | georg.brandl | 2009-10-11 10:45:03 +0200 (So, 11 Okt 2009) | 1 line
Remove useless script "mkrcs" and update README.
........
................
r75352 | georg.brandl | 2009-10-11 14:04:10 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75350 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75350 | georg.brandl | 2009-10-11 14:00:18 +0200 (So, 11 Okt 2009) | 1 line
Use getopt in script.py demo.
........
................
r75353 | georg.brandl | 2009-10-11 14:04:40 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75351 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75351 | georg.brandl | 2009-10-11 14:03:01 +0200 (So, 11 Okt 2009) | 1 line
Fix variable.
........
................
r75355 | georg.brandl | 2009-10-11 16:27:51 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75354 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75354 | georg.brandl | 2009-10-11 16:23:49 +0200 (So, 11 Okt 2009) | 1 line
Update lpwatch script.
........
................
r75357 | georg.brandl | 2009-10-11 16:50:57 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75356 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75356 | georg.brandl | 2009-10-11 16:49:37 +0200 (So, 11 Okt 2009) | 1 line
Remove ftpstats script, the daemon whose log files it reads is long gone.
........
................
r75359 | georg.brandl | 2009-10-11 17:56:06 +0200 (So, 11 Okt 2009) | 9 lines
Merged revisions 75358 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r75358 | georg.brandl | 2009-10-11 17:06:44 +0200 (So, 11 Okt 2009) | 1 line
Overhaul of Demo/xml.
........
................
Diffstat (limited to 'Demo/xml')
-rw-r--r-- | Demo/xml/elem_count.py | 26 | ||||
-rw-r--r-- | Demo/xml/roundtrip.py | 11 | ||||
-rw-r--r-- | Demo/xml/rss2html.py | 52 |
3 files changed, 51 insertions, 38 deletions
diff --git a/Demo/xml/elem_count.py b/Demo/xml/elem_count.py index e083e64..99d6ca9 100644 --- a/Demo/xml/elem_count.py +++ b/Demo/xml/elem_count.py @@ -1,4 +1,10 @@ +""" +A simple demo that reads in an XML document and displays the number of +elements and attributes as well as a tally of elements and attributes by name. +""" + import sys +from collections import defaultdict from xml.sax import make_parser, handler @@ -7,16 +13,16 @@ class FancyCounter(handler.ContentHandler): def __init__(self): self._elems = 0 self._attrs = 0 - self._elem_types = {} - self._attr_types = {} + self._elem_types = defaultdict(int) + self._attr_types = defaultdict(int) def startElement(self, name, attrs): - self._elems = self._elems + 1 - self._attrs = self._attrs + len(attrs) - self._elem_types[name] = self._elem_types.get(name, 0) + 1 + self._elems += 1 + self._attrs += len(attrs) + self._elem_types[name] += 1 for name in attrs.keys(): - self._attr_types[name] = self._attr_types.get(name, 0) + 1 + self._attr_types[name] += 1 def endDocument(self): print("There were", self._elems, "elements.") @@ -30,7 +36,7 @@ class FancyCounter(handler.ContentHandler): for pair in self._attr_types.items(): print("%20s %d" % pair) - -parser = make_parser() -parser.setContentHandler(FancyCounter()) -parser.parse(sys.argv[1]) +if __name__ == '__main__': + parser = make_parser() + parser.setContentHandler(FancyCounter()) + parser.parse(sys.argv[1]) diff --git a/Demo/xml/roundtrip.py b/Demo/xml/roundtrip.py index 8d7d437..801c009 100644 --- a/Demo/xml/roundtrip.py +++ b/Demo/xml/roundtrip.py @@ -3,7 +3,7 @@ A simple demo that reads in an XML document and spits out an equivalent, but not necessarily identical, document. """ -import sys, string +import sys from xml.sax import saxutils, handler, make_parser @@ -11,7 +11,7 @@ from xml.sax import saxutils, handler, make_parser class ContentGenerator(handler.ContentHandler): - def __init__(self, out = sys.stdout): + def __init__(self, out=sys.stdout): handler.ContentHandler.__init__(self) self._out = out @@ -40,6 +40,7 @@ class ContentGenerator(handler.ContentHandler): # --- The main program -parser = make_parser() -parser.setContentHandler(ContentGenerator()) -parser.parse(sys.argv[1]) +if __name__ == '__main__': + parser = make_parser() + parser.setContentHandler(ContentGenerator()) + parser.parse(sys.argv[1]) diff --git a/Demo/xml/rss2html.py b/Demo/xml/rss2html.py index 15c9891..49cd154 100644 --- a/Demo/xml/rss2html.py +++ b/Demo/xml/rss2html.py @@ -1,45 +1,50 @@ +""" +A demo that reads in an RSS XML document and emits an HTML file containing +a list of the individual items in the feed. +""" + import sys +import codecs from xml.sax import make_parser, handler # --- Templates -top = \ -""" +top = """\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> - <TITLE>%s</TITLE> -</HEAD> - -<BODY> -<H1>%s</H1> +<html> +<head> + <title>%s</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +</head> + +<body> +<h1>%s</h1> """ -bottom = \ -""" +bottom = """ </ul> -<HR> -<ADDRESS> -Converted to HTML by sax_rss2html.py. -</ADDRESS> +<hr> +<address> +Converted to HTML by rss2html.py. +</address> -</BODY> -</HTML> +</body> +</html> """ # --- The ContentHandler class RSSHandler(handler.ContentHandler): - def __init__(self, out = sys.stdout): + def __init__(self, out=sys.stdout): handler.ContentHandler.__init__(self) self._out = out self._text = "" self._parent = None - self._list_started = 0 + self._list_started = False self._title = None self._link = None self._descr = "" @@ -69,7 +74,7 @@ class RSSHandler(handler.ContentHandler): elif name == "item": if not self._list_started: self._out.write("<ul>\n") - self._list_started = 1 + self._list_started = True self._out.write(' <li><a href="%s">%s</a> %s\n' % (self._link, self._title, self._descr)) @@ -86,6 +91,7 @@ class RSSHandler(handler.ContentHandler): # --- Main program -parser = make_parser() -parser.setContentHandler(RSSHandler()) -parser.parse(sys.argv[1]) +if __name__ == '__main__': + parser = make_parser() + parser.setContentHandler(RSSHandler()) + parser.parse(sys.argv[1]) |