def _grade(*, problem, flag, team): # logger.debug("grading {} for {} with flag {!r}".format(problem, team, flag)) grader_path = join(settings.PROBLEMS_DIR, problem.grader) # XXX(Yatharth): Handle FileNotFound grader = importlib.machinery.SourceFileLoader('grader', grader_path).load_module() # XXX(Yatharth): Handle no such function or signature or anything, logging appropriate error messages correct, message = grader.grade(hashers.dyanamic_problem_key(team), flag) # logger.info('_grade: Flag by team ' + team.id + ' for problem ' + problem.id + ' is ' + correct + '.') return correct, message
def _get_desc_and_hint(problem, team): """Return static description and hint or generate them""" if not problem.generator: return problem.description_html, problem.hint_html generator_path = join(settings.PROBLEMS_DIR, problem.window.codename, problem.generator) generator = importlib.machinery.SourceFileLoader('gen', generator_path).load_module() desc, hint = generator.generate(hashers.dyanamic_problem_key(team)) return problem.process_html(desc), problem.process_html(hint)
def _generate_desc_and_hint(problem, team): """Generate description and hint for dynnamic problems""" assert problem.generator generator_path = join(settings.PROBLEMS_DIR, problem.window.codename, problem.generator) # TODO(Yatharth): Use recommended way to import from path for Python 3.5 generator = importlib.machinery.SourceFileLoader('gen', generator_path).load_module() desc_raw, hint_raw = generator.generate(hashers.dyanamic_problem_key(team)) desc, hint = problem.process_html(desc_raw), problem.process_html(hint_raw) return desc, hint
def _generate_desc_and_hint(problem, team): """Generate description and hint for dynnamic problems""" assert problem.generator generator_path = join(settings.PROBLEMS_DIR, problem.window.codename, problem.generator) # TODO(Yatharth): Use recommended way to import from path for Python 3.5 generator = importlib.machinery.SourceFileLoader( 'gen', generator_path).load_module() desc_raw, hint_raw = generator.generate(hashers.dyanamic_problem_key(team)) desc, hint = problem.process_html(desc_raw), problem.process_html(hint_raw) return desc, hint