Exemple #1
0
    def _loadBookMP( self, BBB_Filename_tuple ):
        """
        Multiprocessing version!
        Load the requested book if it's not already loaded (but doesn't save it as that is not safe for multiprocessing)

        Parameter is a 2-tuple containing BBB and the filename.

        Returns the book info.
        """
        if BibleOrgSysGlobals.verbosityLevel > 3:
            print( exp("loadBookMP( {} )").format( BBB_Filename_tuple ) )

        BBB, filename = BBB_Filename_tuple
        if BBB in self.books:
            if BibleOrgSysGlobals.debugFlag: print( "  {} is already loaded -- returning".format( BBB ) )
            return self.books[BBB] # Already loaded
        #if BBB in self.triedLoadingBook:
            #logging.warning( "We had already tried loading USFM {} for {}".format( BBB, self.name ) )
            #return # We've already attempted to load this book
        self.triedLoadingBook[BBB] = True
        self.bookNeedsReloading[BBB] = False
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
            print( '  ' + exp("Loading {} from {} from {}…").format( BBB, self.name, self.sourceFolder ) )
        UBB = USFMBibleBook( self, BBB )
        UBB.load( self.possibleFilenameDict[BBB], self.sourceFolder, self.encoding )
        UBB.validateMarkers() # Usually activates InternalBibleBook.processLines()
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag: print( _("    Finishing loading USFM book {}.").format( BBB ) )
        return UBB
Exemple #2
0
    def loadBook( self, BBB, filename=None ):
        """
        Load the requested book into self.books if it's not already loaded.

        NOTE: You should ensure that preload() has been called first.
        """
        if BibleOrgSysGlobals.debugFlag or BibleOrgSysGlobals.verbosityLevel > 2:
            print( "USFMBible.loadBook( {}, {} )".format( BBB, filename ) )
            assert self.preloadDone

        if BBB not in self.bookNeedsReloading or not self.bookNeedsReloading[BBB]:
            if BBB in self.books:
                if BibleOrgSysGlobals.debugFlag: print( "  {} is already loaded -- returning".format( BBB ) )
                return # Already loaded
            if BBB in self.triedLoadingBook:
                logging.warning( "We had already tried loading USFM {} for {}".format( BBB, self.name ) )
                return # We've already attempted to load this book
        self.triedLoadingBook[BBB] = True

        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag: print( _("  USFMBible: Loading {} from {} from {}…").format( BBB, self.name, self.sourceFolder ) )
        if filename is None and BBB in self.possibleFilenameDict: filename = self.possibleFilenameDict[BBB]
        if filename is None: raise FileNotFoundError( "USFMBible.loadBook: Unable to find file for {}".format( BBB ) )
        UBB = USFMBibleBook( self, BBB )
        UBB.load( filename, self.sourceFolder, self.encoding )
        if UBB._rawLines:
            UBB.validateMarkers() # Usually activates InternalBibleBook.processLines()
            self.stashBook( UBB )
        else: logging.info( "USFM book {} was completely blank".format( BBB ) )
        self.bookNeedsReloading[BBB] = False
Exemple #3
0
 def loadBookMP( self, BBB ):
     """
     Multiprocessing version!
     Load the requested book if it's not already loaded.
     """
     if Globals.verbosityLevel > 2: print( "USFMBible.loadBookMP( {} )".format( BBB ) )
     assert( BBB not in self.books )
     self.triedLoadingBook[BBB] = True
     if Globals.verbosityLevel > 2 or Globals.debugFlag: print( _("  USFMBible: Loading {} from {} from {}...").format( BBB, self.name, self.sourceFolder ) )
     UBB = USFMBibleBook( self.name, BBB )
     UBB.load( self.possibleFilenameDict[BBB], self.sourceFolder, self.encoding )
     UBB.validateMarkers() # Usually activates InternalBibleBook.processLines()
     return UBB
Exemple #4
0
    def _loadBookMP( self, BBB_Filename ):
        """
        Multiprocessing version!
        Load the requested book if it's not already loaded (but doesn't save it as that is not safe for multiprocessing)

        Parameter is a 2-tuple containing BBB and the filename.
        """
        if Globals.verbosityLevel > 3: print( t("loadBookMP( {} )").format( BBB_Filename ) )
        BBB, filename = BBB_Filename
        assert( BBB not in self.books )
        self.triedLoadingBook[BBB] = True
        if Globals.verbosityLevel > 2 or Globals.debugFlag:
            print( '  ' + t("Loading {} from {} from {}...").format( BBB, self.name, self.sourceFolder ) )
        UBB = USFMBibleBook( self, BBB )
        UBB.load( self.possibleFilenameDict[BBB], self.sourceFolder, self.encoding )
        UBB.validateMarkers() # Usually activates InternalBibleBook.processLines()
        if Globals.verbosityLevel > 2 or Globals.debugFlag: print( _("    Finishing loading USFM book {}.").format( BBB ) )
        return UBB
