1 #=======================================================================
3 __version__
= '''0.0.05'''
4 __sub_version__
= '''20040909234325'''
5 __copyright__
= '''(c) Alex A. Naanou 2003'''
8 #-----------------------------------------------------------------------
10 import pli
.pattern
.store
as store
13 #-----------------------------------------------------------------------
15 #------------------------------------------------------BaseStoreProxy---
18 # this stop the overwriting of data in the target backend...
21 class BaseStoreProxy(store
.BaseStore
):
24 ## def __init__(self, name, backend=None):
27 ## super(BaseStoreProxy, self).__init__(name)
28 ## if backend != None:
29 ## self._store_data = backend
30 def _setbackend(self
, backend
):
33 self
._store
_data
= backend
38 return self
._store
_data
39 def changebackend(self
, backend
, flags
=SAFE_TRNSFER
):
41 this will transfer data from the current backend to the new.
43 # check for store intersections...
44 from_keys
= self
.keys()
45 to_keys
= backend
.keys()
46 if len(from_keys
) + len(to_keys
) != len(dict.fromkeys(from_keys
+ to_keys
)):
49 raise TypeError, 'both the curent store (%s) and the new backend (%s) have matching keys.' % (self
, backend
)
50 for k
, v
in self
.iteritems():
53 if flags
& SAFE_TRNSFER
:
54 ##!!! fatal... (data changed during transfer)
55 raise TypeError, 'data changed during transfer of store %s to %s.' % (self
, backend
)
56 if flags
& FORCE_OVERWRITE
:
58 elif flags
& IGNORE_OVERWRITE
:
61 self
._setbackend
(backend
)
65 #=======================================================================
66 # vim:set ts=4 sw=4 nowrap :