From 7f781c9aabe35cc674afb7dbaeef191be6b25cbb Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Wed, 1 May 2002 20:33:53 +0000 Subject: Add Pickler.clear_memo() so the pickle and cPickle modules are more similar. --- Doc/lib/libpickle.tex | 13 +++++++++---- Lib/pickle.py | 3 +++ Misc/NEWS | 3 +++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Doc/lib/libpickle.tex b/Doc/lib/libpickle.tex index dc6edff..d4a54cd 100644 --- a/Doc/lib/libpickle.tex +++ b/Doc/lib/libpickle.tex @@ -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 diff --git a/Lib/pickle.py b/Lib/pickle.py index 541624a..5837884 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -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) diff --git a/Misc/NEWS b/Misc/NEWS index 903e5b0..3d55574 100644 --- 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 -- cgit v0.12