File size: 1,605 Bytes
4cf88e8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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"
"""
|