Bug 731779: Integrate the Add-on SDK loader and API libraries into Firefox (uplifting from addon-sdk a16bbd5772880b578a939eeb65102bca6560d494)
This commit is contained in:
33
addon-sdk/source/python-lib/markdown/etree_loader.py
Normal file
33
addon-sdk/source/python-lib/markdown/etree_loader.py
Normal file
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user