Skip to content

Commit

Permalink
#225: rename some methods
Browse files Browse the repository at this point in the history
  • Loading branch information
kmyk committed Jan 2, 2019
1 parent fb1f614 commit f8258a9
Show file tree
Hide file tree
Showing 10 changed files with 22 additions and 29 deletions.
9 changes: 5 additions & 4 deletions onlinejudge/implementation/command/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@ def download(args: 'argparse.Namespace') -> None:
problem = onlinejudge.dispatch.problem_from_url(args.url)
if problem is None:
sys.exit(1)
kwargs = {}
if args.system:
supported_service_names = [ 'aoj', 'yukicoder' ]
if problem.get_service().get_name() not in supported_service_names:
log.error('--system for %s is not supported', problem.get_service().get_name())
sys.exit(1)
kwargs['is_system'] = True
if args.format is None:
if kwargs.get('is_system'):
if args.system:
if problem.get_service().get_name() == 'yukicoder':
args.format = '%b.%e'
else:
Expand All @@ -42,7 +40,10 @@ def download(args: 'argparse.Namespace') -> None:

# get samples from the server
with utils.with_cookiejar(utils.new_default_session(), path=args.cookie) as sess:
samples = problem.download(session=sess, **kwargs) # type: ignore
if args.system:
samples = problem.download_system_cases(session=sess) # type: ignore
else:
samples = problem.download_sample_cases(session=sess) # type: ignore

# write samples to files
for i, sample in enumerate(samples):
Expand Down
2 changes: 1 addition & 1 deletion onlinejudge/implementation/command/submit.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def submit(args: 'argparse.Namespace') -> None:
else:
kwargs['kind'] = 'example'
try:
submission = problem.submit(code, language=args.language, session=sess, **kwargs) # type: ignore
submission = problem.submit_code(code, language=args.language, session=sess, **kwargs) # type: ignore
except onlinejudge.type.SubmissionError:
log.failure('submission failed')
return
Expand Down
2 changes: 1 addition & 1 deletion onlinejudge/service/anarchygolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class AnarchyGolfProblem(onlinejudge.type.Problem):
def __init__(self, problem_id: str):
self.problem_id = problem_id

