[stdlib-sig] Py3K bsddb name query

Mark Summerfield mark at qtrac.eu
Wed Mar 26 08:15:53 CET 2008


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?

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?

-- 
Mark Summerfield, Qtrac Ltd., www.qtrac.eu



More information about the stdlib-sig mailing list