示例#1
0
文件: category.py 项目: Rodehi/GFROS
    def dump(self, filename='category.dump.bz2'):
        '''Saves the contents of the dictionaries superclassDB and catContentDB
        to disk.

        '''
        if not os.path.isabs(filename):
            filename = config.datafilepath(filename)
        if self.catContentDB or self.superclassDB:
            pywikibot.output(u'Dumping to %s, please wait...'
                             % config.shortpath(filename))
            f = bz2.BZ2File(filename, 'w')
            databases = {
                'catContentDB': self.catContentDB,
                'superclassDB': self.superclassDB
            }
            # store dump to disk in binary format
            try:
                pickle.dump(databases, f, protocol=pickle.HIGHEST_PROTOCOL)
            except pickle.PicklingError:
                pass
            f.close()
        else:
            try:
                os.remove(filename)
            except EnvironmentError:
                pass
            else:
                pywikibot.output(u'Database is empty. %s removed'
                                 % config.shortpath(filename))
示例#2
0
    def dump(self, filename='category.dump.bz2'):
        '''Saves the contents of the dictionaries superclassDB and catContentDB
        to disk.

        '''
        if not os.path.isabs(filename):
            filename = config.datafilepath(filename)
        if self.catContentDB or self.superclassDB:
            pywikibot.output(u'Dumping to %s, please wait...' %
                             config.shortpath(filename))
            f = bz2.BZ2File(filename, 'w')
            databases = {
                'catContentDB': self.catContentDB,
                'superclassDB': self.superclassDB
            }
            # store dump to disk in binary format
            try:
                pickle.dump(databases, f, protocol=pickle.HIGHEST_PROTOCOL)
            except pickle.PicklingError:
                pass
            f.close()
        else:
            try:
                os.remove(filename)
            except EnvironmentError:
                pass
            else:
                pywikibot.output(u'Database is empty. %s removed' %
                                 config.shortpath(filename))
示例#3
0
文件: category.py 项目: Rodehi/GFROS
 def __init__(self, rebuild=False, filename='category.dump.bz2'):
     if rebuild:
         self.rebuild()
     else:
         try:
             if not os.path.isabs(filename):
                 filename = config.datafilepath(filename)
             f = bz2.BZ2File(filename, 'r')
             pywikibot.output(u'Reading dump from %s'
                              % config.shortpath(filename))
             databases = pickle.load(f)
             f.close()
             # keys are categories, values are 2-tuples with lists as
             # entries.
             self.catContentDB = databases['catContentDB']
             # like the above, but for supercategories
             self.superclassDB = databases['superclassDB']
             del databases
         except:
             # If something goes wrong, just rebuild the database
             self.rebuild()
示例#4
0
 def __init__(self, rebuild=False, filename='category.dump.bz2'):
     if rebuild:
         self.rebuild()
     else:
         try:
             if not os.path.isabs(filename):
                 filename = config.datafilepath(filename)
             f = bz2.BZ2File(filename, 'r')
             pywikibot.output(u'Reading dump from %s' %
                              config.shortpath(filename))
             databases = pickle.load(f)
             f.close()
             # keys are categories, values are 2-tuples with lists as
             # entries.
             self.catContentDB = databases['catContentDB']
             # like the above, but for supercategories
             self.superclassDB = databases['superclassDB']
             del databases
         except:
             # If something goes wrong, just rebuild the database
             self.rebuild()