Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[humble] Expose py Reader metadata, improve rosbag2_py.BagMetadata usability (backport #1082) #1404

Open
wants to merge 1 commit into
base: humble
Choose a base branch
from

Conversation

mergify[bot]
Copy link

@mergify mergify bot commented Jun 24, 2023

This is an automatic backport of pull request #1082 done by Mergify.


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.com

…#1082)

* expose metadata for reader, fix metadata fields to yield rclpy.Time and rclpy.Duration values instead of datetime
* Provide default constructor arguments for rosbag2_py.BagMetadata
* Add tests for rosbag2_py Storage struct constructors, fixing found issues
* Expose all StorageFilter fields in py

Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
(cherry picked from commit c58d73c)
@mergify mergify bot requested a review from a team as a code owner June 24, 2023 02:11
@mergify mergify bot requested review from gbiggs and emersonknapp and removed request for a team June 24, 2023 02:11
@emersonknapp emersonknapp self-assigned this Jun 24, 2023
@MichaelOrlov MichaelOrlov changed the title expose py Reader metadata, improve rosbag2_py.BagMetadata usability (backport #1082) [humble] Expose py Reader metadata, improve rosbag2_py.BagMetadata usability (backport #1082) Jun 26, 2023
@MichaelOrlov
Copy link
Contributor

@ros-pull-request-builder retest this please

Copy link
Contributor

@MichaelOrlov MichaelOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HPR job failed with a compilation errors which needs to be addressed.

Errors from log. Click to roll down.
[ 23%] Building CXX object CMakeFiles/_storage.dir/src/rosbag2_py/_storage.cpp.o
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In function ‘void pybind11_init__storage(pybind11::module_&)’:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:119:67: error: ‘topics_regex’ is not a member of ‘rosbag2_storage::StorageFilter’
  119 |   .def_readwrite("topics_regex", &rosbag2_storage::StorageFilter::topics_regex)
      |                                                                   ^~~~~~~~~~~~
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:122:38: error: ‘topics_regex_to_exclude’ is not a member of ‘rosbag2_storage::StorageFilter’
  122 |     &rosbag2_storage::StorageFilter::topics_regex_to_exclude);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In lambda function:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:220:9: error: too many initializers for ‘rosbag2_storage::BagMetadata’
  220 |         };
      |         ^
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In function ‘void pybind11_init__storage(pybind11::module_&)’:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: error: no matching function for call to ‘init(pybind11_init__storage(pybind11::module_&)::<lambda(int, uint64_t, std::string, std::vector<std::__cxx11::basic_string<char> >, std::vector<rosbag2_storage::FileInformation>, pybind11::object, pybind11::object, uint64_t, std::vector<rosbag2_storage::TopicInformation>, std::string, std::string, std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >)>)’
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
In file included from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/pybind11.h:1690:68: note: candidate: ‘template<class ... Args> pybind11::detail::initimpl::constructor<Args ...> pybind11::init()’
 1690 | template <typename... Args> detail::initimpl::constructor<Args...> init() { return {}; }
      |                                                                    ^~~~
/usr/include/pybind11/pybind11.h:1690:68: note:   template argument deduction/substitution failed:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: note:   candidate expects 0 arguments, 1 provided
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
In file included from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/pybind11.h:1697:5: note: candidate: ‘template<class Func, class Ret> Ret pybind11::init(Func&&)’
 1697 | Ret init(Func &&f) { return {std::forward<Func>(f)}; }
      |     ^~~~
