Skip to content

Commit 0627d90

Browse files
committed
Implement C API functions PyModule_GetName, PyModule_GetNameObject.
1 parent 35c9fea commit 0627d90

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

graalpython/com.oracle.graal.python.cext/src/moduleobject.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,17 @@ void* PyModule_GetState(PyObject *m) {
142142
}
143143
return ((PyModuleObject *)m)->md_state;
144144
}
145+
146+
UPCALL_ID(PyModule_GetNameObject);
147+
PyObject* PyModule_GetNameObject(PyObject *m) {
148+
return UPCALL_CEXT_O(_jls_PyModule_GetNameObject, native_to_java(m));
149+
}
150+
151+
// partially taken from CPython "Objects/moduleobject.c"
152+
const char * PyModule_GetName(PyObject *m) {
153+
PyObject *name = PyModule_GetNameObject(m);
154+
if (name == NULL) {
155+
return NULL;
156+
}
157+
return PyUnicode_AsUTF8(name);
158+
}

graalpython/lib-graalpython/python_cext.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ def PyModule_NewObject(name):
112112
return moduletype(name)
113113

114114

115+
@may_raise
116+
def PyModule_GetNameObject(module_obj):
117+
return module_obj.__name__
118+
119+
115120
##################### DICT
116121

117122
def PyDict_New():

0 commit comments

Comments
 (0)