Updated script that can be controled by Nodejs web app
This commit is contained in:
@ -0,0 +1,41 @@
|
||||
# Copyright (c) 2010-2024 openpyxl
|
||||
|
||||
"""
|
||||
Utility list for top level containers that contain one type of element
|
||||
|
||||
Provides the necessary API to read and write XML
|
||||
"""
|
||||
|
||||
from openpyxl.xml.functions import Element
|
||||
|
||||
|
||||
class ElementList(list):
|
||||
|
||||
|
||||
@property
|
||||
def tagname(self):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
@property
|
||||
def expected_type(self):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
@classmethod
|
||||
def from_tree(cls, tree):
|
||||
l = [cls.expected_type.from_tree(el) for el in tree]
|
||||
return cls(l)
|
||||
|
||||
|
||||
def to_tree(self):
|
||||
container = Element(self.tagname)
|
||||
for el in self:
|
||||
container.append(el.to_tree())
|
||||
return container
|
||||
|
||||
|
||||
def append(self, value):
|
||||
if not isinstance(value, self.expected_type):
|
||||
raise TypeError(f"Value must of type {self.expected_type} {type(value)} provided")
|
||||
super().append(value)
|
Reference in New Issue
Block a user