Loading kontr_api/resources/submissions.py +38 −20 Original line number Diff line number Diff line import logging from pathlib import Path from kontr_api.resources.default import Defaults, Default Loading Loading @@ -37,45 +38,62 @@ class Submissions(Defaults): return self.rest.get(url, params=params) def download_result_files(self, sid, path): url = f"{self.url}/{sid}/files/results" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'results') def download_submission_files(self, sid, path): url = f"{self.url}/{sid}/files/sources" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'sources') def download_test_files(self, sid, path): url = f"{self.url}/{sid}/files/test_files" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'test_files') def upload_result_files(self, sid, path): url = f"{self.url}/{sid}/files/results" return self.rest.upload_file(url, path) return self.__generic_upload(sid, path, 'results') def upload_submission_files(self, sid, path): url = f"{self.url}/{sid}/files/sources" return self.rest.upload_file(url, path) return self.__generic_upload(sid, path, 'sources') def upload_test_files(self, sid, path): url = f"{self.url}/{sid}/files/test_files" return self.__generic_upload(sid, path, 'test_files') def __generic_upload(self, sid, path, what): url = f"{self.url}/{sid}/files/{what}" return self.rest.upload_file(url, path) def __generic_download(self, sid, path, what): url = f"{self.url}/{sid}/files/{what}" return self.rest.download_file(url, path) class Submission(Default): @property def test_files(self): return self.client.test_files(self.entity_id) def test_files(self, path: str): return self.client.test_files(self.entity_id, path) @property def submission_files(self): return self.client.submission_files(self.entity_id) def submission_files(self, path: str): return self.client.submission_files(self.entity_id, path) @property def result_files(self): return self.client.result_files(self.entity_id) def result_files(self, path: str): return self.client.result_files(self.entity_id, path) def resubmit(self): return self.client.resubmit(self.entity_id) def cancel(self): return self.client.cancel(self.entity_id) def download_result_files(self, path): return self.client.download_result_files(self.entity_id, path) def download_submission_files(self, path): return self.client.download_submission_files(self.entity_id, path) def download_test_files(self, path): return self.client.download_test_files(self.entity_id, path) def upload_result_files(self, path): return self.client.upload_result_files(self.entity_id, path) def upload_submission_files(self, path): return self.client.upload_submission_files(self.entity_id, path) def upload_test_files(self, path): return self.client.upload_test_files(self.entity_id, path) kontr_api/rest_client.py +0 −3 Original line number Diff line number Diff line Loading @@ -93,6 +93,3 @@ class KontrRestClient(object): def upload_file(self, url, path: Path): files = {'file': path.open('rb')} return self.post(url, files=files) Loading
kontr_api/resources/submissions.py +38 −20 Original line number Diff line number Diff line import logging from pathlib import Path from kontr_api.resources.default import Defaults, Default Loading Loading @@ -37,45 +38,62 @@ class Submissions(Defaults): return self.rest.get(url, params=params) def download_result_files(self, sid, path): url = f"{self.url}/{sid}/files/results" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'results') def download_submission_files(self, sid, path): url = f"{self.url}/{sid}/files/sources" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'sources') def download_test_files(self, sid, path): url = f"{self.url}/{sid}/files/test_files" return self.rest.download_file(url, path) return self.__generic_download(sid, path, 'test_files') def upload_result_files(self, sid, path): url = f"{self.url}/{sid}/files/results" return self.rest.upload_file(url, path) return self.__generic_upload(sid, path, 'results') def upload_submission_files(self, sid, path): url = f"{self.url}/{sid}/files/sources" return self.rest.upload_file(url, path) return self.__generic_upload(sid, path, 'sources') def upload_test_files(self, sid, path): url = f"{self.url}/{sid}/files/test_files" return self.__generic_upload(sid, path, 'test_files') def __generic_upload(self, sid, path, what): url = f"{self.url}/{sid}/files/{what}" return self.rest.upload_file(url, path) def __generic_download(self, sid, path, what): url = f"{self.url}/{sid}/files/{what}" return self.rest.download_file(url, path) class Submission(Default): @property def test_files(self): return self.client.test_files(self.entity_id) def test_files(self, path: str): return self.client.test_files(self.entity_id, path) @property def submission_files(self): return self.client.submission_files(self.entity_id) def submission_files(self, path: str): return self.client.submission_files(self.entity_id, path) @property def result_files(self): return self.client.result_files(self.entity_id) def result_files(self, path: str): return self.client.result_files(self.entity_id, path) def resubmit(self): return self.client.resubmit(self.entity_id) def cancel(self): return self.client.cancel(self.entity_id) def download_result_files(self, path): return self.client.download_result_files(self.entity_id, path) def download_submission_files(self, path): return self.client.download_submission_files(self.entity_id, path) def download_test_files(self, path): return self.client.download_test_files(self.entity_id, path) def upload_result_files(self, path): return self.client.upload_result_files(self.entity_id, path) def upload_submission_files(self, path): return self.client.upload_submission_files(self.entity_id, path) def upload_test_files(self, path): return self.client.upload_test_files(self.entity_id, path)
kontr_api/rest_client.py +0 −3 Original line number Diff line number Diff line Loading @@ -93,6 +93,3 @@ class KontrRestClient(object): def upload_file(self, url, path: Path): files = {'file': path.open('rb')} return self.post(url, files=files)