mirror of
https://github.com/python/cpython.git
synced 2025-10-17 04:08:28 +00:00
gh-128911: Add PyImport_ImportModuleAttr() function (#128912)
Add PyImport_ImportModuleAttr() and PyImport_ImportModuleAttrString() functions. * Add unit tests. * Replace _PyImport_GetModuleAttr() with PyImport_ImportModuleAttr(). * Replace _PyImport_GetModuleAttrString() with PyImport_ImportModuleAttrString(). * Remove "pycore_import.h" includes, no longer needed.
This commit is contained in:
parent
f927204f64
commit
3bebe46d34
40 changed files with 194 additions and 56 deletions
|
@ -4111,7 +4111,7 @@ init_zipimport(PyThreadState *tstate, int verbose)
|
|||
PySys_WriteStderr("# installing zipimport hook\n");
|
||||
}
|
||||
|
||||
PyObject *zipimporter = _PyImport_GetModuleAttrString("zipimport", "zipimporter");
|
||||
PyObject *zipimporter = PyImport_ImportModuleAttrString("zipimport", "zipimporter");
|
||||
if (zipimporter == NULL) {
|
||||
_PyErr_Clear(tstate); /* No zipimporter object -- okay */
|
||||
if (verbose) {
|
||||
|
@ -4174,7 +4174,7 @@ _PyImport_FiniExternal(PyInterpreterState *interp)
|
|||
/******************/
|
||||
|
||||
PyObject *
|
||||
_PyImport_GetModuleAttr(PyObject *modname, PyObject *attrname)
|
||||
PyImport_ImportModuleAttr(PyObject *modname, PyObject *attrname)
|
||||
{
|
||||
PyObject *mod = PyImport_Import(modname);
|
||||
if (mod == NULL) {
|
||||
|
@ -4186,7 +4186,7 @@ _PyImport_GetModuleAttr(PyObject *modname, PyObject *attrname)
|
|||
}
|
||||
|
||||
PyObject *
|
||||
_PyImport_GetModuleAttrString(const char *modname, const char *attrname)
|
||||
PyImport_ImportModuleAttrString(const char *modname, const char *attrname)
|
||||
{
|
||||
PyObject *pmodname = PyUnicode_FromString(modname);
|
||||
if (pmodname == NULL) {
|
||||
|
@ -4197,7 +4197,7 @@ _PyImport_GetModuleAttrString(const char *modname, const char *attrname)
|
|||
Py_DECREF(pmodname);
|
||||
return NULL;
|
||||
}
|
||||
PyObject *result = _PyImport_GetModuleAttr(pmodname, pattrname);
|
||||
PyObject *result = PyImport_ImportModuleAttr(pmodname, pattrname);
|
||||
Py_DECREF(pattrname);
|
||||
Py_DECREF(pmodname);
|
||||
return result;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue