def load_status(self):
"""Read the persistent state file and load the state it contains."""
try:
status_format_version, status = self._load_status()
if (status_format_version != self.status_format_version or
status['comp_vn'] != self.competition.status_format_version):
raise StandardError
self.void_game_count = status['void_game_count']
self.games_in_progress = {}
self.games_to_replay = {}
competition_status = status['comp']
except pickle.UnpicklingError:
raise RingmasterError("corrupt status file")
except EnvironmentError, e:
raise RingmasterError("error loading status file:\n%s" % e)
except KeyError, e:
raise RingmasterError("incompatible status file: missing %s" % e)
except Exception, e:
# Probably an exception from __setstate__ somewhere
raise RingmasterError("incompatible status file")
try:
self.competition.set_status(competition_status)
except CompetitionError, e:
raise RingmasterError("error loading competition state: %s" % e)
except KeyError, e:
raise RingmasterError(
"error loading competition state: missing %s" % e)
except Exception, e:
raise RingmasterError("error loading competition state:\n%s" %
compact_tracebacks.format_traceback(skip=1))
self.status_is_loaded = True
评论列表
文章目录