当前位置: 首页>>代码示例>>Python>>正文


Python Database.get方法代码示例

本文整理汇总了Python中CodernityDB.database.Database.get方法的典型用法代码示例。如果您正苦于以下问题:Python Database.get方法的具体用法?Python Database.get怎么用?Python Database.get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CodernityDB.database.Database的用法示例。


在下文中一共展示了Database.get方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class cache :
	"""
		cache for word morphological analysis
	"""
	def __init__(self,):
		"""
		Create Analex Cache
		"""
		self.cache={'checkedWords':{},
			    'FreqWords':{'noun':{}, 'verb':{},'stopword':{}},
			};
		self.db = Database('/tmp/qalsadiCache')
		if not self.db.exists():
			self.db.create();
			x_ind = WithAIndex(self.db.path, 'a')
			self.db.add_index(x_ind)        
		else:
			self.db.open();

	def __del__(self):
		"""
		Delete instance and clear cache
		
		"""
		self.cache=None;
		self.db.close();

	def isAlreadyChecked(self, word):
		try:
			return bool(self.db.get('a', word))
		except: return False
		#~ except: return False;

	def getChecked(self, word):
		x = self.db.get('a', word, with_doc=True)
		y= x.get('doc',False);
		if y: return y.get('d',[])
		else: return []
	
	def addChecked(self, word, data):
		idata = {"a":word,'d':data}
		self.db.insert(idata)

	
	def existsCacheFreq(self, word, wordtype):
		return word in self.cache['FreqWords'];
	
	def getFreq(self, originalword, wordtype):
		return self.cache['FreqWords'][wordtype].get(originalword,0);
	
	def addFreq(self, original, wordtype, freq):
		self.cache['FreqWords'][wordtype][original]=freq;
开发者ID:ATouhou,项目名称:mishkal,代码行数:54,代码来源:cache.py

示例2: main

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
def main():
    db = Database('/tmp/tut2')
    db.create()
    x_ind = WithXIndex(db.path, 'x')
    db.add_index(x_ind)

    for x in xrange(100):
        db.insert(dict(x=x))

    for y in xrange(100):
        db.insert(dict(y=y))

    print db.get('x', 10, with_doc=True)
开发者ID:abhishekgahlot,项目名称:codernitydb,代码行数:15,代码来源:quick_key_value2.py

示例3: main

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
def main():
    db = Database('db/tut2')
    if db.exists():
    	db.open()
    else:
    	db.create()
    x_ind = WithXIndex(db.path, 'y')
    db.add_index(x_ind)

    for x in xrange(100):
        db.insert(dict(x=x))

    for y in xrange(100):
        db.insert(dict(y=y))

    print db.get('x', 10, with_doc=True)
开发者ID:t1g0r,项目名称:ramey,代码行数:18,代码来源:codernity_test.py

示例4: BenchCodernityDB

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class BenchCodernityDB(BenchBase):
    
    ID_FIELD = "_id"
    
    def __init__(self, *args, **kwargs):
        super(BenchCodernityDB, self).__init__(*args, **kwargs)
    
    def create_database(self):
        self.db = Database(self.db_name)
        self.db.create()
        self.db.add_index(WithSmallNumberIndex(self.db.path, "small_number"))

    def delete_database(self):
        self.db.close()
        shutil.rmtree(self.db_name)
            
    def create(self, record):
        self.db.insert(record)
    
    def get(self, key):
        return self.db.get("id", key, with_doc=True)
        
    def query(self, **kwargs):
        key, val = kwargs.items()[0]
        return list(self.db.get_many(key, val, limit=-1, with_doc=True))
开发者ID:jamalex,项目名称:no-sql-bench,代码行数:27,代码来源:bench_codernity.py

示例5: main

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
def main():
    db = Database('/tmp/tut4')
    db.create()
    x_ind = WithXIndex(db.path, 'x')
    db.add_index(x_ind)

    for x in xrange(100):
        db.insert(dict(x=x))

    for y in xrange(100):
        db.insert(dict(y=y))

    print db.get('x', 10, with_doc=True)

    for curr in db.get_many('x', start=15, end=25, limit=-1, with_doc=True):
        print curr
