|
69 | 69 |
|
70 | 70 | import com.oracle.graal.python.PythonLanguage; |
71 | 71 | import com.oracle.graal.python.builtins.Python3Core; |
72 | | -import com.oracle.graal.python.builtins.modules.ImpModuleBuiltins; |
73 | 72 | import com.oracle.graal.python.builtins.modules.ctypes.CtypesModuleBuiltins.CtypesThreadState; |
74 | 73 | import com.oracle.graal.python.builtins.objects.PNone; |
75 | 74 | import com.oracle.graal.python.builtins.objects.PythonAbstractObject; |
|
94 | 93 | import com.oracle.graal.python.builtins.objects.frame.PFrame.Reference; |
95 | 94 | import com.oracle.graal.python.builtins.objects.function.PKeyword; |
96 | 95 | import com.oracle.graal.python.builtins.objects.list.PList; |
97 | | -import com.oracle.graal.python.builtins.objects.method.PMethod; |
98 | 96 | import com.oracle.graal.python.builtins.objects.module.PythonModule; |
99 | 97 | import com.oracle.graal.python.builtins.objects.str.PString; |
100 | 98 | import com.oracle.graal.python.builtins.objects.thread.PLock; |
101 | 99 | import com.oracle.graal.python.builtins.objects.tuple.PTuple; |
102 | | -import com.oracle.graal.python.lib.PyDictSetItem; |
103 | 100 | import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs; |
104 | 101 | import com.oracle.graal.python.nodes.SpecialAttributeNames; |
105 | 102 | import com.oracle.graal.python.nodes.SpecialMethodNames; |
106 | 103 | import com.oracle.graal.python.nodes.attributes.ReadAttributeFromObjectNode; |
107 | 104 | import com.oracle.graal.python.nodes.call.CallNode; |
108 | 105 | import com.oracle.graal.python.nodes.object.SetDictNode; |
| 106 | +import com.oracle.graal.python.nodes.statement.AbstractImportNode; |
109 | 107 | import com.oracle.graal.python.nodes.util.CastToJavaIntLossyNode; |
110 | 108 | import com.oracle.graal.python.runtime.AsyncHandler.AsyncAction; |
111 | 109 | import com.oracle.graal.python.runtime.exception.ExceptionUtils; |
|
149 | 147 | import com.oracle.truffle.llvm.api.Toolchain; |
150 | 148 |
|
151 | 149 | public final class PythonContext extends Python3Core { |
152 | | - private static final Source IMPORT_WARNINGS_SOURCE = Source.newBuilder(PythonLanguage.ID, "import warnings\n", "<internal>").internal(true).build(); |
153 | | - private static final Source FORCE_IMPORTS_SOURCE = Source.newBuilder(PythonLanguage.ID, "import site\n", "<internal>").internal(true).build(); |
154 | 150 | private static final TruffleLogger LOGGER = PythonLanguage.getLogger(PythonContext.class); |
155 | 151 | private volatile boolean finalizing; |
156 | 152 |
|
@@ -1182,24 +1178,12 @@ public void patch(Env newEnv) { |
1182 | 1178 | } |
1183 | 1179 |
|
1184 | 1180 | private void importSiteIfForced() { |
1185 | | - PythonModule siteModule; |
1186 | 1181 | if (getOption(PythonOptions.ForceImportSite)) { |
1187 | | - if (getOption(PythonOptions.PythonPath).isEmpty() && |
1188 | | - (siteModule = ImpModuleBuiltins.importFrozenModuleObject(this, "graalpython.site", true)) != null) { |
1189 | | - // assume we can use the frozen site module |
1190 | | - // TODO: rename graalpython.site again to just site when we upgrade to Python 3.10+ |
1191 | | - // or newer and remove this hack |
1192 | | - PyDictSetItem.getUncached().execute(null, getSysModules(), "site", siteModule); |
1193 | | - LOGGER.log(Level.FINE, () -> "import 'site' # <frozen>"); |
1194 | | - } else { |
1195 | | - CallTarget site = env.parsePublic(FORCE_IMPORTS_SOURCE); |
1196 | | - site.call(); |
1197 | | - } |
| 1182 | + AbstractImportNode.importModule("site"); |
1198 | 1183 | } |
1199 | 1184 | if (!getOption(PythonOptions.WarnOptions).isEmpty()) { |
1200 | 1185 | // we must force an import of the warnings module here if warnings were passed |
1201 | | - CallTarget site = env.parsePublic(IMPORT_WARNINGS_SOURCE); |
1202 | | - site.call(); |
| 1186 | + AbstractImportNode.importModule("warnings"); |
1203 | 1187 | } |
1204 | 1188 | if (getOption(PythonOptions.InputFilePath).isEmpty()) { |
1205 | 1189 | // When InputFilePath is set, this is handled by __graalpython__.run_path |
|
0 commit comments