# HG changeset patch # User Goffi # Date 1605189195 -3600 # Node ID d6a482a78bdaa2925845abcb76ad9cfc7db92386 # Parent 23af257ae7804cc716d6f11b6c53007d1e489d86 tools (xml_tools): added `with_parent` and `with_children` argument to `elementCopy` diff -r 23af257ae780 -r d6a482a78bda sat/tools/xml_tools.py --- 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