changeset 3395:d6a482a78bda

tools (xml_tools): added `with_parent` and `with_children` argument to `elementCopy`
author Goffi <goffi@goffi.org>
date Thu, 12 Nov 2020 14:53:15 +0100
parents 23af257ae780
children a4774f5b6b17
files sat/tools/xml_tools.py
diffstat 1 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/sat/tools/xml_tools.py	Thu Nov 12 14:53:15 2020 +0100
+++ b/sat/tools/xml_tools.py	Thu Nov 12 14:53:15 2020 +0100
@@ -1676,22 +1676,28 @@
 
 # Misc other funtions
 
-def elementCopy(element):
+def elementCopy(
+    element: domish.Element,
+    with_parent: bool = True,
+    with_children: bool = True
+) -> domish.Element:
     """Make a copy of a domish.Element
 
     The copy will have its own children list, so other elements
     can be added as direct children without modifying orignal one.
     Children are not deeply copied, so if an element is added to a child or grandchild,
     it will also affect original element.
-    @param element(domish.Element): Element to clone
+    @param element: Element to clone
     """
     new_elt = domish.Element(
         (element.uri, element.name),
         defaultUri = element.defaultUri,
         attribs = element.attributes,
         localPrefixes = element.localPrefixes)
-    new_elt.parent = element.parent
-    new_elt.children = element.children[:]
+    if with_parent:
+        new_elt.parent = element.parent
+    if with_children:
+        new_elt.children = element.children[:]
     return new_elt