~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to vendor/tornado/website/markdown/etree_loader.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
from markdown import message, CRITICAL
 
3
import sys
 
4
 
 
5
## Import
 
6
def importETree():
 
7
    """Import the best implementation of ElementTree, return a module object."""
 
8
    etree_in_c = None
 
9
    try: # Is it Python 2.5+ with C implemenation of ElementTree installed?
 
10
        import xml.etree.cElementTree as etree_in_c
 
11
    except ImportError:
 
12
        try: # Is it Python 2.5+ with Python implementation of ElementTree?
 
13
            import xml.etree.ElementTree as etree
 
14
        except ImportError:
 
15
            try: # An earlier version of Python with cElementTree installed?
 
16
                import cElementTree as etree_in_c
 
17
            except ImportError:
 
18
                try: # An earlier version of Python with Python ElementTree?
 
19
                    import elementtree.ElementTree as etree
 
20
                except ImportError:
 
21
                    message(CRITICAL, "Failed to import ElementTree")
 
22
                    sys.exit(1)
 
23
    if etree_in_c and etree_in_c.VERSION < "1.0":
 
24
        message(CRITICAL, "For cElementTree version 1.0 or higher is required.")
 
25
        sys.exit(1)
 
26
    elif etree_in_c :
 
27
        return etree_in_c
 
28
    elif etree.VERSION < "1.1":
 
29
        message(CRITICAL, "For ElementTree version 1.1 or higher is required")
 
30
        sys.exit(1)
 
31
    else :
 
32
        return etree
 
33