开发者ID:abhishekgahlot,项目名称:codernitydb,代码行数:18,代码来源:quick_key_value4.py

示例6: test_insert_get

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
    def test_insert_get(self, tmpdir, sh_nums):
        db = Database(str(tmpdir) + '/db')
        db.create(with_id_index=False)
        n = globals()['ShardedUniqueHashIndex%d' % sh_nums]
        db.add_index(n(db.path, 'id'))
        l = []
        for x in xrange(10000):
            l.append(db.insert(dict(x=x))['_id'])

        for curr in l:
            assert db.get('id', curr)['_id'] == curr
开发者ID:amitbmas07,项目名称:codernitydb,代码行数:13,代码来源:shard_tests.py

示例7: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class SecuIn:
	'''
	Handles all data input into the database

	'''
	def __init__(self,passkey):
		self.key = passkey


		self.initQuestions = SecuQ(self.key)

		self.DBConfig = AppConfig()
		self.dbName = self.DBConfig.mapget('databaseinfo')['databasename']

		self.db = Database(self.dbName)


		initDay = DayEntry(self.key) # checks day hash or creates a new one
		self.dayKey = initDay.dayKey



	def questionDataIN(self,data):
	
		'''
		Data IN:
		{'a' : 2, 'b': 14 , 'c': 11, 'd': 43, 'note' : 'hello'}
	
		or
	
		{ 'b': 14 , 'c': 11, 'd': 43, 'note' : 'hello'} 
		 some entries may be missing
	
	
		Data OUT: (NEVER DELETE ANYTIHNG :) )
	
		{'date' : xx , _id: ###date2### , 'a':{'xxdate3xx':2},
						'b':{'xxdate3xx':14},
						'c':{'xxdate3xx':11},
						'note':{'xxdate3xx':'you'}}
	
	
		{'date' : xx , _id: ###date1### , 'a':{'xxdate1xx':1,'xxdate2xx':2},
						'b':{'xxdate1xx':14,'xxdate2xx':14},
						'c':{'xxdate1xx':11,'xxdate2xx':11},
						'note':{'xxdate2xx':'hello','xxdate3xx':'you'}
	
	
		'''


		timeIN = getTimeStamp() #get now time
		#initialize new questions
		
	
		# get data, as doc {'date':'xx/xx/xxTxx:xx:xxxx','question1':'x','question2':'x'}, same as dic format

		if(self.db.exists()):
			self.db.open()
			self.db.id_ind.enc_key = self.key
			dayrow = self.db.get('id', self.dayKey, with_doc=True)
	
			#this function assumes database already opened
			# this is gonna be a tuple that is inserted directly

	
			#convert data from javasript to python dict/json
			# if (type(data) is str):
			dataIN=eval(data) #{ 'b': 14 , 'c': 11, 'd': 43, 'note' : 'hello'}
			datachanged = dataIN.keys()





			for question in datachanged:
				try:
					dayrow[question][timeIN] = dataIN[question]
				except KeyError: #first write to key, initiate
					dayrow[question] = {}
					dayrow[question][timeIN] = dataIN[question]

			

			self.db.update(dayrow) 
			self.db.close()
			self.initQuestions.questionsValidate(datachanged) #insert questions whos data had changed

			#if all ok!
			return True
开发者ID:fflowres,项目名称:Scripts,代码行数:92,代码来源:DBInputClass.py

