1#!/usr/bin/env python3 2# 3# Copyright (C) 2022 Intel Corporation. 4# 5# SPDX-License-Identifier: BSD-3-Clause 6# 7 8from lxml.etree import XMLParser 9from defusedxml.lxml import parse 10from pipeline import PipelineStage 11 12class LXMLLoadStage(PipelineStage): 13 def __init__(self, tag): 14 self.consumes = f"{tag}_path" 15 self.provides = f"{tag}_etree" 16 17 def run(self, obj): 18 xml_path = obj.get(self.consumes) 19 etree = parse(xml_path, XMLParser(remove_blank_text=True)) 20 etree.xinclude() 21 obj.set(self.provides, etree) 22