Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 1 | /*[clinic input] |
| 2 | preserve |
| 3 | [clinic start generated code]*/ |
| 4 | |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 5 | PyDoc_STRVAR(_dbm_dbm_close__doc__, |
| 6 | "close($self, /)\n" |
| 7 | "--\n" |
| 8 | "\n" |
| 9 | "Close the database."); |
| 10 | |
| 11 | #define _DBM_DBM_CLOSE_METHODDEF \ |
| 12 | {"close", (PyCFunction)_dbm_dbm_close, METH_NOARGS, _dbm_dbm_close__doc__}, |
| 13 | |
| 14 | static PyObject * |
| 15 | _dbm_dbm_close_impl(dbmobject *self); |
| 16 | |
| 17 | static PyObject * |
| 18 | _dbm_dbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored)) |
| 19 | { |
| 20 | return _dbm_dbm_close_impl(self); |
| 21 | } |
| 22 | |
| 23 | PyDoc_STRVAR(_dbm_dbm_keys__doc__, |
| 24 | "keys($self, /)\n" |
| 25 | "--\n" |
| 26 | "\n" |
| 27 | "Return a list of all keys in the database."); |
| 28 | |
| 29 | #define _DBM_DBM_KEYS_METHODDEF \ |
| 30 | {"keys", (PyCFunction)_dbm_dbm_keys, METH_NOARGS, _dbm_dbm_keys__doc__}, |
| 31 | |
| 32 | static PyObject * |
| 33 | _dbm_dbm_keys_impl(dbmobject *self); |
| 34 | |
| 35 | static PyObject * |
| 36 | _dbm_dbm_keys(dbmobject *self, PyObject *Py_UNUSED(ignored)) |
| 37 | { |
| 38 | return _dbm_dbm_keys_impl(self); |
| 39 | } |
| 40 | |
| 41 | PyDoc_STRVAR(_dbm_dbm_get__doc__, |
| 42 | "get($self, key, default=b\'\', /)\n" |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 43 | "--\n" |
| 44 | "\n" |
| 45 | "Return the value for key if present, otherwise default."); |
| 46 | |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 47 | #define _DBM_DBM_GET_METHODDEF \ |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 48 | {"get", (PyCFunction)_dbm_dbm_get, METH_FASTCALL, _dbm_dbm_get__doc__}, |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 49 | |
| 50 | static PyObject * |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 51 | _dbm_dbm_get_impl(dbmobject *self, const char *key, |
| 52 | Py_ssize_clean_t key_length, PyObject *default_value); |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 53 | |
| 54 | static PyObject * |
Serhiy Storchaka | a5552f0 | 2017-12-15 13:11:11 +0200 | [diff] [blame] | 55 | _dbm_dbm_get(dbmobject *self, PyObject *const *args, Py_ssize_t nargs) |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 56 | { |
| 57 | PyObject *return_value = NULL; |
| 58 | const char *key; |
| 59 | Py_ssize_clean_t key_length; |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 60 | PyObject *default_value = NULL; |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 61 | |
Sylvain | 7445381 | 2017-06-10 06:51:48 +0200 | [diff] [blame] | 62 | if (!_PyArg_ParseStack(args, nargs, "s#|O:get", |
| 63 | &key, &key_length, &default_value)) { |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 64 | goto exit; |
| 65 | } |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 66 | return_value = _dbm_dbm_get_impl(self, key, key_length, default_value); |
| 67 | |
| 68 | exit: |
| 69 | return return_value; |
| 70 | } |
| 71 | |
| 72 | PyDoc_STRVAR(_dbm_dbm_setdefault__doc__, |
| 73 | "setdefault($self, key, default=b\'\', /)\n" |
| 74 | "--\n" |
| 75 | "\n" |
| 76 | "Return the value for key if present, otherwise default.\n" |
| 77 | "\n" |
| 78 | "If key is not in the database, it is inserted with default as the value."); |
| 79 | |
| 80 | #define _DBM_DBM_SETDEFAULT_METHODDEF \ |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 81 | {"setdefault", (PyCFunction)_dbm_dbm_setdefault, METH_FASTCALL, _dbm_dbm_setdefault__doc__}, |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 82 | |
| 83 | static PyObject * |
| 84 | _dbm_dbm_setdefault_impl(dbmobject *self, const char *key, |
| 85 | Py_ssize_clean_t key_length, |
| 86 | PyObject *default_value); |
| 87 | |
| 88 | static PyObject * |
Serhiy Storchaka | a5552f0 | 2017-12-15 13:11:11 +0200 | [diff] [blame] | 89 | _dbm_dbm_setdefault(dbmobject *self, PyObject *const *args, Py_ssize_t nargs) |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 90 | { |
| 91 | PyObject *return_value = NULL; |
| 92 | const char *key; |
| 93 | Py_ssize_clean_t key_length; |
| 94 | PyObject *default_value = NULL; |
| 95 | |
Sylvain | 7445381 | 2017-06-10 06:51:48 +0200 | [diff] [blame] | 96 | if (!_PyArg_ParseStack(args, nargs, "s#|O:setdefault", |
| 97 | &key, &key_length, &default_value)) { |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 98 | goto exit; |
| 99 | } |
Serhiy Storchaka | 9260e77 | 2015-04-17 21:05:18 +0300 | [diff] [blame] | 100 | return_value = _dbm_dbm_setdefault_impl(self, key, key_length, default_value); |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 101 | |
| 102 | exit: |
| 103 | return return_value; |
| 104 | } |
| 105 | |
| 106 | PyDoc_STRVAR(dbmopen__doc__, |
| 107 | "open($module, filename, flags=\'r\', mode=0o666, /)\n" |
| 108 | "--\n" |
| 109 | "\n" |
| 110 | "Return a database object.\n" |
| 111 | "\n" |
| 112 | " filename\n" |
| 113 | " The filename to open.\n" |
| 114 | " flags\n" |
| 115 | " How to open the file. \"r\" for reading, \"w\" for writing, etc.\n" |
| 116 | " mode\n" |
| 117 | " If creating a new file, the mode bits for the new file\n" |
| 118 | " (e.g. os.O_RDWR)."); |
| 119 | |
| 120 | #define DBMOPEN_METHODDEF \ |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 121 | {"open", (PyCFunction)dbmopen, METH_FASTCALL, dbmopen__doc__}, |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 122 | |
| 123 | static PyObject * |
Serhiy Storchaka | 1a2b24f | 2016-07-07 17:35:15 +0300 | [diff] [blame] | 124 | dbmopen_impl(PyObject *module, const char *filename, const char *flags, |
Larry Hastings | 89964c4 | 2015-04-14 18:07:59 -0400 | [diff] [blame] | 125 | int mode); |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 126 | |
| 127 | static PyObject * |
Serhiy Storchaka | a5552f0 | 2017-12-15 13:11:11 +0200 | [diff] [blame] | 128 | dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 129 | { |
| 130 | PyObject *return_value = NULL; |
| 131 | const char *filename; |
| 132 | const char *flags = "r"; |
| 133 | int mode = 438; |
| 134 | |
Sylvain | 7445381 | 2017-06-10 06:51:48 +0200 | [diff] [blame] | 135 | if (!_PyArg_ParseStack(args, nargs, "s|si:open", |
| 136 | &filename, &flags, &mode)) { |
Victor Stinner | 259f0e4 | 2017-01-17 01:35:17 +0100 | [diff] [blame] | 137 | goto exit; |
| 138 | } |
Serhiy Storchaka | 1009bf1 | 2015-04-03 23:53:51 +0300 | [diff] [blame] | 139 | return_value = dbmopen_impl(module, filename, flags, mode); |
| 140 | |
| 141 | exit: |
| 142 | return return_value; |
| 143 | } |
Serhiy Storchaka | a5552f0 | 2017-12-15 13:11:11 +0200 | [diff] [blame] | 144 | /*[clinic end generated code: output=8ce71abac849155f input=a9049054013a1b77]*/ |