ROS stack access¶
The RosStack classes provides APIs similar to the
rosstack command-line tool distributed with ROS. Like
rosstack, it provides information about stack dependency
information, filesystem locations, and manifest access. The Python API
is more efficient than shelling out to rosstack as it provides
caching and other optimizations for repeated querying.
-
rospkg.STACK_FILE¶ Name of stack manifest file, i.e. ‘stack.xml’.
-
class
rospkg.RosStack([ros_paths=None])[source]¶ Query information about ROS stacks on the local filesystem. This includes information about dependencies, retrieving stack
Manifestinstances, and determining the contents of stacks.RosStackcan be initialized with the default environment, or its environment configuration can be overridden with alternate ROS path settings.NOTE: for performance reasons,
RosStackcaches information about stacks.NOTE 2:
RosStackis not thread-safe.Parameters: ros_paths – Ordered list of paths to search for resources. If None (default), use environment ROS path. -
get_ros_paths() → [str]¶ Get ROS paths of this instance
-
ros_paths¶ Get ROS paths of this instance
-
get_manifest(name) → Manifest¶ Get the
Manifestof the specified package.Parameters: name – package name, strRaises: InvalidManifest
-
list() → [str]¶ List stacks.
Returns: complete list of package names in ROS environment
-
get_path(name) → str¶ Parameters: name – stack name, strReturns: filesystem path of stack Raises: ResourceNotFound
-
get_depends(name[, implicit=True]) → [str]¶ Get explicit and implicit dependencies of a stack.
Parameters: - name – stack name,
str - implicit – include implicit (recursive) dependencies,
bool
Returns: list of names of dependencies.
Raises: InvalidManifest- name – stack name,
-
get_depends_on(name[, implicit=True]) → [str]¶ Get list of stacks that depend on a stack. If implicit is
True, this includes implicit (recursive) dependency relationships.Parameters: - name – stack name,
str - implicit – include implicit (recursive) dependencies,
bool
Returns: list of names of dependencies,
[str]Raises: InvalidManifest- name – stack name,
-
packages_of(stack) → [str][source]¶ Returns: name of packages that are part of stack Raises: ResourceNotFoundif stack cannot be located
-
-
rospkg.expand_to_packages(names, rospack, rosstack) -> ([str], [str])[source]¶ Expand names into a list of packages. Names can either be of packages or stacks.
Parameters: Returns: ([packages], [not_found]).
expand_packages()returns two lists. The first is of packages names. The second is a list of names for which no matching stack or package was found. Lists may have duplicates.