aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py')
-rw-r--r--tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py b/tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py
new file mode 100644
index 0000000..e2599b2
--- /dev/null
+++ b/tools/addon-sdk-1.7/python-lib/markdown/etree_loader.py
@@ -0,0 +1,33 @@
+
+from markdown import message, CRITICAL
+import sys
+
+## Import
+def importETree():
+ """Import the best implementation of ElementTree, return a module object."""
+ etree_in_c = None
+ try: # Is it Python 2.5+ with C implemenation of ElementTree installed?
+ import xml.etree.cElementTree as etree_in_c
+ except ImportError:
+ try: # Is it Python 2.5+ with Python implementation of ElementTree?
+ import xml.etree.ElementTree as etree
+ except ImportError:
+ try: # An earlier version of Python with cElementTree installed?
+ import cElementTree as etree_in_c
+ except ImportError:
+ try: # An earlier version of Python with Python ElementTree?
+ import elementtree.ElementTree as etree
+ except ImportError:
+ message(CRITICAL, "Failed to import ElementTree")
+ sys.exit(1)
+ if etree_in_c and etree_in_c.VERSION < "1.0":
+ message(CRITICAL, "For cElementTree version 1.0 or higher is required.")
+ sys.exit(1)
+ elif etree_in_c :
+ return etree_in_c
+ elif etree.VERSION < "1.1":
+ message(CRITICAL, "For ElementTree version 1.1 or higher is required")
+ sys.exit(1)
+ else :
+ return etree
+