ATLAS Offline Software
Loading...
Searching...
No Matches
python.dbsqlite.SQLhash Class Reference
Inheritance diagram for python.dbsqlite.SQLhash:
Collaboration diagram for python.dbsqlite.SQLhash:

Public Member Functions

 __init__ (self, filename=':memory:', flags='r', mode=None)
 __len__ (self)
 __bool__ (self)
 keys (self)
 values (self)
 items (self)
 __iter__ (self)
 iterkeys (self)
 itervalues (self)
 iteritems (self)
 __contains__ (self, key)
 __getitem__ (self, key)
 __setitem__ (self, key, value)
 __delitem__ (self, key)
 update (self, items=(), **kwds)
 clear (self)
 sync (self)
 close (self)
 __del__ (self)

Public Attributes

 conn = sqlite3.connect(filename)

Detailed Description

Definition at line 26 of file dbsqlite.py.

Constructor & Destructor Documentation

◆ __init__()

python.dbsqlite.SQLhash.__init__ ( self,
filename = ':memory:',
flags = 'r',
mode = None )

Definition at line 27 of file dbsqlite.py.

27 def __init__(self, filename=':memory:', flags='r', mode=None):
28 # XXX add flag/mode handling
29 # c -- create if it doesn't exist
30 # n -- new empty
31 # w -- open existing
32 # r -- readonly
33 if 'n' in flags:
34 import os
35 if os.path.exists(filename):
36 os.remove(filename)
37
38 MAKE_SHELF = 'CREATE TABLE IF NOT EXISTS shelf (key TEXT PRIMARY KEY NOT NULL, value BLOB)'
39 self.conn = sqlite3.connect(filename)
40 self.conn.text_factory = str
41 if 'r' not in flags or filename==':memory:':
42 self.conn.execute(MAKE_SHELF)
43 self.conn.commit()
44

◆ __del__()

python.dbsqlite.SQLhash.__del__ ( self)

Definition at line 131 of file dbsqlite.py.

131 def __del__(self):
132 self.close()
133

Member Function Documentation

◆ __bool__()

python.dbsqlite.SQLhash.__bool__ ( self)

Definition at line 49 of file dbsqlite.py.

49 def __bool__(self):
50 # returns None if count is zero
51 GET_BOOL = 'SELECT MAX(ROWID) FROM shelf'
52 return self.conn.execute(GET_BOOL).fetchone()[0] is not None
53

◆ __contains__()

python.dbsqlite.SQLhash.__contains__ ( self,
key )

Definition at line 78 of file dbsqlite.py.

78 def __contains__(self, key):
79 HAS_ITEM = 'SELECT 1 FROM shelf WHERE key = ?'
80 return self.conn.execute(HAS_ITEM, (key,)).fetchone() is not None
81

◆ __delitem__()

python.dbsqlite.SQLhash.__delitem__ ( self,
key )

Definition at line 96 of file dbsqlite.py.

96 def __delitem__(self, key):
97 if key not in self:
98 raise KeyError(key)
99 DEL_ITEM = 'DELETE FROM shelf WHERE key = ?'
100 self.conn.execute(DEL_ITEM, (key,))
101 #self.conn.commit()
102

◆ __getitem__()

python.dbsqlite.SQLhash.__getitem__ ( self,
key )

Definition at line 82 of file dbsqlite.py.

82 def __getitem__(self, key):
83 GET_ITEM = 'SELECT value FROM shelf WHERE key = ?'
84 item = self.conn.execute(GET_ITEM, (key,)).fetchone()
85 if item is None:
86 raise KeyError(key)
87
88 return pickle.loads(item[0])
89

◆ __iter__()

python.dbsqlite.SQLhash.__iter__ ( self)

Definition at line 63 of file dbsqlite.py.

63 def __iter__(self):
64 return self.iterkeys()
65

◆ __len__()

python.dbsqlite.SQLhash.__len__ ( self)

Definition at line 45 of file dbsqlite.py.

45 def __len__(self):
46 GET_LEN = 'SELECT COUNT(*) FROM shelf'
47 return self.conn.execute(GET_LEN).fetchone()[0]
48

◆ __setitem__()

python.dbsqlite.SQLhash.__setitem__ ( self,
key,
value )

Definition at line 90 of file dbsqlite.py.

90 def __setitem__(self, key, value):
91 ADD_ITEM = 'REPLACE INTO shelf (key, value) VALUES (?,?)'
92 value = pickle.dumps(value)
93 self.conn.execute(ADD_ITEM, (key, value))
94 #self.conn.commit()
95

◆ clear()

python.dbsqlite.SQLhash.clear ( self)

Definition at line 116 of file dbsqlite.py.

116 def clear(self):
117 CLEAR_ALL = 'DELETE FROM shelf; VACUUM;'
118 self.conn.executescript(CLEAR_ALL)
119 self.conn.commit()
120

◆ close()

python.dbsqlite.SQLhash.close ( self)

Definition at line 125 of file dbsqlite.py.

125 def close(self):
126 if self.conn is not None:
127 self.conn.commit()
128 self.conn.close()
129 self.conn = None
130

◆ items()

python.dbsqlite.SQLhash.items ( self)

Definition at line 60 of file dbsqlite.py.

60 def items(self):
61 return list(self.iteritems())
62

◆ iteritems()

python.dbsqlite.SQLhash.iteritems ( self)

Definition at line 74 of file dbsqlite.py.

74 def iteritems(self):
75 GET_ITEMS = 'SELECT key, value FROM shelf ORDER BY ROWID'
76 return SQLHashItemIterator(self.conn, GET_ITEMS, (0, 1))
77

◆ iterkeys()

python.dbsqlite.SQLhash.iterkeys ( self)

Definition at line 66 of file dbsqlite.py.

66 def iterkeys(self):
67 GET_KEYS = 'SELECT key FROM shelf ORDER BY ROWID'
68 return SQLHashKeyIterator(self.conn, GET_KEYS, (0,))
69

◆ itervalues()

python.dbsqlite.SQLhash.itervalues ( self)

Definition at line 70 of file dbsqlite.py.

70 def itervalues(self):
71 GET_VALUES = 'SELECT value FROM shelf ORDER BY ROWID'
72 return SQLHashValueIterator(self.conn, GET_VALUES, (0,))
73

◆ keys()

python.dbsqlite.SQLhash.keys ( self)

Definition at line 54 of file dbsqlite.py.

54 def keys(self):
55 return list(self.iterkeys())
56

◆ sync()

python.dbsqlite.SQLhash.sync ( self)

Definition at line 121 of file dbsqlite.py.

121 def sync(self):
122 if self.conn is not None:
123 self.conn.commit()
124

◆ update()

python.dbsqlite.SQLhash.update ( self,
items = (),
** kwds )

Definition at line 103 of file dbsqlite.py.

103 def update(self, items=(), **kwds):
104 try:
105 items = items.items()
106 items = [(k,pickle.dumps(v)) for k,v in items]
107 except AttributeError:
108 pass
109
110 UPDATE_ITEMS = 'REPLACE INTO shelf (key, value) VALUES (?, ?)'
111 self.conn.executemany(UPDATE_ITEMS, items)
112 self.conn.commit()
113 if kwds:
114 self.update(kwds)
115

◆ values()

python.dbsqlite.SQLhash.values ( self)

Definition at line 57 of file dbsqlite.py.

57 def values(self):
58 return list(self.itervalues())
59

Member Data Documentation

◆ conn

python.dbsqlite.SQLhash.conn = sqlite3.connect(filename)

Definition at line 39 of file dbsqlite.py.


The documentation for this class was generated from the following file: