Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions subprojects/pyntcore/ntcore/src/NetworkTable.cpp.inl
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ cls_NetworkTable
return pyntcore::GetValueEntry(entry, defaultValue);
}, py::arg("key"), py::arg("value"))

// double overload must come before boolean version
.def("put_value", [](wpi::nt::NetworkTable *self, std::string_view key, double value) {
return self->PutValue(key, wpi::nt::Value::MakeDouble(value));
}, py::arg("key"), py::arg("value"), release_gil())
// bool before double: under pybind11 3.1, bool subclasses int and would
// otherwise bind the double overload (see robotpy/mostrobotpy#318).
.def("put_value", [](wpi::nt::NetworkTable *self, std::string_view key, bool value) {
return self->PutValue(key, wpi::nt::Value::MakeBoolean(value));
}, py::arg("key"), py::arg("value").noconvert(), release_gil())
.def("put_value", [](wpi::nt::NetworkTable *self, std::string_view key, double value) {
return self->PutValue(key, wpi::nt::Value::MakeDouble(value));
}, py::arg("key"), py::arg("value"), release_gil())
.def("put_value", [](wpi::nt::NetworkTable *self, std::string_view key, py::bytes value) {
auto v = wpi::nt::Value::MakeRaw(value.cast<std::span<const uint8_t>>());
Expand All @@ -35,12 +36,13 @@ cls_NetworkTable
return self->PutValue(key, v);
}, py::arg("key"), py::arg("value"))

// double overload must come before boolean version
.def("set_default_value", [](wpi::nt::NetworkTable *self, std::string_view key, double value) {
return self->SetDefaultValue(key, wpi::nt::Value::MakeDouble(value));
}, py::arg("key"), py::arg("value"), release_gil())
// bool before double: under pybind11 3.1, bool subclasses int and would
// otherwise bind the double overload (see robotpy/mostrobotpy#318).
.def("set_default_value", [](wpi::nt::NetworkTable *self, std::string_view key, bool value) {
return self->SetDefaultValue(key, wpi::nt::Value::MakeBoolean(value));
}, py::arg("key"), py::arg("value").noconvert(), release_gil())
.def("set_default_value", [](wpi::nt::NetworkTable *self, std::string_view key, double value) {
return self->SetDefaultValue(key, wpi::nt::Value::MakeDouble(value));
}, py::arg("key"), py::arg("value"), release_gil())
.def("set_default_value", [](wpi::nt::NetworkTable *self, std::string_view key, py::bytes value) {
auto v = wpi::nt::Value::MakeRaw(value.cast<std::span<const uint8_t>>());
Expand Down
18 changes: 10 additions & 8 deletions subprojects/pyntcore/ntcore/src/NetworkTableEntry.cpp.inl
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ cls_NetworkTableEntry
return pyntcore::ntvalue2py(v);
})

// double overload must come before boolean version
.def("set_value", [](wpi::nt::NetworkTableEntry *self, double value) {
return self->SetValue(wpi::nt::Value::MakeDouble(value));
}, py::arg("value"), release_gil())
// bool before double: under pybind11 3.1, bool subclasses int and would
// otherwise bind the double overload (see robotpy/mostrobotpy#318).
.def("set_value", [](wpi::nt::NetworkTableEntry *self, bool value) {
return self->SetValue(wpi::nt::Value::MakeBoolean(value));
}, py::arg("value").noconvert(), release_gil())
.def("set_value", [](wpi::nt::NetworkTableEntry *self, double value) {
return self->SetValue(wpi::nt::Value::MakeDouble(value));
}, py::arg("value"), release_gil())
.def("set_value", [](wpi::nt::NetworkTableEntry *self, py::bytes value) {
auto v = wpi::nt::Value::MakeRaw(value.cast<std::span<const uint8_t>>());
Expand All @@ -32,12 +33,13 @@ cls_NetworkTableEntry
return self->SetValue(pyntcore::py2ntvalue(value));
}, py::arg("value"))

// double overload must come before boolean version
.def("set_default_value", [](wpi::nt::NetworkTableEntry *self, double value) {
return self->SetDefaultValue(wpi::nt::Value::MakeDouble(value));
}, py::arg("value"), release_gil())
// bool before double: under pybind11 3.1, bool subclasses int and would
// otherwise bind the double overload (see robotpy/mostrobotpy#318).
.def("set_default_value", [](wpi::nt::NetworkTableEntry *self, bool value) {
return self->SetDefaultValue(wpi::nt::Value::MakeBoolean(value));
}, py::arg("value").noconvert(), release_gil())
.def("set_default_value", [](wpi::nt::NetworkTableEntry *self, double value) {
return self->SetDefaultValue(wpi::nt::Value::MakeDouble(value));
}, py::arg("value"), release_gil())
.def("set_default_value", [](wpi::nt::NetworkTableEntry *self, py::bytes value) {
auto v = wpi::nt::Value::MakeRaw(value.cast<std::span<const uint8_t>>());
Expand Down
Loading