forked from JOJ/Joint-Teapot
fix: canvas score file
This commit is contained in:
parent
48e67985d2
commit
e438f02b23
|
@ -6,6 +6,7 @@ from joint_teapot import Teapot, logger
|
|||
|
||||
class MyTeapot(Teapot):
|
||||
def ve482p1(self) -> None:
|
||||
fault_repos = []
|
||||
for repo_name in self.gitea.get_all_repo_names():
|
||||
if not repo_name.endswith("p1"):
|
||||
continue
|
||||
|
@ -14,7 +15,7 @@ class MyTeapot(Teapot):
|
|||
if succeed:
|
||||
contain_c_file = False
|
||||
contain_readme_file = False
|
||||
for fn in glob.glob(f"{self.git.repos_dir}/{repo_name}/*.*"):
|
||||
for fn in glob.glob(f"{self.git.repos_dir}/{repo_name}/*"):
|
||||
basename = ntpath.basename(fn)
|
||||
if basename.endswith(".c"):
|
||||
contain_c_file = True
|
||||
|
@ -44,6 +45,8 @@ class MyTeapot(Teapot):
|
|||
"title": "p1 submission pre-check failed",
|
||||
},
|
||||
)
|
||||
fault_repos.append(repo_name)
|
||||
logger.info(f"{len(fault_repos)} fault repo(s): {fault_repos}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -118,6 +118,7 @@ class Teapot:
|
|||
release = first(repo_releases, lambda item: item.name == release_name)
|
||||
if release is None or release.created_at.replace(tzinfo=None) >= due:
|
||||
return False
|
||||
# TODO: checkout by commit hash to prevent re-create tag
|
||||
self.git.repo_clean_and_checkout(repo_name, f"tags/{release.tag_name}")
|
||||
logger.info(
|
||||
f"{self.gitea.org_name}/{repo_name} checkout to "
|
||||
|
|
|
@ -49,6 +49,8 @@ class Canvas:
|
|||
new_path = os.path.join(dir, v)
|
||||
if not os.path.exists(new_path):
|
||||
os.mkdir(new_path)
|
||||
if create_score_file:
|
||||
open(os.path.join(new_path, self.score_filename), mode="w")
|
||||
for path in glob(os.path.join(dir, "*")):
|
||||
file_name = os.path.basename(path)
|
||||
if "_" not in file_name:
|
||||
|
@ -68,8 +70,6 @@ class Canvas:
|
|||
os.remove(path)
|
||||
except PatoolError:
|
||||
os.rename(path, os.path.join(target_dir, file_name))
|
||||
if create_score_file:
|
||||
open(os.path.join(target_dir, self.score_filename), mode="w")
|
||||
|
||||
def upload_assignment_scores(self, dir: str, assignment_name: str) -> None:
|
||||
assignment = first(self.assignments, lambda x: x.name == assignment_name)
|
||||
|
@ -88,7 +88,9 @@ class Canvas:
|
|||
"submission": {"posted_grade": float(score)},
|
||||
"comment": {"text_comment": "".join(comments)},
|
||||
}
|
||||
logger.info(f"{assignment} {student} {data.__repr__()}")
|
||||
logger.info(
|
||||
f"Uploading grade for {assignment} {student}: {data.__repr__()}"
|
||||
)
|
||||
submission.edit(**data)
|
||||
|
||||
|
||||
|
|
|
@ -351,13 +351,14 @@ class Gitea:
|
|||
return False
|
||||
|
||||
def close_all_issues(self) -> None:
|
||||
for repo in list_all(self.organization_api.org_list_repos, self.org_name):
|
||||
for issue in list_all(
|
||||
self.issue_api.issue_list_issues, self.org_name, repo.name
|
||||
):
|
||||
for repo_name in self.get_all_repo_names():
|
||||
issues = list_all(
|
||||
self.issue_api.issue_list_issues, self.org_name, repo_name
|
||||
)
|
||||
for issue in issues:
|
||||
if issue.state != "closed":
|
||||
self.issue_api.issue_edit_issue(
|
||||
self.org_name, repo.name, issue.number, body={"state": "closed"}
|
||||
self.org_name, repo_name, issue.number, body={"state": "closed"}
|
||||
)
|
||||
|
||||
def archieve_all_repos(self) -> None:
|
||||
|
|
Loading…
Reference in New Issue
Block a user