示例8: CodernityDB

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class CodernityDB(BaseService):

    """A service providing a codernity db interface."""

    name = 'db'
    default_config = dict(db=dict(path=''), app=dict(dir=''))

    def __init__(self, app):
        super(CodernityDB, self).__init__(app)
        self.dbfile = os.path.join(self.app.config['app']['dir'],
                                   self.app.config['db']['path'])
        self.db = None
        self.uncommitted = dict()
        self.stop_event = Event()
        self.db = Database(self.dbfile)
        try:
            log.info('opening db', path=self.dbfile)
            self.db.open()
        except DatabasePathException:
            log.info('db does not exist, creating it', path=self.dbfile)
            self.db.create()
            self.db.add_index(MD5Index(self.dbfile, 'key'))

    def _run(self):
        self.stop_event.wait()

    def stop(self):
        # commit?
        log.info('closing db')
        if self.started:
            self.db.close()
            self.stop_event.set()

    def get(self, key):
        log.debug('getting entry', key=key)
        if key in self.uncommitted:
            if self.uncommitted[key] is None:
                raise KeyError("key not in db")
            return self.uncommitted[key]
        try:
            value = self.db.get('key', key, with_doc=True)['doc']['value']
        except RecordNotFound:
            raise KeyError("key not in db")
        return compress.decompress(value)

    def put(self, key, value):
        log.debug('putting entry', key=key, value=value)
        self.uncommitted[key] = value

    def commit(self):
        log.debug('committing', db=self)
        for k, v in self.uncommitted.items():
            if v is None:
                doc = self.db.get('key', k, with_doc=True)['doc']
                self.db.delete(doc)
            else:
                self.db.insert({'key': k, 'value': compress.compress(v)})
        self.uncommitted.clear()

    def delete(self, key):
        log.debug('deleting entry', key=key)
        self.uncommitted[key] = None

    def __contains__(self, key):
        try:
            self.get(key)
        except KeyError:
            return False
        return True

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.db == other.db

    def __repr__(self):
        return '<DB at %d uncommitted=%d>' % (id(self.db), len(self.uncommitted))

    def inc_refcount(self, key, value):
        self.put(key, value)

    def dec_refcount(self, key):
        pass

    def revert_refcount_changes(self, epoch):
        pass

    def commit_refcount_changes(self, epoch):
        pass

    def cleanup(self, epoch):
        pass

    def put_temporarily(self, key, value):
        self.inc_refcount(key, value)
        self.dec_refcount(key)
开发者ID:nicofarr,项目名称:pyethapp,代码行数:96,代码来源:codernitydb_service.py

示例9: Store

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class Store():

    def __init__(self, pathname):
        self.store_path = os.path.join(pathname, "store")
        self.objects_counter = {}
        self.init_store_db()
        if not os.path.exists(self.store_path):
            os.mkdir(self.store_path)

    def init_store_dir(self):
        if not os.path.exists(self.store_path):
            os.mkdir(self.store_path)
        objects_path = os.path.join(self.store_path, "objects")
        if not os.path.exists(objects_path):
            os.mkdir(objects_path)
        backups_path = os.path.join(self.store_path, "backups")
        if not os.path.exists(backups_path):
            os.mkdir(backups_path)
        journal_path = os.path.join(self.store_path, "journal")
        if not os.path.exists(journal_path):
            os.mkdir(journal_path)
        journal_objects_path = os.path.join(self.store_path, "journal/objects")
        if not os.path.exists(journal_objects_path):
            os.mkdir(journal_objects_path)
        journal_backups_path = os.path.join(self.store_path, "journal/backups")
        if not os.path.exists(journal_backups_path):
            os.mkdir(journal_backups_path)

    def init_store_db(self):
        self.db = Database(os.path.join(self.store_path, "store.db"))
        if not self.db.exists():
            self.db.create()
            self.db.add_index(WithHashIndex(self.db.path, "hash"))
            self.db.add_index(WithPointerIndex(self.db.path, "pointer"))
        else:
            self.db.open()

    def get_path(self):
        return self.store_path #volania napr. BackupObject.new...(... , target.get_path())

    def get_backup_path(self, backup_name):
        backup_path = os.path.join(self.store_path, "backups")
        return os.path.join(backup_path, backup_name)

    def get_journal_backup_path(self, backup_name):
        backup_path = os.path.join(self.get_journal_path(), "backups")
        return os.path.join(backup_path, backup_name)

    def get_journal_backup_path(self, backup_name):
        backup_path = os.path.join(self.get_journal_path(), "backups")
        return os.path.join(backup_path, backup_name)

    def get_objet_dir_path(self, hash):
        return os.path.join(self.store_path, "objects", hash[:2])

    def get_object_path(self, hash):
        object_path = os.path.join(self.store_path, "objects", hash[:2])
        return os.path.join(object_path, hash + ".data")

    def get_journal_object_path(self, hash):
        object_path = os.path.join(self.get_journal_path(), "objects", hash[:2])
        if not os.path.exists(object_path):
            os.mkdir(object_path)
        return os.path.join(object_path, hash + ".data")

    def get_journal_tmp_object_path(self, hash):
        object_path = os.path.join(self.get_journal_path(), "objects")
        return os.path.join(object_path, hash + ".data")

    def get_object_header_path(self, hash):
        object_header_path = os.path.join(self.store_path, "objects", hash[:2])
        return os.path.join(object_header_path, hash + ".meta")

    def get_journal_object_header_path(self, hash):
        object_header_path = os.path.join(self.get_journal_path(), "objects", hash[:2])
        if not os.path.exists(object_header_path):
            os.mkdir(object_header_path)
        return os.path.join(object_header_path, hash + ".meta")

    def get_journal_tmp_object_header_path(self, hash):
        object_header_path = os.path.join(self.get_journal_path(), "objects")
        return os.path.join(object_header_path, hash + ".meta")

    def get_backups_path(self):
        return os.path.join(self.store_path, "backups")

    def get_latest_path(self):
        latest_tmp_path = os.path.join(self.store_path, "backups")
        return os.path.join(latest_tmp_path, "latest")

    def get_journal_latest_path(self):
        latest_tmp_path = os.path.join(self.get_journal_path(), "backups")
        return os.path.join(latest_tmp_path, "latest")

    def get_journal_path(self):
        return os.path.join(self.store_path, "journal")

    def get_all_backups(self):
        backups_path = os.path.join(self.store_path, "backups")
        backups = os.listdir(backups_path)
