Get rid of dict.has_key(). Boy this has a lot of repercussions!

Not all code has been fixed yet; this is just a checkpoint...
The C API still has PyDict_HasKey() and _HasKeyString(); not sure
if I want to change those just yet.
This commit is contained in:
Guido van Rossum 2006-08-18 22:13:04 +00:00
parent d2dbecb4ae
commit e2b70bcf74
93 changed files with 215 additions and 313 deletions

View file

@ -461,7 +461,7 @@ bsddb_keys(bsddbobject *dp)
}
static PyObject *
bsddb_has_key(bsddbobject *dp, PyObject *args)
bsddb_contains(bsddbobject *dp, PyObject *args)
{
DBT krec, drec;
int status;
@ -640,7 +640,7 @@ bsddb_sync(bsddbobject *dp)
static PyMethodDef bsddb_methods[] = {
{"close", (PyCFunction)bsddb_close, METH_NOARGS},
{"keys", (PyCFunction)bsddb_keys, METH_NOARGS},
{"has_key", (PyCFunction)bsddb_has_key, METH_VARARGS},
{"__contains__", (PyCFunction)bsddb_contains, METH_VARARGS},
{"set_location", (PyCFunction)bsddb_set_location, METH_VARARGS},
{"next", (PyCFunction)bsddb_next, METH_NOARGS},
{"previous", (PyCFunction)bsddb_previous, METH_NOARGS},

View file

@ -206,12 +206,12 @@ dbm_keys(register dbmobject *dp, PyObject *unused)
}
static PyObject *
dbm_has_key(register dbmobject *dp, PyObject *args)
dbm_contains(register dbmobject *dp, PyObject *args)
{
datum key, val;
int tmp_size;
if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &tmp_size))
if (!PyArg_ParseTuple(args, "s#:__contains__", &key.dptr, &tmp_size))
return NULL;
key.dsize = tmp_size;
check_dbmobject_open(dp);
@ -277,8 +277,8 @@ static PyMethodDef dbm_methods[] = {
"close()\nClose the database."},
{"keys", (PyCFunction)dbm_keys, METH_NOARGS,
"keys() -> list\nReturn a list of all keys in the database."},
{"has_key", (PyCFunction)dbm_has_key, METH_VARARGS,
"has_key(key} -> boolean\nReturn true iff key is in the database."},
{"__contains__",(PyCFunction)dbm_contains, METH_VARARGS,
"__contains__(key} -> boolean\True iff key is in the database."},
{"get", (PyCFunction)dbm_get, METH_VARARGS,
"get(key[, default]) -> value\n"
"Return the value for key if present, otherwise default."},

View file

@ -241,16 +241,16 @@ dbm_keys(register dbmobject *dp, PyObject *unused)
return v;
}
PyDoc_STRVAR(dbm_has_key__doc__,
"has_key(key) -> boolean\n\
PyDoc_STRVAR(dbm_contains__doc__,
"__contains__(key) -> bool\n\
Find out whether or not the database contains a given key.");
static PyObject *
dbm_has_key(register dbmobject *dp, PyObject *args)
dbm_contains(register dbmobject *dp, PyObject *args)
{
datum key;
if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &key.dsize))
if (!PyArg_ParseTuple(args, "s#:contains", &key.dptr, &key.dsize))
return NULL;
check_dbmobject_open(dp);
return PyInt_FromLong((long) gdbm_exists(dp->di_dbm, key));
@ -355,7 +355,7 @@ dbm_sync(register dbmobject *dp, PyObject *unused)
static PyMethodDef dbm_methods[] = {
{"close", (PyCFunction)dbm_close, METH_NOARGS, dbm_close__doc__},
{"keys", (PyCFunction)dbm_keys, METH_NOARGS, dbm_keys__doc__},
{"has_key", (PyCFunction)dbm_has_key, METH_VARARGS, dbm_has_key__doc__},
{"__contains__",(PyCFunction)dbm_contains,METH_VARARGS, dbm_contains__doc__},
{"firstkey", (PyCFunction)dbm_firstkey,METH_NOARGS, dbm_firstkey__doc__},
{"nextkey", (PyCFunction)dbm_nextkey, METH_VARARGS, dbm_nextkey__doc__},
{"reorganize",(PyCFunction)dbm_reorganize,METH_NOARGS, dbm_reorganize__doc__},