Skip to content

Commit 65c013c

Browse files
committed
Use Alchemy's instance map rather than caching ourself
1 parent 763925d commit 65c013c

1 file changed

Lines changed: 6 additions & 17 deletions

File tree

cms/grading/Job.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -682,25 +682,14 @@ def import_from_dict(cls, data):
682682
@staticmethod
683683
def from_operations(operations, session):
684684
jobs = []
685-
datasets = {}
686-
submissions = {}
687-
user_tests = {}
688685
for operation in operations:
689-
if operation.dataset_id not in datasets:
690-
datasets[operation.dataset_id] = Dataset.get_from_id(
691-
operation.dataset_id, session)
686+
# The get_from_id method loads from the instance map (if the
687+
# object exists there), which thus acts as a cache.
692688
if operation.for_submission():
693-
if operation.object_id not in submissions:
694-
submissions[operation.object_id] = \
695-
Submission.get_from_id(
696-
operation.object_id, session)
697-
object_ = submissions[operation.object_id]
689+
object_ = Submission.get_from_id(operation.object_id, session)
698690
else:
699-
if operation.object_id not in user_tests:
700-
user_tests[operation.object_id] = \
701-
UserTest.get_from_id(operation.object_id, session)
702-
object_ = user_tests[operation.object_id]
691+
object_ = UserTest.get_from_id(operation.object_id, session)
692+
dataset = Dataset.get_from_id(operation.dataset_id, session)
703693

704-
jobs.append(Job.from_operation(
705-
operation, object_, datasets[operation.dataset_id]))
694+
jobs.append(Job.from_operation(operation, object_, dataset))
706695
return JobGroup(jobs)

0 commit comments

Comments
 (0)