1 #-------------------------------------------------------------------------
2 # This file contains real Python object wrappers for DB and DBEnv
3 # C "objects" that can be usefully subclassed. The previous SWIG
4 # based interface allowed this thanks to SWIG's shadow classes.
6 #-------------------------------------------------------------------------
8 # (C) Copyright 2001 Autonomous Zone Industries
10 # License: This is free software. You may use this software for any
11 # purpose including modification/redistribution, so long as
12 # this header remains intact and that you do not claim any
13 # rights of ownership or authorship of this software. This
14 # software has been tested, but no warranty is expressed or
19 # TODO it would be *really nice* to have an automatic shadow class populator
20 # so that new methods don't need to be added here manually after being
25 absolute_import
= (sys
.version_info
[0] >= 3)
27 # Because this syntaxis is not valid before Python 2.5
28 exec("from . import db")
32 if sys
.version_info
< (2, 6) :
34 from UserDict
import DictMixin
36 # DictMixin is new in Python 2.3
38 MutableMapping
= DictMixin
41 MutableMapping
= collections
.MutableMapping
44 def __init__(self
, *args
, **kwargs
):
45 self
._cobj
= db
.DBEnv(*args
, **kwargs
)
47 def close(self
, *args
, **kwargs
):
48 return self
._cobj
.close(*args
, **kwargs
)
49 def open(self
, *args
, **kwargs
):
50 return self
._cobj
.open(*args
, **kwargs
)
51 def remove(self
, *args
, **kwargs
):
52 return self
._cobj
.remove(*args
, **kwargs
)
53 def set_shm_key(self
, *args
, **kwargs
):
54 return self
._cobj
.set_shm_key(*args
, **kwargs
)
55 def set_cachesize(self
, *args
, **kwargs
):
56 return self
._cobj
.set_cachesize(*args
, **kwargs
)
57 def set_data_dir(self
, *args
, **kwargs
):
58 return self
._cobj
.set_data_dir(*args
, **kwargs
)
59 def set_flags(self
, *args
, **kwargs
):
60 return self
._cobj
.set_flags(*args
, **kwargs
)
61 def set_lg_bsize(self
, *args
, **kwargs
):
62 return self
._cobj
.set_lg_bsize(*args
, **kwargs
)
63 def set_lg_dir(self
, *args
, **kwargs
):
64 return self
._cobj
.set_lg_dir(*args
, **kwargs
)
65 def set_lg_max(self
, *args
, **kwargs
):
66 return self
._cobj
.set_lg_max(*args
, **kwargs
)
67 def set_lk_detect(self
, *args
, **kwargs
):
68 return self
._cobj
.set_lk_detect(*args
, **kwargs
)
69 if db
.version() < (4,5):
70 def set_lk_max(self
, *args
, **kwargs
):
71 return self
._cobj
.set_lk_max(*args
, **kwargs
)
72 def set_lk_max_locks(self
, *args
, **kwargs
):
73 return self
._cobj
.set_lk_max_locks(*args
, **kwargs
)
74 def set_lk_max_lockers(self
, *args
, **kwargs
):
75 return self
._cobj
.set_lk_max_lockers(*args
, **kwargs
)
76 def set_lk_max_objects(self
, *args
, **kwargs
):
77 return self
._cobj
.set_lk_max_objects(*args
, **kwargs
)
78 def set_mp_mmapsize(self
, *args
, **kwargs
):
79 return self
._cobj
.set_mp_mmapsize(*args
, **kwargs
)
80 def set_timeout(self
, *args
, **kwargs
):
81 return self
._cobj
.set_timeout(*args
, **kwargs
)
82 def set_tmp_dir(self
, *args
, **kwargs
):
83 return self
._cobj
.set_tmp_dir(*args
, **kwargs
)
84 def txn_begin(self
, *args
, **kwargs
):
85 return self
._cobj
.txn_begin(*args
, **kwargs
)
86 def txn_checkpoint(self
, *args
, **kwargs
):
87 return self
._cobj
.txn_checkpoint(*args
, **kwargs
)
88 def txn_stat(self
, *args
, **kwargs
):
89 return self
._cobj
.txn_stat(*args
, **kwargs
)
90 def set_tx_max(self
, *args
, **kwargs
):
91 return self
._cobj
.set_tx_max(*args
, **kwargs
)
92 def set_tx_timestamp(self
, *args
, **kwargs
):
93 return self
._cobj
.set_tx_timestamp(*args
, **kwargs
)
94 def lock_detect(self
, *args
, **kwargs
):
95 return self
._cobj
.lock_detect(*args
, **kwargs
)
96 def lock_get(self
, *args
, **kwargs
):
97 return self
._cobj
.lock_get(*args
, **kwargs
)
98 def lock_id(self
, *args
, **kwargs
):
99 return self
._cobj
.lock_id(*args
, **kwargs
)
100 def lock_put(self
, *args
, **kwargs
):
101 return self
._cobj
.lock_put(*args
, **kwargs
)
102 def lock_stat(self
, *args
, **kwargs
):
103 return self
._cobj
.lock_stat(*args
, **kwargs
)
104 def log_archive(self
, *args
, **kwargs
):
105 return self
._cobj
.log_archive(*args
, **kwargs
)
107 def set_get_returns_none(self
, *args
, **kwargs
):
108 return self
._cobj
.set_get_returns_none(*args
, **kwargs
)
110 def log_stat(self
, *args
, **kwargs
):
111 return self
._cobj
.log_stat(*args
, **kwargs
)
113 def dbremove(self
, *args
, **kwargs
):
114 return self
._cobj
.dbremove(*args
, **kwargs
)
115 def dbrename(self
, *args
, **kwargs
):
116 return self
._cobj
.dbrename(*args
, **kwargs
)
117 def set_encrypt(self
, *args
, **kwargs
):
118 return self
._cobj
.set_encrypt(*args
, **kwargs
)
120 if db
.version() >= (4,4):
121 def fileid_reset(self
, *args
, **kwargs
):
122 return self
._cobj
.fileid_reset(*args
, **kwargs
)
124 def lsn_reset(self
, *args
, **kwargs
):
125 return self
._cobj
.lsn_reset(*args
, **kwargs
)
128 class DB(MutableMapping
):
129 def __init__(self
, dbenv
, *args
, **kwargs
):
130 # give it the proper DBEnv C object that its expecting
131 self
._cobj
= db
.DB(*((dbenv
._cobj
,) + args
), **kwargs
)
133 # TODO are there other dict methods that need to be overridden?
135 return len(self
._cobj
)
136 def __getitem__(self
, arg
):
137 return self
._cobj
[arg
]
138 def __setitem__(self
, key
, value
):
139 self
._cobj
[key
] = value
140 def __delitem__(self
, arg
):
143 if sys
.version_info
>= (2, 6) :
145 return self
._cobj
.__iter
__()
147 def append(self
, *args
, **kwargs
):
148 return self
._cobj
.append(*args
, **kwargs
)
149 def associate(self
, *args
, **kwargs
):
150 return self
._cobj
.associate(*args
, **kwargs
)
151 def close(self
, *args
, **kwargs
):
152 return self
._cobj
.close(*args
, **kwargs
)
153 def consume(self
, *args
, **kwargs
):
154 return self
._cobj
.consume(*args
, **kwargs
)
155 def consume_wait(self
, *args
, **kwargs
):
156 return self
._cobj
.consume_wait(*args
, **kwargs
)
157 def cursor(self
, *args
, **kwargs
):
158 return self
._cobj
.cursor(*args
, **kwargs
)
159 def delete(self
, *args
, **kwargs
):
160 return self
._cobj
.delete(*args
, **kwargs
)
161 def fd(self
, *args
, **kwargs
):
162 return self
._cobj
.fd(*args
, **kwargs
)
163 def get(self
, *args
, **kwargs
):
164 return self
._cobj
.get(*args
, **kwargs
)
165 def pget(self
, *args
, **kwargs
):
166 return self
._cobj
.pget(*args
, **kwargs
)
167 def get_both(self
, *args
, **kwargs
):
168 return self
._cobj
.get_both(*args
, **kwargs
)
169 def get_byteswapped(self
, *args
, **kwargs
):
170 return self
._cobj
.get_byteswapped(*args
, **kwargs
)
171 def get_size(self
, *args
, **kwargs
):
172 return self
._cobj
.get_size(*args
, **kwargs
)
173 def get_type(self
, *args
, **kwargs
):
174 return self
._cobj
.get_type(*args
, **kwargs
)
175 def join(self
, *args
, **kwargs
):
176 return self
._cobj
.join(*args
, **kwargs
)
177 def key_range(self
, *args
, **kwargs
):
178 return self
._cobj
.key_range(*args
, **kwargs
)
179 def has_key(self
, *args
, **kwargs
):
180 return self
._cobj
.has_key(*args
, **kwargs
)
181 def items(self
, *args
, **kwargs
):
182 return self
._cobj
.items(*args
, **kwargs
)
183 def keys(self
, *args
, **kwargs
):
184 return self
._cobj
.keys(*args
, **kwargs
)
185 def open(self
, *args
, **kwargs
):
186 return self
._cobj
.open(*args
, **kwargs
)
187 def put(self
, *args
, **kwargs
):
188 return self
._cobj
.put(*args
, **kwargs
)
189 def remove(self
, *args
, **kwargs
):
190 return self
._cobj
.remove(*args
, **kwargs
)
191 def rename(self
, *args
, **kwargs
):
192 return self
._cobj
.rename(*args
, **kwargs
)
193 def set_bt_minkey(self
, *args
, **kwargs
):
194 return self
._cobj
.set_bt_minkey(*args
, **kwargs
)
195 def set_bt_compare(self
, *args
, **kwargs
):
196 return self
._cobj
.set_bt_compare(*args
, **kwargs
)
197 def set_cachesize(self
, *args
, **kwargs
):
198 return self
._cobj
.set_cachesize(*args
, **kwargs
)
199 def set_flags(self
, *args
, **kwargs
):
200 return self
._cobj
.set_flags(*args
, **kwargs
)
201 def set_h_ffactor(self
, *args
, **kwargs
):
202 return self
._cobj
.set_h_ffactor(*args
, **kwargs
)
203 def set_h_nelem(self
, *args
, **kwargs
):
204 return self
._cobj
.set_h_nelem(*args
, **kwargs
)
205 def set_lorder(self
, *args
, **kwargs
):
206 return self
._cobj
.set_lorder(*args
, **kwargs
)
207 def set_pagesize(self
, *args
, **kwargs
):
208 return self
._cobj
.set_pagesize(*args
, **kwargs
)
209 def set_re_delim(self
, *args
, **kwargs
):
210 return self
._cobj
.set_re_delim(*args
, **kwargs
)
211 def set_re_len(self
, *args
, **kwargs
):
212 return self
._cobj
.set_re_len(*args
, **kwargs
)
213 def set_re_pad(self
, *args
, **kwargs
):
214 return self
._cobj
.set_re_pad(*args
, **kwargs
)
215 def set_re_source(self
, *args
, **kwargs
):
216 return self
._cobj
.set_re_source(*args
, **kwargs
)
217 def set_q_extentsize(self
, *args
, **kwargs
):
218 return self
._cobj
.set_q_extentsize(*args
, **kwargs
)
219 def stat(self
, *args
, **kwargs
):
220 return self
._cobj
.stat(*args
, **kwargs
)
221 def sync(self
, *args
, **kwargs
):
222 return self
._cobj
.sync(*args
, **kwargs
)
223 def type(self
, *args
, **kwargs
):
224 return self
._cobj
.type(*args
, **kwargs
)
225 def upgrade(self
, *args
, **kwargs
):
226 return self
._cobj
.upgrade(*args
, **kwargs
)
227 def values(self
, *args
, **kwargs
):
228 return self
._cobj
.values(*args
, **kwargs
)
229 def verify(self
, *args
, **kwargs
):
230 return self
._cobj
.verify(*args
, **kwargs
)
231 def set_get_returns_none(self
, *args
, **kwargs
):
232 return self
._cobj
.set_get_returns_none(*args
, **kwargs
)
234 def set_encrypt(self
, *args
, **kwargs
):
235 return self
._cobj
.set_encrypt(*args
, **kwargs
)
239 def __init__(self
, *args
, **kwargs
):
240 self
._cobj
= db
.DBSequence(*args
, **kwargs
)
242 def close(self
, *args
, **kwargs
):
243 return self
._cobj
.close(*args
, **kwargs
)
244 def get(self
, *args
, **kwargs
):
245 return self
._cobj
.get(*args
, **kwargs
)
246 def get_dbp(self
, *args
, **kwargs
):
247 return self
._cobj
.get_dbp(*args
, **kwargs
)
248 def get_key(self
, *args
, **kwargs
):
249 return self
._cobj
.get_key(*args
, **kwargs
)
250 def init_value(self
, *args
, **kwargs
):
251 return self
._cobj
.init_value(*args
, **kwargs
)
252 def open(self
, *args
, **kwargs
):
253 return self
._cobj
.open(*args
, **kwargs
)
254 def remove(self
, *args
, **kwargs
):
255 return self
._cobj
.remove(*args
, **kwargs
)
256 def stat(self
, *args
, **kwargs
):
257 return self
._cobj
.stat(*args
, **kwargs
)
258 def set_cachesize(self
, *args
, **kwargs
):
259 return self
._cobj
.set_cachesize(*args
, **kwargs
)
260 def set_flags(self
, *args
, **kwargs
):
261 return self
._cobj
.set_flags(*args
, **kwargs
)
262 def set_range(self
, *args
, **kwargs
):
263 return self
._cobj
.set_range(*args
, **kwargs
)
264 def get_cachesize(self
, *args
, **kwargs
):
265 return self
._cobj
.get_cachesize(*args
, **kwargs
)
266 def get_flags(self
, *args
, **kwargs
):
267 return self
._cobj
.get_flags(*args
, **kwargs
)
268 def get_range(self
, *args
, **kwargs
):
269 return self
._cobj
.get_range(*args
, **kwargs
)