|
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