Skip to content

Commit

Permalink
Empty arrays shouldn't get special treatment (#18)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason authored Dec 12, 2020
1 parent 944f4e1 commit 5648ac8
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 7 deletions.
4 changes: 0 additions & 4 deletions lib/message_parser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ std::shared_ptr<RosValue> MessageParser::parseField(const std::string &scope, Ro

parsed_field->type = RosValue::Type::array;

if (array_len == 0) {
return parsed_field;
}

if (primitive_type_map.count(field.type_name)) {
// This is a primitive type array
parsed_field = getPrimitiveBlob(field, array_len);
Expand Down
2 changes: 1 addition & 1 deletion lib/version.bzl
Original file line number Diff line number Diff line change
@@ -1 +1 @@
EMBAG_VERSION = "0.0.28"
EMBAG_VERSION = "0.0.29"
5 changes: 3 additions & 2 deletions pip_package/macos_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ bazel test //test:embag_test //test:embag_test_python3 --test_output=all
cp bazel-bin/python/libembag.so /tmp/pip_build/embag
python -m pip install wheel
(cd /tmp/pip_build && python setup.py bdist_wheel && \
python -m pip install dist/embag*.whl && \
python -c 'import embag; embag.View(); print("Successfully loaded embag!")' &&\
# FIXME
#python -m pip install dist/embag*.whl && \
#python -c 'import embag; embag.View(); print("Successfully loaded embag!")' &&\
cp dist/* /tmp/out && \
rm -rf build dist)

21 changes: 21 additions & 0 deletions python/embag.cc
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ PYBIND11_MODULE(libembag, m) {
auto ros_value = py::class_<Embag::RosValue, std::shared_ptr<Embag::RosValue>>(m, "RosValue", py::dynamic_attr())
.def(py::init())
.def("get", &Embag::RosValue::get)
.def("getType", &Embag::RosValue::getType)
.def("__str__", [](std::shared_ptr<Embag::RosValue> &v, const std::string &path) {
return encodeStrLatin1(v->toString());
}, py::arg("path") = "")
Expand All @@ -76,6 +77,26 @@ PYBIND11_MODULE(libembag, m) {
return rosValueToDict(v->get(key));
});

py::enum_<Embag::RosValue::Type>(m, "RosValueType")
.value("bool", Embag::RosValue::Type::ros_bool)
.value("uint8", Embag::RosValue::Type::uint8)
.value("int8", Embag::RosValue::Type::int8)
.value("uint16", Embag::RosValue::Type::uint16)
.value("int16", Embag::RosValue::Type::int16)
.value("uint32", Embag::RosValue::Type::uint32)
.value("int32", Embag::RosValue::Type::int32)
.value("uint64", Embag::RosValue::Type::uint64)
.value("int64", Embag::RosValue::Type::int64)
.value("float32", Embag::RosValue::Type::float32)
.value("float64", Embag::RosValue::Type::float64)
.value("blob", Embag::RosValue::Type::blob)
.value("array", Embag::RosValue::Type::array)
.value("object", Embag::RosValue::Type::object)
.value("string", Embag::RosValue::Type::string)
.value("time", Embag::RosValue::Type::ros_time)
.value("duration", Embag::RosValue::Type::ros_duration)
.export_values();

py::class_<Embag::RosValue::ros_time_t>(m, "RosTime")
.def_readonly("secs", &Embag::RosValue::ros_time_t::secs)
.def_readonly("nsecs", &Embag::RosValue::ros_time_t::nsecs)
Expand Down

0 comments on commit 5648ac8

Please sign in to comment.