From f3b12b1d784167f6afd50b24d45627a6d0e15c9e Mon Sep 17 00:00:00 2001 From: Kazuhiko Shiozaki <kazuhiko@nexedi.com> Date: Thu, 13 Dec 2007 21:18:36 +0000 Subject: [PATCH] improve pickle size of DateTime. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@18319 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/patches/DateTimePatch.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/product/ERP5Type/patches/DateTimePatch.py b/product/ERP5Type/patches/DateTimePatch.py index 71b076f224..2797d8aa7f 100644 --- a/product/ERP5Type/patches/DateTimePatch.py +++ b/product/ERP5Type/patches/DateTimePatch.py @@ -31,20 +31,18 @@ from DateTime import DateTime as DateTimeKlass STATE_KEY = 'str' def DateTime__setstate__(self, state): - if len(state) != 1 or STATE_KEY not in state: + if isinstance(state, tuple): + self._parse_args(*state) + elif len(state) != 1 or STATE_KEY not in state: + # For original pickle representation self.__dict__.update(state) else: - # For backward compatibility + # For r15569 implementation self._parse_args(state[STATE_KEY]) DateTimeKlass.__setstate__ = DateTime__setstate__ - -# This below is disabled, because this loses information at -# millisecond level, and it breaks the simulation due to -# divergency tests. I will not disable the above for backward -# compatibility. -yo -# -# def DateTime__getstate__(self): -# return {STATE_KEY: str(self)} -# -# DateTimeKlass.__getstate__ = DateTime__getstate__ + +def DateTime__getstate__(self): + return (self._t, self._tz) + +DateTimeKlass.__getstate__ = DateTime__getstate__ -- 2.30.9