#.........这里部分代码省略.........
开发者ID:PapajaLM,项目名称:Backuping,代码行数:103,代码来源:store.py

示例10: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
    custom_header = """from CodernityDB.tree_index import MultiTreeBasedIndex
from itertools import izip"""

    def __init__(self, *args, **kwargs):
        kwargs['key_format'] = '16s'
        super(TreeMultiTest, self).__init__(*args, **kwargs)
        self.__l = kwargs.get('w_len', 2)

    def make_key_value(self, data):
        name = data['w']
        l = self.__l
        max_l = len(name)
        out = set()
        for x in xrange(l - 1, max_l):
            m = (name, )
            for y in xrange(0, x):
                m += (name[y + 1:],)
            out.update(set(''.join(x).rjust(16, '_').lower() for x in izip(*m)))  #ignore import error
        return out, dict(w=name)

    def make_key(self, key):
        return key.rjust(16, '_').lower()

db = Database('./tmp/multi')
db.create()
db.add_index(TreeMultiTest(db.path, "words"))

db.insert(dict(w='Codernity'))

print db.get('words', 'dern')['w']  # "Codernity"
print db.get('words', 'cod')['w']  # "Codernity"
开发者ID:Cassandra-,项目名称:InfoVisBlub,代码行数:33,代码来源:database2.py

示例11: questionGet

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class SecuQ:
	'''
	Abstract:
	Handles all Questions, input and output input into the database





	def questionGet(self):

		- reloads all question database attributes



	def questionInsert(self,data,descriptor='inclusive'):
		-> data = input question dict
				ex: 

				'a':{'active':'True','typ':'slider','range':'0-100','aggregate':True, 'multipoint':True}, ,,,,.................

		- inclusive = Updates entried (overwrites) (safe)
		- exclusive = deletes all entried not in input (dangerous)

	def questionsValidate(self,data):
		-> data = input list of questions [(keys)]

		each question verified, if not initiated, will be initiated after


	'''
	def __init__(self,passkey):
		self.key = passkey
		self.indexdb = DBIndexSystem(self.key)
		#self.indexdb.masterIndex
		#self.indexdb.Qindex
		#self.indexdb.Tindex
		#self.indexdb.IndexedTable
		#self.indexdb.dbName
		

		self.db = Database(self.indexdb.dbName)
		

		#init variables blank, avoid key errors
		self.all = {}
		self.valid = {}
		self.active = {}
		self.notactive = {}
		self.unInit = {}
		self.typ = {}
		self.aggregate = {}
		self.multipoint = {}

		self.questionGet() #populate variables



	#query: all , valid, true,unInit, false, inline
	def questionGet(self): #the passkey in question should be loaded from config or index passkey


		if(self.db.exists()):
			self.db.open()
			self.db.id_ind.enc_key = self.key

			#select Qindex
			Qindex = self.db.get('id', self.indexdb.Qindex, with_doc=True)
	
	
			oQ = Qindex.copy()
			# delete unnessesary to modify
			# if u use del <key> it deletes all instances in all variables using same reference to dict
			oQ.pop('_rev', None)
			oQ.pop('_id', None)
			oQ.pop('t', None)
			#oQ.pop('questions', None)
			#returns list in string for of all keys aka the question and metadata
	
			#step through and assign

			questionsSet = oQ.keys()

			for question in questionsSet:

				
				self.all[question] = oQ[question]

				if oQ[question]['active'] == 'True':
					self.active[question] = oQ[question]



				
				if oQ[question]['active'] == 'unInit':
					self.unInit[question] = oQ[question]

				
				if (oQ[question]['active'] == 'unInit') | (oQ[question]['active'] == 'True'):
					self.valid[question] = oQ[question]
