From 835ecc03681383e76b6338240c2ce06ae6ecbcf2 Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Fri, 13 Jun 2014 20:31:11 +0200 Subject: xml_utils: make rng_pivot return "starting" definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan Pokorný --- utils_xml.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'utils_xml.py') diff --git a/utils_xml.py b/utils_xml.py index 2ed06a5..9e27b65 100644 --- a/utils_xml.py +++ b/utils_xml.py @@ -59,7 +59,19 @@ RNG_ELEMENT = ("/{0}//{1}".format(namespaced('rng', 'grammar'), @selfaware def rng_pivot(me, et, tag): - """Given Relax NG grammar etree as `et`, change start tag (in situ!)""" + """Given Relax NG grammar etree as `et`, change start tag (in situ!) + + Use copy.deepcopy or so to (somewhat) preserve the original. + + Returns the live reference to the target element, i.e., + + at_start = rng_pivot(et, tag) + + is equivalent to + + rng_pivot(et, tag) + at_start = rng_get_start(et)[0] + """ start = rng_get_start(et) localname = xmltag_get_localname(tag) if len(start) != 1: @@ -90,4 +102,4 @@ def rng_pivot(me, et, tag): start.clear() start.append(start_ref) - return et + return target -- cgit