Skip to content

Commit 2e6c0e0

Browse files
committed
Define 'memoryview' a builtin type.
1 parent 6dc49d4 commit 2e6c0e0

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public enum PythonBuiltinClassType {
7272
PLongArrayIterator(com.oracle.graal.python.builtins.objects.iterator.PLongArrayIterator.class, "iterator"),
7373
PLongSequenceIterator(com.oracle.graal.python.builtins.objects.iterator.PLongSequenceIterator.class, "iterator"),
7474
PMappingproxy(com.oracle.graal.python.builtins.objects.mappingproxy.PMappingproxy.class, "mapping_proxy"),
75+
PMemoryView(com.oracle.graal.python.builtins.objects.memoryview.PMemoryView.class, "memoryview"),
7576
PMethod(com.oracle.graal.python.builtins.objects.method.PMethod.class, "method"),
7677
PNone(com.oracle.graal.python.builtins.objects.PNone.class, "NoneType"),
7778
PNotImplemented(com.oracle.graal.python.builtins.objects.PNotImplemented.class, "NotImplementedType"),

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import static com.oracle.graal.python.nodes.BuiltinNames.FROZENSET;
3636
import static com.oracle.graal.python.nodes.BuiltinNames.INT;
3737
import static com.oracle.graal.python.nodes.BuiltinNames.LIST;
38+
import static com.oracle.graal.python.nodes.BuiltinNames.MEMORYVIEW;
3839
import static com.oracle.graal.python.nodes.BuiltinNames.MODULE;
3940
import static com.oracle.graal.python.nodes.BuiltinNames.OBJECT;
4041
import static com.oracle.graal.python.nodes.BuiltinNames.RANGE;
@@ -103,6 +104,7 @@
103104
import com.oracle.graal.python.builtins.objects.list.PList;
104105
import com.oracle.graal.python.builtins.objects.mappingproxy.PMappingproxy;
105106
import com.oracle.graal.python.builtins.objects.memoryview.PBuffer;
107+
import com.oracle.graal.python.builtins.objects.memoryview.PMemoryView;
106108
import com.oracle.graal.python.builtins.objects.method.PBuiltinMethod;
107109
import com.oracle.graal.python.builtins.objects.method.PMethod;
108110
import com.oracle.graal.python.builtins.objects.module.PythonModule;
@@ -1597,4 +1599,14 @@ public PBuffer listObject(@SuppressWarnings("unused") Object cls, Object arg) {
15971599
}
15981600
}
15991601

1602+
// memoryview(obj)
1603+
@Builtin(name = MEMORYVIEW, fixedNumOfArguments = 2, constructsClass = PMemoryView.class)
1604+
@GenerateNodeFactory
1605+
public abstract static class MemoryViewNode extends PythonBuiltinNode {
1606+
@Specialization
1607+
public PMemoryView doGeneric(PythonClass cls, Object value) {
1608+
return factory().createMemoryView(cls, value);
1609+
}
1610+
}
1611+
16001612
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/memoryview/PMemoryView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
public class PMemoryView extends PythonBuiltinObject {
4747

48-
public PMemoryView(PythonClass cls) {
48+
public PMemoryView(PythonClass cls, Object obj) {
4949
super(cls);
5050
}
5151

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/object/PythonObjectFactory.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
import com.oracle.graal.python.builtins.objects.list.PList;
8585
import com.oracle.graal.python.builtins.objects.mappingproxy.PMappingproxy;
8686
import com.oracle.graal.python.builtins.objects.memoryview.PBuffer;
87+
import com.oracle.graal.python.builtins.objects.memoryview.PMemoryView;
8788
import com.oracle.graal.python.builtins.objects.method.PBuiltinMethod;
8889
import com.oracle.graal.python.builtins.objects.method.PMethod;
8990
import com.oracle.graal.python.builtins.objects.module.PythonModule;
@@ -333,6 +334,10 @@ public PythonNativeClass createNativeClassWrapper(Object object, PythonClass met
333334
return trace(new PythonNativeClass(object, metaClass, name, pythonClasses));
334335
}
335336

337+
public PMemoryView createMemoryView(PythonClass metaclass, Object value) {
338+
return trace(new PMemoryView(metaclass, value));
339+
}
340+
336341
public final PMethod createMethod(PythonClass cls, Object self, PFunction function) {
337342
return trace(new PMethod(cls, self, function));
338343
}

0 commit comments

Comments
 (0)