Mercurial > libervia-backend
diff sat/tools/xml_tools.py @ 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 | 2b6f69f6df8c |
children | a4774f5b6b17 |
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