Source code for pyexlatex.models.containeritem

from pyexlatex.models.documentitem import DocumentItem
from pyexlatex.logic.extract.get import get_attr_from_items_or_collection
from pyexlatex.models.documentsetup import DocumentSetupData


[docs]class ContainerItem(DocumentItem): """ Inherit to be able to include LaTeX objects inside LaTeX objects """
[docs] def __init__(self, name, content, *args, **kwargs): self.add_data_from_content(content) super().__init__(name, content, *args, **kwargs)
[docs] def add_data_from_content(self, content): self.init_data() aggregate_attributes = self.data.attrs for attr in aggregate_attributes: data_attr = getattr(self.data, attr) if attr in self.data.non_unique_attrs: unique = False else: unique = True new_values = get_attr_from_items_or_collection(content, attr, unique=unique) if new_values is not None: data_attr.extend(new_values)
[docs] def init_data(self): if not hasattr(self, 'data'): self.data = DocumentSetupData()