/usr/include/pybind11/pybind11.h:1697:5: note:   template argument deduction/substitution failed:
/usr/include/pybind11/pybind11.h:1702:5: note: candidate: ‘template<class CFunc, class AFunc, class Ret> Ret pybind11::init(CFunc&&, AFunc&&)’
 1702 | Ret init(CFunc &&c, AFunc &&a) {
      |     ^~~~
/usr/include/pybind11/pybind11.h:1702:5: note:   template argument deduction/substitution failed:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: note:   candidate expects 2 arguments, 1 provided
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:262:64: error: ‘custom_data’ is not a member of ‘rosbag2_storage::BagMetadata’
  262 |   .def_readwrite("custom_data", &rosbag2_storage::BagMetadata::custom_data)
      |                                                                ^~~~~~~~~~~
In file included from /usr/include/pybind11/pybind11.h:17,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/detail/init.h: In instantiation of ‘Class* pybind11::detail::initimpl::construct_or_initialize(Args&& ...) [with Class = rosbag2_storage::StorageFilter; Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; typename std::enable_if<(! std::is_constructible<_Tp, _Args>::value), int>::type <anonymous> = 0]’:
/usr/include/pybind11/detail/init.h:178:66:   required from ‘static void pybind11::detail::initimpl::constructor<Args>::execute(Class&, const Extra& ...) [with Class = pybind11::class_<rosbag2_storage::StorageFilter>; Extra = {pybind11::arg_v, pybind11::arg_v, pybind11::arg_v}; typename std::enable_if<(! Class::has_alias), int>::type <anonymous> = 0; Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
/usr/include/pybind11/pybind11.h:1448:21:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const pybind11::detail::initimpl::constructor<Args ...>&, const Extra& ...) [with Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; Extra = {pybind11::arg_v, pybind11::arg_v, pybind11::arg_v}; type_ = rosbag2_storage::StorageFilter; options = {}]’
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:113:7:   required from here
/usr/include/pybind11/detail/init.h:63:64: error: too many initializers for ‘rosbag2_storage::StorageFilter’
   63 | inline Class *construct_or_initialize(Args &&...args) { return new Class{std::forward<Args>(args)...}; }
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/_storage.dir/build.make:76: CMakeFiles/_storage.dir/src/rosbag2_py/_storage.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:228: CMakeFiles/_storage.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
--- stderr: rosbag2_py
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In function ‘void pybind11_init__storage(pybind11::module_&)’:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:119:67: error: ‘topics_regex’ is not a member of ‘rosbag2_storage::StorageFilter’
  119 |   .def_readwrite("topics_regex", &rosbag2_storage::StorageFilter::topics_regex)
      |                                                                   ^~~~~~~~~~~~
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:122:38: error: ‘topics_regex_to_exclude’ is not a member of ‘rosbag2_storage::StorageFilter’
  122 |     &rosbag2_storage::StorageFilter::topics_regex_to_exclude);
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In lambda function:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:220:9: error: too many initializers for ‘rosbag2_storage::BagMetadata’
  220 |         };
      |         ^
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp: In function ‘void pybind11_init__storage(pybind11::module_&)’:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: error: no matching function for call to ‘init(pybind11_init__storage(pybind11::module_&)::<lambda(int, uint64_t, std::string, std::vector<std::__cxx11::basic_string<char> >, std::vector<rosbag2_storage::FileInformation>, pybind11::object, pybind11::object, uint64_t, std::vector<rosbag2_storage::TopicInformation>, std::string, std::string, std::unordered_map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >)>)’
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
In file included from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/pybind11.h:1690:68: note: candidate: ‘template<class ... Args> pybind11::detail::initimpl::constructor<Args ...> pybind11::init()’
 1690 | template <typename... Args> detail::initimpl::constructor<Args...> init() { return {}; }
      |                                                                    ^~~~
/usr/include/pybind11/pybind11.h:1690:68: note:   template argument deduction/substitution failed:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: note:   candidate expects 0 arguments, 1 provided
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
In file included from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/pybind11.h:1697:5: note: candidate: ‘template<class Func, class Ret> Ret pybind11::init(Func&&)’
 1697 | Ret init(Func &&f) { return {std::forward<Func>(f)}; }
      |     ^~~~
