Example #1
0
def open_db2(filename, db_dir='', filetype=db.DB_BTREE):  # backup
    global home_dir
    if not db_dir:
        db_dir = home_dir
    dir = setDBPath(db_dir)
    path = os.path.join(dir, filename)
    try:
        d = dbshelve.open(path, filetype=filetype)
    except Exception, msg:
        print >> sys.stderr, "bsdcachedb: cannot open dbshelve on", path, msg
        d = dbshelve.open(filename, filetype=filetype)
Example #2
0
def open_db2(filename, db_dir='', filetype=db.DB_BTREE):    # backup
    global home_dir
    if not db_dir:
        db_dir = home_dir
    dir = setDBPath(db_dir)
    path = os.path.join(dir, filename)
    try:
        d = dbshelve.open(path, filetype=filetype)
    except Exception, msg:
        print >> sys.stderr, "bsdcachedb: cannot open dbshelve on", path, msg
        d = dbshelve.open(filename, filetype=filetype)
Example #3
0
    def _openDB(self, db_path, open_type):
        print >> sys.stderr, "..Try to open by", self.open_type_list[open_type]
        d = None
        if open_type == 1:  # 'bsddb.dbshelve'
            db_types = [db.DB_BTREE, db.DB_HASH]
            for dbtype in db_types:
                try:
                    d = dbshelve.open(db_path, filetype=dbtype)
                    break
                except:
                    d = None
#                except:
#                    print_exc()
            if d is not None:
                return d.cursor()
#                data = dict(d.items())
#                d.close()
#                return data
            else:
                return d

        elif open_type == 0:  # 'bsddb.db'
            try:
                d = db.DB()
                d.open(db_path, db.DB_UNKNOWN)
            except:
                d = None
#                print_exc()
            if d is not None:
                return d.cursor()


#                data = dict(d.items())
#                d.close()
#                return data
            else:
                return d

        elif open_type == 2:  # 'pickle'
            try:
                f = open(db_path)
                d = load(f)
                f.close()
                return d
            except:
                return None

        else:
            try:
                f = open(db_path)
                d = f.readlines()
                f.close()
                return d
            except:
                return None
Example #4
0
    def _openDB(self, db_path, open_type):
        print >> sys.stderr, time.asctime(),'-', "..Try to open by", self.open_type_list[open_type]
        d = None
        if open_type == 1:    # 'bsddb.dbshelve'
            db_types = [db.DB_BTREE, db.DB_HASH]
            for dbtype in db_types:
                try:
                    d = dbshelve.open(db_path, filetype=dbtype)
                    break
                except:
                    d = None
#                except:
#                    print_exc()
            if d is not None:
                return d.cursor()
#                data = dict(d.items())
#                d.close()
#                return data
            else:
                return d
            
        elif open_type == 0:    # 'bsddb.db'
            try:
                d = db.DB()
                d.open(db_path, db.DB_UNKNOWN)
            except:
                d = None
#                print_exc()
            if d is not None:
                return d.cursor()
#                data = dict(d.items())
#                d.close()
#                return data
            else:
                return d
                    
        elif open_type == 2:    # 'pickle'
            try:
                f = open(db_path)
                d = load(f)
                f.close()
                return d
            except:
                return None
            
        else:
            try:
                f = open(db_path)
                d = f.readlines()
                f.close()
                return d
            except:
                return None
Example #5
0
 def open(self):
     if self.__shelf is not None:
         return
     log.debug("Opening state database...")
     self.__flags = db.DB_PRIVATE | db.DB_CREATE | db.DB_THREAD \
               | db.DB_INIT_LOCK | db.DB_INIT_MPOOL
     self.__env = env = db.DBEnv()
     env.open(self.__config.appdata_dir, self.__flags)
     self.__shelf = dbshelve.open(self.__config.state_db_file,
                                  'c',
                                  dbenv=env)
     log.debug("State database opened with %d entries.", len(self.keys()))
