Skip to content

Commit

Permalink
Merge pull request #624 from kmyk/feature/special-yosupo
Browse files Browse the repository at this point in the history
add an internal method LibraryCheckerProblem.download_checker_cpp()
  • Loading branch information
kawacchu authored Nov 30, 2019
2 parents e0dc407 + 7ecb2f4 commit df3f370
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions onlinejudge/service/library_checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"""

import os
import pathlib
import re
import subprocess
import sys
Expand Down Expand Up @@ -57,10 +58,10 @@ def download_system_cases(self, *, session: Optional[requests.Session] = None) -
files += [(file.name, file.read_bytes()) for file in path.glob('out/*.out')]
return onlinejudge._implementation.testcase_zipper.extract_from_files(iter(files))

def _get_cloned_repository_path(self):
def _get_cloned_repository_path(self) -> pathlib.Path:
return utils.cache_dir / 'library-checker-problems'

def _generate_test_cases_in_cloned_repository(self):
def _generate_test_cases_in_cloned_repository(self) -> None:
path = self._get_cloned_repository_path()

try:
Expand Down Expand Up @@ -93,7 +94,7 @@ def _generate_test_cases_in_cloned_repository(self):
log.error("the generate.py failed: check https://github.com/yosupo06/library-checker-problems/issues")
raise

def _get_problem_directory_path(self):
def _get_problem_directory_path(self) -> pathlib.Path:
path = self._get_cloned_repository_path()
problems = toml.load(path / 'problems.toml')
return path / problems['problems'][self.problem_id]['dir']
Expand All @@ -115,6 +116,12 @@ def from_url(cls, url: str) -> Optional['LibraryCheckerProblem']:
return cls(problem_id=m.group(1))
return None

def download_checker_cpp(self) -> bytes:
self._generate_test_cases_in_cloned_repository()
path = self._get_problem_directory_path()
with open(str(path / "checker.cpp"), "rb") as fh:
return fh.read()


onlinejudge.dispatch.services += [LibraryCheckerService]
onlinejudge.dispatch.problems += [LibraryCheckerProblem]

0 comments on commit df3f370

Please sign in to comment.