• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*[clinic input]
2 preserve
3 [clinic start generated code]*/
4 
5 #include "pycore_modsupport.h"    // _PyArg_CheckPositional()
6 
7 PyDoc_STRVAR(_contextvars_Context_get__doc__,
8 "get($self, key, default=None, /)\n"
9 "--\n"
10 "\n"
11 "Return the value for `key` if `key` has the value in the context object.\n"
12 "\n"
13 "If `key` does not exist, return `default`. If `default` is not given,\n"
14 "return None.");
15 
16 #define _CONTEXTVARS_CONTEXT_GET_METHODDEF    \
17     {"get", _PyCFunction_CAST(_contextvars_Context_get), METH_FASTCALL, _contextvars_Context_get__doc__},
18 
19 static PyObject *
20 _contextvars_Context_get_impl(PyContext *self, PyObject *key,
21                               PyObject *default_value);
22 
23 static PyObject *
_contextvars_Context_get(PyContext * self,PyObject * const * args,Py_ssize_t nargs)24 _contextvars_Context_get(PyContext *self, PyObject *const *args, Py_ssize_t nargs)
25 {
26     PyObject *return_value = NULL;
27     PyObject *key;
28     PyObject *default_value = Py_None;
29 
30     if (!_PyArg_CheckPositional("get", nargs, 1, 2)) {
31         goto exit;
32     }
33     key = args[0];
34     if (nargs < 2) {
35         goto skip_optional;
36     }
37     default_value = args[1];
38 skip_optional:
39     return_value = _contextvars_Context_get_impl(self, key, default_value);
40 
41 exit:
42     return return_value;
43 }
44 
45 PyDoc_STRVAR(_contextvars_Context_items__doc__,
46 "items($self, /)\n"
47 "--\n"
48 "\n"
49 "Return all variables and their values in the context object.\n"
50 "\n"
51 "The result is returned as a list of 2-tuples (variable, value).");
52 
53 #define _CONTEXTVARS_CONTEXT_ITEMS_METHODDEF    \
54     {"items", (PyCFunction)_contextvars_Context_items, METH_NOARGS, _contextvars_Context_items__doc__},
55 
56 static PyObject *
57 _contextvars_Context_items_impl(PyContext *self);
58 
59 static PyObject *
_contextvars_Context_items(PyContext * self,PyObject * Py_UNUSED (ignored))60 _contextvars_Context_items(PyContext *self, PyObject *Py_UNUSED(ignored))
61 {
62     return _contextvars_Context_items_impl(self);
63 }
64 
65 PyDoc_STRVAR(_contextvars_Context_keys__doc__,
66 "keys($self, /)\n"
67 "--\n"
68 "\n"
69 "Return a list of all variables in the context object.");
70 
71 #define _CONTEXTVARS_CONTEXT_KEYS_METHODDEF    \
72     {"keys", (PyCFunction)_contextvars_Context_keys, METH_NOARGS, _contextvars_Context_keys__doc__},
73 
74 static PyObject *
75 _contextvars_Context_keys_impl(PyContext *self);
76 
77 static PyObject *
_contextvars_Context_keys(PyContext * self,PyObject * Py_UNUSED (ignored))78 _contextvars_Context_keys(PyContext *self, PyObject *Py_UNUSED(ignored))
79 {
80     return _contextvars_Context_keys_impl(self);
81 }
82 
83 PyDoc_STRVAR(_contextvars_Context_values__doc__,
84 "values($self, /)\n"
85 "--\n"
86 "\n"
87 "Return a list of all variables\' values in the context object.");
88 
89 #define _CONTEXTVARS_CONTEXT_VALUES_METHODDEF    \
90     {"values", (PyCFunction)_contextvars_Context_values, METH_NOARGS, _contextvars_Context_values__doc__},
91 
92 static PyObject *
93 _contextvars_Context_values_impl(PyContext *self);
94 
95 static PyObject *
_contextvars_Context_values(PyContext * self,PyObject * Py_UNUSED (ignored))96 _contextvars_Context_values(PyContext *self, PyObject *Py_UNUSED(ignored))
97 {
98     return _contextvars_Context_values_impl(self);
99 }
100 
101 PyDoc_STRVAR(_contextvars_Context_copy__doc__,
102 "copy($self, /)\n"
103 "--\n"
104 "\n"
105 "Return a shallow copy of the context object.");
106 
107 #define _CONTEXTVARS_CONTEXT_COPY_METHODDEF    \
108     {"copy", (PyCFunction)_contextvars_Context_copy, METH_NOARGS, _contextvars_Context_copy__doc__},
109 
110 static PyObject *
111 _contextvars_Context_copy_impl(PyContext *self);
112 
113 static PyObject *
_contextvars_Context_copy(PyContext * self,PyObject * Py_UNUSED (ignored))114 _contextvars_Context_copy(PyContext *self, PyObject *Py_UNUSED(ignored))
115 {
116     return _contextvars_Context_copy_impl(self);
117 }
118 
119 PyDoc_STRVAR(_contextvars_ContextVar_get__doc__,
120 "get($self, default=<unrepresentable>, /)\n"
121 "--\n"
122 "\n"
123 "Return a value for the context variable for the current context.\n"
124 "\n"
125 "If there is no value for the variable in the current context, the method will:\n"
126 " * return the value of the default argument of the method, if provided; or\n"
127 " * return the default value for the context variable, if it was created\n"
128 "   with one; or\n"
129 " * raise a LookupError.");
130 
131 #define _CONTEXTVARS_CONTEXTVAR_GET_METHODDEF    \
132     {"get", _PyCFunction_CAST(_contextvars_ContextVar_get), METH_FASTCALL, _contextvars_ContextVar_get__doc__},
133 
134 static PyObject *
135 _contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value);
136 
137 static PyObject *
_contextvars_ContextVar_get(PyContextVar * self,PyObject * const * args,Py_ssize_t nargs)138 _contextvars_ContextVar_get(PyContextVar *self, PyObject *const *args, Py_ssize_t nargs)
139 {
140     PyObject *return_value = NULL;
141     PyObject *default_value = NULL;
142 
143     if (!_PyArg_CheckPositional("get", nargs, 0, 1)) {
144         goto exit;
145     }
146     if (nargs < 1) {
147         goto skip_optional;
148     }
149     default_value = args[0];
150 skip_optional:
151     return_value = _contextvars_ContextVar_get_impl(self, default_value);
152 
153 exit:
154     return return_value;
155 }
156 
157 PyDoc_STRVAR(_contextvars_ContextVar_set__doc__,
158 "set($self, value, /)\n"
159 "--\n"
160 "\n"
161 "Call to set a new value for the context variable in the current context.\n"
162 "\n"
163 "The required value argument is the new value for the context variable.\n"
164 "\n"
165 "Returns a Token object that can be used to restore the variable to its previous\n"
166 "value via the `ContextVar.reset()` method.");
167 
168 #define _CONTEXTVARS_CONTEXTVAR_SET_METHODDEF    \
169     {"set", (PyCFunction)_contextvars_ContextVar_set, METH_O, _contextvars_ContextVar_set__doc__},
170 
171 PyDoc_STRVAR(_contextvars_ContextVar_reset__doc__,
172 "reset($self, token, /)\n"
173 "--\n"
174 "\n"
175 "Reset the context variable.\n"
176 "\n"
177 "The variable is reset to the value it had before the `ContextVar.set()` that\n"
178 "created the token was used.");
179 
180 #define _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF    \
181     {"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O, _contextvars_ContextVar_reset__doc__},
182 /*[clinic end generated code: output=b667826178444c3f input=a9049054013a1b77]*/
183