def fill_the_article_as_a_tobeduplicated_entry(self, string, article_header_artiname, entry_title, entry_hlevel, important_entry): """ LogotherasData.fill_the_article_as_a_tobeduplicatged_entry This function fills the current ArticleData object with the informations given as parameters : this function is called when Logotheras finds to-be-duplicated entries and create the corresponding articles. If self.headerdata.sortingname is set to None, try to initialize its value from fullname or from artiname if the fullname is None. """ #....................................................................... # header : #....................................................................... self.headerdata = HeaderData(errors = self.errors, artiname_prefix = "") # "ex" stands for "to-be-duplicated, taken from" self.headerdata.setData( artiname = string, informations = {"ex" : article_header_artiname} ) # if self.headerdata.sortingname is set to None, we try to initialize its value # either with self.headerdata.fullname, either with self.headerdata.artiname. if self.headerdata.sortingname is None: if self.headerdata.fullname is None: self.headerdata.sortingname = self.headerdata.artiname else: self.headerdata.sortingname = self.headerdata.fullname self.from_a_tobeduplicated_entry = (True, important_entry) #....................................................................... # body : #....................................................................... self.bodydata = BodyData(errors = self.errors) self.bodydata[""] = EntryData(errors = self.errors) # since no real hlevel is required here, we can set formatstr to None : fake_hlevel = HierarchicalLevelData(formatstr=None) text = "confer {0} {1}#{2}::{3} {4}".format(LINK_START, article_header_artiname, entry_hlevel, entry_title, LINK_END) self.bodydata[""].setData(hlevel = fake_hlevel, title = None, entry_to_be_duplicated = None, important_entry_to_be_dup = False, text = [text,], links = None)
class ArticleData(object): """ class ArticleData """ #/////////////////////////////////////////////////////////////////////////// def __init__(self, errors, artiname_prefix): """ ArticleData.__init__ .headerdata : HeaderData object .bodydata : BodyData object errors : Errors object artiname_prefix : str """ self.reset() self.errors = errors self.artiname_prefix = artiname_prefix #/////////////////////////////////////////////////////////////////////////// def __repr__(self): """ ArticleData.__repr__ """ msg = "headerdata={0}; bodydata={1};" return msg.format(repr(self.headerdata), repr(self.bodydata)) #/////////////////////////////////////////////////////////////////////////// def __str__(self): """ ArticleData.__str__ """ msg = "headerdata={0}; bodydata={1};" return msg.format(str(self.headerdata), str(self.bodydata)) #/////////////////////////////////////////////////////////////////////////// def fill_the_article_as_a_tobeduplicated_entry(self, string, article_header_artiname, entry_title, entry_hlevel, important_entry): """ LogotherasData.fill_the_article_as_a_tobeduplicatged_entry This function fills the current ArticleData object with the informations given as parameters : this function is called when Logotheras finds to-be-duplicated entries and create the corresponding articles. If self.headerdata.sortingname is set to None, try to initialize its value from fullname or from artiname if the fullname is None. """ #....................................................................... # header : #....................................................................... self.headerdata = HeaderData(errors = self.errors, artiname_prefix = "") # "ex" stands for "to-be-duplicated, taken from" self.headerdata.setData( artiname = string, informations = {"ex" : article_header_artiname} ) # if self.headerdata.sortingname is set to None, we try to initialize its value # either with self.headerdata.fullname, either with self.headerdata.artiname. if self.headerdata.sortingname is None: if self.headerdata.fullname is None: self.headerdata.sortingname = self.headerdata.artiname else: self.headerdata.sortingname = self.headerdata.fullname self.from_a_tobeduplicated_entry = (True, important_entry) #....................................................................... # body : #....................................................................... self.bodydata = BodyData(errors = self.errors) self.bodydata[""] = EntryData(errors = self.errors) # since no real hlevel is required here, we can set formatstr to None : fake_hlevel = HierarchicalLevelData(formatstr=None) text = "confer {0} {1}#{2}::{3} {4}".format(LINK_START, article_header_artiname, entry_hlevel, entry_title, LINK_END) self.bodydata[""].setData(hlevel = fake_hlevel, title = None, entry_to_be_duplicated = None, important_entry_to_be_dup = False, text = [text,], links = None) #/////////////////////////////////////////////////////////////////////////// def reset(self): """ ArticleData.reset """ self.setData() #/////////////////////////////////////////////////////////////////////////// def setData(self, headerdata = None, bodydata = None): """ ArticleData.reset """ self.headerdata = headerdata # HeaderData object self.bodydata = bodydata # BodyData object self.from_a_tobeduplicated_entry = (False, False) # (bool, bool) # =from_a_tobeduplicated_entry ? # =important tobedup entry ? return self