[stdlib-sig] Py3K bsddb name query

Brett Cannon brett at python.org
Wed Mar 26 20:30:29 CET 2008


On Wed, Mar 26, 2008 at 12:15 AM, Mark Summerfield <mark at qtrac.eu> wrote:
> Hi,
>
>  I notice that in PEP 3108 the dbm modules are going to be in package
>  dbm:
>
>     New         Old
>     ----------- --------------------------------------------
>     dbm.tools   anydbm + whichdb
>     dbm.db      db.hash (actually bsd db so presumably using
>                 bsddb.hashopen() behind the scenes?)
>     dbm.ndbm    dbm
>     dbm.dumb    dumbdbm
>     dbm.gnu     gdbm
>
>  This leaves bsddb as a separate package. As far as I can tell bsddb is
>  not so different from the others. I presume (although the documentation
>  for bsddbobject.keys() denies it) that btopen() gives lexicographical
>  ordering and rnopen() give insertion order ordering by keys, whereas
>  hashopen() is unordered like a dict and like the other dbms provided.
>
>  In any case the name dbm.db seems wrong to me (too generic when the
>  others are specific to their dbm type), so at the least shouldn't dbm.db
>  be renamed dbm.bsd?
>

Good point. Anyone object to that renaming?

>  If consistency were wanted, dbm.bsd.open() could be a wrapper for
>  dbm.bsd.hashopen() but only with filenname, flag and mode arguments so
>  as to match the other dbms, and with dbm.bsd.hashopen(),
>  dbm.bsd.btopen() and dbm.bsd.rnopen() and the other bsddb-specific
>  functions available in the module as usual?
>

Adding new functions is beyond the reorganization of the stdlib. But
it could be considered as a separate idea.

-Brett


More information about the stdlib-sig mailing list