Value.basetype in Python returns a Value's base type
This commit is contained in:
parent
ed9209cc27
commit
4a4ff9d4b2
1 changed files with 18 additions and 0 deletions
|
|
@ -47,6 +47,22 @@ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(set_string_overloads, set_string, 0, 2)
|
|||
|
||||
namespace {
|
||||
|
||||
PyObject * py_base_type(value_t& value) {
|
||||
if (value.is_boolean()) {
|
||||
return (PyObject *)&PyBool_Type;
|
||||
}
|
||||
else if (value.is_long()) {
|
||||
return (PyObject *)&PyInt_Type;
|
||||
}
|
||||
else if (value.is_string()) {
|
||||
return (PyObject *)&PyUnicode_Type;
|
||||
}
|
||||
else {
|
||||
object typeobj(object(value).attr("__class__"));
|
||||
return typeobj.ptr();
|
||||
}
|
||||
}
|
||||
|
||||
expr_t py_value_getattr(const value_t& value, const string& name)
|
||||
{
|
||||
if (value.is_scope()) {
|
||||
|
|
@ -305,6 +321,8 @@ void export_value()
|
|||
.def("label", &value_t::label)
|
||||
|
||||
.def("valid", &value_t::valid)
|
||||
|
||||
.def("basetype", py_base_type)
|
||||
;
|
||||
|
||||
scope().attr("NULL_VALUE") = NULL_VALUE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue