diff options
-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 |