GenDoc / src /model /paragraph.py
YvesP's picture
initial commit
4cf88e8
import string
INFINITE = 10000
class Paragraph:
def __init__(self, xparagraph, doc_id: int, id_: int):
self.xparagraph = xparagraph
self.id_ = int(str(2) + str(doc_id) + str(id_))
self.level = self.get_level_from_name()
self.is_structure = self.level < INFINITE
self.text = self.xparagraph.text
self.type = self.get_type()
@property
def structure(self):
structure = {str(self.id_): {
'index': str(self.id_),
'canMove': True,
'isFolder': False,
'children': [],
'title': self.text,
'canRename': True,
'data': {},
'level': self.level,
}}
return structure
@property
def blank(self):
"""
checks if the paragraph is blank: i.e. it brings some signal (it may otherwise be ignored)
"""
text = self.text.replace('\n', '')
return set(text).isdisjoint(string.ascii_letters)
def get_level_from_name(self) -> int:
style_name = self.xparagraph.style.name
level = INFINITE
if '.Titre' in style_name:
suffix = style_name[-1]
try:
level = int(suffix)
except:
pass
return level