def run(self): """ This is the method called to run the algorithm. """ percepts = self.get_percepts() checkpoint_status = '' results = list() checkpointer = NullCheckpointer() if self._checkpoint_filename: if os.path.exists(self._checkpoint_filename): with open(self._checkpoint_filename, 'rb') as old_checkpoint_file: checkpointer, checkpoint = Checkpointer.resume( old_checkpoint_file) results = checkpoint.results seen = checkpoint.seen percepts = [ percept for percept in percepts if percept.id not in seen ] checkpoint_status = ' (skipping {0} checkpointed)'.format( len(seen)) else: checkpoint_file = open(self._checkpoint_filename, 'wb') checkpointer = Checkpointer(self._parameters, checkpoint_file) self._logger.debug('Processing {0} percepts{1}'.format( len(percepts), checkpoint_status)) with checkpointer: for percept in percepts: percept = self._algorithm.prefetch(percept) with self.fetch_data(percept) as percept_data: result = self._algorithm.apply(percept, percept_data) checkpointer.log(percept.id, result) results.append(result) return self.evaluate(results)
def run(self): """ This is the method called to run the algorithm. """ percepts = self.get_percepts() checkpoint_status = '' results = list() checkpointer = NullCheckpointer() if self._checkpoint_filename: if os.path.exists(self._checkpoint_filename): with open(self._checkpoint_filename, 'rb') as old_checkpoint_file: checkpointer, checkpoint = Checkpointer.resume(old_checkpoint_file) results = checkpoint.results seen = checkpoint.seen percepts = [percept for percept in percepts if percept.id not in seen] checkpoint_status = ' (skipping {0} checkpointed)'.format(len(seen)) else: checkpoint_file = open(self._checkpoint_filename, 'wb') checkpointer = Checkpointer(self._parameters, checkpoint_file) self._logger.debug('Processing {0} percepts{1}'.format(len(percepts), checkpoint_status)) with checkpointer: for percept in percepts: percept = self._algorithm.prefetch(percept) with self.fetch_data(percept) as percept_data: result = self._algorithm.apply(percept, percept_data) checkpointer.log(percept.id, result) results.append(result) return self.evaluate(results)
def parse_arguments(self, arguments): """ Parses command-line arguments, and returns the result """ checkpoint_parser = argparse.ArgumentParser(add_help=False) checkpoint_parser.add_argument( '-c', '--checkpoint', type=argparse.FileType('rb'), required=False, help= 'Resume from checkpoint file. If you specify this, all other options will be ignored.' ) checkpoint_args, remaining = checkpoint_parser.parse_known_args( arguments) if checkpoint_args.checkpoint: _, arguments = Checkpointer.read_header(checkpoint_args.checkpoint) self._checkpoint_filename = checkpoint_args.checkpoint return arguments parser = argparse.ArgumentParser( description='Runs algorithm on relevant percepts', conflict_handler='resolve', usage='%(prog)s {-c | [options]}', parents=[ checkpoint_parser, ]) self.add_arguments(parser) return parser.parse_args(remaining)
def parse_arguments(self, arguments): """ Parses command-line arguments, and returns the result """ checkpoint_parser = argparse.ArgumentParser(add_help=False) checkpoint_parser.add_argument('-c', '--checkpoint', type=argparse.FileType('rb'), required=False, help='Resume from checkpoint file. If you specify this, all other options will be ignored.') checkpoint_args, remaining = checkpoint_parser.parse_known_args(arguments) if checkpoint_args.checkpoint: _, arguments = Checkpointer.read_header(checkpoint_args.checkpoint) self._checkpoint_filename = checkpoint_args.checkpoint return arguments parser = argparse.ArgumentParser(description='Runs algorithm on relevant percepts', conflict_handler='resolve', usage='%(prog)s {-c | [options]}', parents=[checkpoint_parser, ]) self.add_arguments(parser) return parser.parse_args(remaining)