introduce ActionEndpointInfo to support "ros2 action info (-v)". - #1697
introduce ActionEndpointInfo to support "ros2 action info (-v)".#1697fujitatomoya wants to merge 3 commits into
Conversation
Signed-off-by: Tomoya Fujita <tomoya.fujita825@gmail.com>
|
Tick the box to add this pull request to the merge queue (same as
|
There was a problem hiding this comment.
Pull request overview
This PR extends rclpy graph introspection to support richer “action endpoint” queries (action clients/servers) needed for tooling like ros2 action info (-v), by adding a new aggregated ActionEndpointInfo model plus new pybind/C++ graph functions and Python Node APIs.
Changes:
- Added
ActionEndpointInfo(aggregating the 3 services + 2 topics that make up an action endpoint) and newNode.get_action_*_info_by_action()Python APIs. - Added new C++/pybind graph entry points to retrieve action client/server endpoint info, plus new C++/pybind node methods to count action clients/servers.
- Added tests covering action endpoint info retrieval and action client/server counting.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| rclpy/test/test_node.py | Adds tests for action endpoint info queries and action client/server counting. |
| rclpy/src/rclpy/utils.hpp | Declares conversion helper for rcl_action_endpoint_info_array_t to Python. |
| rclpy/src/rclpy/utils.cpp | Implements action endpoint info array conversion to Python dictionaries. |
| rclpy/src/rclpy/node.hpp | Declares new node methods to count action clients and action servers. |
| rclpy/src/rclpy/node.cpp | Implements and exposes new action client/server count methods via pybind. |
| rclpy/src/rclpy/graph.hpp | Declares new graph APIs for action client/server endpoint info by action name. |
| rclpy/src/rclpy/graph.cpp | Implements new action graph queries with RMW unsupported handling and cleanup. |
| rclpy/src/rclpy/_rclpy_pybind11.cpp | Exposes new graph functions to Python (rclpy_get_action_*_info_by_action). |
| rclpy/rclpy/node.py | Adds Python Node wrappers for action endpoint info queries and action client/server counting. |
| rclpy/rclpy/impl/_rclpy_pybind11.pyi | Adds typing for new pybind functions, typed dicts, and node count methods. |
| rclpy/rclpy/endpoint_info.py | Introduces the new ActionEndpointInfo aggregation class. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Tomoya Fujita <tomoya.fujita825@gmail.com>
|
@ahcorde sorry for asking many PRs to review, can you do me a favor on this one too 🙇 |
|
Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262 |
|
Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262 |
|
a couple of warnings look related to the PR, let me check on those. CC: @ahcorde |
Signed-off-by: Tomoya Fujita <fujita.tomoya@triorb.co.jp>
|
Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262 |
|
RHEL is still failing one of the assertion, let me check on it. i think windows failures are all unrelated and known situation. |
|
Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262 |
|
Pulls: ros2/rcl#1326, ros2/rclcpp#3209, #1697, ros2/ros2cli#1262 |
Description
Part of ros2/ros2cli#1210
Fixes # (issue)
Is this user-facing behavior change?
No, new methods and classes added.
Did you use Generative AI?
Yes, Claude Fable
Additional Information