#.........这里部分代码省略.........
开发者ID:fflowres,项目名称:Scripts,代码行数:103,代码来源:DBQuestionClass.py

示例12: main

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
def main():
    db2 = pickledb.load('examlple.db', True)
    db2.set('test', 'test')

    db = Database('/home/papaja/Zaloha/target/store.db')
    db.open()
    # db.create()
    # print database
    # x_ind = WithHashIndex(db.path, 'hash')
    # pointer_ind = WithHashIndex(db.path, 'pointer')
    # db.add_index(x_ind)
    # db.add_index(pointer_ind)
    # db.insert({'hash':'3f8ee76c84d95c3f4ed061db98694be57e7d33da', 'pointer':1})
    # # for x in xrange(100):
    #     db.insert(dict(x='3f8ee76c84d95c3f4ed061db98694be57e7d33da'))
    # for curr in db.all('id'):
    #     curr['x'] = 1
    #     db.update(curr)
    #     print curr
    for curr in db.all('id'):
         print curr
    try:
        test = db.get('hash', '3f8ee76c84d95c3f4ed061db98694be57e7d33da', with_doc=True)
        print test
    except RecordNotFound:
        print "Nieje rekord"
    exit()
    test['doc']['pointer'] = test['doc']['pointer'] + 1
    db.update(test['doc'])
    for curr in db.all('id'):
         print curr
    exit()

    lstat = os.lstat("/home/papaja/.cache/keyring-SZ5Lrw/gpg")
    mode = lstat.st_mode
    if S_ISDIR(mode):
        print("dir")
    elif S_ISREG(mode):
        print("file")
    elif S_ISLNK(mode):
        print("link")
    else:
        print("None")
        print(mode)
        print(lstat)
        print(S_ISFIFO(mode))
    exit()
    #print(os.readlink('/home/papaja/Zaloha/target/objects/test'))
    #shutil.move("/home/papaja/Zaloha/target/journal/objects/a3fe40b52ec03a7e2d8c8c0ca86baaf0192038c5.meta", "/home/papaja/Zaloha/target/objects")
    #shutil.rmtree(os.path.join("/home/papaja/", "objects"))
    # myFile = MyFile('/home/papaja/third')
    # print(myFile.readline().decode("UTF-8"))
    # dst = open('/home/mint/Diplomovka/first', 'wb')
    # src = open('second', 'rb')
    # synced = open('/home/papaja/third', 'wb')
    # signatureFile = open('signature', 'wb')
    # deltaFile = open('/home/papaja/delta', 'rb');
    # hashes = pyrsync2.blockchecksums(dst)
    # hashes_save = {
    #     weak: (index, strong) for index, (weak, strong)
    #     in enumerate(hashes)
    # }
    # signature.write(bytes('gz\n', "UTF-8"))
    # pickle.dump(hashes_save, signature, pickle.HIGHEST_PROTOCOL)
    # type = signature.readline().decode("UTF-8")
    # print("Typ {}".format(type.strip()))
    # signature.readline()
    # hashes_save = pickle.load(signature)
    # print(hashes_save)
    # delta = pyrsync2.rsyncdelta(src, hashes_save)
    # pyrsync2.patchstream(dst, synced, delta)
    # io.FileIO
    # signature = librsync.signature(dst)
    # delta = librsync.delta(src, signature)
    # librsync.patch(dst, delta, synced)
    # synced.close()
    temp = tempfile.NamedTemporaryFile()
    skuska = open(temp.name, "wb")
    dst = open('/home/mint/Diplomovka/first', 'rb')
    velkost = open('/home/mint/Diplomovka/velkost', 'rb')
    retazec = 'ahoj'
    print(len(retazec))
    print(velkost.readline())
    print(velkost.read(3))
    #velkost.write(str(sys.getsizeof(retazec)))
    dst_data = dst.read(16)
    while dst_data:
        skuska.write(dst_data)
        dst_data = dst.read(16)
    skuska.close()
    patchProcess = subprocess.Popen(['rdiff', 'patch', temp.name, '/home/mint/Diplomovka/delta'], stdout=subprocess.PIPE)
    patchFile, patchError = patchProcess.communicate()
    # print patchFile
    # dst_data = dst.read(16)
    while dst_data:
        #patchProcess.stdin.write(dst_data)
        dst_data = dst.read(16)
    # # patchProcess.stdin.write(dst_data)
    #patchProcess.stdin.write(dst_data)
    #patchProcess.stdin.close()
