Skip to content

Commit 087455b

Browse files
committed
store the polyglot doc as docstring
1 parent b87a083 commit 087455b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,14 @@
5454
import com.oracle.graal.python.builtins.PythonBuiltins;
5555
import com.oracle.graal.python.builtins.objects.PNone;
5656
import com.oracle.graal.python.builtins.objects.function.PythonCallable;
57+
import com.oracle.graal.python.nodes.SpecialAttributeNames;
5758
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
59+
import com.oracle.graal.python.runtime.PythonContext;
60+
import com.oracle.graal.python.runtime.PythonCore;
61+
import com.oracle.graal.python.runtime.PythonOptions;
5862
import com.oracle.graal.python.runtime.exception.PythonErrorType;
5963
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
64+
import com.oracle.truffle.api.TruffleFile;
6065
import com.oracle.truffle.api.TruffleLanguage.Env;
6166
import com.oracle.truffle.api.dsl.Cached;
6267
import com.oracle.truffle.api.dsl.Fallback;
@@ -84,6 +89,23 @@ protected List<com.oracle.truffle.api.dsl.NodeFactory<? extends PythonBuiltinNod
8489
return InteropModuleBuiltinsFactory.getFactories();
8590
}
8691

92+
@Override
93+
public void initialize(PythonCore core) {
94+
super.initialize(core);
95+
96+
PythonContext context = core.getContext();
97+
Env env = context.getEnv();
98+
String coreHome = PythonOptions.getOption(context, PythonOptions.CoreHome);
99+
try {
100+
TruffleFile coreDir = env.getTruffleFile(coreHome);
101+
TruffleFile docDir = coreDir.resolveSibling("doc");
102+
if (docDir.exists() || (docDir = coreDir.getParent().resolveSibling("doc")).exists()) {
103+
builtinConstants.put(SpecialAttributeNames.__DOC__, new String(docDir.resolve("INTEROP.md").readAllBytes()));
104+
}
105+
} catch (SecurityException | IOException e) {
106+
}
107+
}
108+
87109
@Builtin(name = "import_value", minNumOfPositionalArgs = 1, keywordArguments = {"name"})
88110
@GenerateNodeFactory
89111
public abstract static class ImportNode extends PythonBuiltinNode {

0 commit comments

Comments
 (0)