Module dblite
source code
PyDbLite.py
In-memory database management, with selection by list comprehension
or generator expression
Fields are untyped : they can store anything that can be pickled.
Selected records are returned as dictionaries. Each record is
identified by a unique id and has a version number incremented
at every record update, to detect concurrent access
Syntax :
from PyDbLite import Base
db = Base('dummy')
# create new base with field names
db.create('name','age','size')
# existing base
db.open()
# insert new record
db.insert(name='homer',age=23,size=1.84)
# records are dictionaries with a unique integer key __id__
# selection by list comprehension
res = [ r for r in db if 30 > r['age'] >= 18 and r['size'] < 2 ]
# or generator expression
for r in (r for r in db if r['name'] in ('homer','marge') ):
# simple selection (equality test)
res = db(age=30)
# delete a record or a list of records
db.delete(one_record)
db.delete(list_of_records)
# delete a record by its id
del db[rec_id]
# direct access by id
record = db[rec_id] # the record such that record['__id__'] == rec_id
# create an index on a field
db.create_index('age')
# access by index
records = db._age[23] # returns the list of records with age == 23
# update
db.update(record,age=24)
# add and drop fields
db.add_field('new_field')
db.drop_field('name')
# save changes on disk
db.commit()
|
Index
Class used for indexing a base on a field The instance of Index is
an attribute the Base instance
|
|
Base
|