Zhen Ju
Zhen Ju
Or, maybe it would be better to skip the command override, just provide the `rclpy_register_component` helper, and put it in the `setup.py`: ```python3 ... setup(name='my_robot_app') # Pass a list like...
> Simply because Python needs to parse that file in order to extract the declared dependencies. I'm interested in this, is there any more detail about the mechanism? I would...
Thanks. Maybe I didn't make it clear. When saying 'register the python component', besides passing the entry_points parameter in setup.py, the component class's path also needs to be stored in...
> Installing a file from the `setup.py` logic is sufficient to add information to the ament resource index: see e.g. https://github.com/ament/ament_index/blob/e58791231898d575a48455f23f7980820a9356b7/ament_index_python/setup.py#L16-L17 which registers the package name. That's a good approach,...
From tooling or framework perspective, we should leave the simplicity to developers outside and solve the complexity inside, so providing Python Entry Point should be a preferable way. But after...
Agree, to fetch component info through entry point API, just call [importlib.metadata.entry_points](https://docs.python.org/3/library/importlib.metadata.html#entry-points) and pass 'rclpy_components' as group name. This should just search the python paths and get the refs to...
I've made an example according to the solution above: https://github.com/crystaldust/rclpy_composition_example/tree/composition-api Please try and see if it makes sense :)
Making the extension types and loaders entry points is a good idea! I'll restructure the code and make a PR to comment on.
@audrow Yes, this feature depends on #554 on rclpy. I'll make sure 554 is first merged, and then let's consider this one.