diff options
author | Sebastian Pipping <sebastian@pipping.org> | 2009-12-29 02:01:31 +0100 |
---|---|---|
committer | Sebastian Pipping <sebastian@pipping.org> | 2009-12-29 02:01:31 +0100 |
commit | 42deac2d731c7ead984bc7cca79cf001e8ca387c (patch) | |
tree | 73f031acae8723b6c9cf9fd22e74d78b341f0818 | |
parent | a4499de57c1a71e29beda6320dfeb79286668799 (diff) | |
download | layman-42deac2d731c7ead984bc7cca79cf001e8ca387c.tar.gz layman-42deac2d731c7ead984bc7cca79cf001e8ca387c.tar.bz2 layman-42deac2d731c7ead984bc7cca79cf001e8ca387c.zip |
Indent XML when writing to disk
-rw-r--r-- | layman/overlay.py | 2 | ||||
-rw-r--r-- | layman/utils.py | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/layman/overlay.py b/layman/overlay.py index 820c38a..37e611c 100644 --- a/layman/overlay.py +++ b/layman/overlay.py @@ -41,6 +41,7 @@ from layman.overlays.rsync import RsyncOverlay from layman.overlays.tar import TarOverlay from layman.debug import OUT +from layman.utils import indent #=============================================================================== # @@ -156,6 +157,7 @@ class Overlays: xml = ET.Element('repositories', version="1.0") xml[:] = [e.to_minidom() for e in self.overlays.values()] + indent(xml) tree = ET.ElementTree(xml) try: f = open(path, 'w') diff --git a/layman/utils.py b/layman/utils.py index 4ab0940..0a824f1 100644 --- a/layman/utils.py +++ b/layman/utils.py @@ -43,6 +43,24 @@ def ensure_unicode(obj, encoding='utf-8'): obj = unicode(obj, encoding) return obj +# From <http://effbot.org/zone/element-lib.htm> +# BEGIN +def indent(elem, level=0): + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i +# END + def path(path_elements): ''' Concatenate a path from several elements. |