#.........这里部分代码省略.........
开发者ID:PapajaLM,项目名称:Backuping,代码行数:103,代码来源:test.py

示例13: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
    custom_header = 'from CodernityDB.sharded_hash import ShardedHashIndex'

    def __init__(self, *args, **kwargs):
        kwargs['sh_nums'] = 10
        kwargs['key_format'] = 'I'
        kwargs['use_make_keys'] = True
        super(MySharded, self).__init__(*args, **kwargs)

    def make_key_value(self, data):
        return data['x'], None

    def calculate_shard(self, key):
        return key % self.sh_nums


y = 1500 * 'y'

db = Database('/tmp/shard')

db.create(with_id_index=False)
db.add_index(CustomIdSharded(db.path, 'id'))
db.add_index(MySharded(db.path, 'x'))


# it makes non sense to use sharding with such small number of records
for x in xrange(10 ** 4):
    db.insert({'x': x, 'y': y})


print db.get('x', random.randint(0, 10 ** 4))['_id']
开发者ID:amitbmas07,项目名称:codernitydb,代码行数:32,代码来源:shard_demo.py

示例14: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class cache :
    """
        cache for word morphological analysis
    """
    DB_PATH = os.path.join(os.path.expanduser('~'), '.thaalabCache')
    def __init__(self, cache_path=False):
        """
        Create Analex Cache
        """
        # use this dictionary as a local cache,
        # The global db will be updated on destructing object
        # get the database path
        if hasattr(sys, 'frozen'): # only when running in py2exe this exists
            base = sys.prefix
        else: # otherwise this is a regular python script
            base = os.path.dirname(os.path.realpath(__file__))
        if not cache_path:
            file_path = self.DB_PATH
        else:
            file_path = os.path.join(os.path.dirname(cache_path), '.thaalabCache')
        
        self.cache={};
        self.db = Database(file_path)
        if not self.db.exists():
            self.db.create();
            x_ind = WithAIndex(self.db.path, 'a')
            self.db.add_index(x_ind)        
        else:
            self.db.open();

    def __del__(self):
        """
        Delete instance and clear cache
        
        """
        self.cache=None;
        self.db.close();

    def update(self):
        """update data base """
        #~ pass
        for word in self.cache:
            self.add_checked(word, self.cache[word])        

    def is_already_checked(self, word):
        try:
            return bool(self.db.get('a', word))
        except:
            return False
        #~ except: return False;

    def get_checked(self, word):
        try:
            x = self.db.get('a', word, with_doc=True)
            y = x.get('doc',False);
            if y: 
                return y.get('d',[])
            else: return []
        except:
            return []
    
    def add_checked(self, word, data):
        idata = {"a":word,'d':data}
        try:
            saved = self.db.get('a', word, with_doc=True)
        except:
            saved = False
        if saved:
            saved['doc']['d'] = data
            doc  = saved['doc']
            doc['update'] = True
            self.db.update(doc)
        else:
            self.db.insert(idata)

    
    def exists_cache_word(self, word):
        """ test if word exists in cache"""
        #if exists in cache dictionary
        if word in self.cache:
            return True
        else: # test in database
            if self.is_already_checked(word):
                stored_data = self.get_checked(word)
                self.cache[word] = stored_data
                return bool(self.cache[word])
            else:
                # add null dict to the word index to avoid multiple database check
                self.cache[word] = {}
                return {}            

    
    def get_relation_freq(self, word_prev, word_cur, relation):
        self.exists_cache_word(word_prev)
        return self.cache.get(word_prev, {}).get(word_cur, {}).get(relation, 0);
    
    def is_related(self, word_prev, word_cur):
        """ test if two words are related"""
        #serach in cache
        self.exists_cache_word(word_prev)
