aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myrpki.rototill/myrpki.py15
-rw-r--r--myrpki.rototill/setup.py5
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