[Checkins] SVN: persistent/trunk/ Convert another doctest to Sphinx API docs.

Tres Seaver cvs-admin at zope.org
Thu Jun 28 22:50:09 UTC 2012


Log message for revision 127161:
  Convert another doctest to Sphinx API docs.

Changed:
  _U  persistent/trunk/
  A   persistent/trunk/docs/api/cache.rst
  U   persistent/trunk/docs/api.rst
  U   persistent/trunk/persistent/tests/test_PickleCache.py

-=-
Added: persistent/trunk/docs/api/cache.rst
===================================================================
--- persistent/trunk/docs/api/cache.rst	                        (rev 0)
+++ persistent/trunk/docs/api/cache.rst	2012-06-28 22:50:06 UTC (rev 127161)
@@ -0,0 +1,59 @@
+Caching Persistent Objects
+==========================
+
+Creating Objects ``de novo``
+----------------------------
+
+Creating ghosts from scratch, as opposed to ghostifying a non-ghost
+is rather tricky. :class:`~persistent.interfaces.IPeristent` doesn't
+really provide the right interface given that:
+
+- :meth:`_p_deactivate` and :meth:`_p_invalidate` are overridable, and
+  could assume that the object's state is properly initialized.
+
+- Assigning :attr:`_p_changed` to None just calls :meth:`_p_deactivate`.
+
+- Deleting :attr:`_p_changed` just calls :meth:`_p_invalidate`.
+
+.. note::
+
+   The current cache implementation is intimately tied up with the
+   persistence implementation and has internal access to the persistence
+   state.  The cache implementation can update the persistence state for
+   newly created and ininitialized objects directly.
+
+   The future persistence and cache implementations will be far more
+   decoupled. The persistence implementation will only manage object
+   state and generate object-usage events.  The cache implemnentation(s)
+   will be rersponsible for managing persistence-related (meta-)state,
+   such as _p_state, _p_changed, _p_oid, etc.  So in that future
+   implemention, the cache will be more central to managing object
+   persistence information.
+
+Caches have a :meth:`new_ghost` method that:
+
+- adds an object to the cache, and
+
+- initializes its persistence data.
+
+.. doctest::
+
+   >>> import persistent
+   >>> from persistent.tests.utils import ResettingJar
+
+   >>> class C(persistent.Persistent):
+   ...     pass
+
+   >>> jar = ResettingJar()
+   >>> cache = persistent.PickleCache(jar, 10, 100)
+   >>> ob = C.__new__(C)
+   >>> cache.new_ghost('1', ob)
+
+   >>> ob._p_changed
+   >>> ob._p_jar is jar
+   True
+   >>> ob._p_oid
+   '1'
+
+   >>> cache.cache_non_ghost_count
+   0

Modified: persistent/trunk/docs/api.rst
===================================================================
--- persistent/trunk/docs/api.rst	2012-06-28 22:50:02 UTC (rev 127160)
+++ persistent/trunk/docs/api.rst	2012-06-28 22:50:06 UTC (rev 127161)
@@ -7,3 +7,4 @@
    api/interfaces
    api/attributes
    api/pickling
+   api/cache

Modified: persistent/trunk/persistent/tests/test_PickleCache.py
===================================================================
--- persistent/trunk/persistent/tests/test_PickleCache.py	2012-06-28 22:50:02 UTC (rev 127160)
+++ persistent/trunk/persistent/tests/test_PickleCache.py	2012-06-28 22:50:06 UTC (rev 127161)
@@ -13,61 +13,6 @@
 ##############################################################################
 import unittest
 
-
-def new_ghost():
-    """
-Creating ghosts (from scratch, as opposed to ghostifying a non-ghost)
-in the curremt implementation is rather tricky. IPeristent doesn't
-really provide the right interface given that:
-
-- _p_deactivate and _p_invalidate are overridable and could assume
-  that the object's state is properly initialized.
-
-- Assigning _p_changed to None or deleting it just calls _p_deactivate
-  or _p_invalidate.
-
-The current cache implementation is intimately tied up with the
-persistence implementation and has internal access to the persistence
-state.  The cache implementation can update the persistence state for
-newly created and ininitialized objects directly.
-
-The future persistence and cache implementations will be far more
-decoupled. The persistence implementation will only manage object
-state and generate object-usage events.  The cache implemnentation(s)
-will be rersponsible for managing persistence-related (meta-)state,
-such as _p_state, _p_changed, _p_oid, etc.  So in that future
-implemention, the cache will be more central to managing object
-persistence information.
-
-Caches have a new_ghost method that:
-
-- adds an object to the cache, and
-- initializes its persistence data.
-
-    >>> import persistent
-
-    >>> class C(persistent.Persistent):
-    ...     pass
-
-    >>> from persistent.tests.utils import ResettingJar
-    >>> jar = ResettingJar()
-    >>> cache = persistent.PickleCache(jar, 10, 100)
-    >>> ob = C.__new__(C)
-    >>> cache.new_ghost('1', ob)
-
-    >>> ob._p_changed
-    >>> ob._p_jar is jar
-    True
-    >>> ob._p_oid
-    '1'
-
-    >>> cache.cache_non_ghost_count
-    0
-
-    <<< cache.total_estimated_size # WTF?
-    0
-    """
-
 try:
     import transaction
     import ZODB



More information about the checkins mailing list