#.........这里部分代码省略.........
开发者ID:linuxscout,项目名称:mishkal,代码行数:103,代码来源:cache.py

示例15: __init__

# 需要导入模块: from CodernityDB.database import Database [as 别名]
# 或者: from CodernityDB.database.Database import get [as 别名]
class SecuFrame: #in producion, key must be specified
	def __init__(self,passkey,date_range='all'):
		self.key = passkey
		self.Qeng = SecuQ(self.key)

		self.indexdb = DBIndexSystem(self.key)
		#self.indexdb.masterIndex
		#self.indexdb.Qindex
		#self.indexdb.Tindex
		#self.indexdb.IndexedTable
		#self.indexdb.dbName

		self.dayindex = DayEntry(self.key)
		#self.dayindex.dayKey

		self.DBConfig = AppConfig()

		self.dbName = self.DBConfig.mapget('databaseinfo')['databasename']

		self.db = Database(self.dbName)


		self.dbparseable = self.db2json(daterange=date_range,clean=True)
		
	def __del__(self):
		if (self.db.opened):
			self.db.close()

		
		
	def db2json(self,daterange,clean=True):
		'''
		> daterange 
		- tuple datetime objects to specify range
		(dateObj,dateObj)
		
		
		
					
		'''
		
		dfJSON = []
		
		if(self.db.exists()):
			self.db.open()
			self.db.id_ind.enc_key = self.key
			if daterange == "all":
				if clean == True:


					for currHash in self.indexdb.IndexedTable: #get row  
						curr = self.db.get('id', currHash, with_doc=True)

						curr.pop('_id')
						curr.pop('_rev')
						dfJSON.append(curr)

					self.db.close()
					return dfJSON
			
				if clean == False:
					for currHash in self.indexdb.IndexedTable: #get row  
						curr = self.db.get('id', currHash, with_doc=True)
						dfJSON.append(curr)

					self.db.close()
					return dfJSON

			if daterange == "today":
				if clean == True:
					curr = self.db.get('id', self.dayindex.dayKey, with_doc=True)
					curr.pop('_id')
					curr.pop('_rev')
					dfJSON.append(curr)
					self.db.close()
					return dfJSON
				
		'''
		#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  

			if ((type(daterange) == tuple) & (len(daterange)<=2) & (daterange[0]<daterange[1]) &(type(daterange[0])==datetime.datetime) & (type(daterange[1])==datetime.datetime): #if it's a valid daterange
				if clean == True
					
					for curr in db.all('id'): #get row   
						currdto=dt.datetime.strptime(curr['date'],"%Y-%m-%d %H:%M:%S.%f")
						if ( daterange[0] <= currdto <= daterange[1]):







							curr.pop('_id')
							curr.pop('_rev')
							dfJSON.append(curr)
					db.close()
					return dfJSON
			
				if clean == False:
#.........这里部分代码省略.........
开发者ID:fflowres,项目名称:Scripts,代码行数:103,代码来源:DBOutputClass.py


注:本文中的CodernityDB.database.Database.get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。