def test03_rnopen(self): data = string.split("The quick brown fox jumped over the lazy dog.") if verbose: print "\nTesting: rnopen" f = rnopen(self.filename, 'c') for x in range(len(data)): f[x + 1] = data[x] getTest = (f[1], f[2], f[3]) if verbose: print '%s %s %s' % getTest assert getTest[1] == 'quick', 'data mismatch!' rv = f.set_location(3) if rv != (3, 'brown'): self.fail('recno database set_location failed: ' + repr(rv)) f[25] = 'twenty-five' f.close() del f f = rnopen(self.filename, 'w') f[20] = 'twenty' def noRec(f): rec = f[15] self.assertRaises(KeyError, noRec, f) def badKey(f): rec = f['a string'] self.assertRaises(TypeError, badKey, f) del f[3] rec = f.first() while rec: if verbose: print rec try: rec = f.next() except KeyError: break f.close()
def poedit_tm_import(self): """Attempt to import the Translation Memory used in KBabel.""" if not hasattr(self, "poedit_database_path"): return # import each language separately for lang in self.poedit_languages: strings_db_file = path.join(self.poedit_database_path, lang, 'strings.db') translations_db_file = path.join(self.poedit_database_path, lang, 'translations.db') if not path.exists(strings_db_file) or not path.exists(translations_db_file): continue sources = bsddb.hashopen(strings_db_file, 'r') targets = bsddb.rnopen(translations_db_file, 'r') for source, str_index in sources.iteritems(): unit = {"context" : ""} # the index is a four byte integer encoded as a string # was little endian on my machine, not sure if it is universal index = struct.unpack('i', str_index) target = targets[index[0]][:-1] # null-terminated unit["source"] = _prepare_db_string(source) unit["target"] = _prepare_db_string(target) self.tmdb.add_dict(unit, "en", lang, commit=False) self.tmdb.connection.commit() logging.debug('%d units migrated from Poedit TM: %s.' % (len(sources), lang)) sources.close() targets.close() self.migrated.append(_("Poedit's Translation Memory: %(database_language_code)s") % \ {"database_language_code": lang})
def __init__(self, name, shelved=False, queue=False): global _config; self.name = name self.shelved = shelved self.queue = queue self.condition = Condition() self.keys = {} # key self.indexs = {} # 对tuple【2】的索引 self.count = 0 self.scheme=None if shelved: # open db path = '%s/%s_%s.bsd' % (_config['root_dir'], _config['server_key'], name) if self.queue: bsd = bsddb.rnopen(path, 'c') else: bsd = bsddb.btopen(path, 'c') self.db = shelve.BsdDbShelf(bsd) # self.db['中文']='test' # print self.db.keys() # del self.db['中文'] else: if self.queue: self.db = OrderedDict() # memery db else: self.db = {} # memery db
def poedit_tm_import(self): """Attempt to import the Translation Memory used in KBabel.""" if bsddb is None or not hasattr(self, "poedit_database_path"): return # import each language separately for lang in self.poedit_languages: strings_db_file = path.join(self.poedit_database_path, lang, 'strings.db') translations_db_file = path.join(self.poedit_database_path, lang, 'translations.db') if not path.exists(strings_db_file) or not path.exists( translations_db_file): continue sources = bsddb.hashopen(strings_db_file, 'r') targets = bsddb.rnopen(translations_db_file, 'r') for source, str_index in sources.iteritems(): unit = {"context": ""} # the index is a four byte integer encoded as a string # was little endian on my machine, not sure if it is universal index = struct.unpack('i', str_index) target = targets[index[0]][:-1] # null-terminated unit["source"] = _prepare_db_string(source) unit["target"] = _prepare_db_string(target) self.tmdb.add_dict(unit, "en", lang, commit=False) self.tmdb.connection.commit() logging.debug('%d units migrated from Poedit TM: %s.' % (len(sources), lang)) sources.close() targets.close() self.migrated.append(_("Poedit's Translation Memory: %(database_language_code)s") % \ {"database_language_code": lang})
def test03_rnopen(self): data = string.split("The quick brown fox jumped over the lazy dog.") if verbose: print "\nTesting: rnopen" f = rnopen(self.filename, 'c') for x in range(len(data)): f[x+1] = data[x] getTest = (f[1], f[2], f[3]) if verbose: print '%s %s %s' % getTest assert getTest[1] == 'quick', 'data mismatch!' rv = f.set_location(3) if rv != (3, 'brown'): self.fail('recno database set_location failed: '+repr(rv)) f[25] = 'twenty-five' f.close() del f f = rnopen(self.filename, 'w') f[20] = 'twenty' def noRec(f): rec = f[15] self.assertRaises(KeyError, noRec, f) def badKey(f): rec = f['a string'] self.assertRaises(TypeError, badKey, f) del f[3] rec = f.first() while rec: if verbose: print rec try: rec = f.next() except KeyError: break f.close()
def __init__(self, name, writable = 0, lockfile = None, **args): DataSource.__init__(self, name, **args) self.db = bsddb.rnopen( args["file"] ) self.append = self.db.db.append self.writable = int(writable) if self.writable and lockfile: self.lock = Lock(lockfile) else: self.lock = None
def __init__(self, base_name): self.content_db_name = base_name + self.__class__.CONTENT_DB + str(uuid.uuid4()) self.content_db = bsddb.rnopen(self.content_db_name) self.id_iter = 1 self.get_data_iter = 1 self.parts_iter = 1
def __init__(self, filename, default): self._db = bsddb.rnopen(filename, 'n') self._default = default
def __init__(self, base_name): self.content_db_name = base_name self.content_db = bsddb.rnopen(self.content_db_name) self.id_iter = 1 self.get_data_iter = 1 self.parts_iter = 1
def __init__(self, filename=None, mode='c'): self.store = bsddb.rnopen(filename, mode)