aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2020-11-19 15:14:27 +0100
committermichael-west <michael.west@ettus.com>2020-11-23 14:35:15 -0800
commita0721d79e49637ec3d2c4319e408a2d00d4c6877 (patch)
tree9424316d090968d3d97537c2050a668dbb530696 /host/lib
parent5cbcdd93d3e5e69aa8ebda13ad6b02085a3fb5f7 (diff)
downloaduhd-a0721d79e49637ec3d2c4319e408a2d00d4c6877.tar.gz
uhd-a0721d79e49637ec3d2c4319e408a2d00d4c6877.tar.bz2
uhd-a0721d79e49637ec3d2c4319e408a2d00d4c6877.zip
python: Improve access to device_addr_t
This makes two changes: - Add device_addr_t as a type that the Python property tree access can handle - Add a to_dict() call to device_addr_t (in Python) that will return a regular dictionary from a device_addr_t for a more Pythonic access.
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/property_tree_python.cpp5
-rw-r--r--host/lib/types/types_python.hpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/host/lib/property_tree_python.cpp b/host/lib/property_tree_python.cpp
index 0b7f18aa2..d1c242e01 100644
--- a/host/lib/property_tree_python.cpp
+++ b/host/lib/property_tree_python.cpp
@@ -6,6 +6,7 @@
#include "property_tree_python.hpp"
#include <uhd/property_tree.hpp>
+#include <uhd/types/device_addr.hpp>
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <string>
@@ -39,6 +40,7 @@ void export_property_tree(py::module& m)
export_property<double>(m, "double");
export_property<std::string>(m, "str");
export_property<bool>(m, "bool");
+ export_property<uhd::device_addr_t>(m, "device_addr");
py::class_<property_tree>(m, "property_tree")
.def("subtree", &property_tree::subtree, py::arg("path"))
@@ -56,6 +58,9 @@ void export_property_tree(py::module& m)
.def("access_bool",
&property_tree::access<bool>,
py::return_value_policy::reference)
+ .def("access_device_addr",
+ &property_tree::access<uhd::device_addr_t>,
+ py::return_value_policy::reference)
// End of types
;
}
diff --git a/host/lib/types/types_python.hpp b/host/lib/types/types_python.hpp
index 0e5bd3cdc..54d1a2188 100644
--- a/host/lib/types/types_python.hpp
+++ b/host/lib/types/types_python.hpp
@@ -43,7 +43,10 @@ void export_types(py::module& m)
// Methods
.def("__str__", &uhd::device_addr_t::to_pp_string)
.def("to_string", &uhd::device_addr_t::to_string)
- .def("to_pp_string", &uhd::device_addr_t::to_pp_string);
+ .def("to_pp_string", &uhd::device_addr_t::to_pp_string)
+ .def("to_dict", [](uhd::device_addr_t& self) {
+ return static_cast<std::map<std::string, std::string>>(self);
+ });
// This will allow functions in Python that take a device_addr to also take
// a string:
py::implicitly_convertible<std::string, uhd::device_addr_t>();