17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_lock_held__doc__, 67db96d56Sopenharmony_ci"lock_held($module, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Return True if the import lock is currently held, else False.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci"On platforms without threads, return False."); 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci#define _IMP_LOCK_HELD_METHODDEF \ 147db96d56Sopenharmony_ci {"lock_held", (PyCFunction)_imp_lock_held, METH_NOARGS, _imp_lock_held__doc__}, 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_cistatic PyObject * 177db96d56Sopenharmony_ci_imp_lock_held_impl(PyObject *module); 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_cistatic PyObject * 207db96d56Sopenharmony_ci_imp_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored)) 217db96d56Sopenharmony_ci{ 227db96d56Sopenharmony_ci return _imp_lock_held_impl(module); 237db96d56Sopenharmony_ci} 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_acquire_lock__doc__, 267db96d56Sopenharmony_ci"acquire_lock($module, /)\n" 277db96d56Sopenharmony_ci"--\n" 287db96d56Sopenharmony_ci"\n" 297db96d56Sopenharmony_ci"Acquires the interpreter\'s import lock for the current thread.\n" 307db96d56Sopenharmony_ci"\n" 317db96d56Sopenharmony_ci"This lock should be used by import hooks to ensure thread-safety when importing\n" 327db96d56Sopenharmony_ci"modules. On platforms without threads, this function does nothing."); 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci#define _IMP_ACQUIRE_LOCK_METHODDEF \ 357db96d56Sopenharmony_ci {"acquire_lock", (PyCFunction)_imp_acquire_lock, METH_NOARGS, _imp_acquire_lock__doc__}, 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_cistatic PyObject * 387db96d56Sopenharmony_ci_imp_acquire_lock_impl(PyObject *module); 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_cistatic PyObject * 417db96d56Sopenharmony_ci_imp_acquire_lock(PyObject *module, PyObject *Py_UNUSED(ignored)) 427db96d56Sopenharmony_ci{ 437db96d56Sopenharmony_ci return _imp_acquire_lock_impl(module); 447db96d56Sopenharmony_ci} 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_release_lock__doc__, 477db96d56Sopenharmony_ci"release_lock($module, /)\n" 487db96d56Sopenharmony_ci"--\n" 497db96d56Sopenharmony_ci"\n" 507db96d56Sopenharmony_ci"Release the interpreter\'s import lock.\n" 517db96d56Sopenharmony_ci"\n" 527db96d56Sopenharmony_ci"On platforms without threads, this function does nothing."); 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ci#define _IMP_RELEASE_LOCK_METHODDEF \ 557db96d56Sopenharmony_ci {"release_lock", (PyCFunction)_imp_release_lock, METH_NOARGS, _imp_release_lock__doc__}, 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_cistatic PyObject * 587db96d56Sopenharmony_ci_imp_release_lock_impl(PyObject *module); 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_cistatic PyObject * 617db96d56Sopenharmony_ci_imp_release_lock(PyObject *module, PyObject *Py_UNUSED(ignored)) 627db96d56Sopenharmony_ci{ 637db96d56Sopenharmony_ci return _imp_release_lock_impl(module); 647db96d56Sopenharmony_ci} 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ciPyDoc_STRVAR(_imp__fix_co_filename__doc__, 677db96d56Sopenharmony_ci"_fix_co_filename($module, code, path, /)\n" 687db96d56Sopenharmony_ci"--\n" 697db96d56Sopenharmony_ci"\n" 707db96d56Sopenharmony_ci"Changes code.co_filename to specify the passed-in file path.\n" 717db96d56Sopenharmony_ci"\n" 727db96d56Sopenharmony_ci" code\n" 737db96d56Sopenharmony_ci" Code object to change.\n" 747db96d56Sopenharmony_ci" path\n" 757db96d56Sopenharmony_ci" File path to use."); 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci#define _IMP__FIX_CO_FILENAME_METHODDEF \ 787db96d56Sopenharmony_ci {"_fix_co_filename", _PyCFunction_CAST(_imp__fix_co_filename), METH_FASTCALL, _imp__fix_co_filename__doc__}, 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_cistatic PyObject * 817db96d56Sopenharmony_ci_imp__fix_co_filename_impl(PyObject *module, PyCodeObject *code, 827db96d56Sopenharmony_ci PyObject *path); 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_cistatic PyObject * 857db96d56Sopenharmony_ci_imp__fix_co_filename(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 867db96d56Sopenharmony_ci{ 877db96d56Sopenharmony_ci PyObject *return_value = NULL; 887db96d56Sopenharmony_ci PyCodeObject *code; 897db96d56Sopenharmony_ci PyObject *path; 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("_fix_co_filename", nargs, 2, 2)) { 927db96d56Sopenharmony_ci goto exit; 937db96d56Sopenharmony_ci } 947db96d56Sopenharmony_ci if (!PyObject_TypeCheck(args[0], &PyCode_Type)) { 957db96d56Sopenharmony_ci _PyArg_BadArgument("_fix_co_filename", "argument 1", (&PyCode_Type)->tp_name, args[0]); 967db96d56Sopenharmony_ci goto exit; 977db96d56Sopenharmony_ci } 987db96d56Sopenharmony_ci code = (PyCodeObject *)args[0]; 997db96d56Sopenharmony_ci if (!PyUnicode_Check(args[1])) { 1007db96d56Sopenharmony_ci _PyArg_BadArgument("_fix_co_filename", "argument 2", "str", args[1]); 1017db96d56Sopenharmony_ci goto exit; 1027db96d56Sopenharmony_ci } 1037db96d56Sopenharmony_ci if (PyUnicode_READY(args[1]) == -1) { 1047db96d56Sopenharmony_ci goto exit; 1057db96d56Sopenharmony_ci } 1067db96d56Sopenharmony_ci path = args[1]; 1077db96d56Sopenharmony_ci return_value = _imp__fix_co_filename_impl(module, code, path); 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_ciexit: 1107db96d56Sopenharmony_ci return return_value; 1117db96d56Sopenharmony_ci} 1127db96d56Sopenharmony_ci 1137db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_create_builtin__doc__, 1147db96d56Sopenharmony_ci"create_builtin($module, spec, /)\n" 1157db96d56Sopenharmony_ci"--\n" 1167db96d56Sopenharmony_ci"\n" 1177db96d56Sopenharmony_ci"Create an extension module."); 1187db96d56Sopenharmony_ci 1197db96d56Sopenharmony_ci#define _IMP_CREATE_BUILTIN_METHODDEF \ 1207db96d56Sopenharmony_ci {"create_builtin", (PyCFunction)_imp_create_builtin, METH_O, _imp_create_builtin__doc__}, 1217db96d56Sopenharmony_ci 1227db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_extension_suffixes__doc__, 1237db96d56Sopenharmony_ci"extension_suffixes($module, /)\n" 1247db96d56Sopenharmony_ci"--\n" 1257db96d56Sopenharmony_ci"\n" 1267db96d56Sopenharmony_ci"Returns the list of file suffixes used to identify extension modules."); 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ci#define _IMP_EXTENSION_SUFFIXES_METHODDEF \ 1297db96d56Sopenharmony_ci {"extension_suffixes", (PyCFunction)_imp_extension_suffixes, METH_NOARGS, _imp_extension_suffixes__doc__}, 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_cistatic PyObject * 1327db96d56Sopenharmony_ci_imp_extension_suffixes_impl(PyObject *module); 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_cistatic PyObject * 1357db96d56Sopenharmony_ci_imp_extension_suffixes(PyObject *module, PyObject *Py_UNUSED(ignored)) 1367db96d56Sopenharmony_ci{ 1377db96d56Sopenharmony_ci return _imp_extension_suffixes_impl(module); 1387db96d56Sopenharmony_ci} 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_init_frozen__doc__, 1417db96d56Sopenharmony_ci"init_frozen($module, name, /)\n" 1427db96d56Sopenharmony_ci"--\n" 1437db96d56Sopenharmony_ci"\n" 1447db96d56Sopenharmony_ci"Initializes a frozen module."); 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci#define _IMP_INIT_FROZEN_METHODDEF \ 1477db96d56Sopenharmony_ci {"init_frozen", (PyCFunction)_imp_init_frozen, METH_O, _imp_init_frozen__doc__}, 1487db96d56Sopenharmony_ci 1497db96d56Sopenharmony_cistatic PyObject * 1507db96d56Sopenharmony_ci_imp_init_frozen_impl(PyObject *module, PyObject *name); 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_cistatic PyObject * 1537db96d56Sopenharmony_ci_imp_init_frozen(PyObject *module, PyObject *arg) 1547db96d56Sopenharmony_ci{ 1557db96d56Sopenharmony_ci PyObject *return_value = NULL; 1567db96d56Sopenharmony_ci PyObject *name; 1577db96d56Sopenharmony_ci 1587db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 1597db96d56Sopenharmony_ci _PyArg_BadArgument("init_frozen", "argument", "str", arg); 1607db96d56Sopenharmony_ci goto exit; 1617db96d56Sopenharmony_ci } 1627db96d56Sopenharmony_ci if (PyUnicode_READY(arg) == -1) { 1637db96d56Sopenharmony_ci goto exit; 1647db96d56Sopenharmony_ci } 1657db96d56Sopenharmony_ci name = arg; 1667db96d56Sopenharmony_ci return_value = _imp_init_frozen_impl(module, name); 1677db96d56Sopenharmony_ci 1687db96d56Sopenharmony_ciexit: 1697db96d56Sopenharmony_ci return return_value; 1707db96d56Sopenharmony_ci} 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_find_frozen__doc__, 1737db96d56Sopenharmony_ci"find_frozen($module, name, /, *, withdata=False)\n" 1747db96d56Sopenharmony_ci"--\n" 1757db96d56Sopenharmony_ci"\n" 1767db96d56Sopenharmony_ci"Return info about the corresponding frozen module (if there is one) or None.\n" 1777db96d56Sopenharmony_ci"\n" 1787db96d56Sopenharmony_ci"The returned info (a 2-tuple):\n" 1797db96d56Sopenharmony_ci"\n" 1807db96d56Sopenharmony_ci" * data the raw marshalled bytes\n" 1817db96d56Sopenharmony_ci" * is_package whether or not it is a package\n" 1827db96d56Sopenharmony_ci" * origname the originally frozen module\'s name, or None if not\n" 1837db96d56Sopenharmony_ci" a stdlib module (this will usually be the same as\n" 1847db96d56Sopenharmony_ci" the module\'s current name)"); 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci#define _IMP_FIND_FROZEN_METHODDEF \ 1877db96d56Sopenharmony_ci {"find_frozen", _PyCFunction_CAST(_imp_find_frozen), METH_FASTCALL|METH_KEYWORDS, _imp_find_frozen__doc__}, 1887db96d56Sopenharmony_ci 1897db96d56Sopenharmony_cistatic PyObject * 1907db96d56Sopenharmony_ci_imp_find_frozen_impl(PyObject *module, PyObject *name, int withdata); 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_cistatic PyObject * 1937db96d56Sopenharmony_ci_imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1947db96d56Sopenharmony_ci{ 1957db96d56Sopenharmony_ci PyObject *return_value = NULL; 1967db96d56Sopenharmony_ci static const char * const _keywords[] = {"", "withdata", NULL}; 1977db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "find_frozen", 0}; 1987db96d56Sopenharmony_ci PyObject *argsbuf[2]; 1997db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 2007db96d56Sopenharmony_ci PyObject *name; 2017db96d56Sopenharmony_ci int withdata = 0; 2027db96d56Sopenharmony_ci 2037db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 2047db96d56Sopenharmony_ci if (!args) { 2057db96d56Sopenharmony_ci goto exit; 2067db96d56Sopenharmony_ci } 2077db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 2087db96d56Sopenharmony_ci _PyArg_BadArgument("find_frozen", "argument 1", "str", args[0]); 2097db96d56Sopenharmony_ci goto exit; 2107db96d56Sopenharmony_ci } 2117db96d56Sopenharmony_ci if (PyUnicode_READY(args[0]) == -1) { 2127db96d56Sopenharmony_ci goto exit; 2137db96d56Sopenharmony_ci } 2147db96d56Sopenharmony_ci name = args[0]; 2157db96d56Sopenharmony_ci if (!noptargs) { 2167db96d56Sopenharmony_ci goto skip_optional_kwonly; 2177db96d56Sopenharmony_ci } 2187db96d56Sopenharmony_ci withdata = PyObject_IsTrue(args[1]); 2197db96d56Sopenharmony_ci if (withdata < 0) { 2207db96d56Sopenharmony_ci goto exit; 2217db96d56Sopenharmony_ci } 2227db96d56Sopenharmony_ciskip_optional_kwonly: 2237db96d56Sopenharmony_ci return_value = _imp_find_frozen_impl(module, name, withdata); 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ciexit: 2267db96d56Sopenharmony_ci return return_value; 2277db96d56Sopenharmony_ci} 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_get_frozen_object__doc__, 2307db96d56Sopenharmony_ci"get_frozen_object($module, name, data=None, /)\n" 2317db96d56Sopenharmony_ci"--\n" 2327db96d56Sopenharmony_ci"\n" 2337db96d56Sopenharmony_ci"Create a code object for a frozen module."); 2347db96d56Sopenharmony_ci 2357db96d56Sopenharmony_ci#define _IMP_GET_FROZEN_OBJECT_METHODDEF \ 2367db96d56Sopenharmony_ci {"get_frozen_object", _PyCFunction_CAST(_imp_get_frozen_object), METH_FASTCALL, _imp_get_frozen_object__doc__}, 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_cistatic PyObject * 2397db96d56Sopenharmony_ci_imp_get_frozen_object_impl(PyObject *module, PyObject *name, 2407db96d56Sopenharmony_ci PyObject *dataobj); 2417db96d56Sopenharmony_ci 2427db96d56Sopenharmony_cistatic PyObject * 2437db96d56Sopenharmony_ci_imp_get_frozen_object(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 2447db96d56Sopenharmony_ci{ 2457db96d56Sopenharmony_ci PyObject *return_value = NULL; 2467db96d56Sopenharmony_ci PyObject *name; 2477db96d56Sopenharmony_ci PyObject *dataobj = Py_None; 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("get_frozen_object", nargs, 1, 2)) { 2507db96d56Sopenharmony_ci goto exit; 2517db96d56Sopenharmony_ci } 2527db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 2537db96d56Sopenharmony_ci _PyArg_BadArgument("get_frozen_object", "argument 1", "str", args[0]); 2547db96d56Sopenharmony_ci goto exit; 2557db96d56Sopenharmony_ci } 2567db96d56Sopenharmony_ci if (PyUnicode_READY(args[0]) == -1) { 2577db96d56Sopenharmony_ci goto exit; 2587db96d56Sopenharmony_ci } 2597db96d56Sopenharmony_ci name = args[0]; 2607db96d56Sopenharmony_ci if (nargs < 2) { 2617db96d56Sopenharmony_ci goto skip_optional; 2627db96d56Sopenharmony_ci } 2637db96d56Sopenharmony_ci dataobj = args[1]; 2647db96d56Sopenharmony_ciskip_optional: 2657db96d56Sopenharmony_ci return_value = _imp_get_frozen_object_impl(module, name, dataobj); 2667db96d56Sopenharmony_ci 2677db96d56Sopenharmony_ciexit: 2687db96d56Sopenharmony_ci return return_value; 2697db96d56Sopenharmony_ci} 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_is_frozen_package__doc__, 2727db96d56Sopenharmony_ci"is_frozen_package($module, name, /)\n" 2737db96d56Sopenharmony_ci"--\n" 2747db96d56Sopenharmony_ci"\n" 2757db96d56Sopenharmony_ci"Returns True if the module name is of a frozen package."); 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ci#define _IMP_IS_FROZEN_PACKAGE_METHODDEF \ 2787db96d56Sopenharmony_ci {"is_frozen_package", (PyCFunction)_imp_is_frozen_package, METH_O, _imp_is_frozen_package__doc__}, 2797db96d56Sopenharmony_ci 2807db96d56Sopenharmony_cistatic PyObject * 2817db96d56Sopenharmony_ci_imp_is_frozen_package_impl(PyObject *module, PyObject *name); 2827db96d56Sopenharmony_ci 2837db96d56Sopenharmony_cistatic PyObject * 2847db96d56Sopenharmony_ci_imp_is_frozen_package(PyObject *module, PyObject *arg) 2857db96d56Sopenharmony_ci{ 2867db96d56Sopenharmony_ci PyObject *return_value = NULL; 2877db96d56Sopenharmony_ci PyObject *name; 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 2907db96d56Sopenharmony_ci _PyArg_BadArgument("is_frozen_package", "argument", "str", arg); 2917db96d56Sopenharmony_ci goto exit; 2927db96d56Sopenharmony_ci } 2937db96d56Sopenharmony_ci if (PyUnicode_READY(arg) == -1) { 2947db96d56Sopenharmony_ci goto exit; 2957db96d56Sopenharmony_ci } 2967db96d56Sopenharmony_ci name = arg; 2977db96d56Sopenharmony_ci return_value = _imp_is_frozen_package_impl(module, name); 2987db96d56Sopenharmony_ci 2997db96d56Sopenharmony_ciexit: 3007db96d56Sopenharmony_ci return return_value; 3017db96d56Sopenharmony_ci} 3027db96d56Sopenharmony_ci 3037db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_is_builtin__doc__, 3047db96d56Sopenharmony_ci"is_builtin($module, name, /)\n" 3057db96d56Sopenharmony_ci"--\n" 3067db96d56Sopenharmony_ci"\n" 3077db96d56Sopenharmony_ci"Returns True if the module name corresponds to a built-in module."); 3087db96d56Sopenharmony_ci 3097db96d56Sopenharmony_ci#define _IMP_IS_BUILTIN_METHODDEF \ 3107db96d56Sopenharmony_ci {"is_builtin", (PyCFunction)_imp_is_builtin, METH_O, _imp_is_builtin__doc__}, 3117db96d56Sopenharmony_ci 3127db96d56Sopenharmony_cistatic PyObject * 3137db96d56Sopenharmony_ci_imp_is_builtin_impl(PyObject *module, PyObject *name); 3147db96d56Sopenharmony_ci 3157db96d56Sopenharmony_cistatic PyObject * 3167db96d56Sopenharmony_ci_imp_is_builtin(PyObject *module, PyObject *arg) 3177db96d56Sopenharmony_ci{ 3187db96d56Sopenharmony_ci PyObject *return_value = NULL; 3197db96d56Sopenharmony_ci PyObject *name; 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 3227db96d56Sopenharmony_ci _PyArg_BadArgument("is_builtin", "argument", "str", arg); 3237db96d56Sopenharmony_ci goto exit; 3247db96d56Sopenharmony_ci } 3257db96d56Sopenharmony_ci if (PyUnicode_READY(arg) == -1) { 3267db96d56Sopenharmony_ci goto exit; 3277db96d56Sopenharmony_ci } 3287db96d56Sopenharmony_ci name = arg; 3297db96d56Sopenharmony_ci return_value = _imp_is_builtin_impl(module, name); 3307db96d56Sopenharmony_ci 3317db96d56Sopenharmony_ciexit: 3327db96d56Sopenharmony_ci return return_value; 3337db96d56Sopenharmony_ci} 3347db96d56Sopenharmony_ci 3357db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_is_frozen__doc__, 3367db96d56Sopenharmony_ci"is_frozen($module, name, /)\n" 3377db96d56Sopenharmony_ci"--\n" 3387db96d56Sopenharmony_ci"\n" 3397db96d56Sopenharmony_ci"Returns True if the module name corresponds to a frozen module."); 3407db96d56Sopenharmony_ci 3417db96d56Sopenharmony_ci#define _IMP_IS_FROZEN_METHODDEF \ 3427db96d56Sopenharmony_ci {"is_frozen", (PyCFunction)_imp_is_frozen, METH_O, _imp_is_frozen__doc__}, 3437db96d56Sopenharmony_ci 3447db96d56Sopenharmony_cistatic PyObject * 3457db96d56Sopenharmony_ci_imp_is_frozen_impl(PyObject *module, PyObject *name); 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_cistatic PyObject * 3487db96d56Sopenharmony_ci_imp_is_frozen(PyObject *module, PyObject *arg) 3497db96d56Sopenharmony_ci{ 3507db96d56Sopenharmony_ci PyObject *return_value = NULL; 3517db96d56Sopenharmony_ci PyObject *name; 3527db96d56Sopenharmony_ci 3537db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 3547db96d56Sopenharmony_ci _PyArg_BadArgument("is_frozen", "argument", "str", arg); 3557db96d56Sopenharmony_ci goto exit; 3567db96d56Sopenharmony_ci } 3577db96d56Sopenharmony_ci if (PyUnicode_READY(arg) == -1) { 3587db96d56Sopenharmony_ci goto exit; 3597db96d56Sopenharmony_ci } 3607db96d56Sopenharmony_ci name = arg; 3617db96d56Sopenharmony_ci return_value = _imp_is_frozen_impl(module, name); 3627db96d56Sopenharmony_ci 3637db96d56Sopenharmony_ciexit: 3647db96d56Sopenharmony_ci return return_value; 3657db96d56Sopenharmony_ci} 3667db96d56Sopenharmony_ci 3677db96d56Sopenharmony_ciPyDoc_STRVAR(_imp__frozen_module_names__doc__, 3687db96d56Sopenharmony_ci"_frozen_module_names($module, /)\n" 3697db96d56Sopenharmony_ci"--\n" 3707db96d56Sopenharmony_ci"\n" 3717db96d56Sopenharmony_ci"Returns the list of available frozen modules."); 3727db96d56Sopenharmony_ci 3737db96d56Sopenharmony_ci#define _IMP__FROZEN_MODULE_NAMES_METHODDEF \ 3747db96d56Sopenharmony_ci {"_frozen_module_names", (PyCFunction)_imp__frozen_module_names, METH_NOARGS, _imp__frozen_module_names__doc__}, 3757db96d56Sopenharmony_ci 3767db96d56Sopenharmony_cistatic PyObject * 3777db96d56Sopenharmony_ci_imp__frozen_module_names_impl(PyObject *module); 3787db96d56Sopenharmony_ci 3797db96d56Sopenharmony_cistatic PyObject * 3807db96d56Sopenharmony_ci_imp__frozen_module_names(PyObject *module, PyObject *Py_UNUSED(ignored)) 3817db96d56Sopenharmony_ci{ 3827db96d56Sopenharmony_ci return _imp__frozen_module_names_impl(module); 3837db96d56Sopenharmony_ci} 3847db96d56Sopenharmony_ci 3857db96d56Sopenharmony_ciPyDoc_STRVAR(_imp__override_frozen_modules_for_tests__doc__, 3867db96d56Sopenharmony_ci"_override_frozen_modules_for_tests($module, override, /)\n" 3877db96d56Sopenharmony_ci"--\n" 3887db96d56Sopenharmony_ci"\n" 3897db96d56Sopenharmony_ci"(internal-only) Override PyConfig.use_frozen_modules.\n" 3907db96d56Sopenharmony_ci"\n" 3917db96d56Sopenharmony_ci"(-1: \"off\", 1: \"on\", 0: no override)\n" 3927db96d56Sopenharmony_ci"See frozen_modules() in Lib/test/support/import_helper.py."); 3937db96d56Sopenharmony_ci 3947db96d56Sopenharmony_ci#define _IMP__OVERRIDE_FROZEN_MODULES_FOR_TESTS_METHODDEF \ 3957db96d56Sopenharmony_ci {"_override_frozen_modules_for_tests", (PyCFunction)_imp__override_frozen_modules_for_tests, METH_O, _imp__override_frozen_modules_for_tests__doc__}, 3967db96d56Sopenharmony_ci 3977db96d56Sopenharmony_cistatic PyObject * 3987db96d56Sopenharmony_ci_imp__override_frozen_modules_for_tests_impl(PyObject *module, int override); 3997db96d56Sopenharmony_ci 4007db96d56Sopenharmony_cistatic PyObject * 4017db96d56Sopenharmony_ci_imp__override_frozen_modules_for_tests(PyObject *module, PyObject *arg) 4027db96d56Sopenharmony_ci{ 4037db96d56Sopenharmony_ci PyObject *return_value = NULL; 4047db96d56Sopenharmony_ci int override; 4057db96d56Sopenharmony_ci 4067db96d56Sopenharmony_ci override = _PyLong_AsInt(arg); 4077db96d56Sopenharmony_ci if (override == -1 && PyErr_Occurred()) { 4087db96d56Sopenharmony_ci goto exit; 4097db96d56Sopenharmony_ci } 4107db96d56Sopenharmony_ci return_value = _imp__override_frozen_modules_for_tests_impl(module, override); 4117db96d56Sopenharmony_ci 4127db96d56Sopenharmony_ciexit: 4137db96d56Sopenharmony_ci return return_value; 4147db96d56Sopenharmony_ci} 4157db96d56Sopenharmony_ci 4167db96d56Sopenharmony_ci#if defined(HAVE_DYNAMIC_LOADING) 4177db96d56Sopenharmony_ci 4187db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_create_dynamic__doc__, 4197db96d56Sopenharmony_ci"create_dynamic($module, spec, file=<unrepresentable>, /)\n" 4207db96d56Sopenharmony_ci"--\n" 4217db96d56Sopenharmony_ci"\n" 4227db96d56Sopenharmony_ci"Create an extension module."); 4237db96d56Sopenharmony_ci 4247db96d56Sopenharmony_ci#define _IMP_CREATE_DYNAMIC_METHODDEF \ 4257db96d56Sopenharmony_ci {"create_dynamic", _PyCFunction_CAST(_imp_create_dynamic), METH_FASTCALL, _imp_create_dynamic__doc__}, 4267db96d56Sopenharmony_ci 4277db96d56Sopenharmony_cistatic PyObject * 4287db96d56Sopenharmony_ci_imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file); 4297db96d56Sopenharmony_ci 4307db96d56Sopenharmony_cistatic PyObject * 4317db96d56Sopenharmony_ci_imp_create_dynamic(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 4327db96d56Sopenharmony_ci{ 4337db96d56Sopenharmony_ci PyObject *return_value = NULL; 4347db96d56Sopenharmony_ci PyObject *spec; 4357db96d56Sopenharmony_ci PyObject *file = NULL; 4367db96d56Sopenharmony_ci 4377db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("create_dynamic", nargs, 1, 2)) { 4387db96d56Sopenharmony_ci goto exit; 4397db96d56Sopenharmony_ci } 4407db96d56Sopenharmony_ci spec = args[0]; 4417db96d56Sopenharmony_ci if (nargs < 2) { 4427db96d56Sopenharmony_ci goto skip_optional; 4437db96d56Sopenharmony_ci } 4447db96d56Sopenharmony_ci file = args[1]; 4457db96d56Sopenharmony_ciskip_optional: 4467db96d56Sopenharmony_ci return_value = _imp_create_dynamic_impl(module, spec, file); 4477db96d56Sopenharmony_ci 4487db96d56Sopenharmony_ciexit: 4497db96d56Sopenharmony_ci return return_value; 4507db96d56Sopenharmony_ci} 4517db96d56Sopenharmony_ci 4527db96d56Sopenharmony_ci#endif /* defined(HAVE_DYNAMIC_LOADING) */ 4537db96d56Sopenharmony_ci 4547db96d56Sopenharmony_ci#if defined(HAVE_DYNAMIC_LOADING) 4557db96d56Sopenharmony_ci 4567db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_exec_dynamic__doc__, 4577db96d56Sopenharmony_ci"exec_dynamic($module, mod, /)\n" 4587db96d56Sopenharmony_ci"--\n" 4597db96d56Sopenharmony_ci"\n" 4607db96d56Sopenharmony_ci"Initialize an extension module."); 4617db96d56Sopenharmony_ci 4627db96d56Sopenharmony_ci#define _IMP_EXEC_DYNAMIC_METHODDEF \ 4637db96d56Sopenharmony_ci {"exec_dynamic", (PyCFunction)_imp_exec_dynamic, METH_O, _imp_exec_dynamic__doc__}, 4647db96d56Sopenharmony_ci 4657db96d56Sopenharmony_cistatic int 4667db96d56Sopenharmony_ci_imp_exec_dynamic_impl(PyObject *module, PyObject *mod); 4677db96d56Sopenharmony_ci 4687db96d56Sopenharmony_cistatic PyObject * 4697db96d56Sopenharmony_ci_imp_exec_dynamic(PyObject *module, PyObject *mod) 4707db96d56Sopenharmony_ci{ 4717db96d56Sopenharmony_ci PyObject *return_value = NULL; 4727db96d56Sopenharmony_ci int _return_value; 4737db96d56Sopenharmony_ci 4747db96d56Sopenharmony_ci _return_value = _imp_exec_dynamic_impl(module, mod); 4757db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 4767db96d56Sopenharmony_ci goto exit; 4777db96d56Sopenharmony_ci } 4787db96d56Sopenharmony_ci return_value = PyLong_FromLong((long)_return_value); 4797db96d56Sopenharmony_ci 4807db96d56Sopenharmony_ciexit: 4817db96d56Sopenharmony_ci return return_value; 4827db96d56Sopenharmony_ci} 4837db96d56Sopenharmony_ci 4847db96d56Sopenharmony_ci#endif /* defined(HAVE_DYNAMIC_LOADING) */ 4857db96d56Sopenharmony_ci 4867db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_exec_builtin__doc__, 4877db96d56Sopenharmony_ci"exec_builtin($module, mod, /)\n" 4887db96d56Sopenharmony_ci"--\n" 4897db96d56Sopenharmony_ci"\n" 4907db96d56Sopenharmony_ci"Initialize a built-in module."); 4917db96d56Sopenharmony_ci 4927db96d56Sopenharmony_ci#define _IMP_EXEC_BUILTIN_METHODDEF \ 4937db96d56Sopenharmony_ci {"exec_builtin", (PyCFunction)_imp_exec_builtin, METH_O, _imp_exec_builtin__doc__}, 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_cistatic int 4967db96d56Sopenharmony_ci_imp_exec_builtin_impl(PyObject *module, PyObject *mod); 4977db96d56Sopenharmony_ci 4987db96d56Sopenharmony_cistatic PyObject * 4997db96d56Sopenharmony_ci_imp_exec_builtin(PyObject *module, PyObject *mod) 5007db96d56Sopenharmony_ci{ 5017db96d56Sopenharmony_ci PyObject *return_value = NULL; 5027db96d56Sopenharmony_ci int _return_value; 5037db96d56Sopenharmony_ci 5047db96d56Sopenharmony_ci _return_value = _imp_exec_builtin_impl(module, mod); 5057db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 5067db96d56Sopenharmony_ci goto exit; 5077db96d56Sopenharmony_ci } 5087db96d56Sopenharmony_ci return_value = PyLong_FromLong((long)_return_value); 5097db96d56Sopenharmony_ci 5107db96d56Sopenharmony_ciexit: 5117db96d56Sopenharmony_ci return return_value; 5127db96d56Sopenharmony_ci} 5137db96d56Sopenharmony_ci 5147db96d56Sopenharmony_ciPyDoc_STRVAR(_imp_source_hash__doc__, 5157db96d56Sopenharmony_ci"source_hash($module, /, key, source)\n" 5167db96d56Sopenharmony_ci"--\n" 5177db96d56Sopenharmony_ci"\n"); 5187db96d56Sopenharmony_ci 5197db96d56Sopenharmony_ci#define _IMP_SOURCE_HASH_METHODDEF \ 5207db96d56Sopenharmony_ci {"source_hash", _PyCFunction_CAST(_imp_source_hash), METH_FASTCALL|METH_KEYWORDS, _imp_source_hash__doc__}, 5217db96d56Sopenharmony_ci 5227db96d56Sopenharmony_cistatic PyObject * 5237db96d56Sopenharmony_ci_imp_source_hash_impl(PyObject *module, long key, Py_buffer *source); 5247db96d56Sopenharmony_ci 5257db96d56Sopenharmony_cistatic PyObject * 5267db96d56Sopenharmony_ci_imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 5277db96d56Sopenharmony_ci{ 5287db96d56Sopenharmony_ci PyObject *return_value = NULL; 5297db96d56Sopenharmony_ci static const char * const _keywords[] = {"key", "source", NULL}; 5307db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "source_hash", 0}; 5317db96d56Sopenharmony_ci PyObject *argsbuf[2]; 5327db96d56Sopenharmony_ci long key; 5337db96d56Sopenharmony_ci Py_buffer source = {NULL, NULL}; 5347db96d56Sopenharmony_ci 5357db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 2, 0, argsbuf); 5367db96d56Sopenharmony_ci if (!args) { 5377db96d56Sopenharmony_ci goto exit; 5387db96d56Sopenharmony_ci } 5397db96d56Sopenharmony_ci key = PyLong_AsLong(args[0]); 5407db96d56Sopenharmony_ci if (key == -1 && PyErr_Occurred()) { 5417db96d56Sopenharmony_ci goto exit; 5427db96d56Sopenharmony_ci } 5437db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[1], &source, PyBUF_SIMPLE) != 0) { 5447db96d56Sopenharmony_ci goto exit; 5457db96d56Sopenharmony_ci } 5467db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&source, 'C')) { 5477db96d56Sopenharmony_ci _PyArg_BadArgument("source_hash", "argument 'source'", "contiguous buffer", args[1]); 5487db96d56Sopenharmony_ci goto exit; 5497db96d56Sopenharmony_ci } 5507db96d56Sopenharmony_ci return_value = _imp_source_hash_impl(module, key, &source); 5517db96d56Sopenharmony_ci 5527db96d56Sopenharmony_ciexit: 5537db96d56Sopenharmony_ci /* Cleanup for source */ 5547db96d56Sopenharmony_ci if (source.obj) { 5557db96d56Sopenharmony_ci PyBuffer_Release(&source); 5567db96d56Sopenharmony_ci } 5577db96d56Sopenharmony_ci 5587db96d56Sopenharmony_ci return return_value; 5597db96d56Sopenharmony_ci} 5607db96d56Sopenharmony_ci 5617db96d56Sopenharmony_ci#ifndef _IMP_CREATE_DYNAMIC_METHODDEF 5627db96d56Sopenharmony_ci #define _IMP_CREATE_DYNAMIC_METHODDEF 5637db96d56Sopenharmony_ci#endif /* !defined(_IMP_CREATE_DYNAMIC_METHODDEF) */ 5647db96d56Sopenharmony_ci 5657db96d56Sopenharmony_ci#ifndef _IMP_EXEC_DYNAMIC_METHODDEF 5667db96d56Sopenharmony_ci #define _IMP_EXEC_DYNAMIC_METHODDEF 5677db96d56Sopenharmony_ci#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */ 5687db96d56Sopenharmony_ci/*[clinic end generated code: output=8d0f4305b1d0714b input=a9049054013a1b77]*/ 569