def go(self): db = get_easy_algo_db() extra = self.options.get_extra() if len(extra) > 1: msg = 'Only one extra param accepted.' raise dtu.DTUserError(msg) if len(extra) == 1: query = extra[0] else: query = 'all' persons = db.query_and_instance('person', query) if self.options.roster: out_file = dtu.expand_all(self.options.roster) outd = os.path.dirname(out_file) roster = create_roster(persons, outd) dtu.write_data_to_file(roster, out_file) else: # instance ll tags = set() for p in persons.values(): tags.update(p.get_tags()) print(list(persons)) print('tags: %s' % list(tags)) table = table_people(persons) print(table)
def make_shortcuts_main(): if len(sys.argv) != 2: msg = 'Expected an argument, the output directory.' raise dtu.DTUserError(msg) outd = sys.argv[1] scripts = list(find_cmds_to_shortcut()) for res in scripts: filename = os.path.join(outd, 'dt-%s-%s' % (res.package, res.script)) script = """ #!/bin/bash # Autogenerated file - DO NOT EDIT # This file was generated by the command {command} # because the file {filename} # included the tag "{tag}". rosrun {package} {script} "$@" """ d = {} d['package'] = res.package d['filename'] = res.filename d['script'] = res.script d['command'] = sys.argv[0] d['tag'] = tag script = script.format(**d).strip() dtu.write_data_to_file(script, filename) make_executable(filename)
def define_jobs_context(self, context): outdir = self.options.outdir if outdir is None: outdir = '.' msg = 'Option "--outdir" not passed. Will copy to current directory.' self.warn(msg) max_images = self.options.max_images only_camera = not self.options.all_topics write_frames = self.options.write_frames extra = self.options.get_extra() if not extra: query = '*' else: query = extra db = self.get_easy_logs_db() logs = db.query(query) self.info('Found %d logs.' % len(logs)) logs_valid = OrderedDict() for log_name, log in logs.items(): if log.valid: logs_valid[log_name] = log if not logs_valid: msg = 'None of the logs were valid.' raise dtu.DTUserError(msg) s = format_logs(logs_valid) self.info(s) od = self.options.output for log_name, log in logs_valid.items(): out = os.path.join(od, log_name) log_downloaded = download_if_necessary(log) context.comp(work, log_downloaded, out, max_images, only_camera=only_camera, write_frames=write_frames, job_id=log_name)
def go(self): extra = self.options.get_extra() if not extra: query = '*' else: if len(extra) > 1: msg = 'Expected only one extra argument.' raise dtu.DTUserError(msg) query = extra[0] db = self.get_easy_logs_db() logs = db.query(query) # for k in logs.values(): # print yaml.dump(k) self.info('Found %d logs.' % len(logs)) self.show_info(logs)
def go(self): extra = self.options.get_extra() if not extra: msg = 'Please specify a log.' raise dtu.DTUserError(msg) else: query = extra db_cloud = self.get_easy_logs_db() try: logs = db_cloud.query(query) except dtu.DTNoMatches as e: msg = 'Could not find the logs matching the query.' dtu.raise_wrapped(dtu.DTUserError, e, msg, compact=True) for id_log, log in logs.items(): download_if_necessary(log)
def define_jobs_context(self, context): easy_algo_db = get_easy_algo_db() expect = self.options.expect write_to_db = self.options.write delete = not self.options.debug_no_delete if not expect in RTCheck.CHECK_RESULTS: msg = 'Invalid expect status %s; must be one of %s.' % (expect, RTCheck.CHECK_RESULTS) raise dtu.DTUserError(msg) query = self.options.tests regression_tests = easy_algo_db.query('regression_test', query, raise_if_no_matches=True) for rt_name in regression_tests: rt = easy_algo_db.create_instance('regression_test', rt_name) easy_logs_db = self.get_easy_logs_db() c = context.child(rt_name) outd = os.path.join(self.options.output, 'regression_tests', rt_name) jobs_rt(c, rt_name, rt, easy_logs_db, outd, expect, write_data_to_db=write_to_db, delete=delete)
def go(self): extra = self.options.get_extra() if not extra: query = '*' else: if len(extra) > 1: msg = 'Expected only one extra argument.' raise dtu.DTUserError(msg) query = extra[0] db = self.get_easy_logs_db() logs = db.query(query) self.info('Found %d logs.' % len(logs)) outdir = self.options.outdir if outdir is None: outdir = '.' msg = 'Option "--outdir" not passed. Will copy to current directory.' self.warn(msg) if not os.path.exists(outdir): dtu.mkdirs_thread_safe(outdir) for id_log, log in logs.items(): log = download_if_necessary(log) out = os.path.join(outdir, id_log + '.bag') if os.path.exists(out): print(out) continue try: filename = get_local_bag_file(log) shutil.copy(filename, out) print(out) except NotAvailableLocally: dtu.logger.error('No local file for %s' % id_log)