Exemple #5
0
 def loadBook( self, BBB, filename=None ):
     """
     Load the requested book if it's not already loaded.
     """
     if Globals.verbosityLevel > 2: print( "USFMBible.loadBook( {}, {} )".format( BBB, filename ) )
     if BBB in self.books: return # Already loaded
     if BBB in self.triedLoadingBook:
         logging.warning( "We had already tried loading USFM {} for {}".format( BBB, self.name ) )
         return # We've already attempted to load this book
     self.triedLoadingBook[BBB] = True
     if Globals.verbosityLevel > 2 or Globals.debugFlag: print( _("  USFMBible: Loading {} from {} from {}...").format( BBB, self.name, self.sourceFolder ) )
     if filename is None: filename = self.possibleFilenameDict[BBB]
     UBB = USFMBibleBook( self.name, BBB )
     UBB.load( filename, self.sourceFolder, self.encoding )
     if UBB._rawLines:
         UBB.validateMarkers() # Usually activates InternalBibleBook.processLines()
         self.saveBook( UBB )
     else: logging.info( "USFM book {} was completely blank".format( BBB ) )
Exemple #6
0
 def loadBook(self, BBB, filename=None):
     """
     Load the requested book into self.books if it's not already loaded.
     """
     if BibleOrgSysGlobals.verbosityLevel > 2:
         print("USFMBible.loadBook( {}, {} )".format(BBB, filename))
     if BBB in self.books: return  # Already loaded
     if BBB in self.triedLoadingBook:
         logging.warning(
             "We had already tried loading USFM {} for {}".format(
                 BBB, self.name))
         return  # We've already attempted to load this book
     self.triedLoadingBook[BBB] = True
     if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
         print(
             _("  USFMBible: Loading {} from {} from {}...").format(
                 BBB, self.name, self.sourceFolder))
     if filename is None and BBB in self.possibleFilenameDict:
         filename = self.possibleFilenameDict[BBB]
     if filename is None:
         raise FileNotFoundError(
             "USFMBible.loadBook: Unable to find file for {}".format(BBB))
     UBB = USFMBibleBook(self, BBB)
     UBB.load(filename, self.sourceFolder, self.encoding)
     if UBB._rawLines:
         UBB.validateMarkers(
         )  # Usually activates InternalBibleBook.processLines()
         self.saveBook(UBB)
     else:
         logging.info("USFM book {} was completely blank".format(BBB))
Exemple #7
0
    def _loadBookMP(self, BBB_Filename_duple):
        """
        Multiprocessing version!
        Load the requested book if it's not already loaded (but doesn't save it as that is not safe for multiprocessing)

        Parameter is a 2-tuple containing BBB and the filename.

        Returns the book info.
        """
        if BibleOrgSysGlobals.verbosityLevel > 3:
            print(exp("loadBookMP( {} )").format(BBB_Filename_duple))

        BBB, filename = BBB_Filename_duple
        if BBB in self.books:
            if BibleOrgSysGlobals.debugFlag:
                print("  {} is already loaded -- returning".format(BBB))
            return self.books[BBB]  # Already loaded
        #if BBB in self.triedLoadingBook:
        #logging.warning( "We had already tried loading USFM {} for {}".format( BBB, self.name ) )
        #return # We've already attempted to load this book
        self.triedLoadingBook[BBB] = True
        self.bookNeedsReloading[BBB] = False
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
            print('  ' + exp("Loading {} from {} from {}…").format(
                BBB, self.name, self.sourceFolder))
        UBB = USFMBibleBook(self, BBB)
        UBB.load(self.possibleFilenameDict[BBB], self.sourceFolder,
                 self.encoding)
        UBB.validateMarkers(
        )  # Usually activates InternalBibleBook.processLines()
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
            print(_("    Finishing loading USFM book {}.").format(BBB))
        return UBB
Exemple #8
0
 def loadBookMP(self, BBB):
     """
     Multiprocessing version!
     Load the requested book if it's not already loaded.
     """
     if Globals.verbosityLevel > 2:
         print("USFMBible.loadBookMP( {} )".format(BBB))
     assert (BBB not in self.books)
     self.triedLoadingBook[BBB] = True
     if Globals.verbosityLevel > 2 or Globals.debugFlag:
         print(
             _("  USFMBible: Loading {} from {} from {}...").format(
                 BBB, self.name, self.sourceFolder))
     UBB = USFMBibleBook(self.name, BBB)
     UBB.load(self.possibleFilenameDict[BBB], self.sourceFolder,
              self.encoding)
     UBB.validateMarkers(
     )  # Usually activates InternalBibleBook.processLines()
     return UBB
Exemple #9
0
    def _loadBookMP(self, BBB_Filename):
        """
        Multiprocessing version!
        Load the requested book if it's not already loaded (but doesn't save it as that is not safe for multiprocessing)

        Parameter is a 2-tuple containing BBB and the filename.
        """
        if BibleOrgSysGlobals.verbosityLevel > 3:
            print(t("loadBookMP( {} )").format(BBB_Filename))
        BBB, filename = BBB_Filename
        assert (BBB not in self.books)
        self.triedLoadingBook[BBB] = True
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
            print('  ' + t("Loading {} from {} from {}...").format(
                BBB, self.name, self.sourceFolder))
        UBB = USFMBibleBook(self, BBB)
        UBB.load(self.possibleFilenameDict[BBB], self.sourceFolder,
                 self.encoding)
        UBB.validateMarkers(
        )  # Usually activates InternalBibleBook.processLines()
        if BibleOrgSysGlobals.verbosityLevel > 2 or BibleOrgSysGlobals.debugFlag:
            print(_("    Finishing loading USFM book {}.").format(BBB))
        return UBB