Skip to content

Commit 3cb2a9c

Browse files
committed
module qualified class names
1 parent e0a1216 commit 3cb2a9c

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

FrameworkTypes.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2016-2016 Josh Blum
1+
// Copyright (c) 2016-2017 Josh Blum
22
// SPDX-License-Identifier: BSL-1.0
33

44
#include <Pothos/Plugin.hpp>
@@ -39,5 +39,5 @@ pothos_static_block(pothosRegisterNumpyBufferConversions)
3939
Pothos::PluginRegistry::addCall("/proxy/converters/python/buffer_chunk_to_numpy_array",
4040
&convertBufferChunkToNumpyArray);
4141
Pothos::PluginRegistry::add("/proxy/converters/python/numpy_array_to_buffer_chunk",
42-
Pothos::ProxyConvertPair("ndarray", &convertNumpyArrayToBufferChunk));
42+
Pothos::ProxyConvertPair("numpy.ndarray", &convertNumpyArrayToBufferChunk));
4343
}

PythonHandle.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2013-2016 Josh Blum
1+
// Copyright (c) 2013-2017 Josh Blum
22
// SPDX-License-Identifier: BSL-1.0
33

44
#include <Poco/Format.h>
@@ -58,9 +58,21 @@ std::string PythonProxyHandle::toString(void) const
5858
std::string PythonProxyHandle::getClassName(void) const
5959
{
6060
PyGilStateLock lock;
61-
PyObjectRef type(PyObject_Type(obj), REF_NEW);
62-
PyObjectRef name(PyObject_GetAttrString(type.obj, "__name__"), REF_NEW);
63-
return PyObjToStdString(name.obj);
61+
62+
PyObjectRef cls(PyObject_GetAttrString(obj, "__class__"), REF_NEW);
63+
PyObjectRef clsName(PyObject_GetAttrString(cls.obj, "__name__"), REF_NEW);
64+
PyObjectRef modName(PyObject_GetAttrString(cls.obj, "__module__"), REF_NEW);
65+
66+
const auto clsNameStr = PyObjToStdString(clsName.obj);
67+
const auto modNameStr = PyObjToStdString(modName.obj);
68+
69+
#if PY_MAJOR_VERSION >= 3
70+
if (modNameStr == "builtins") return clsNameStr;
71+
#else
72+
if (modNameStr == "__builtin__") return clsNameStr;
73+
#endif
74+
75+
return modNameStr + "." + clsNameStr;
6476
}
6577

6678
Pothos::Proxy PythonProxyHandle::call(const std::string &name, const Pothos::Proxy *args, const size_t numArgs)

0 commit comments

Comments
 (0)