diff --git a/pynesci/src/consumer/CMakeLists.txt b/pynesci/src/consumer/CMakeLists.txt
index 895260d4359579411b11bb9f8674b63838d8de89..de0783f26e71a2d21a2373505b3b6922c8788cb6 100644
--- a/pynesci/src/consumer/CMakeLists.txt
+++ b/pynesci/src/consumer/CMakeLists.txt
@@ -34,6 +34,6 @@ add_python_module(
HEADERS ${HEADERS}
PYTHON_SOURCES ${PYTHON_SOURCES}
INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}
- LINK_LIBRARIES nesci::consumer Boost::python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} Boost::disable_autolinking
+ LINK_LIBRARIES Boost::python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} Boost::disable_autolinking conduit nesci::nesci nesci::consumer
OUTPUT_DIRECTORY ${PYCONSUMER_OUTPUT_DIR}
)
diff --git a/pynesci/src/consumer/device_data_view.hpp b/pynesci/src/consumer/device_data_view.hpp
index 979bec0f43c4dcc49d1dc9bcef60d3e940aa5fe0..95872b1be8822199d79c2e3e70318bbe0f62bd3b 100644
--- a/pynesci/src/consumer/device_data_view.hpp
+++ b/pynesci/src/consumer/device_data_view.hpp
@@ -21,6 +21,7 @@
#include <string>
+#include "boost/python.hpp"
#include "nesci/consumer/device_data_view.hpp"
#include "pyconsumer.hpp"
#include "pynesci/suppress_warnings.hpp"
@@ -32,7 +33,7 @@ SUPPRESS_WARNINGS_BEGIN
void ExposeDeviceDataView() {
class_<nesci::consumer::DeviceDataView>("DeviceDataView",
- init<const conduit::Node&>())
+ init<const conduit::Node*>())
.def("HasName", &nesci::consumer::DeviceDataView::HasName)
.def("GetDeviceName", &nesci::consumer::DeviceDataView::GetName)
.def("GetDeviceType", &nesci::consumer::DeviceDataView::GetType);
diff --git a/pynesci/src/consumer/nest_multimeter_data_view.hpp b/pynesci/src/consumer/nest_multimeter_data_view.hpp
index 886c830d60922515fd0e0a354c5c8fe3cf1faa66..cfd3b7bff022f3bce7d8ace05f0f350036da3267 100644
--- a/pynesci/src/consumer/nest_multimeter_data_view.hpp
+++ b/pynesci/src/consumer/nest_multimeter_data_view.hpp
@@ -87,7 +87,7 @@ boost::python::list GetNestMultimeterFloatingPointAttributeValues(
void ExposeNestMultimeterDataView() {
class_<nesci::consumer::NestMultimeterDataView,
bases<nesci::consumer::DeviceDataView>>("NestMultimeterDataView",
- init<const conduit::Node&>())
+ init<const conduit::Node*>())
.def("IsValid", &nesci::consumer::NestMultimeterDataView::IsValid)
.def("GetTimestep", &nesci::consumer::NestMultimeterDataView::GetTimestep)
.def("GetNeuronIds",
diff --git a/pynesci/src/consumer/spike_detector_data_view.hpp b/pynesci/src/consumer/spike_detector_data_view.hpp
index e192e3e5c88f44285e82181b378a80819381cfba..f44c863f6946f9fa7c0dfe6db81ac14a07b2f1cb 100644
--- a/pynesci/src/consumer/spike_detector_data_view.hpp
+++ b/pynesci/src/consumer/spike_detector_data_view.hpp
@@ -30,35 +30,35 @@ namespace consumer {
SUPPRESS_WARNINGS_BEGIN
-boost::python::object IsSpikeDetectorValid(
- nesci::consumer::DeviceDataView* spike_detector) {
- return static_cast<boost::python::object>(spike_detector->IsValid());
-}
-
boost::python::list GetSpikeDetectorTimesteps(
- nesci::consumer::DeviceDataView* spike_detector) {
+ nesci::consumer::SpikeDetectorDataView* spike_detector) {
boost::python::list ret_val;
- for (const auto& data : spike_detector->GetTimesteps()) {
- ret_val.append(data);
+ const auto timesteps = spike_detector->GetTimesteps();
+ for (conduit::index_t i = 0, count = timesteps.number_of_elements();
+ i < count; ++i) {
+ ret_val.append(timesteps[i]);
}
return ret_val;
}
boost::python::list GetSpikeDetectorNeuronIds(
- nesci::consumer::DeviceDataView* spike_detector) {
+ nesci::consumer::SpikeDetectorDataView* spike_detector) {
boost::python::list ret_val;
- for (const auto& data : spike_detector->GetNeuronIds()) {
- ret_val.append(data);
+ const auto neuron_ids = spike_detector->GetNeuronIds();
+ for (conduit::index_t i = 0, count = neuron_ids.number_of_elements();
+ i < count; ++i) {
+ ret_val.append(neuron_ids[i]);
}
return ret_val;
}
void ExposeSpikeDetectorDataView() {
- class_<nesci::consumer::SpikeDetectorDataView>(
- "SpikeDetectorDataView", init<const conduit::Node & node>())
- .def("IsSpikeDetectorValid", &IsValid)
- .def("GetSpikeDetectorTimesteps", &GetTimesteps)
- .def("GetSpikeDetectorNeuronIds", &GetNeuronIds);
+ class_<nesci::consumer::SpikeDetectorDataView,
+ bases<nesci::consumer::DeviceDataView>>("SpikeDetectorDataView",
+ init<const conduit::Node*>())
+ .def("IsValid", &nesci::consumer::SpikeDetectorDataView::IsValid)
+ .def("GetTimesteps", &GetSpikeDetectorTimesteps)
+ .def("GetNeuronIds", &GetSpikeDetectorNeuronIds);
}
SUPPRESS_WARNINGS_END