Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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