summaryrefslogtreecommitdiffstats
path: root/Python/clinic
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2021-10-05 17:26:37 (GMT)
committerGitHub <noreply@github.com>2021-10-05 17:26:37 (GMT)
commit08285d563e64c179a56ab2f952345b3dbcdb54f3 (patch)
tree7bc95d1865dcb6c29f835044e678fd9ebbe85904 /Python/clinic
parent444429142c88b7e22117a6e14c95d1fbdd638c60 (diff)
downloadcpython-08285d563e64c179a56ab2f952345b3dbcdb54f3.zip
cpython-08285d563e64c179a56ab2f952345b3dbcdb54f3.tar.gz
cpython-08285d563e64c179a56ab2f952345b3dbcdb54f3.tar.bz2
bpo-45020: Identify which frozen modules are actually aliases. (gh-28655)
In the list of generated frozen modules at the top of Tools/scripts/freeze_modules.py, you will find that some of the modules have a different name than the module (or .py file) that is actually frozen. Let's call each case an "alias". Aliases do not come into play until we get to the (generated) list of modules in Python/frozen.c. (The tool for freezing modules, Programs/_freeze_module, is only concerned with the source file, not the module it will be used for.) Knowledge of which frozen modules are aliases (and the identity of the original module) normally isn't important. However, this information is valuable when we go to set __file__ on frozen stdlib modules. This change updates Tools/scripts/freeze_modules.py to map aliases to the original module name (or None if not a stdlib module) in Python/frozen.c. We also add a helper function in Python/import.c to look up a frozen module's alias and add the result of that function to the frozen info returned from find_frozen(). https://bugs.python.org/issue45020
Diffstat (limited to 'Python/clinic')
-rw-r--r--Python/clinic/import.c.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h
index 0973883..dfb59de 100644
--- a/Python/clinic/import.c.h
+++ b/Python/clinic/import.c.h
@@ -178,7 +178,10 @@ PyDoc_STRVAR(_imp_find_frozen__doc__,
"The returned info (a 2-tuple):\n"
"\n"
" * data the raw marshalled bytes\n"
-" * is_package whether or not it is a package");
+" * is_package whether or not it is a package\n"
+" * origname the originally frozen module\'s name, or None if not\n"
+" a stdlib module (this will usually be the same as\n"
+" the module\'s current name)");
#define _IMP_FIND_FROZEN_METHODDEF \
{"find_frozen", (PyCFunction)_imp_find_frozen, METH_O, _imp_find_frozen__doc__},
@@ -545,4 +548,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
-/*[clinic end generated code: output=a31e1c00653359ff input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8c8dd08158f9ac7c input=a9049054013a1b77]*/