Add Pickler.clear_memo() so the pickle and cPickle modules are more similar.
authorFred Drake <fdrake@acm.org>
Wed, 1 May 2002 20:33:53 +0000 (20:33 +0000)
committerFred Drake <fdrake@acm.org>
Wed, 1 May 2002 20:33:53 +0000 (20:33 +0000)
Doc/lib/libpickle.tex
Lib/pickle.py
Misc/NEWS

index dc6edffe8dc9d604c142a42d3112075fd227f875..d4a54cdbeb6604a6a5cc2b2fee2a9aae14703b89 100644 (file)
@@ -237,15 +237,20 @@ remembers which objects the pickler has already seen, so that shared
 or recursive objects pickled by reference and not by value.  This
 method is useful when re-using picklers.
 
-\strong{Note:} \method{clear_memo()} is only available on the picklers
-created by \module{cPickle}.  In the \module{pickle} module, picklers
-have an instance variable called \member{memo} which is a Python
-dictionary.  So to clear the memo for a \module{pickle} module
+\begin{notice}
+Prior to Python 2.3, \method{clear_memo()} was only available on the
+picklers created by \refmodule{cPickle}.  In the \module{pickle} module,
+picklers have an instance variable called \member{memo} which is a
+Python dictionary.  So to clear the memo for a \module{pickle} module
 pickler, you could do the following:
 
 \begin{verbatim}
 mypickler.memo.clear()
 \end{verbatim}
+
+Code that does not need to support older versions of Python should
+simply use \method{clear_memo()}.
+\end{notice}
 \end{methoddesc}
 
 It is possible to make multiple calls to the \method{dump()} method of
index 541624a22b7550d99bb54926742f072da9b00465..5837884e178a1d881610d792fc425f064ebefdd1 100644 (file)
@@ -115,6 +115,9 @@ class Pickler:
         self.memo = {}
         self.bin = bin
 
+    def clear_memo(self):
+        self.memo.clear()
+
     def dump(self, object):
         self.save(object)
         self.write(STOP)
index 903e5b031826fd1a3ed45b81517960ff33384051..3d55574561eaa998f6435e9d6f65e6759e0eda1d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -99,6 +99,9 @@ Extension modules
 
 Library
 
+- The pickle.Pickler class grew a clear_memo() method to mimic that
+  provided by cPickle.Pickler.
+
 - difflib's SequenceMatcher class now does a dynamic analysis of
   which elements are so frequent as to constitute noise.  For
   comparing files as sequences of lines, this generally works better