1 /*[clinic input]
2 preserve
3 [clinic start generated code]*/
4
5 PyDoc_STRVAR(_imp_lock_held__doc__,
6 "lock_held($module, /)\n"
7 "--\n"
8 "\n"
9 "Return True if the import lock is currently held, else False.\n"
10 "\n"
11 "On platforms without threads, return False.");
12
13 #define _IMP_LOCK_HELD_METHODDEF \
14 {"lock_held", (PyCFunction)_imp_lock_held, METH_NOARGS, _imp_lock_held__doc__},
15
16 static PyObject *
17 _imp_lock_held_impl(PyObject *module);
18
19 static PyObject *
_imp_lock_held(PyObject * module,PyObject * Py_UNUSED (ignored))20 _imp_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored))
21 {
22 return _imp_lock_held_impl(module);
23 }
24
25 PyDoc_STRVAR(_imp_acquire_lock__doc__,
26 "acquire_lock($module, /)\n"
27 "--\n"
28 "\n"
29 "Acquires the interpreter\'s import lock for the current thread.\n"
30 "\n"
31 "This lock should be used by import hooks to ensure thread-safety when importing\n"
32 "modules. On platforms without threads, this function does nothing.");
33
34 #define _IMP_ACQUIRE_LOCK_METHODDEF \
35 {"acquire_lock", (PyCFunction)_imp_acquire_lock, METH_NOARGS, _imp_acquire_lock__doc__},
36
37 static PyObject *
38 _imp_acquire_lock_impl(PyObject *module);
39
40 static PyObject *
_imp_acquire_lock(PyObject * module,PyObject * Py_UNUSED (ignored))41 _imp_acquire_lock(PyObject *module, PyObject *Py_UNUSED(ignored))
42 {
43 return _imp_acquire_lock_impl(module);
44 }
45
46 PyDoc_STRVAR(_imp_release_lock__doc__,
47 "release_lock($module, /)\n"
48 "--\n"
49 "\n"
50 "Release the interpreter\'s import lock.\n"
51 "\n"
52 "On platforms without threads, this function does nothing.");
53
54 #define _IMP_RELEASE_LOCK_METHODDEF \
55 {"release_lock", (PyCFunction)_imp_release_lock, METH_NOARGS, _imp_release_lock__doc__},
56
57 static PyObject *
58 _imp_release_lock_impl(PyObject *module);
59
60 static PyObject *
_imp_release_lock(PyObject * module,PyObject * Py_UNUSED (ignored))61 _imp_release_lock(PyObject *module, PyObject *Py_UNUSED(ignored))
62 {
63 return _imp_release_lock_impl(module);
64 }
65
66 PyDoc_STRVAR(_imp__fix_co_filename__doc__,
67 "_fix_co_filename($module, code, path, /)\n"
68 "--\n"
69 "\n"
70 "Changes code.co_filename to specify the passed-in file path.\n"
71 "\n"
72 " code\n"
73 " Code object to change.\n"
74 " path\n"
75 " File path to use.");
76
77 #define _IMP__FIX_CO_FILENAME_METHODDEF \
78 {"_fix_co_filename", (PyCFunction)_imp__fix_co_filename, METH_FASTCALL, _imp__fix_co_filename__doc__},
79
80 static PyObject *
81 _imp__fix_co_filename_impl(PyObject *module, PyCodeObject *code,
82 PyObject *path);
83
84 static PyObject *
_imp__fix_co_filename(PyObject * module,PyObject * const * args,Py_ssize_t nargs)85 _imp__fix_co_filename(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
86 {
87 PyObject *return_value = NULL;
88 PyCodeObject *code;
89 PyObject *path;
90
91 if (!_PyArg_ParseStack(args, nargs, "O!U:_fix_co_filename",
92 &PyCode_Type, &code, &path)) {
93 goto exit;
94 }
95 return_value = _imp__fix_co_filename_impl(module, code, path);
96
97 exit:
98 return return_value;
99 }
100
101 PyDoc_STRVAR(_imp_create_builtin__doc__,
102 "create_builtin($module, spec, /)\n"
103 "--\n"
104 "\n"
105 "Create an extension module.");
106
107 #define _IMP_CREATE_BUILTIN_METHODDEF \
108 {"create_builtin", (PyCFunction)_imp_create_builtin, METH_O, _imp_create_builtin__doc__},
109
110 PyDoc_STRVAR(_imp_extension_suffixes__doc__,
111 "extension_suffixes($module, /)\n"
112 "--\n"
113 "\n"
114 "Returns the list of file suffixes used to identify extension modules.");
115
116 #define _IMP_EXTENSION_SUFFIXES_METHODDEF \
117 {"extension_suffixes", (PyCFunction)_imp_extension_suffixes, METH_NOARGS, _imp_extension_suffixes__doc__},
118
119 static PyObject *
120 _imp_extension_suffixes_impl(PyObject *module);
121
122 static PyObject *
_imp_extension_suffixes(PyObject * module,PyObject * Py_UNUSED (ignored))123 _imp_extension_suffixes(PyObject *module, PyObject *Py_UNUSED(ignored))
124 {
125 return _imp_extension_suffixes_impl(module);
126 }
127
128 PyDoc_STRVAR(_imp_init_frozen__doc__,
129 "init_frozen($module, name, /)\n"
130 "--\n"
131 "\n"
132 "Initializes a frozen module.");
133
134 #define _IMP_INIT_FROZEN_METHODDEF \
135 {"init_frozen", (PyCFunction)_imp_init_frozen, METH_O, _imp_init_frozen__doc__},
136
137 static PyObject *
138 _imp_init_frozen_impl(PyObject *module, PyObject *name);
139
140 static PyObject *
_imp_init_frozen(PyObject * module,PyObject * arg)141 _imp_init_frozen(PyObject *module, PyObject *arg)
142 {
143 PyObject *return_value = NULL;
144 PyObject *name;
145
146 if (!PyArg_Parse(arg, "U:init_frozen", &name)) {
147 goto exit;
148 }
149 return_value = _imp_init_frozen_impl(module, name);
150
151 exit:
152 return return_value;
153 }
154
155 PyDoc_STRVAR(_imp_get_frozen_object__doc__,
156 "get_frozen_object($module, name, /)\n"
157 "--\n"
158 "\n"
159 "Create a code object for a frozen module.");
160
161 #define _IMP_GET_FROZEN_OBJECT_METHODDEF \
162 {"get_frozen_object", (PyCFunction)_imp_get_frozen_object, METH_O, _imp_get_frozen_object__doc__},
163
164 static PyObject *
165 _imp_get_frozen_object_impl(PyObject *module, PyObject *name);
166
167 static PyObject *
_imp_get_frozen_object(PyObject * module,PyObject * arg)168 _imp_get_frozen_object(PyObject *module, PyObject *arg)
169 {
170 PyObject *return_value = NULL;
171 PyObject *name;
172
173 if (!PyArg_Parse(arg, "U:get_frozen_object", &name)) {
174 goto exit;
175 }
176 return_value = _imp_get_frozen_object_impl(module, name);
177
178 exit:
179 return return_value;
180 }
181
182 PyDoc_STRVAR(_imp_is_frozen_package__doc__,
183 "is_frozen_package($module, name, /)\n"
184 "--\n"
185 "\n"
186 "Returns True if the module name is of a frozen package.");
187
188 #define _IMP_IS_FROZEN_PACKAGE_METHODDEF \
189 {"is_frozen_package", (PyCFunction)_imp_is_frozen_package, METH_O, _imp_is_frozen_package__doc__},
190
191 static PyObject *
192 _imp_is_frozen_package_impl(PyObject *module, PyObject *name);
193
194 static PyObject *
_imp_is_frozen_package(PyObject * module,PyObject * arg)195 _imp_is_frozen_package(PyObject *module, PyObject *arg)
196 {
197 PyObject *return_value = NULL;
198 PyObject *name;
199
200 if (!PyArg_Parse(arg, "U:is_frozen_package", &name)) {
201 goto exit;
202 }
203 return_value = _imp_is_frozen_package_impl(module, name);
204
205 exit:
206 return return_value;
207 }
208
209 PyDoc_STRVAR(_imp_is_builtin__doc__,
210 "is_builtin($module, name, /)\n"
211 "--\n"
212 "\n"
213 "Returns True if the module name corresponds to a built-in module.");
214
215 #define _IMP_IS_BUILTIN_METHODDEF \
216 {"is_builtin", (PyCFunction)_imp_is_builtin, METH_O, _imp_is_builtin__doc__},
217
218 static PyObject *
219 _imp_is_builtin_impl(PyObject *module, PyObject *name);
220
221 static PyObject *
_imp_is_builtin(PyObject * module,PyObject * arg)222 _imp_is_builtin(PyObject *module, PyObject *arg)
223 {
224 PyObject *return_value = NULL;
225 PyObject *name;
226
227 if (!PyArg_Parse(arg, "U:is_builtin", &name)) {
228 goto exit;
229 }
230 return_value = _imp_is_builtin_impl(module, name);
231
232 exit:
233 return return_value;
234 }
235
236 PyDoc_STRVAR(_imp_is_frozen__doc__,
237 "is_frozen($module, name, /)\n"
238 "--\n"
239 "\n"
240 "Returns True if the module name corresponds to a frozen module.");
241
242 #define _IMP_IS_FROZEN_METHODDEF \
243 {"is_frozen", (PyCFunction)_imp_is_frozen, METH_O, _imp_is_frozen__doc__},
244
245 static PyObject *
246 _imp_is_frozen_impl(PyObject *module, PyObject *name);
247
248 static PyObject *
_imp_is_frozen(PyObject * module,PyObject * arg)249 _imp_is_frozen(PyObject *module, PyObject *arg)
250 {
251 PyObject *return_value = NULL;
252 PyObject *name;
253
254 if (!PyArg_Parse(arg, "U:is_frozen", &name)) {
255 goto exit;
256 }
257 return_value = _imp_is_frozen_impl(module, name);
258
259 exit:
260 return return_value;
261 }
262
263 #if defined(HAVE_DYNAMIC_LOADING)
264
265 PyDoc_STRVAR(_imp_create_dynamic__doc__,
266 "create_dynamic($module, spec, file=None, /)\n"
267 "--\n"
268 "\n"
269 "Create an extension module.");
270
271 #define _IMP_CREATE_DYNAMIC_METHODDEF \
272 {"create_dynamic", (PyCFunction)_imp_create_dynamic, METH_FASTCALL, _imp_create_dynamic__doc__},
273
274 static PyObject *
275 _imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file);
276
277 static PyObject *
_imp_create_dynamic(PyObject * module,PyObject * const * args,Py_ssize_t nargs)278 _imp_create_dynamic(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
279 {
280 PyObject *return_value = NULL;
281 PyObject *spec;
282 PyObject *file = NULL;
283
284 if (!_PyArg_UnpackStack(args, nargs, "create_dynamic",
285 1, 2,
286 &spec, &file)) {
287 goto exit;
288 }
289 return_value = _imp_create_dynamic_impl(module, spec, file);
290
291 exit:
292 return return_value;
293 }
294
295 #endif /* defined(HAVE_DYNAMIC_LOADING) */
296
297 #if defined(HAVE_DYNAMIC_LOADING)
298
299 PyDoc_STRVAR(_imp_exec_dynamic__doc__,
300 "exec_dynamic($module, mod, /)\n"
301 "--\n"
302 "\n"
303 "Initialize an extension module.");
304
305 #define _IMP_EXEC_DYNAMIC_METHODDEF \
306 {"exec_dynamic", (PyCFunction)_imp_exec_dynamic, METH_O, _imp_exec_dynamic__doc__},
307
308 static int
309 _imp_exec_dynamic_impl(PyObject *module, PyObject *mod);
310
311 static PyObject *
_imp_exec_dynamic(PyObject * module,PyObject * mod)312 _imp_exec_dynamic(PyObject *module, PyObject *mod)
313 {
314 PyObject *return_value = NULL;
315 int _return_value;
316
317 _return_value = _imp_exec_dynamic_impl(module, mod);
318 if ((_return_value == -1) && PyErr_Occurred()) {
319 goto exit;
320 }
321 return_value = PyLong_FromLong((long)_return_value);
322
323 exit:
324 return return_value;
325 }
326
327 #endif /* defined(HAVE_DYNAMIC_LOADING) */
328
329 PyDoc_STRVAR(_imp_exec_builtin__doc__,
330 "exec_builtin($module, mod, /)\n"
331 "--\n"
332 "\n"
333 "Initialize a built-in module.");
334
335 #define _IMP_EXEC_BUILTIN_METHODDEF \
336 {"exec_builtin", (PyCFunction)_imp_exec_builtin, METH_O, _imp_exec_builtin__doc__},
337
338 static int
339 _imp_exec_builtin_impl(PyObject *module, PyObject *mod);
340
341 static PyObject *
_imp_exec_builtin(PyObject * module,PyObject * mod)342 _imp_exec_builtin(PyObject *module, PyObject *mod)
343 {
344 PyObject *return_value = NULL;
345 int _return_value;
346
347 _return_value = _imp_exec_builtin_impl(module, mod);
348 if ((_return_value == -1) && PyErr_Occurred()) {
349 goto exit;
350 }
351 return_value = PyLong_FromLong((long)_return_value);
352
353 exit:
354 return return_value;
355 }
356
357 PyDoc_STRVAR(_imp_source_hash__doc__,
358 "source_hash($module, /, key, source)\n"
359 "--\n"
360 "\n");
361
362 #define _IMP_SOURCE_HASH_METHODDEF \
363 {"source_hash", (PyCFunction)_imp_source_hash, METH_FASTCALL|METH_KEYWORDS, _imp_source_hash__doc__},
364
365 static PyObject *
366 _imp_source_hash_impl(PyObject *module, long key, Py_buffer *source);
367
368 static PyObject *
_imp_source_hash(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)369 _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
370 {
371 PyObject *return_value = NULL;
372 static const char * const _keywords[] = {"key", "source", NULL};
373 static _PyArg_Parser _parser = {"ly*:source_hash", _keywords, 0};
374 long key;
375 Py_buffer source = {NULL, NULL};
376
377 if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
378 &key, &source)) {
379 goto exit;
380 }
381 return_value = _imp_source_hash_impl(module, key, &source);
382
383 exit:
384 /* Cleanup for source */
385 if (source.obj) {
386 PyBuffer_Release(&source);
387 }
388
389 return return_value;
390 }
391
392 #ifndef _IMP_CREATE_DYNAMIC_METHODDEF
393 #define _IMP_CREATE_DYNAMIC_METHODDEF
394 #endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */
395
396 #ifndef _IMP_EXEC_DYNAMIC_METHODDEF
397 #define _IMP_EXEC_DYNAMIC_METHODDEF
398 #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
399 /*[clinic end generated code: output=f0660cd1de6b3a73 input=a9049054013a1b77]*/
400