Example #6
0
def open_db(filename, db_dir='', filetype=db.DB_BTREE, writeback=False):
    global home_dir
    if not db_dir:
        db_dir = home_dir
    dir = setDBPath(db_dir)
    path = os.path.join(dir, filename)
    env = db.DBEnv()
    # Concurrent Data Store
    env.open(dir, db.DB_THREAD|db.DB_INIT_CDB|db.DB_INIT_MPOOL|db.DB_CREATE|db.DB_PRIVATE)
    #d = db.DB(env)
    #d.open(path, filetype, db.DB_THREAD|db.DB_CREATE)
    #_db = BsdDbShelf(d, writeback=writeback) 
    _db = dbshelve.open(filename, flags=db.DB_THREAD|db.DB_CREATE, 
            filetype=filetype, dbenv=env)
    return _db, dir
Example #7
0
 def open(self):
     if self.__shelf is not None:
         return
     history_dir = os.path.join(self.__config.appdata_dir, "history")
     if not os.path.exists(history_dir):
         self.info("Creating history dir %s", history_dir)
         os.mkdir(history_dir)
     self.debug("Opening history database...")
     self.__flags = db.DB_PRIVATE | db.DB_CREATE | db.DB_THREAD \
               | db.DB_INIT_LOCK | db.DB_INIT_MPOOL
     self.__env = env = db.DBEnv()
     env.open(history_dir, self.__flags)
     self.__shelf = dbshelve.open("history.db", 'c', dbenv=env)
     self.debug("History database opened with %d entries.",
                len(self.keys()))
    def __init__(self, dbfile, len):
        observer.Subject.__init__(self)
        self.dbfile = dbfile

        env = bsddb.db.DBEnv()
        env.open(dbfile, bsddb.db.DB_PRIVATE | bsddb.db.DB_CREATE |
                bsddb.db.DB_THREAD | bsddb.db.DB_INIT_LOCK |
                bsddb.db.DB_INIT_MPOOL)
        self.db = dbshelve.open(dbfile, dbenv = env)

        self.lock = threading.RLock()

        self.len = len

        try:
            self.history = self.db["history"]
        except:
            self.history = []
Example #9
0
def open_db(filename, db_dir='', filetype=db.DB_BTREE, writeback=False):
    global home_dir
    if not db_dir:
        db_dir = home_dir
    dir = setDBPath(db_dir)
    path = os.path.join(dir, filename)
    env = db.DBEnv()
    # Concurrent Data Store
    env.open(
        dir, db.DB_THREAD | db.DB_INIT_CDB | db.DB_INIT_MPOOL | db.DB_CREATE
        | db.DB_PRIVATE)
    #d = db.DB(env)
    #d.open(path, filetype, db.DB_THREAD|db.DB_CREATE)
    #_db = BsdDbShelf(d, writeback=writeback)
    _db = dbshelve.open(filename,
                        flags=db.DB_THREAD | db.DB_CREATE,
                        filetype=filetype,
                        dbenv=env)
    return _db, dir
Example #10
0
    def __init__(self, dbfile, len):
        observer.Subject.__init__(self)
        self.dbfile = dbfile

        env = bsddb.db.DBEnv()
        env.open(
            dbfile,
            bsddb.db.DB_PRIVATE | bsddb.db.DB_CREATE | bsddb.db.DB_THREAD
            | bsddb.db.DB_INIT_LOCK | bsddb.db.DB_INIT_MPOOL)
        self.db = dbshelve.open(dbfile, dbenv=env)

        self.lock = threading.RLock()

        self.len = len

        try:
            self.history = self.db["history"]
        except:
            self.history = []
Example #11
0
def test(filename, mode='direct'):
    from random import randint
    from time import clock
    abc = 'abcdefghijklmnopqrstuvwxyz'
    val1 = abc * 23
    val2 = abc * 20

    t0 = clock()
    if mode == 'remote':
        db = PersistentDict(filename)
    else:
        db = dbshelve.open(filename, flags='c')

    for i in range(10000):
        key = abc+'%4.4d' % i
#        print key
        db[key] = val1
    print(('inserts', clock() - t0))

    t0 = clock()
    for i in range(10000):
        key = abc+'%4.4d' % i
