(root)/
Python-3.11.7/
Modules/
_sqlite/
clinic/
module.c.h
       1  /*[clinic input]
       2  preserve
       3  [clinic start generated code]*/
       4  
       5  PyDoc_STRVAR(pysqlite_complete_statement__doc__,
       6  "complete_statement($module, /, statement)\n"
       7  "--\n"
       8  "\n"
       9  "Checks if a string contains a complete SQL statement.");
      10  
      11  #define PYSQLITE_COMPLETE_STATEMENT_METHODDEF    \
      12      {"complete_statement", _PyCFunction_CAST(pysqlite_complete_statement), METH_FASTCALL|METH_KEYWORDS, pysqlite_complete_statement__doc__},
      13  
      14  static PyObject *
      15  pysqlite_complete_statement_impl(PyObject *module, const char *statement);
      16  
      17  static PyObject *
      18  pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
      19  {
      20      PyObject *return_value = NULL;
      21      static const char * const _keywords[] = {"statement", NULL};
      22      static _PyArg_Parser _parser = {NULL, _keywords, "complete_statement", 0};
      23      PyObject *argsbuf[1];
      24      const char *statement;
      25  
      26      args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
      27      if (!args) {
      28          goto exit;
      29      }
      30      if (!PyUnicode_Check(args[0])) {
      31          _PyArg_BadArgument("complete_statement", "argument 'statement'", "str", args[0]);
      32          goto exit;
      33      }
      34      Py_ssize_t statement_length;
      35      statement = PyUnicode_AsUTF8AndSize(args[0], &statement_length);
      36      if (statement == NULL) {
      37          goto exit;
      38      }
      39      if (strlen(statement) != (size_t)statement_length) {
      40          PyErr_SetString(PyExc_ValueError, "embedded null character");
      41          goto exit;
      42      }
      43      return_value = pysqlite_complete_statement_impl(module, statement);
      44  
      45  exit:
      46      return return_value;
      47  }
      48  
      49  PyDoc_STRVAR(pysqlite_enable_shared_cache__doc__,
      50  "enable_shared_cache($module, /, do_enable)\n"
      51  "--\n"
      52  "\n"
      53  "Enable or disable shared cache mode for the calling thread.\n"
      54  "\n"
      55  "This method is deprecated and will be removed in Python 3.12.\n"
      56  "Shared cache is strongly discouraged by the SQLite 3 documentation.\n"
      57  "If shared cache must be used, open the database in URI mode using\n"
      58  "the cache=shared query parameter.");
      59  
      60  #define PYSQLITE_ENABLE_SHARED_CACHE_METHODDEF    \
      61      {"enable_shared_cache", _PyCFunction_CAST(pysqlite_enable_shared_cache), METH_FASTCALL|METH_KEYWORDS, pysqlite_enable_shared_cache__doc__},
      62  
      63  static PyObject *
      64  pysqlite_enable_shared_cache_impl(PyObject *module, int do_enable);
      65  
      66  static PyObject *
      67  pysqlite_enable_shared_cache(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
      68  {
      69      PyObject *return_value = NULL;
      70      static const char * const _keywords[] = {"do_enable", NULL};
      71      static _PyArg_Parser _parser = {NULL, _keywords, "enable_shared_cache", 0};
      72      PyObject *argsbuf[1];
      73      int do_enable;
      74  
      75      args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
      76      if (!args) {
      77          goto exit;
      78      }
      79      do_enable = _PyLong_AsInt(args[0]);
      80      if (do_enable == -1 && PyErr_Occurred()) {
      81          goto exit;
      82      }
      83      return_value = pysqlite_enable_shared_cache_impl(module, do_enable);
      84  
      85  exit:
      86      return return_value;
      87  }
      88  
      89  PyDoc_STRVAR(pysqlite_register_adapter__doc__,
      90  "register_adapter($module, type, adapter, /)\n"
      91  "--\n"
      92  "\n"
      93  "Register a function to adapt Python objects to SQLite values.");
      94  
      95  #define PYSQLITE_REGISTER_ADAPTER_METHODDEF    \
      96      {"register_adapter", _PyCFunction_CAST(pysqlite_register_adapter), METH_FASTCALL, pysqlite_register_adapter__doc__},
      97  
      98  static PyObject *
      99  pysqlite_register_adapter_impl(PyObject *module, PyTypeObject *type,
     100                                 PyObject *caster);
     101  
     102  static PyObject *
     103  pysqlite_register_adapter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
     104  {
     105      PyObject *return_value = NULL;
     106      PyTypeObject *type;
     107      PyObject *caster;
     108  
     109      if (!_PyArg_CheckPositional("register_adapter", nargs, 2, 2)) {
     110          goto exit;
     111      }
     112      type = (PyTypeObject *)args[0];
     113      caster = args[1];
     114      return_value = pysqlite_register_adapter_impl(module, type, caster);
     115  
     116  exit:
     117      return return_value;
     118  }
     119  
     120  PyDoc_STRVAR(pysqlite_register_converter__doc__,
     121  "register_converter($module, typename, converter, /)\n"
     122  "--\n"
     123  "\n"
     124  "Register a function to convert SQLite values to Python objects.");
     125  
     126  #define PYSQLITE_REGISTER_CONVERTER_METHODDEF    \
     127      {"register_converter", _PyCFunction_CAST(pysqlite_register_converter), METH_FASTCALL, pysqlite_register_converter__doc__},
     128  
     129  static PyObject *
     130  pysqlite_register_converter_impl(PyObject *module, PyObject *orig_name,
     131                                   PyObject *callable);
     132  
     133  static PyObject *
     134  pysqlite_register_converter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
     135  {
     136      PyObject *return_value = NULL;
     137      PyObject *orig_name;
     138      PyObject *callable;
     139  
     140      if (!_PyArg_CheckPositional("register_converter", nargs, 2, 2)) {
     141          goto exit;
     142      }
     143      if (!PyUnicode_Check(args[0])) {
     144          _PyArg_BadArgument("register_converter", "argument 1", "str", args[0]);
     145          goto exit;
     146      }
     147      if (PyUnicode_READY(args[0]) == -1) {
     148          goto exit;
     149      }
     150      orig_name = args[0];
     151      callable = args[1];
     152      return_value = pysqlite_register_converter_impl(module, orig_name, callable);
     153  
     154  exit:
     155      return return_value;
     156  }
     157  
     158  PyDoc_STRVAR(pysqlite_enable_callback_trace__doc__,
     159  "enable_callback_tracebacks($module, enable, /)\n"
     160  "--\n"
     161  "\n"
     162  "Enable or disable callback functions throwing errors to stderr.");
     163  
     164  #define PYSQLITE_ENABLE_CALLBACK_TRACE_METHODDEF    \
     165      {"enable_callback_tracebacks", (PyCFunction)pysqlite_enable_callback_trace, METH_O, pysqlite_enable_callback_trace__doc__},
     166  
     167  static PyObject *
     168  pysqlite_enable_callback_trace_impl(PyObject *module, int enable);
     169  
     170  static PyObject *
     171  pysqlite_enable_callback_trace(PyObject *module, PyObject *arg)
     172  {
     173      PyObject *return_value = NULL;
     174      int enable;
     175  
     176      enable = _PyLong_AsInt(arg);
     177      if (enable == -1 && PyErr_Occurred()) {
     178          goto exit;
     179      }
     180      return_value = pysqlite_enable_callback_trace_impl(module, enable);
     181  
     182  exit:
     183      return return_value;
     184  }
     185  
     186  PyDoc_STRVAR(pysqlite_adapt__doc__,
     187  "adapt($module, obj, proto=PrepareProtocolType, alt=<unrepresentable>, /)\n"
     188  "--\n"
     189  "\n"
     190  "Adapt given object to given protocol.");
     191  
     192  #define PYSQLITE_ADAPT_METHODDEF    \
     193      {"adapt", _PyCFunction_CAST(pysqlite_adapt), METH_FASTCALL, pysqlite_adapt__doc__},
     194  
     195  static PyObject *
     196  pysqlite_adapt_impl(PyObject *module, PyObject *obj, PyObject *proto,
     197                      PyObject *alt);
     198  
     199  static PyObject *
     200  pysqlite_adapt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
     201  {
     202      PyObject *return_value = NULL;
     203      PyObject *obj;
     204      PyObject *proto = (PyObject *)clinic_state()->PrepareProtocolType;
     205      PyObject *alt = NULL;
     206  
     207      if (!_PyArg_CheckPositional("adapt", nargs, 1, 3)) {
     208          goto exit;
     209      }
     210      obj = args[0];
     211      if (nargs < 2) {
     212          goto skip_optional;
     213      }
     214      proto = args[1];
     215      if (nargs < 3) {
     216          goto skip_optional;
     217      }
     218      alt = args[2];
     219  skip_optional:
     220      return_value = pysqlite_adapt_impl(module, obj, proto, alt);
     221  
     222  exit:
     223      return return_value;
     224  }
     225  /*[clinic end generated code: output=ecaf4e0a239c2685 input=a9049054013a1b77]*/