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