/usr/include/pybind11/pybind11.h:1697:5: note:   template argument deduction/substitution failed:
/usr/include/pybind11/pybind11.h:1702:5: note: candidate: ‘template<class CFunc, class AFunc, class Ret> Ret pybind11::init(CFunc&&, AFunc&&)’
 1702 | Ret init(CFunc &&c, AFunc &&a) {
      |     ^~~~
/usr/include/pybind11/pybind11.h:1702:5: note:   template argument deduction/substitution failed:
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:192:19: note:   candidate expects 2 arguments, 1 provided
  192 |     pybind11::init(
      |     ~~~~~~~~~~~~~~^
  193 |       [](
      |       ~~~          
  194 |         int version,
      |         ~~~~~~~~~~~~
  195 |         uint64_t bag_size,
      |         ~~~~~~~~~~~~~~~~~~
  196 |         std::string storage_identifier,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197 |         std::vector<std::string> relative_file_paths,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  198 |         std::vector<rosbag2_storage::FileInformation> files,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  199 |         pybind11::object duration,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~
  200 |         pybind11::object starting_time,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201 |         uint64_t message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~
  202 |         std::vector<rosbag2_storage::TopicInformation> topics_with_message_count,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  203 |         std::string compression_format,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  204 |         std::string compression_mode,
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  205 |         std::unordered_map<std::string, std::string> custom_data)
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  206 |       {
      |       ~            
  207 |         return rosbag2_storage::BagMetadata{
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  208 |           version,
      |           ~~~~~~~~ 
  209 |           bag_size,
      |           ~~~~~~~~~
  210 |           storage_identifier,
      |           ~~~~~~~~~~~~~~~~~~~
  211 |           relative_file_paths,
      |           ~~~~~~~~~~~~~~~~~~~~
  212 |           files,
      |           ~~~~~~   
  213 |           from_rclpy_duration(duration),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214 |           from_rclpy_time(starting_time),
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  215 |           message_count,
      |           ~~~~~~~~~~~~~~
  216 |           topics_with_message_count,
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~
  217 |           compression_format,
      |           ~~~~~~~~~~~~~~~~~~~
  218 |           compression_mode,
      |           ~~~~~~~~~~~~~~~~~
  219 |           custom_data
      |           ~~~~~~~~~~~
  220 |         };
      |         ~~         
  221 |       }),
      |       ~~           
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:262:64: error: ‘custom_data’ is not a member of ‘rosbag2_storage::BagMetadata’
  262 |   .def_readwrite("custom_data", &rosbag2_storage::BagMetadata::custom_data)
      |                                                                ^~~~~~~~~~~
In file included from /usr/include/pybind11/pybind11.h:17,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/./pybind11.hpp:24,
                 from /tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:26:
/usr/include/pybind11/detail/init.h: In instantiation of ‘Class* pybind11::detail::initimpl::construct_or_initialize(Args&& ...) [with Class = rosbag2_storage::StorageFilter; Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; typename std::enable_if<(! std::is_constructible<_Tp, _Args>::value), int>::type <anonymous> = 0]’:
/usr/include/pybind11/detail/init.h:178:66:   required from ‘static void pybind11::detail::initimpl::constructor<Args>::execute(Class&, const Extra& ...) [with Class = pybind11::class_<rosbag2_storage::StorageFilter>; Extra = {pybind11::arg_v, pybind11::arg_v, pybind11::arg_v}; typename std::enable_if<(! Class::has_alias), int>::type <anonymous> = 0; Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
/usr/include/pybind11/pybind11.h:1448:21:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const pybind11::detail::initimpl::constructor<Args ...>&, const Extra& ...) [with Args = {std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}; Extra = {pybind11::arg_v, pybind11::arg_v, pybind11::arg_v}; type_ = rosbag2_storage::StorageFilter; options = {}]’
/tmp/ws/src/rosbag2/rosbag2_py/src/rosbag2_py/_storage.cpp:113:7:   required from here
/usr/include/pybind11/detail/init.h:63:64: error: too many initializers for ‘rosbag2_storage::StorageFilter’
   63 | inline Class *construct_or_initialize(Args &&...args) { return new Class{std::forward<Args>(args)...}; }
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/_storage.dir/build.make:76: CMakeFiles/_storage.dir/src/rosbag2_py/_storage.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:228: CMakeFiles/_storage.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---

@MichaelOrlov
Copy link
Contributor

@r7vme Could you please try to triage/fix CI failures in this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants