diff options
author | Rob Austein <sra@hactrn.net> | 2010-03-08 19:34:51 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-03-08 19:34:51 +0000 |
commit | ad1e7d315dd72c89a60eaaf1b71d76622a70ecd6 (patch) | |
tree | 2d08463862d882c37123307a460f6ccf220632dd | |
parent | 1d77d4dd873ab1c316e32529ce1c8ee71ea5444f (diff) |
Use lxml.etree when available.
svn path=/myrpki.rototill/myrpki.py; revision=3044
-rw-r--r-- | myrpki.rototill/myrpki.py | 15 | ||||
-rw-r--r-- | myrpki.rototill/setup.py | 5 |
2 files changed, 14 insertions, 6 deletions
diff --git a/myrpki.rototill/myrpki.py b/myrpki.rototill/myrpki.py index c719014f..f6cf00eb 100644 --- a/myrpki.rototill/myrpki.py +++ b/myrpki.rototill/myrpki.py @@ -49,10 +49,13 @@ PERFORMANCE OF THIS SOFTWARE. # Only standard Python libraries for this program, please. -import subprocess, csv, re, os, getopt, sys, base64, glob +import subprocess, csv, re, os, getopt, sys, base64, glob, copy import rpki.config -from xml.etree.ElementTree import Element, SubElement, ElementTree +try: + from lxml.etree import Element, SubElement, ElementTree +except ImportError: + from xml.etree.ElementTree import Element, SubElement, ElementTree # Our XML namespace and protocol version. @@ -604,9 +607,11 @@ def etree_write(e, filename, verbose = True): assert isinstance(filename, str) if verbose: print "Writing", filename - tmp = Element(e.tag, e.attrib, xmlns = namespace, version = version) - tmp[:] = e[:] - ElementTree(tmp).write(filename + ".tmp") + e = copy.deepcopy(e) + e.set("version", version) + for i in e.getiterator(): + i.tag = namespaceQName + i.tag + ElementTree(e).write(filename + ".tmp") os.rename(filename + ".tmp", filename) def etree_read(filename, verbose = False): diff --git a/myrpki.rototill/setup.py b/myrpki.rototill/setup.py index 19bcc71a..75f6aa6c 100644 --- a/myrpki.rototill/setup.py +++ b/myrpki.rototill/setup.py @@ -19,7 +19,10 @@ PERFORMANCE OF THIS SOFTWARE. import subprocess, csv, re, os, getopt, sys, base64, time, glob import myrpki, rpki.config, rpki.cli, rpki.sundial -from xml.etree.ElementTree import Element, SubElement, ElementTree +try: + from lxml.etree import Element, SubElement, ElementTree +except ImportError: + from xml.etree.ElementTree import Element, SubElement, ElementTree PEMElement = myrpki.PEMElement |