[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