def download(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
session = session or utils.new_default_session()
# get
resp = utils.request('GET', self.get_url(), session=session)
Expand Down
10 changes: 2 additions & 8 deletions onlinejudge/service/aoj.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,7 @@ class AOJProblem(onlinejudge.type.Problem):
def __init__(self, problem_id):
self.problem_id = problem_id

def download(self, session: Optional[requests.Session] = None, is_system: bool = False) -> List[TestCase]:
if is_system:
return self.download_system(session=session)
else:
return self.download_samples(session=session)

def download_samples(self, session: Optional[requests.Session] = None) -> List[TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[TestCase]:
session = session or utils.new_default_session()
# get samples via the official API
# reference: http://developers.u-aizu.ac.jp/api?key=judgedat%2Ftestcases%2Fsamples%2F%7BproblemId%7D_GET
Expand All @@ -61,7 +55,7 @@ def download_samples(self, session: Optional[requests.Session] = None) -> List[T
) ]
return samples

def download_system(self, session: Optional[requests.Session] = None) -> List[TestCase]:
def download_system_cases(self, session: Optional[requests.Session] = None) -> List[TestCase]:
session = session or utils.new_default_session()

# get header
Expand Down
4 changes: 2 additions & 2 deletions onlinejudge/service/atcoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def __init__(self, contest_id: str, problem_id: str):
self.problem_id = problem_id
self._task_id = None # type: Optional[int]

def download(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
session = session or utils.new_default_session()
# get
resp = utils.request('GET', self.get_url(), session=session)
Expand Down Expand Up @@ -223,7 +223,7 @@ def get_language_dict(self, session: Optional[requests.Session] = None) -> Dict[
language_dict[option.attrs['value']] = { 'description': option.string }
return language_dict

def submit(self, code: str, language: str, session: Optional[requests.Session] = None) -> onlinejudge.type.DummySubmission:
def submit_code(self, code: str, language: str, session: Optional[requests.Session] = None) -> onlinejudge.type.DummySubmission:
assert language in self.get_language_dict(session=session)
session = session or utils.new_default_session()
# get
Expand Down
2 changes: 1 addition & 1 deletion onlinejudge/service/codeforces.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def __init__(self, contest_id: int, index: str, kind: Optional[str] = None):
kind = 'gym'
self.kind = kind # It seems 'gym' is specialized, 'contest' and 'problemset' are the same thing

def download(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[onlinejudge.type.TestCase]:
session = session or utils.new_default_session()
# get
resp = utils.request('GET', self.get_url(), session=session)
Expand Down
2 changes: 1 addition & 1 deletion onlinejudge/service/csacademy.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def __init__(self, contest_name: str, task_name: str):
self.contest_name = contest_name
self.task_name = task_name

def download(self, session: Optional[requests.Session] = None) -> List[TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[TestCase]:
session = session or utils.new_default_session()
base_url = self.get_url()

Expand Down
2 changes: 1 addition & 1 deletion onlinejudge/service/topcoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def get_language_dict(self, session: Optional[requests.Session] = None) -> Dict[
'Python': { 'value': '6', 'description': 'Pyhton 2' },
}

def submit(self, code: str, language: str, session: Optional[requests.Session] = None, kind: str = 'example') -> onlinejudge.type.Submission:
def submit_code(self, code: str, language: str, session: Optional[requests.Session] = None, kind: str = 'example') -> onlinejudge.type.Submission:
assert kind in [ 'example', 'full' ]
session = session or utils.new_default_session()

Expand Down
10 changes: 3 additions & 7 deletions onlinejudge/service/yukicoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,7 @@ def __init__(self, problem_no=None, problem_id=None):
self.problem_no = problem_no
self.problem_id = problem_id

def download(self, session: Optional[requests.Session] = None, is_system: bool = False) -> List[TestCase]:
if is_system:
return self.download_system(session=session)
else:
return self.download_samples(session=session)
def download_samples(self, session: Optional[requests.Session] = None) -> List[TestCase]:
def download_sample_cases(self, session: Optional[requests.Session] = None) -> List[TestCase]:
session = session or utils.new_default_session()
# get
resp = utils.request('GET', self.get_url(), session=session)
Expand All @@ -259,7 +254,8 @@ def download_samples(self, session: Optional[requests.Session] = None) -> List[T
data, name = it
samples.add(data, name)
return samples.get()
def download_system(self, session: Optional[requests.Session] = None) -> List[TestCase]:

def download_system_cases(self, session: Optional[requests.Session] = None) -> List[TestCase]:
session = session or utils.new_default_session()
# get
url = 'https://yukicoder.me/problems/no/{}/testcase.zip'.format(self.problem_no)
Expand Down
8 changes: 5 additions & 3 deletions onlinejudge/type.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@ class SubmissionError(RuntimeError):
pass

class Problem(object):
def download(self, session: Optional['requests.Session'] = None) -> List[TestCase]:
def download_sample_cases(self, session: Optional['requests.Session'] = None) -> List[TestCase]:
raise NotImplementedError
def submit(self, code: str, language: str, session: Optional['requests.Session'] = None) -> 'Submission': # or SubmissionError
def download_system_cases(self, session: Optional['requests.Session'] = None) -> List[TestCase]:
raise NotImplementedError
def submit_code(self, code: str, language: str, session: Optional['requests.Session'] = None) -> 'Submission': # or SubmissionError
raise NotImplementedError
def get_language_dict(self, session: Optional['requests.Session'] = None) -> Dict[str, Language]:
raise NotImplementedError
Expand All @@ -47,7 +49,7 @@ def from_url(self, s: str) -> Optional['Problem']:


class Submission(object):
def download(self, session: Optional['requests.Session'] = None) -> str:
def download_code(self, session: Optional['requests.Session'] = None) -> str:
raise NotImplementedError
def get_url(self) -> str:
raise NotImplementedError
Expand Down

0 comments on commit f8258a9

Please sign in to comment.