def __init__(self, problem_id, time_limit, memory_limit): self.id = problem_id self.time_limit = time_limit self.memory_limit = memory_limit self.generator_manager = GeneratorManager() self.problem_data = ProblemDataManager(problem_id) # Checkers modules must be stored in a dict, for the duration of execution, # lest globals be deleted with the module. self._checkers = {} try: doc = yaml.safe_load(self.problem_data['init.yml']) if not doc: raise InvalidInitException( 'I find your lack of content disturbing.') self.config = ConfigNode(doc, defaults={ 'wall_time_factor': 3, 'output_prefix_length': 64, 'output_limit_length': 25165824, 'binary_data': False, 'short_circuit': True, 'symlinks': {}, }) except (IOError, KeyError, ParserError, ScannerError) as e: raise InvalidInitException(str(e)) self.problem_data.archive = self._resolve_archive_files()
def __init__(self, problem_id, time_limit, memory_limit, load_pretests_only=False): self.id = problem_id self.time_limit = time_limit self.memory_limit = memory_limit self.generator_manager = GeneratorManager() self.problem_data = ProblemDataManager(problem_id) # Checkers modules must be stored in a dict, for the duration of execution, # lest globals be deleted with the module. self._checkers = {} self._testcase_counter = 0 self._batch_counter = 0 try: doc = yaml.safe_load(self.problem_data['init.yml']) if not doc: raise InvalidInitException('I find your lack of content disturbing.') self.config = ConfigNode(doc, defaults={ 'wall_time_factor': 3, 'output_prefix_length': 64, 'output_limit_length': 25165824, }) except (IOError, ParserError, ScannerError) as e: raise InvalidInitException(str(e)) self.problem_data.archive = self._resolve_archive_files() self.is_pretested = load_pretests_only and 'pretest_test_cases' in self.config self.cases = self._resolve_testcases(self.config['pretest_test_cases' if self.is_pretested else 'test_cases'])
def __init__(self, problem_id, time_limit, memory_limit): self.id = problem_id self.time_limit = time_limit self.memory_limit = memory_limit self.generator_manager = GeneratorManager() self.problem_data = ProblemDataManager(problem_id) # Checkers modules must be stored in a dict, for the duration of execution, # lest globals be deleted with the module. self._checkers = {} self._testcase_counter = 0 try: self.config = ConfigNode(yaml.safe_load( self.problem_data['init.yml']), defaults={'output_prefix_length': 64}) except (IOError, ParserError, ScannerError) as e: raise InvalidInitException(str(e)) self.problem_data.archive = self._resolve_archive_files() self.cases = self._resolve_testcases(self.config['test_cases'])
def __init__(self, problem_id, time_limit, memory_limit, meta): self.id = problem_id self.time_limit = time_limit self.memory_limit = memory_limit self.meta = ConfigNode(meta) self.generator_manager = GeneratorManager() # Cache root dir so that we don't need to scan all roots (potentially very slow on networked mount). self.root_dir = get_problem_root(problem_id) self.problem_data = ProblemDataManager(self) # Checkers modules must be stored in a dict, for the duration of execution, # lest globals be deleted with the module. self._checkers = {} try: doc = yaml.safe_load(self.problem_data['init.yml']) if not doc: raise InvalidInitException( 'I find your lack of content disturbing.') self.config = ConfigNode( doc, defaults={ 'wall_time_factor': 3, 'output_prefix_length': 0 if 'signature_grader' in doc else 64, 'output_limit_length': 25165824, 'binary_data': False, 'short_circuit': True, 'points': 1, 'symlinks': {}, 'meta': meta, }, ) except (IOError, KeyError, ParserError, ScannerError) as e: raise InvalidInitException(str(e)) self.problem_data.archive = self._resolve_archive_files() self._resolve_test_cases()