Updated imports to handle Python 2.5 ElementTree module.
authorW. Trevor King <wking@drexel.edu>
Thu, 13 Nov 2008 17:31:40 +0000 (12:31 -0500)
committerW. Trevor King <wking@drexel.edu>
Thu, 13 Nov 2008 17:31:40 +0000 (12:31 -0500)
Opened, fixed, and closed as bug 31c.

.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/body [new file with mode: 0644]
.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/values [new file with mode: 0644]
.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/values [new file with mode: 0644]
Bugs-Everywhere-Web/beweb/formatting.py
libbe/restconvert.py

diff --git a/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/body b/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/body
new file mode 100644 (file)
index 0000000..396c06a
--- /dev/null
@@ -0,0 +1,51 @@
+$ python test.py 
+**********************************************************************
+File "/home/wking/src/fun/be/libbe/plugin.py", line 31, in libbe.plugin.iter_plugins
+Failed example:
+    "plugin" in [n for n,m in iter_plugins("libbe")]
+Exception raised:
+    Traceback (most recent call last):
+      File "/usr/lib/python2.5/doctest.py", line 1228, in __run
+        compileflags, 1) in test.globs
+      File "<doctest libbe.plugin.iter_plugins[1]>", line 1, in <module>
+        "plugin" in [n for n,m in iter_plugins("libbe")]
+      File "/home/wking/src/fun/be/libbe/plugin.py", line 38, in iter_plugins
+        yield modfile[:-3], my_import(prefix+"."+modfile[:-3])
+      File "/home/wking/src/fun/be/libbe/plugin.py", line 21, in my_import
+        module = __import__(mod_name)
+      File "/home/wking/src/fun/be/libbe/restconvert.py", line 27, in <module>
+        from elementtree import ElementTree
+    ImportError: No module named elementtree
+**********************************************************************
+1 items had failures:
+   1 of   2 in libbe.plugin.iter_plugins
+***Test Failed*** 1 failures.
+Traceback (most recent call last):
+  File "test.py", line 32, in <module>
+    for module in plugin.iter_plugins("libbe"):
+  File "/home/wking/src/fun/be/libbe/plugin.py", line 38, in iter_plugins
+    yield modfile[:-3], my_import(prefix+"."+modfile[:-3])
+  File "/home/wking/src/fun/be/libbe/plugin.py", line 21, in my_import
+    module = __import__(mod_name)
+  File "/home/wking/src/fun/be/libbe/restconvert.py", line 27, in <module>
+    from elementtree import ElementTree
+ImportError: No module named elementtree
+
+
+Looking into ElementTree, I found their webpage:
+http://effbot.org/zone/element-index.htm
+
+  It’s common practice to import ElementTree under an alias, both to
+  minimize typing, and to make it easier to switch between different
+  implementations:
+
+  $ python
+  >>> import elementtree.ElementTree as ET
+  >>> import cElementTree as ET
+  >>> import lxml.etree as ET
+  >>> import xml.etree.ElementTree as ET # Python 2.5
+
+Using new import style, fall back to old if that fails.
+Affected files:
+ libbe/restconvert.py
+ Bugs-Everywhere-Web/beweb/formatting.py
diff --git a/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/values b/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/comments/b2a333f7-eda6-42b9-8940-177f61ca7f48/values
new file mode 100644 (file)
index 0000000..c499bfe
--- /dev/null
@@ -0,0 +1,21 @@
+
+
+
+Content-type=text/plain
+
+
+
+
+
+
+Date=Thu, 13 Nov 2008 17:27:17 +0000
+
+
+
+
+
+
+From=wking
+
+
+
diff --git a/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/values b/.be/bugs/31cd490d-a1c2-4ab3-8284-d80395e34dd2/values
new file mode 100644 (file)
index 0000000..b528771
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+
+creator=wking
+
+
+
+
+
+
+severity=minor
+
+
+
+
+
+
+status=closed
+
+
+
+
+
+
+summary=elementtree module moved in Python 2.5
+
+
+
+
+
+
+time=Thu, 13 Nov 2008 16:45:24 +0000
+
+
+
index b68d328facf5e53f58e10c192feb02e7a5024d1e..12784144cf30866602e5dfbc977f69d7fff0193b 100644 (file)
@@ -1,6 +1,9 @@
 from StringIO import StringIO
 
-from elementtree.ElementTree import XML
+try :
+   from xml.etree.ElementTree import XML # Python 2.5 (and greater?)
+except ImportError :
+   from elementtree.ElementTree import XML
 from libbe.restconvert import rest_xml
 
 def to_unix(text):
index 8ebb6b4ce0afc0ff58ee56828c740ff410bbb58d..cc7f8666825083a04702a693c709dc591922e74f 100644 (file)
@@ -23,7 +23,10 @@ from docutils.core import publish_file
 from docutils.parsers import rst
 from docutils.parsers.rst import directives
 from docutils.parsers.rst.states import Inliner, MarkupMismatch, unescape
-from elementtree import ElementTree
+try :
+    from xml.etree import ElementTree # Python 2.5 (and greater?)
+except ImportError :
+    from elementtree import ElementTree
 
 
 def rest_xml(rest):