diff --git a/subprojects/pyntcore/gen/NetworkTableEntry.yml b/subprojects/pyntcore/gen/NetworkTableEntry.yml index cb9e5887a..e1f340311 100644 --- a/subprojects/pyntcore/gen/NetworkTableEntry.yml +++ b/subprojects/pyntcore/gen/NetworkTableEntry.yml @@ -100,3 +100,7 @@ classes: GetTopic: operator==: operator!=: + inline_code: | + .def("__repr__", [](NetworkTableEntry self) { + return py::str("").format(self.GetName()); + }) diff --git a/subprojects/pyntcore/gen/Topic.yml b/subprojects/pyntcore/gen/Topic.yml index 335f9f80e..71216356b 100644 --- a/subprojects/pyntcore/gen/Topic.yml +++ b/subprojects/pyntcore/gen/Topic.yml @@ -44,6 +44,12 @@ classes: std::string_view, const PubSubOptions&: operator==: operator!=: + inline_code: | + .def("__repr__", [](py::handle self) { + py::object type_name = self.get_type().attr("__qualname__"); + std::string name = self.cast().GetName(); + return py::str("<{} {!r}>").format(type_name, name); + }) Subscriber: attributes: m_subHandle: @@ -59,6 +65,12 @@ classes: ignore: true NT_Subscriber: ignore: true + inline_code: | + .def("__repr__", [](py::handle self) { + py::object type_name = self.get_type().attr("__qualname__"); + auto topic = self.cast().GetTopic(); + return py::str("<{} {!r}>").format(type_name, topic.GetName()); + }) Publisher: attributes: m_pubHandle: @@ -72,3 +84,9 @@ classes: ignore: true NT_Publisher: ignore: true + inline_code: | + .def("__repr__", [](py::handle self) { + py::object type_name = self.get_type().attr("__qualname__"); + auto topic = self.cast().GetTopic(); + return py::str("<{} {!r}>").format(type_name, topic.GetName()); + }) diff --git a/subprojects/pyntcore/tests/test_entry.py b/subprojects/pyntcore/tests/test_entry.py index 4094e9c6a..514227519 100644 --- a/subprojects/pyntcore/tests/test_entry.py +++ b/subprojects/pyntcore/tests/test_entry.py @@ -3,6 +3,25 @@ # +def test_entry_repr(nt): + e = nt.getEntry("/k1") + assert repr(e) == "" + + +def test_topic_repr(nt): + topic = nt.getIntegerTopic("/int") + assert repr(topic) == "" + + pub = topic.publish() + assert repr(pub) == "" + + entry = topic.getEntry(0) + assert repr(entry) == "" + + generic_entry = topic.getGenericEntry() + assert repr(generic_entry) == "" + + def test_entry_string(nt): e = nt.getEntry("/k1") assert e.getString(None) is None