Add support for the iterator and mapping protocols.
For Py2.3, this was done for shelve, dumbdbm and other mapping objects, but
not for bsddb and dbhash which were inadvertently missed.
This commit is contained in:
Raymond Hettinger 2003-09-12 06:33:37 +00:00
parent 74c8e55f3b
commit deadbf50e4
5 changed files with 56 additions and 16 deletions

View file

@ -100,8 +100,9 @@ systems which ship with the old Berkeley DB 1.85 database library. The
\subsection{Hash, BTree and Record Objects \label{bsddb-objects}}
Once instantiated, hash, btree and record objects support the following
methods:
Once instantiated, hash, btree and record objects support
the same methods as dictionaries. In addition, they support
the following methods:
\begin{methoddesc}{close}{}
Close the underlying file. The object can no longer be accessed. Since
@ -177,6 +178,20 @@ Example:
('2', '4')
>>> db.previous()
('1', '1')
>>> for k, v in db.iteritems():
... print k, v
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
>>> 8 in db
True
>>> db.sync()
0
\end{verbatim}

View file

@ -51,23 +51,23 @@ This module provides an exception and a function:
\subsection{Database Objects \label{dbhash-objects}}
The database objects returned by \function{open()} provide the methods
common to all the DBM-style databases. The following methods are
available in addition to the standard methods.
common to all the DBM-style databases and mapping objects. The following
methods are available in addition to the standard methods.
\begin{methoddesc}[dbhash]{first}{}
It's possible to loop over every key in the database using this method
and the \method{next()} method. The traversal is ordered by
It's possible to loop over every key/value pair in the database using
this method and the \method{next()} method. The traversal is ordered by
the databases internal hash values, and won't be sorted by the key
values. This method returns the starting key.
\end{methoddesc}
\begin{methoddesc}[dbhash]{last}{}
Return the last key in a database traversal. This may be used to
Return the last key/value pair in a database traversal. This may be used to
begin a reverse-order traversal; see \method{previous()}.
\end{methoddesc}
\begin{methoddesc}[dbhash]{next}{}
Returns the key next key in a database traversal. The
Returns the key next key/value pair in a database traversal. The
following code prints every key in the database \code{db}, without
having to create a list in memory that contains them all:
@ -79,7 +79,7 @@ for i in xrange(1, len(d)):
\end{methoddesc}
\begin{methoddesc}[dbhash]{previous}{}
Returns the previous key in a forward-traversal of the database.
Returns the previous key/value pair in a forward-traversal of the database.
In conjunction with \method{last()}, this may be used to implement
a reverse-order traversal.
\end{methoddesc}