def what_needs(self, rosdep_args): packages = [] rospack = rospkg.RosPack() for p in rospack.list(): rosdeps_needed = self.get_rosdep0(p) matches = [r for r in rosdep_args if r in rosdeps_needed] for r in matches: packages.append(p) return packages
def where_defined(self, rosdeps): output = "" locations = {} for r in rosdeps: locations[r] = set() rospack = rospkg.RosPack() path = os.path.join(rospkg.get_ros_home(), "rosdep.yaml") rosdep_dict = self.yc.get_specific_rosdeps(path) for r in rosdeps: if r in rosdep_dict: locations[r].add("Override:" + path) for p in rospack.list(): path = os.path.join(rospack.get_path(p), "rosdep.yaml") rosdep_dict = self.yc.get_specific_rosdeps(path) for r in rosdeps: if r in rosdep_dict: addendum = "" if rospack.stack_of(p): addendum = "<<Unused due to package '%s' being in a stack.]]" % p locations[r].add(">>" + path + addendum) rosstack = rospkg.RosStack() for s in rosstack.list(): path = os.path.join(rosstack.get_path(s), "rosdep.yaml") rosdep_dict = self.yc.get_specific_rosdeps(path) for r in rosdeps: if r in rosdep_dict: locations[r].add(path) for rd in locations: output += "%s defined in %s" % (rd, locations[rd]) return output