Skip to content

Commit 00828fd

Browse files
cosminbascatimfel
authored andcommitted
able to import socket and socketserver modules
1 parent c2883f4 commit 00828fd

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,8 @@ public final class Python3Core implements PythonCore {
197197
"_locale",
198198
"_sre",
199199
"function",
200+
"select",
201+
"_socket",
200202
};
201203

202204
private final PythonBuiltins[] builtins;
@@ -270,6 +272,7 @@ private static final PythonBuiltins[] initializeBuiltins() {
270272
new SREModuleBuiltins(),
271273
new AstModuleBuiltins(),
272274
new SelectModuleBuiltins(),
275+
new SocketModuleBuiltins(),
273276
new SignalModuleBuiltins(),
274277
new TracebackBuiltins(),
275278
new GcModuleBuiltins(),

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,12 @@
4444

4545
import com.oracle.graal.python.builtins.Builtin;
4646
import com.oracle.graal.python.builtins.CoreFunctions;
47+
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
4748
import com.oracle.graal.python.builtins.PythonBuiltins;
4849
import com.oracle.graal.python.builtins.objects.PNone;
50+
import com.oracle.graal.python.builtins.objects.type.PythonClass;
4951
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5052
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
51-
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
5253
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
5354
import com.oracle.truffle.api.dsl.NodeFactory;
5455
import com.oracle.truffle.api.dsl.Specialization;
@@ -61,13 +62,13 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
6162
}
6263

6364
// socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
64-
@Builtin(name = "socket", minNumOfPositionalArgs = 0, maxNumOfPositionalArgs = 4, keywordArguments = {"family", "type", "proto", "fileno"})
65+
@Builtin(name = "socket", minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 5, keywordArguments = {"family", "type", "proto", "fileno"},
66+
constructsClass = PythonBuiltinClassType.PSocket)
6567
@GenerateNodeFactory
6668
public abstract static class SocketNode extends PythonBuiltinNode {
67-
@TruffleBoundary
6869
@Specialization
69-
Object socket(int family, int type, int proto, PNone fileno) {
70-
return factory().createSocket(family, type, proto);
70+
Object socket(PythonClass cls, int family, int type, int proto, PNone fileno) {
71+
return factory().createSocket(cls, family, type, proto);
7172
}
7273
}
7374
}

0 commit comments

Comments
 (0)