def define_jobs_context(self, context): rm = context.get_report_manager() rm.set_html_resources_prefix('jbds-nav') logs = set(self.get_explogs_by_tag('navigation')) logs = list(logs) assert len(logs) >= 4 data_central = self.get_data_central() recipe_episodeready_by_convert2(context, data_central.get_boot_root()) recipe_navigation_map1(context, data_central) for c, id_explog in iterate_context_explogs(context, logs): explog = get_conftools_explogs().instance(id_explog) # Get the map that we need annotation_navigation = explog.get_annotations()['navigation'] id_explog_map = annotation_navigation['map'] id_robot = annotation_navigation['robot'] # if not 'params' in annotation_navigation: # self.error('incomplete %r' % id_explog) # continue navigation_params = annotation_navigation['params'] nmap = c.get_resource(RP_NAVIGATION_MAP, id_episode=id_explog_map, id_robot=id_robot) out_base = os.path.join(c.get_output_dir(), '%s' % id_explog) c.comp_config(reconstruct_servo_state, id_explog, id_robot, nmap, out_base=out_base, navigation_params=navigation_params, job_id='reconstruct') extra_dep = [c.get_resource(RM_EPISODE_READY, id_robot=id_robot, id_episode=id_explog)] nmap_dist = c.comp_config(nmap_distances, data_central, id_episode=id_explog, id_robot=id_robot, nmap=nmap, extra_dep=extra_dep) report_keys = dict(id_robot=id_robot, id_episode=id_explog, id_episode_map=id_explog_map) r = c.comp(report_nmap_distances, nmap, nmap_dist) c.add_report(r, 'nmap_distances', **report_keys) ep = c.get_resource(RM_EPISODE_READY, id_episode=id_explog, id_robot=id_robot) poses = c.comp_config(poses_from_episode, data_central=data_central, id_robot=id_robot, id_episode=id_explog, extra_dep=[ep]) ep0 = c.get_resource(RM_EPISODE_READY, id_episode=id_explog_map, id_robot=id_robot) poses0 = c.comp_config(poses_from_episode, data_central=data_central, id_robot=id_robot, id_episode=id_explog_map, extra_dep=[ep0]) r = c.comp(report_trajectory, poses, poses0) c.add_report(r, 'trajectory', **report_keys)
def go(self): files = self.options.get_extra() from collections import defaultdict seen = defaultdict(list) for f in files: seen[os.path.basename(f)].append(f) for _, names in seen.items(): if len(names) > 1: self.error('Same file in multiple places:\n' + '\n'.join('- %s' % f for f in names)) def consider(f): for ext in ['.mp4.timestamps', '.orig.bag', '.yaml', '.index_cache']: if ext in f: return False return True files = filter(consider, files) known_files = {} # for all explogs that we know explogs_library = get_conftools_explogs() explogs_library.make_sure_everything_read() explogs_library.print_summary(sys.stdout) for id_explog in explogs_library: explog = explogs_library.instance(id_explog) for what, filename in explog.get_files().items(): # @UnusedVariable known_files[filename] = id_explog if not os.path.exists(filename): self.error('%s: File not found %s: %s' % (id_explog, what, filename)) if not id_explog in filename: self.error('%s: strange filename %s' % (id_explog, filename)) for f in sorted(files): if not f in known_files: self.error('Unclaimed file: %s' % f) else: # self.info('%s has %s' % (known_files[f], f)) pass
def define_jobs_context(self, context): logs = (set(self.get_explogs_by_tag('servo')) & set(self.get_explogs_by_tag('fieldsampler'))) assert len(logs) >= 4 for c, id_explog in iterate_context_explogs(context, logs): explog = get_conftools_explogs().instance(id_explog) # jobs_video_servo_multi(c, id_explog) annotation_servo = explog.get_annotations()['servo'] id_robot = annotation_servo['robot'] goal_at = annotation_servo['goal'] out_base = os.path.join(c.get_output_dir(), '%s' % id_explog) c.comp_config(reconstruct_servo_state_nomap, id_explog, id_robot, out_base, goal_at=goal_at)
from comptests.registrar import comptests_for_all from rosstream2boot import (get_conftools_robot_adapters, get_conftools_explogs, get_conftools_cmd_adapters, get_conftools_obs_adapters) for_all_robot_adapters = comptests_for_all(get_conftools_robot_adapters()) for_all_obs_adapters = comptests_for_all(get_conftools_obs_adapters()) for_all_cmd_adapters = comptests_for_all(get_conftools_cmd_adapters()) for_all_explogs = comptests_for_all(get_conftools_explogs()) print('loaded tests') @for_all_robot_adapters def check_robot_adapter(id_ob, ob): pass @for_all_obs_adapters def check_obs_adapter(id_ob, ob): pass @for_all_cmd_adapters def check_cmd_adapter(id_ob, ob): pass @for_all_explogs def check_explog(id_ob, ob): pass