[Checkins] SVN: zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/ Update class meta information as well. Remove unused and useless code.
Sylvain Viollon
sylvain at infrae.com
Thu Nov 5 09:52:23 EST 2009
Log message for revision 105498:
Update class meta information as well. Remove unused and useless code.
Changed:
U zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/serialize.py
U zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/update.py
-=-
Modified: zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/serialize.py
===================================================================
--- zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/serialize.py 2009-11-05 14:33:18 UTC (rev 105497)
+++ zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/serialize.py 2009-11-05 14:52:22 UTC (rev 105498)
@@ -19,7 +19,6 @@
"""
def __init__(self, changes):
- self.__cache = dict()
self.__changes = dict()
for old, new in changes.iteritems():
self.__changes[tuple(old.split(' '))] = tuple(new.split(' '))
@@ -38,6 +37,7 @@
klass = self.__changes[klass]
self.__changed = True
return ZODBReference((oid, klass))
+ # TODO multidatabase ['m'], (database, oid, klass)
return ZODBReference(reference)
def __unpickler(self, pickle):
@@ -57,16 +57,25 @@
pickler.clear_memo()
return pickler
+ def __update_class_meta(self, class_meta):
+ if isinstance(class_meta, tuple):
+ klass, args = class_meta
+ if isinstance(klass, tuple):
+ if klass in self.__changes:
+ self.__changed = True
+ return self.__changes[klass], args
+ return class_meta
+
def rename(self, input_file):
self.__changed = False
- self.__cache.clear()
unpickler = self.__unpickler(input_file)
class_meta = unpickler.load()
data = unpickler.load()
+ class_meta = self.__update_class_meta(class_meta)
+
if not self.__changed:
- input_file.seek(0)
return None
output_file = cStringIO.StringIO()
@@ -75,5 +84,4 @@
pickler.dump(data)
output_file.truncate()
- output_file.seek(0)
return output_file
Modified: zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/update.py
===================================================================
--- zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/update.py 2009-11-05 14:33:18 UTC (rev 105497)
+++ zodbupdate/branches/sylvain-persistent-load/src/zodbupdate/update.py 2009-11-05 14:52:22 UTC (rev 105498)
@@ -36,13 +36,13 @@
self.storage = storage
self.update = zodbupdate.serialize.ObjectRenamer(renames or {})
- def _new_transaction(self):
+ def __new_transaction(self):
t = transaction.Transaction()
self.storage.tpc_begin(t)
t.note('Updated factory references using `zodbupdate`.')
return t
- def _commit_transaction(self, t, changed):
+ def __commit_transaction(self, t, changed):
if self.dry or not changed:
logger.info('Dry run selected or no changes, aborting transaction.')
self.storage.tpc_abort(t)
@@ -53,22 +53,23 @@
def __call__(self):
count = 0
- t = self._new_transaction()
+ t = self.__new_transaction()
for oid, serial, current in self.records:
new = self.update.rename(current)
if new is None:
continue
+
logger.debug('Updated %s' % ZODB.utils.oid_repr(oid))
self.storage.store(oid, serial, new.getvalue(), '', t)
count += 1
if count > TRANSACTION_COUNT:
count = 0
- self._commit_transaction(t, True)
- t = self._new_transaction()
+ self.__commit_transaction(t, True)
+ t = self.__new_transaction()
- self._commit_transaction(t, count != 0)
+ self.__commit_transaction(t, count != 0)
@property
More information about the checkins
mailing list