Commit e8f8e9e1 by Ned Batchelder

Enough is enough.

parent a5b1428b
......@@ -66,30 +66,32 @@ class CorrectMap(object):
def set_dict(self, correct_map):
'''
Set internal dict of CorrectMap to provided correct_map dict
Set internal dict of CorrectMap to provided correct_map dict.
correct_map is saved by LMS as a plaintext JSON dump of the correctmap dict. This
means that when the definition of CorrectMap (e.g. its properties) are altered,
an existing correct_map dict will not coincide with the newest CorrectMap format as
defined by self.set.
correct_map is saved by LMS as a plaintext JSON dump of the correctmap
dict. This means that when the definition of CorrectMap (e.g. its
properties) are altered, an existing correct_map dict will not coincide
with the newest CorrectMap format as defined by self.set.
For graceful migration, feed the contents of each correct map to self.set, rather than
making a direct copy of the given correct_map dict. This way, the common keys between
the incoming correct_map dict and the new CorrectMap instance will be written, while
mismatched keys will be gracefully ignored.
For graceful migration, feed the contents of each correct map to
self.set, rather than making a direct copy of the given correct_map
dict. This way, the common keys between the incoming correct_map dict
and the new CorrectMap instance will be written, while mismatched keys
will be gracefully ignored.
Special migration case: If correct_map is a one-level dict, then
convert it to the new dict of dicts format.
Special migration case:
If correct_map is a one-level dict, then convert it to the new dict of dicts format.
'''
if correct_map and not (type(correct_map[correct_map.keys()[0]]) == dict):
# empty current dict
self.__init__()
# empty current dict
self.__init__()
# create new dict entries
# create new dict entries
if correct_map and not isinstance(correct_map.values()[0], dict):
# special migration
for k in correct_map:
self.set(k, correct_map[k])
self.set(k, correctness=correct_map[k])
else:
self.__init__()
for k in correct_map:
self.set(k, **correct_map[k])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment