Skip to content

Commit 20ee2bb

Browse files
committed
move postInit for posix module into posix module
1 parent fecad9e commit 20ee2bb

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/Python3Core.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -429,10 +429,6 @@ public void postInitialize() {
429429

430430
loadFile(__BUILTINS_PATCHES__, PythonCore.getCoreHomeOrFail());
431431

432-
PythonModule os = lookupBuiltinModule("posix");
433-
Object environAttr = os.getAttribute("environ");
434-
((PDict) environAttr).setDictStorage(createEnvironDict().getDictStorage());
435-
436432
initialized = true;
437433
}
438434
}
@@ -639,16 +635,6 @@ private void loadFile(String s, String prefix) {
639635
callTarget.call(PArguments.withGlobals(mod));
640636
}
641637

642-
@TruffleBoundary
643-
private PDict createEnvironDict() {
644-
Map<String, String> getenv = System.getenv();
645-
PDict environ = factory.createDict();
646-
for (Entry<String, String> entry : getenv.entrySet()) {
647-
environ.setItem(factory.createBytes(entry.getKey().getBytes()), factory.createBytes(entry.getValue().getBytes()));
648-
}
649-
return environ;
650-
}
651-
652638
public PythonObjectFactory factory() {
653639
return factory;
654640
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PosixModuleBuiltins.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@
6666
import java.util.HashMap;
6767
import java.util.HashSet;
6868
import java.util.List;
69+
import java.util.Map;
70+
import java.util.Map.Entry;
6971
import java.util.Random;
7072
import java.util.Set;
7173
import java.util.concurrent.TimeUnit;
@@ -89,10 +91,12 @@
8991
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
9092
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemNode;
9193
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.ToByteArrayNode;
94+
import com.oracle.graal.python.builtins.objects.dict.PDict;
9295
import com.oracle.graal.python.builtins.objects.exception.OSErrorEnum;
9396
import com.oracle.graal.python.builtins.objects.floats.PFloat;
9497
import com.oracle.graal.python.builtins.objects.function.PKeyword;
9598
import com.oracle.graal.python.builtins.objects.ints.PInt;
99+
import com.oracle.graal.python.builtins.objects.module.PythonModule;
96100
import com.oracle.graal.python.builtins.objects.str.PString;
97101
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
98102
import com.oracle.graal.python.builtins.objects.type.PythonClass;
@@ -244,6 +248,22 @@ public void initialize(PythonCore core) {
244248
builtinConstants.put("environ", core.factory().createDict());
245249
}
246250

251+
@Override
252+
public void postInitialize(PythonCore core) {
253+
super.postInitialize(core);
254+
255+
// fill the environ dictionary with the current environment
256+
Map<String, String> getenv = System.getenv();
257+
PDict environ = core.factory().createDict();
258+
for (Entry<String, String> entry : getenv.entrySet()) {
259+
environ.setItem(core.factory().createBytes(entry.getKey().getBytes()), core.factory().createBytes(entry.getValue().getBytes()));
260+
}
261+
262+
PythonModule posix = core.lookupBuiltinModule("posix");
263+
Object environAttr = posix.getAttribute("environ");
264+
((PDict) environAttr).setDictStorage(environ.getDictStorage());
265+
}
266+
247267
@Builtin(name = "getcwd", fixedNumOfPositionalArgs = 0)
248268
@GenerateNodeFactory
249269
public abstract static class CwdNode extends PythonBuiltinNode {

0 commit comments

Comments
 (0)