import docx from src.model.container import Container from src.model.paragraph import Paragraph class Doc: def __init__(self, path='', id_=None): self.xdoc = docx.Document(path) self.title = path.split('/')[-1] self.id_ = id(self) self.path = path paragraphs = [Paragraph(xp, self.id_, i) for (i, xp) in enumerate(self.xdoc.paragraphs)] self.container = Container(paragraphs, father=self, level=0) self.blocks = self.get_blocks() self.tasks = [c.get_task(self.container.one_liner) for c in self.container.containers if c.task] @property def structure(self): return self.container.structure def get_blocks(self): def from_list_to_str(index_list): index_str = str(index_list[0]) for el in index_list[1:]: index_str += '.' + str(el) return index_str blocks = self.container.blocks for block in blocks: block.doc = self.title if block.level == 0: blocks.remove(block) block.index = from_list_to_str(block.index) return blocks """ current_level = len(current_index) if 0 < block.level: if block.level == current_level: current_index[-1] += 1 elif current_level < block.level: current_index.append(1) elif block.level < current_level: current_index = current_index[:block.level] current_index[-1] += 1 block.index = from_list_to_str(current_index) else: block.index = "0" """