#        print key
        tmp = db[key]
        db[key] = val2
        tmp = db[key]
    print(('newvalues', clock() - t0))

    t0 = clock()
    for i in range(10000):
        j = randint(0, 10000)
        key = abc+'%4.4d' % j
        try:
            tmp = db[key]
#            print key
            del db[key]
#            db.sync()
        except:
            pass
    print(('deletes', clock() - t0))

    db.close()
Example #12
0
def test(filename):
    from random import randint
    from time import clock
    abc = 'abcdefghijklmnopqrstuvwxyz'
    val1 = abc * 23
    val2 = abc * 20

    t0 = clock()
    db = dbshelve.open(filename, flags='c')
    for i in range(10000):
        key = abc + '%4.4d' % i
        #        print key
        db[key] = val1
    print((clock() - t0))

    t0 = clock()
    for i in range(10000):
        key = abc + '%4.4d' % i
        #        print key
        tmp = db[key]
        db[key] = val2
        tmp = db[key]
    print((clock() - t0))

    t0 = clock()
    for i in range(10000):
        j = randint(0, 10000)
        key = abc + '%4.4d' % j
        try:
            tmp = db[key]
            print(key)
            del db[key]
#            db.sync()
        except:
            pass
    print((clock() - t0))
Example #13
0
#!/usr/bin/python
#
# Copyright (C) 2005, TUBITAK/UEKAE
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Please read the COPYING file.
#
# Author: Eray Ozkural <*****@*****.**>

import sys
import bsddb.dbshelve as shelve

sys.path.append('.')

import pisi

d = shelve.open( sys.argv[1], flags='r' )

for (k, data) in d.iteritems():
    print k, data

d.close()
Example #14
0
 def createDB(self):
     self.primary = dbshelve.open(self.filename,
                                  dbname="primary",
                                  dbenv=self.env,
                                  filetype=self.dbtype)
 def do_open(self):
     self.d = dbshelve.open(self.filename)
Example #16
0
    fd = file(fname)
    buf = fd.read()
    elements = {}
    i = 0
    bname = os.path.basename(fname).lower()
    bname = bname.replace('.dat', '.db')
    dbdir = 'db'
    if not os.path.exists(dbdir):
        os.mkdir(dbdir)
    bname = os.path.join(dbdir, bname)
    print fname, '->', bname
    try:
        os.unlink(bname)
    except:
        pass
    db = dbshelve.open(bname)

    dbcharset = 'utf-8'

    bufsp = buf.split('\0')
    bpos = 0
    for recData in bufsp:
        bpos += len(recData) + 1
        i += 1
        r = Record(recData)
        print i * 100 / len(bufsp), r.word.encode(termcharset)
        if r.word == 'NOWORD': continue
        word = r.word.encode(dbcharset)
        db[word] = bpos
    db.close()
 def createDB(self):
     self.primary = dbshelve.open(self.filename, dbname="primary", dbenv=self.env, filetype=self.dbtype)
Example #18
0
#!/usr/bin/python
#
# Copyright (C) 2005, TUBITAK/UEKAE
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Please read the COPYING file.
#

# perform analysis on problem instances and store results in a database
# avoiding multiple invocations of the same instance

import sys
import bsddb.dbshelve as shelve

sys.path.append('.')

import pisi

d = shelve.open( sys.argv[1] )

for (k, data) in d.iteritems():
    print k, data

d.close()
 def test01_badpointer(self):
     dbs = dbshelve.open(self.filename)
     dbs.close()
     self.assertRaises(db.DBError, dbs.get, "foo")
Example #20
0
 def __init__(self):
     util.check_dir(ctx.config.db_dir())
     self.filename = os.path.join(ctx.config.db_dir(), 'source.bdb')
     self.d = shelve.open(self.filename)
     self.fdummy = file(self.filename + '.lock', 'w')
     fcntl.flock(self.fdummy, fcntl.LOCK_EX)
Example #21
0
 def do_open(self):
     self.d = dbshelve.open(self.filename)
Example #22
0
 def test01_badpointer(self):
     dbs = dbshelve.open(self.filename)
     dbs.close()
     self.assertRaises(db.DBError, dbs.get, "foo")