123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- /*[clinic input]
- preserve
- [clinic start generated code]*/
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- # include "pycore_gc.h" // PyGC_Head
- # include "pycore_runtime.h" // _Py_ID()
- #endif
- PyDoc_STRVAR(_dbm_dbm_close__doc__,
- "close($self, /)\n"
- "--\n"
- "\n"
- "Close the database.");
- #define _DBM_DBM_CLOSE_METHODDEF \
- {"close", (PyCFunction)_dbm_dbm_close, METH_NOARGS, _dbm_dbm_close__doc__},
- static PyObject *
- _dbm_dbm_close_impl(dbmobject *self);
- static PyObject *
- _dbm_dbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored))
- {
- return _dbm_dbm_close_impl(self);
- }
- PyDoc_STRVAR(_dbm_dbm_keys__doc__,
- "keys($self, /)\n"
- "--\n"
- "\n"
- "Return a list of all keys in the database.");
- #define _DBM_DBM_KEYS_METHODDEF \
- {"keys", _PyCFunction_CAST(_dbm_dbm_keys), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _dbm_dbm_keys__doc__},
- static PyObject *
- _dbm_dbm_keys_impl(dbmobject *self, PyTypeObject *cls);
- static PyObject *
- _dbm_dbm_keys(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- if (nargs || (kwnames && PyTuple_GET_SIZE(kwnames))) {
- PyErr_SetString(PyExc_TypeError, "keys() takes no arguments");
- return NULL;
- }
- return _dbm_dbm_keys_impl(self, cls);
- }
- PyDoc_STRVAR(_dbm_dbm_get__doc__,
- "get($self, key, default=None, /)\n"
- "--\n"
- "\n"
- "Return the value for key if present, otherwise default.");
- #define _DBM_DBM_GET_METHODDEF \
- {"get", _PyCFunction_CAST(_dbm_dbm_get), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _dbm_dbm_get__doc__},
- static PyObject *
- _dbm_dbm_get_impl(dbmobject *self, PyTypeObject *cls, const char *key,
- Py_ssize_t key_length, PyObject *default_value);
- static PyObject *
- _dbm_dbm_get(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty)
- #else
- # define KWTUPLE NULL
- #endif
- static const char * const _keywords[] = {"", "", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .format = "s#|O:get",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- const char *key;
- Py_ssize_t key_length;
- PyObject *default_value = Py_None;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &key, &key_length, &default_value)) {
- goto exit;
- }
- return_value = _dbm_dbm_get_impl(self, cls, key, key_length, default_value);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(_dbm_dbm_setdefault__doc__,
- "setdefault($self, key, default=b\'\', /)\n"
- "--\n"
- "\n"
- "Return the value for key if present, otherwise default.\n"
- "\n"
- "If key is not in the database, it is inserted with default as the value.");
- #define _DBM_DBM_SETDEFAULT_METHODDEF \
- {"setdefault", _PyCFunction_CAST(_dbm_dbm_setdefault), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _dbm_dbm_setdefault__doc__},
- static PyObject *
- _dbm_dbm_setdefault_impl(dbmobject *self, PyTypeObject *cls, const char *key,
- Py_ssize_t key_length, PyObject *default_value);
- static PyObject *
- _dbm_dbm_setdefault(dbmobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
- {
- PyObject *return_value = NULL;
- #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
- # define KWTUPLE (PyObject *)&_Py_SINGLETON(tuple_empty)
- #else
- # define KWTUPLE NULL
- #endif
- static const char * const _keywords[] = {"", "", NULL};
- static _PyArg_Parser _parser = {
- .keywords = _keywords,
- .format = "s#|O:setdefault",
- .kwtuple = KWTUPLE,
- };
- #undef KWTUPLE
- const char *key;
- Py_ssize_t key_length;
- PyObject *default_value = NULL;
- if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
- &key, &key_length, &default_value)) {
- goto exit;
- }
- return_value = _dbm_dbm_setdefault_impl(self, cls, key, key_length, default_value);
- exit:
- return return_value;
- }
- PyDoc_STRVAR(dbmopen__doc__,
- "open($module, filename, flags=\'r\', mode=0o666, /)\n"
- "--\n"
- "\n"
- "Return a database object.\n"
- "\n"
- " filename\n"
- " The filename to open.\n"
- " flags\n"
- " How to open the file. \"r\" for reading, \"w\" for writing, etc.\n"
- " mode\n"
- " If creating a new file, the mode bits for the new file\n"
- " (e.g. os.O_RDWR).");
- #define DBMOPEN_METHODDEF \
- {"open", _PyCFunction_CAST(dbmopen), METH_FASTCALL, dbmopen__doc__},
- static PyObject *
- dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
- int mode);
- static PyObject *
- dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
- {
- PyObject *return_value = NULL;
- PyObject *filename;
- const char *flags = "r";
- int mode = 438;
- if (!_PyArg_CheckPositional("open", nargs, 1, 3)) {
- goto exit;
- }
- filename = args[0];
- if (nargs < 2) {
- goto skip_optional;
- }
- if (!PyUnicode_Check(args[1])) {
- _PyArg_BadArgument("open", "argument 2", "str", args[1]);
- goto exit;
- }
- Py_ssize_t flags_length;
- flags = PyUnicode_AsUTF8AndSize(args[1], &flags_length);
- if (flags == NULL) {
- goto exit;
- }
- if (strlen(flags) != (size_t)flags_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
- if (nargs < 3) {
- goto skip_optional;
- }
- mode = _PyLong_AsInt(args[2]);
- if (mode == -1 && PyErr_Occurred()) {
- goto exit;
- }
- skip_optional:
- return_value = dbmopen_impl(module, filename, flags, mode);
- exit:
- return return_value;
- }
- /*[clinic end generated code: output=f924d467af2e2f4e input=a9049054013a1b77]*/
|