[Checkins] SVN: persistent/trunk/ Rename 'pyPersistence' -> 'persistence'.
Tres Seaver
cvs-admin at zope.org
Fri Jun 29 05:19:51 UTC 2012
Log message for revision 127182:
Rename 'pyPersistence' -> 'persistence'.
Changed:
_U persistent/trunk/
U persistent/trunk/persistent/__init__.py
A persistent/trunk/persistent/persistence.py
D persistent/trunk/persistent/pyPersistence.py
U persistent/trunk/persistent/tests/test_persistence.py
-=-
Modified: persistent/trunk/persistent/__init__.py
===================================================================
--- persistent/trunk/persistent/__init__.py 2012-06-29 04:02:50 UTC (rev 127181)
+++ persistent/trunk/persistent/__init__.py 2012-06-29 05:19:47 UTC (rev 127182)
@@ -23,16 +23,16 @@
from persistent.cPersistence import STICKY
from persistent.cPersistence import simple_new
except ImportError: #pragma NO COVER
- from persistent.pyPersistence import Persistent
- from persistent.pyPersistence import GHOST
- from persistent.pyPersistence import UPTODATE
- from persistent.pyPersistence import CHANGED
- from persistent.pyPersistence import STICKY
+ from persistent.persistence import Persistent
+ from persistent.persistence import GHOST
+ from persistent.persistence import UPTODATE
+ from persistent.persistence import CHANGED
+ from persistent.persistence import STICKY
else:
from persistent._compat import copy_reg
copy_reg.constructor(simple_new)
# Make an interface declaration for Persistent, if zope.interface
- # is available. Note that the pyPersistent version already does this.
+ # is available. Note that the Python version already does this.
try:
from zope.interface import classImplements
except ImportError: #pragma NO COVER
Copied: persistent/trunk/persistent/persistence.py (from rev 127181, persistent/trunk/persistent/pyPersistence.py)
===================================================================
--- persistent/trunk/persistent/persistence.py (rev 0)
+++ persistent/trunk/persistent/persistence.py 2012-06-29 05:19:47 UTC (rev 127182)
@@ -0,0 +1,388 @@
+##############################################################################
+#
+# Copyright (c) 2011 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+import sys
+
+from zope.interface import implementer
+
+from persistent.interfaces import IPersistent
+from persistent.interfaces import GHOST
+from persistent.interfaces import UPTODATE
+from persistent.interfaces import CHANGED
+from persistent.interfaces import STICKY
+from persistent.interfaces import OID_TYPE
+from persistent.interfaces import SERIAL_TYPE
+from persistent.timestamp import TimeStamp
+from persistent.timestamp import _ZERO
+from persistent._compat import copy_reg
+
+_INITIAL_SERIAL = _ZERO
+
+
+# Bitwise flags
+_CHANGED = 0x0001
+_STICKY = 0x0002
+
+_OGA = object.__getattribute__
+_OSA = object.__setattr__
+
+# These names can be used from a ghost without causing it to be activated.
+SPECIAL_NAMES = ('__class__',
+ '__del__',
+ '__dict__',
+ '__of__',
+ '__setstate__'
+ )
+
+
+ at implementer(IPersistent)
+class Persistent(object):
+ """ Pure Python implmentation of Persistent base class
+ """
+ __slots__ = ('__jar', '__oid', '__serial', '__flags', '__size')
+
+ def __new__(cls, *args, **kw):
+ inst = super(Persistent, cls).__new__(cls)
+ inst.__jar = None
+ inst.__oid = None
+ inst.__serial = None
+ inst.__flags = None
+ inst.__size = 0
+ return inst
+
+ # _p_jar: see IPersistent.
+ def _get_jar(self):
+ return self.__jar
+
+ def _set_jar(self, value):
+ if self.__jar is not None:
+ if self.__jar != value:
+ raise ValueError('Already assigned a data manager')
+ else:
+ self.__jar = value
+ self.__flags = 0
+
+ _p_jar = property(_get_jar, _set_jar)
+
+ # _p_oid: see IPersistent.
+ def _get_oid(self):
+ return self.__oid
+
+ def _set_oid(self, value):
+ if value == self.__oid:
+ return
+ if value is not None:
+ if not isinstance(value, OID_TYPE):
+ raise ValueError('Invalid OID type: %s' % value)
+ if self.__jar is not None and self.__oid is not None:
+ raise ValueError('Already assigned an OID by our jar')
+ self.__oid = value
+
+ def _del_oid(self):
+ if self.__jar is not None:
+ raise ValueError('Cannot delete OID once assigned to a jar')
+ self.__oid = None
+
+ _p_oid = property(_get_oid, _set_oid, _del_oid)
+
+ # _p_serial: see IPersistent.
+ def _get_serial(self):
+ if self.__serial is not None:
+ return self.__serial
+ return _INITIAL_SERIAL
+
+ def _set_serial(self, value):
+ if not isinstance(value, SERIAL_TYPE):
+ raise ValueError('Invalid SERIAL type: %s' % value)
+ if len(value) != 8:
+ raise ValueError('SERIAL must be 8 octets')
+ self.__serial = value
+
+ def _del_serial(self):
+ self.__serial = None
+
+ _p_serial = property(_get_serial, _set_serial, _del_serial)
+
+ # _p_changed: see IPersistent.
+ def _get_changed(self):
+ if self.__jar is None:
+ return False
+ if self.__flags is None: # ghost
+ return None
+ return bool(self.__flags & _CHANGED)
+
+ def _set_changed(self, value):
+ if self.__flags is None:
+ if value:
+ self._p_activate()
+ self._p_set_changed_flag(value)
+ else:
+ if value is None: # -> ghost
+ self._p_deactivate()
+ else:
+ self._p_set_changed_flag(value)
+
+ def _del_changed(self):
+ self._p_invalidate()
+
+ _p_changed = property(_get_changed, _set_changed, _del_changed)
+
+ # _p_mtime
+ def _get_mtime(self):
+ if self.__serial is not None:
+ ts = TimeStamp(self.__serial)
+ return ts.timeTime()
+
+ _p_mtime = property(_get_mtime)
+
+ # _p_state
+ def _get_state(self):
+ if self.__jar is None:
+ return UPTODATE
+ if self.__flags is None:
+ return GHOST
+ if self.__flags & _CHANGED:
+ result = CHANGED
+ else:
+ result = UPTODATE
+ if self.__flags & _STICKY:
+ return STICKY
+ return result
+
+ _p_state = property(_get_state)
+
+ # _p_estimated_size: XXX don't want to reserve the space?
+ def _get_estimated_size(self):
+ return self.__size * 64
+
+ def _set_estimated_size(self, value):
+ value = int(value)
+ if value < 0:
+ raise ValueError('_p_estimated_size must not be negative')
+ self.__size = _estimated_size_in_24_bits(value)
+
+ _p_estimated_size = property(_get_estimated_size, _set_estimated_size)
+
+ # The '_p_sticky' property is not (yet) part of the API: for now,
+ # it exists to simplify debugging and testing assertions.
+ def _get_sticky(self):
+ if self.__flags is None:
+ return False
+ return bool(self.__flags & _STICKY)
+ def _set_sticky(self, value):
+ if self.__flags is None:
+ raise ValueError('Ghost')
+ if value:
+ self.__flags |= _STICKY
+ else:
+ self.__flags &= ~_STICKY
+ _p_sticky = property(_get_sticky, _set_sticky)
+
+ # The '_p_status' property is not (yet) part of the API: for now,
+ # it exists to simplify debugging and testing assertions.
+ def _get_status(self):
+ if self.__jar is None:
+ return 'unsaved'
+ if self.__flags is None:
+ return 'ghost'
+ if self.__flags & _STICKY:
+ return 'sticky'
+ if self.__flags & _CHANGED:
+ return 'changed'
+ return 'saved'
+
+ _p_status = property(_get_status)
+
+ # Methods from IPersistent.
+ def __getattribute__(self, name):
+ """ See IPersistent.
+ """
+ if (not name.startswith('_Persistent__') and
+ not name.startswith('_p_') and
+ name not in SPECIAL_NAMES):
+ if _OGA(self, '_Persistent__flags') is None:
+ _OGA(self, '_p_activate')()
+ _OGA(self, '_p_accessed')()
+ return _OGA(self, name)
+
+ def __setattr__(self, name, value):
+ special_name = (name.startswith('_Persistent__') or
+ name.startswith('_p_'))
+ volatile = name.startswith('_v_')
+ if not special_name:
+ if _OGA(self, '_Persistent__flags') is None:
+ _OGA(self, '_p_activate')()
+ if not volatile:
+ _OGA(self, '_p_accessed')()
+ _OSA(self, name, value)
+ if (_OGA(self, '_Persistent__jar') is not None and
+ _OGA(self, '_Persistent__oid') is not None and
+ not special_name and
+ not volatile):
+ before = _OGA(self, '_Persistent__flags')
+ after = before | _CHANGED
+ if before != after:
+ _OSA(self, '_Persistent__flags', after)
+ _OGA(self, '_p_register')()
+
+ def __delattr__(self, name):
+ special_name = (name.startswith('_Persistent__') or
+ name.startswith('_p_'))
+ if not special_name:
+ if _OGA(self, '_Persistent__flags') is None:
+ _OGA(self, '_p_activate')()
+ _OGA(self, '_p_accessed')()
+ before = _OGA(self, '_Persistent__flags')
+ after = before | _CHANGED
+ if before != after:
+ _OSA(self, '_Persistent__flags', after)
+ if (_OGA(self, '_Persistent__jar') is not None and
+ _OGA(self, '_Persistent__oid') is not None):
+ _OGA(self, '_p_register')()
+ object.__delattr__(self, name)
+
+ def _slotnames(self):
+ slotnames = copy_reg._slotnames(type(self))
+ return [x for x in slotnames
+ if not x.startswith('_p_') and
+ not x.startswith('_v_') and
+ not x.startswith('_Persistent__') and
+ x not in Persistent.__slots__]
+
+ def __getstate__(self):
+ """ See IPersistent.
+ """
+ idict = getattr(self, '__dict__', None)
+ slotnames = self._slotnames()
+ if idict is not None:
+ d = dict([x for x in idict.items()
+ if not x[0].startswith('_p_') and
+ not x[0].startswith('_v_')])
+ else:
+ d = None
+ if slotnames:
+ s = {}
+ for slotname in slotnames:
+ value = getattr(self, slotname, self)
+ if value is not self:
+ s[slotname] = value
+ return d, s
+ return d
+
+ def __setstate__(self, state):
+ """ See IPersistent.
+ """
+ try:
+ inst_dict, slots = state
+ except:
+ inst_dict, slots = state, ()
+ idict = getattr(self, '__dict__', None)
+ if inst_dict is not None:
+ if idict is None:
+ raise TypeError('No instance dict')
+ idict.clear()
+ idict.update(inst_dict)
+ slotnames = self._slotnames()
+ if slotnames:
+ for k, v in slots.items():
+ setattr(self, k, v)
+
+ def __reduce__(self):
+ """ See IPersistent.
+ """
+ gna = getattr(self, '__getnewargs__', lambda: ())
+ return (copy_reg.__newobj__,
+ (type(self),) + gna(), self.__getstate__())
+
+ def _p_activate(self):
+ """ See IPersistent.
+ """
+ if self.__flags is None:
+ self.__flags = 0
+ if self.__jar is not None and self.__oid is not None:
+ self.__jar.setstate(self)
+
+ def _p_deactivate(self):
+ """ See IPersistent.
+ """
+ if self.__flags is not None and not self.__flags:
+ self._p_invalidate()
+
+ def _p_invalidate(self):
+ """ See IPersistent.
+ """
+ if self.__jar is not None:
+ if self.__flags is not None:
+ self.__flags = None
+ idict = getattr(self, '__dict__', None)
+ if idict is not None:
+ idict.clear()
+
+ def _p_getattr(self, name):
+ """ See IPersistent.
+ """
+ if name.startswith('_p_') or name in SPECIAL_NAMES:
+ return True
+ self._p_activate()
+ self._p_accessed()
+ return False
+
+ def _p_setattr(self, name, value):
+ """ See IPersistent.
+ """
+ if name.startswith('_p_'):
+ setattr(self, name, value)
+ return True
+ self._p_activate()
+ self._p_accessed()
+ return False
+
+ def _p_delattr(self, name):
+ """ See IPersistent.
+ """
+ if name.startswith('_p_'):
+ delattr(self, name)
+ return True
+ self._p_activate()
+ self._p_accessed()
+ return False
+
+ # Helper methods: not APIs: we name them with '_p_' to bypass
+ # the __getattribute__ bit which bumps the cache.
+ def _p_register(self):
+ if self.__jar is not None and self.__oid is not None:
+ self.__jar.register(self)
+
+ def _p_set_changed_flag(self, value):
+ if value:
+ before = self.__flags
+ self.__flags |= _CHANGED
+ if before != self.__flags:
+ self._p_register()
+ else:
+ self.__flags &= ~_CHANGED
+
+ def _p_accessed(self):
+ # Notify the jar's pickle cache that we have been accessed.
+ # This relies on what has been (until now) an implementation
+ # detail, the '_cache' attribute of the jar. We made it a
+ # private API to avoid the cycle of keeping a reference to
+ # the cache on the persistent object.
+ if self.__jar is not None and self.__oid is not None:
+ self.__jar._cache.mru(self.__oid)
+
+
+def _estimated_size_in_24_bits(value):
+ if value > 1073741696:
+ return 16777215
+ return (value//64) + 1
Deleted: persistent/trunk/persistent/pyPersistence.py
===================================================================
--- persistent/trunk/persistent/pyPersistence.py 2012-06-29 04:02:50 UTC (rev 127181)
+++ persistent/trunk/persistent/pyPersistence.py 2012-06-29 05:19:47 UTC (rev 127182)
@@ -1,388 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2011 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-import sys
-
-from zope.interface import implementer
-
-from persistent.interfaces import IPersistent
-from persistent.interfaces import GHOST
-from persistent.interfaces import UPTODATE
-from persistent.interfaces import CHANGED
-from persistent.interfaces import STICKY
-from persistent.interfaces import OID_TYPE
-from persistent.interfaces import SERIAL_TYPE
-from persistent.timestamp import TimeStamp
-from persistent.timestamp import _ZERO
-from persistent._compat import copy_reg
-
-_INITIAL_SERIAL = _ZERO
-
-
-# Bitwise flags
-_CHANGED = 0x0001
-_STICKY = 0x0002
-
-_OGA = object.__getattribute__
-_OSA = object.__setattr__
-
-# These names can be used from a ghost without causing it to be activated.
-SPECIAL_NAMES = ('__class__',
- '__del__',
- '__dict__',
- '__of__',
- '__setstate__'
- )
-
-
- at implementer(IPersistent)
-class Persistent(object):
- """ Pure Python implmentation of Persistent base class
- """
- __slots__ = ('__jar', '__oid', '__serial', '__flags', '__size')
-
- def __new__(cls, *args, **kw):
- inst = super(Persistent, cls).__new__(cls)
- inst.__jar = None
- inst.__oid = None
- inst.__serial = None
- inst.__flags = None
- inst.__size = 0
- return inst
-
- # _p_jar: see IPersistent.
- def _get_jar(self):
- return self.__jar
-
- def _set_jar(self, value):
- if self.__jar is not None:
- if self.__jar != value:
- raise ValueError('Already assigned a data manager')
- else:
- self.__jar = value
- self.__flags = 0
-
- _p_jar = property(_get_jar, _set_jar)
-
- # _p_oid: see IPersistent.
- def _get_oid(self):
- return self.__oid
-
- def _set_oid(self, value):
- if value == self.__oid:
- return
- if value is not None:
- if not isinstance(value, OID_TYPE):
- raise ValueError('Invalid OID type: %s' % value)
- if self.__jar is not None and self.__oid is not None:
- raise ValueError('Already assigned an OID by our jar')
- self.__oid = value
-
- def _del_oid(self):
- if self.__jar is not None:
- raise ValueError('Cannot delete OID once assigned to a jar')
- self.__oid = None
-
- _p_oid = property(_get_oid, _set_oid, _del_oid)
-
- # _p_serial: see IPersistent.
- def _get_serial(self):
- if self.__serial is not None:
- return self.__serial
- return _INITIAL_SERIAL
-
- def _set_serial(self, value):
- if not isinstance(value, SERIAL_TYPE):
- raise ValueError('Invalid SERIAL type: %s' % value)
- if len(value) != 8:
- raise ValueError('SERIAL must be 8 octets')
- self.__serial = value
-
- def _del_serial(self):
- self.__serial = None
-
- _p_serial = property(_get_serial, _set_serial, _del_serial)
-
- # _p_changed: see IPersistent.
- def _get_changed(self):
- if self.__jar is None:
- return False
- if self.__flags is None: # ghost
- return None
- return bool(self.__flags & _CHANGED)
-
- def _set_changed(self, value):
- if self.__flags is None:
- if value:
- self._p_activate()
- self._p_set_changed_flag(value)
- else:
- if value is None: # -> ghost
- self._p_deactivate()
- else:
- self._p_set_changed_flag(value)
-
- def _del_changed(self):
- self._p_invalidate()
-
- _p_changed = property(_get_changed, _set_changed, _del_changed)
-
- # _p_mtime
- def _get_mtime(self):
- if self.__serial is not None:
- ts = TimeStamp(self.__serial)
- return ts.timeTime()
-
- _p_mtime = property(_get_mtime)
-
- # _p_state
- def _get_state(self):
- if self.__jar is None:
- return UPTODATE
- if self.__flags is None:
- return GHOST
- if self.__flags & _CHANGED:
- result = CHANGED
- else:
- result = UPTODATE
- if self.__flags & _STICKY:
- return STICKY
- return result
-
- _p_state = property(_get_state)
-
- # _p_estimated_size: XXX don't want to reserve the space?
- def _get_estimated_size(self):
- return self.__size * 64
-
- def _set_estimated_size(self, value):
- value = int(value)
- if value < 0:
- raise ValueError('_p_estimated_size must not be negative')
- self.__size = _estimated_size_in_24_bits(value)
-
- _p_estimated_size = property(_get_estimated_size, _set_estimated_size)
-
- # The '_p_sticky' property is not (yet) part of the API: for now,
- # it exists to simplify debugging and testing assertions.
- def _get_sticky(self):
- if self.__flags is None:
- return False
- return bool(self.__flags & _STICKY)
- def _set_sticky(self, value):
- if self.__flags is None:
- raise ValueError('Ghost')
- if value:
- self.__flags |= _STICKY
- else:
- self.__flags &= ~_STICKY
- _p_sticky = property(_get_sticky, _set_sticky)
-
- # The '_p_status' property is not (yet) part of the API: for now,
- # it exists to simplify debugging and testing assertions.
- def _get_status(self):
- if self.__jar is None:
- return 'unsaved'
- if self.__flags is None:
- return 'ghost'
- if self.__flags & _STICKY:
- return 'sticky'
- if self.__flags & _CHANGED:
- return 'changed'
- return 'saved'
-
- _p_status = property(_get_status)
-
- # Methods from IPersistent.
- def __getattribute__(self, name):
- """ See IPersistent.
- """
- if (not name.startswith('_Persistent__') and
- not name.startswith('_p_') and
- name not in SPECIAL_NAMES):
- if _OGA(self, '_Persistent__flags') is None:
- _OGA(self, '_p_activate')()
- _OGA(self, '_p_accessed')()
- return _OGA(self, name)
-
- def __setattr__(self, name, value):
- special_name = (name.startswith('_Persistent__') or
- name.startswith('_p_'))
- volatile = name.startswith('_v_')
- if not special_name:
- if _OGA(self, '_Persistent__flags') is None:
- _OGA(self, '_p_activate')()
- if not volatile:
- _OGA(self, '_p_accessed')()
- _OSA(self, name, value)
- if (_OGA(self, '_Persistent__jar') is not None and
- _OGA(self, '_Persistent__oid') is not None and
- not special_name and
- not volatile):
- before = _OGA(self, '_Persistent__flags')
- after = before | _CHANGED
- if before != after:
- _OSA(self, '_Persistent__flags', after)
- _OGA(self, '_p_register')()
-
- def __delattr__(self, name):
- special_name = (name.startswith('_Persistent__') or
- name.startswith('_p_'))
- if not special_name:
- if _OGA(self, '_Persistent__flags') is None:
- _OGA(self, '_p_activate')()
- _OGA(self, '_p_accessed')()
- before = _OGA(self, '_Persistent__flags')
- after = before | _CHANGED
- if before != after:
- _OSA(self, '_Persistent__flags', after)
- if (_OGA(self, '_Persistent__jar') is not None and
- _OGA(self, '_Persistent__oid') is not None):
- _OGA(self, '_p_register')()
- object.__delattr__(self, name)
-
- def _slotnames(self):
- slotnames = copy_reg._slotnames(type(self))
- return [x for x in slotnames
- if not x.startswith('_p_') and
- not x.startswith('_v_') and
- not x.startswith('_Persistent__') and
- x not in Persistent.__slots__]
-
- def __getstate__(self):
- """ See IPersistent.
- """
- idict = getattr(self, '__dict__', None)
- slotnames = self._slotnames()
- if idict is not None:
- d = dict([x for x in idict.items()
- if not x[0].startswith('_p_') and
- not x[0].startswith('_v_')])
- else:
- d = None
- if slotnames:
- s = {}
- for slotname in slotnames:
- value = getattr(self, slotname, self)
- if value is not self:
- s[slotname] = value
- return d, s
- return d
-
- def __setstate__(self, state):
- """ See IPersistent.
- """
- try:
- inst_dict, slots = state
- except:
- inst_dict, slots = state, ()
- idict = getattr(self, '__dict__', None)
- if inst_dict is not None:
- if idict is None:
- raise TypeError('No instance dict')
- idict.clear()
- idict.update(inst_dict)
- slotnames = self._slotnames()
- if slotnames:
- for k, v in slots.items():
- setattr(self, k, v)
-
- def __reduce__(self):
- """ See IPersistent.
- """
- gna = getattr(self, '__getnewargs__', lambda: ())
- return (copy_reg.__newobj__,
- (type(self),) + gna(), self.__getstate__())
-
- def _p_activate(self):
- """ See IPersistent.
- """
- if self.__flags is None:
- self.__flags = 0
- if self.__jar is not None and self.__oid is not None:
- self.__jar.setstate(self)
-
- def _p_deactivate(self):
- """ See IPersistent.
- """
- if self.__flags is not None and not self.__flags:
- self._p_invalidate()
-
- def _p_invalidate(self):
- """ See IPersistent.
- """
- if self.__jar is not None:
- if self.__flags is not None:
- self.__flags = None
- idict = getattr(self, '__dict__', None)
- if idict is not None:
- idict.clear()
-
- def _p_getattr(self, name):
- """ See IPersistent.
- """
- if name.startswith('_p_') or name in SPECIAL_NAMES:
- return True
- self._p_activate()
- self._p_accessed()
- return False
-
- def _p_setattr(self, name, value):
- """ See IPersistent.
- """
- if name.startswith('_p_'):
- setattr(self, name, value)
- return True
- self._p_activate()
- self._p_accessed()
- return False
-
- def _p_delattr(self, name):
- """ See IPersistent.
- """
- if name.startswith('_p_'):
- delattr(self, name)
- return True
- self._p_activate()
- self._p_accessed()
- return False
-
- # Helper methods: not APIs: we name them with '_p_' to bypass
- # the __getattribute__ bit which bumps the cache.
- def _p_register(self):
- if self.__jar is not None and self.__oid is not None:
- self.__jar.register(self)
-
- def _p_set_changed_flag(self, value):
- if value:
- before = self.__flags
- self.__flags |= _CHANGED
- if before != self.__flags:
- self._p_register()
- else:
- self.__flags &= ~_CHANGED
-
- def _p_accessed(self):
- # Notify the jar's pickle cache that we have been accessed.
- # This relies on what has been (until now) an implementation
- # detail, the '_cache' attribute of the jar. We made it a
- # private API to avoid the cycle of keeping a reference to
- # the cache on the persistent object.
- if self.__jar is not None and self.__oid is not None:
- self.__jar._cache.mru(self.__oid)
-
-
-def _estimated_size_in_24_bits(value):
- if value > 1073741696:
- return 16777215
- return (value//64) + 1
Modified: persistent/trunk/persistent/tests/test_persistence.py
===================================================================
--- persistent/trunk/persistent/tests/test_persistence.py 2012-06-29 04:02:50 UTC (rev 127181)
+++ persistent/trunk/persistent/tests/test_persistence.py 2012-06-29 05:19:47 UTC (rev 127182)
@@ -58,7 +58,7 @@
verifyObject(IPersistent, self._makeOne())
def test_ctor(self):
- from persistent.pyPersistence import _INITIAL_SERIAL
+ from persistent.persistence import _INITIAL_SERIAL
inst = self._makeOne()
self.assertEqual(inst._p_jar, None)
self.assertEqual(inst._p_oid, None)
@@ -160,7 +160,7 @@
def test_delete_p_serial(self):
from persistent.timestamp import _makeOctets
- from persistent.pyPersistence import _INITIAL_SERIAL
+ from persistent.persistence import _INITIAL_SERIAL
SERIAL = _makeOctets('\x01' * 8)
inst = self._makeOne()
inst._p_serial = SERIAL
@@ -507,7 +507,7 @@
self._checkMRU(jar, [])
def test___getattribute__special_name(self):
- from persistent.pyPersistence import SPECIAL_NAMES
+ from persistent.persistence import SPECIAL_NAMES
inst, jar, OID = self._makeOneWithJar()
self._clearMRU(jar)
for name in SPECIAL_NAMES:
@@ -733,7 +733,7 @@
inst.__setstate__(None) # doesn't raise, but doesn't change anything
def test___setstate___nonempty(self):
- from persistent.pyPersistence import _INITIAL_SERIAL
+ from persistent.persistence import _INITIAL_SERIAL
inst = self._makeOne()
self.assertRaises((ValueError, TypeError),
inst.__setstate__, {'bogus': 1})
@@ -1110,7 +1110,7 @@
self._checkMRU(jar, [])
def test__p_getattr_w_special_names(self):
- from persistent.pyPersistence import SPECIAL_NAMES
+ from persistent.persistence import SPECIAL_NAMES
inst, jar, OID = self._makeOneWithJar()
inst._p_deactivate()
for name in SPECIAL_NAMES:
@@ -1175,7 +1175,7 @@
class PyPersistentTests(unittest.TestCase, _Persistent_Base):
def _getTargetClass(self):
- from persistent.pyPersistence import Persistent
+ from persistent.persistence import Persistent
return Persistent
def _makeCache(self, jar):
More information about the checkins
mailing list