Source code for apptools.persistence.updater
# (C) Copyright 2005-2024 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
def __replacement_setstate__(self, state):
""""""
state = self.__updater__(state)
self.__dict__.update(state)
[docs]class Updater:
"""An abstract class to provide functionality common to the updaters."""
[docs] def get_latest(self, module, name):
"""The refactorings dictionary contains mappings between old and new
module names. Since we only bump the version number one increment
there is only one possible answer.
"""
if hasattr(self, "refactorings"):
module = self.strip(module)
name = self.strip(name)
# returns the new module and name if it exists otherwise defaults
# to using the original module and name
module, name = self.refactorings.get(
(module, name), (module, name)
)
return module, name
[docs] def strip(self, string):
# Who would have thought that pickle would pass us
# names with \013 on the end? Is this after the files have
# manually edited?
if ord(string[-1:]) == 13:
return string[:-1]
return string