Home | History | Annotate | Download | only in clinic
      1 /*[clinic input]
      2 preserve
      3 [clinic start generated code]*/
      4 
      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"
     43 "--\n"
     44 "\n"
     45 "Return the value for key if present, otherwise default.");
     46 
     47 #define _DBM_DBM_GET_METHODDEF    \
     48     {"get", (PyCFunction)_dbm_dbm_get, METH_VARARGS, _dbm_dbm_get__doc__},
     49 
     50 static PyObject *
     51 _dbm_dbm_get_impl(dbmobject *self, const char *key,
     52                   Py_ssize_clean_t key_length, PyObject *default_value);
     53 
     54 static PyObject *
     55 _dbm_dbm_get(dbmobject *self, PyObject *args)
     56 {
     57     PyObject *return_value = NULL;
     58     const char *key;
     59     Py_ssize_clean_t key_length;
     60     PyObject *default_value = NULL;
     61 
     62     if (!PyArg_ParseTuple(args, "s#|O:get",
     63         &key, &key_length, &default_value)) {
     64         goto exit;
     65     }
     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    \
     81     {"setdefault", (PyCFunction)_dbm_dbm_setdefault, METH_VARARGS, _dbm_dbm_setdefault__doc__},
     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 *
     89 _dbm_dbm_setdefault(dbmobject *self, PyObject *args)
     90 {
     91     PyObject *return_value = NULL;
     92     const char *key;
     93     Py_ssize_clean_t key_length;
     94     PyObject *default_value = NULL;
     95 
     96     if (!PyArg_ParseTuple(args, "s#|O:setdefault",
     97         &key, &key_length, &default_value)) {
     98         goto exit;
     99     }
    100     return_value = _dbm_dbm_setdefault_impl(self, key, key_length, default_value);
    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    \
    121     {"open", (PyCFunction)dbmopen, METH_VARARGS, dbmopen__doc__},
    122 
    123 static PyObject *
    124 dbmopen_impl(PyObject *module, const char *filename, const char *flags,
    125              int mode);
    126 
    127 static PyObject *
    128 dbmopen(PyObject *module, PyObject *args)
    129 {
    130     PyObject *return_value = NULL;
    131     const char *filename;
    132     const char *flags = "r";
    133     int mode = 438;
    134 
    135     if (!PyArg_ParseTuple(args, "s|si:open",
    136         &filename, &flags, &mode)) {
    137         goto exit;
    138     }
    139     return_value = dbmopen_impl(module, filename, flags, mode);
    140 
    141 exit:
    142     return return_value;
    143 }
    144 /*[clinic end generated code: output=99adf966ef0475ff input=a9049054013a1b77]*/
    145