autograder.model.course
1import typing 2 3import lms.model.assignments 4import lms.model.base 5 6import autograder.model.assignment 7 8class Course(lms.model.base.BaseType): 9 """ 10 A course. 11 """ 12 13 CORE_FIELDS = [ 14 'id', 15 'name', 16 ] 17 18 def __init__(self, 19 id: str, 20 name: str, 21 assignments: typing.Dict[str, lms.model.assignments.Assignment], 22 **kwargs: typing.Any) -> None: 23 super().__init__(**kwargs) 24 25 self.id: str = id 26 """ ID for this course. """ 27 28 self.name: str = name 29 """ Name for this course. """ 30 31 self.assignments: typing.Dict[str, lms.model.assignments.Assignment] = assignments 32 """ Assignments for this course, keyed by assignment id. """ 33 34 @classmethod 35 def from_api(cls, data: typing.Dict[str, typing.Any]) -> 'Course': 36 """ Convert a dict coming from autograder API JSON. """ 37 38 data = data.copy() 39 40 data['assignments'] = {key: autograder.model.assignment.make_assignment(value) for (key, value) in data['assignments'].items()} 41 42 return Course(**data)
class
Course(lms.model.base.BaseType):
9class Course(lms.model.base.BaseType): 10 """ 11 A course. 12 """ 13 14 CORE_FIELDS = [ 15 'id', 16 'name', 17 ] 18 19 def __init__(self, 20 id: str, 21 name: str, 22 assignments: typing.Dict[str, lms.model.assignments.Assignment], 23 **kwargs: typing.Any) -> None: 24 super().__init__(**kwargs) 25 26 self.id: str = id 27 """ ID for this course. """ 28 29 self.name: str = name 30 """ Name for this course. """ 31 32 self.assignments: typing.Dict[str, lms.model.assignments.Assignment] = assignments 33 """ Assignments for this course, keyed by assignment id. """ 34 35 @classmethod 36 def from_api(cls, data: typing.Dict[str, typing.Any]) -> 'Course': 37 """ Convert a dict coming from autograder API JSON. """ 38 39 data = data.copy() 40 41 data['assignments'] = {key: autograder.model.assignment.make_assignment(value) for (key, value) in data['assignments'].items()} 42 43 return Course(**data)
A course.
Course( id: str, name: str, assignments: Dict[str, lms.model.assignments.Assignment], **kwargs: Any)
19 def __init__(self, 20 id: str, 21 name: str, 22 assignments: typing.Dict[str, lms.model.assignments.Assignment], 23 **kwargs: typing.Any) -> None: 24 super().__init__(**kwargs) 25 26 self.id: str = id 27 """ ID for this course. """ 28 29 self.name: str = name 30 """ Name for this course. """ 31 32 self.assignments: typing.Dict[str, lms.model.assignments.Assignment] = assignments 33 """ Assignments for this course, keyed by assignment id. """
CORE_FIELDS =
['id', 'name']
The common fields shared across backends for this type that are used for comparison and other operations. Child classes should set this to define how comparisons are made.
assignments: Dict[str, lms.model.assignments.Assignment]
Assignments for this course, keyed by assignment id.
35 @classmethod 36 def from_api(cls, data: typing.Dict[str, typing.Any]) -> 'Course': 37 """ Convert a dict coming from autograder API JSON. """ 38 39 data = data.copy() 40 41 data['assignments'] = {key: autograder.model.assignment.make_assignment(value) for (key, value) in data['assignments'].items()} 42 43 return Course(**data)
Convert a dict coming from autograder API JSON.