lms.model.assignments

 1import typing
 2
 3import edq.util.time
 4
 5import lms.model.base
 6import lms.model.query
 7
 8class AssignmentQuery(lms.model.query.BaseQuery):
 9    """
10    A class for the different ways one can attempt to reference an LMS assignment.
11    In general, an assignment can be queried by:
12     - LMS Assignment ID (`id`)
13     - Full Name (`name`)
14     - f"{name} ({id})"
15    """
16
17    _include_email = False
18
19class ResolvedAssignmentQuery(lms.model.query.ResolvedBaseQuery, AssignmentQuery):
20    """
21    A AssignmentQuery that has been resolved (verified) from a real assignment instance.
22    """
23
24    _include_email = False
25
26    def __init__(self,
27            assignment: 'Assignment',
28            **kwargs: typing.Any) -> None:
29        super().__init__(id = assignment.id, name = assignment.name, **kwargs)
30
31class Assignment(lms.model.base.BaseType):
32    """
33    An assignment within a course.
34    """
35
36    CORE_FIELDS = [
37        'id', 'name', 'description',
38        'open_date', 'close_date', 'due_date',
39        'points_possible',
40    ]
41
42    def __init__(self,
43            id: typing.Union[str, int, None] = None,
44            name: typing.Union[str, None] = None,
45            description: typing.Union[str, None] = None,
46            open_date: typing.Union[edq.util.time.Timestamp, None] = None,
47            close_date: typing.Union[edq.util.time.Timestamp, None] = None,
48            due_date: typing.Union[edq.util.time.Timestamp, None] = None,
49            points_possible: typing.Union[float, None] = None,
50            **kwargs: typing.Any) -> None:
51        super().__init__(**kwargs)
52
53        if (id is None):
54            raise ValueError("Assignment must have an id.")
55
56        self.id: str = str(id)
57        """ The LMS's identifier for this assignment. """
58
59        self.name: typing.Union[str, None] = name
60        """ The display name of this assignment. """
61
62        self.description: typing.Union[str, None] = description
63        """ The description of this assignment. """
64
65        self.open_date: typing.Union[edq.util.time.Timestamp, None] = open_date
66        """ The datetime that this assignment becomes open at. """
67
68        self.close_date: typing.Union[edq.util.time.Timestamp, None] = close_date
69        """ The datetime that this assignment becomes close at. """
70
71        self.due_date: typing.Union[edq.util.time.Timestamp, None] = due_date
72        """ The datetime that this assignment is due at. """
73
74        self.points_possible: typing.Union[float, None] = points_possible
75        """ The maximum number of points possible for this assignment. """
76
77    def to_query(self) -> ResolvedAssignmentQuery:
78        """ Get a query representation of this assignment. """
79
80        return ResolvedAssignmentQuery(self)
class AssignmentQuery(lms.model.query.BaseQuery):
 9class AssignmentQuery(lms.model.query.BaseQuery):
10    """
11    A class for the different ways one can attempt to reference an LMS assignment.
12    In general, an assignment can be queried by:
13     - LMS Assignment ID (`id`)
14     - Full Name (`name`)
15     - f"{name} ({id})"
16    """
17
18    _include_email = False

A class for the different ways one can attempt to reference an LMS assignment. In general, an assignment can be queried by:

  • LMS Assignment ID (id)
  • Full Name (name)
  • f"{name} ({id})"
class ResolvedAssignmentQuery(lms.model.query.ResolvedBaseQuery, AssignmentQuery):
20class ResolvedAssignmentQuery(lms.model.query.ResolvedBaseQuery, AssignmentQuery):
21    """
22    A AssignmentQuery that has been resolved (verified) from a real assignment instance.
23    """
24
25    _include_email = False
26
27    def __init__(self,
28            assignment: 'Assignment',
29            **kwargs: typing.Any) -> None:
30        super().__init__(id = assignment.id, name = assignment.name, **kwargs)

A AssignmentQuery that has been resolved (verified) from a real assignment instance.

ResolvedAssignmentQuery(assignment: Assignment, **kwargs: Any)
27    def __init__(self,
28            assignment: 'Assignment',
29            **kwargs: typing.Any) -> None:
30        super().__init__(id = assignment.id, name = assignment.name, **kwargs)
class Assignment(lms.model.base.BaseType):
32class Assignment(lms.model.base.BaseType):
33    """
34    An assignment within a course.
35    """
36
37    CORE_FIELDS = [
38        'id', 'name', 'description',
39        'open_date', 'close_date', 'due_date',
40        'points_possible',
41    ]
42
43    def __init__(self,
44            id: typing.Union[str, int, None] = None,
45            name: typing.Union[str, None] = None,
46            description: typing.Union[str, None] = None,
47            open_date: typing.Union[edq.util.time.Timestamp, None] = None,
48            close_date: typing.Union[edq.util.time.Timestamp, None] = None,
49            due_date: typing.Union[edq.util.time.Timestamp, None] = None,
50            points_possible: typing.Union[float, None] = None,
51            **kwargs: typing.Any) -> None:
52        super().__init__(**kwargs)
53
54        if (id is None):
55            raise ValueError("Assignment must have an id.")
56
57        self.id: str = str(id)
58        """ The LMS's identifier for this assignment. """
59
60        self.name: typing.Union[str, None] = name
61        """ The display name of this assignment. """
62
63        self.description: typing.Union[str, None] = description
64        """ The description of this assignment. """
65
66        self.open_date: typing.Union[edq.util.time.Timestamp, None] = open_date
67        """ The datetime that this assignment becomes open at. """
68
69        self.close_date: typing.Union[edq.util.time.Timestamp, None] = close_date
70        """ The datetime that this assignment becomes close at. """
71
72        self.due_date: typing.Union[edq.util.time.Timestamp, None] = due_date
73        """ The datetime that this assignment is due at. """
74
75        self.points_possible: typing.Union[float, None] = points_possible
76        """ The maximum number of points possible for this assignment. """
77
78    def to_query(self) -> ResolvedAssignmentQuery:
79        """ Get a query representation of this assignment. """
80
81        return ResolvedAssignmentQuery(self)

An assignment within a course.

Assignment( id: Union[str, int, NoneType] = None, name: Optional[str] = None, description: Optional[str] = None, open_date: Optional[edq.util.time.Timestamp] = None, close_date: Optional[edq.util.time.Timestamp] = None, due_date: Optional[edq.util.time.Timestamp] = None, points_possible: Optional[float] = None, **kwargs: Any)
43    def __init__(self,
44            id: typing.Union[str, int, None] = None,
45            name: typing.Union[str, None] = None,
46            description: typing.Union[str, None] = None,
47            open_date: typing.Union[edq.util.time.Timestamp, None] = None,
48            close_date: typing.Union[edq.util.time.Timestamp, None] = None,
49            due_date: typing.Union[edq.util.time.Timestamp, None] = None,
50            points_possible: typing.Union[float, None] = None,
51            **kwargs: typing.Any) -> None:
52        super().__init__(**kwargs)
53
54        if (id is None):
55            raise ValueError("Assignment must have an id.")
56
57        self.id: str = str(id)
58        """ The LMS's identifier for this assignment. """
59
60        self.name: typing.Union[str, None] = name
61        """ The display name of this assignment. """
62
63        self.description: typing.Union[str, None] = description
64        """ The description of this assignment. """
65
66        self.open_date: typing.Union[edq.util.time.Timestamp, None] = open_date
67        """ The datetime that this assignment becomes open at. """
68
69        self.close_date: typing.Union[edq.util.time.Timestamp, None] = close_date
70        """ The datetime that this assignment becomes close at. """
71
72        self.due_date: typing.Union[edq.util.time.Timestamp, None] = due_date
73        """ The datetime that this assignment is due at. """
74
75        self.points_possible: typing.Union[float, None] = points_possible
76        """ The maximum number of points possible for this assignment. """
CORE_FIELDS = ['id', 'name', 'description', 'open_date', 'close_date', 'due_date', 'points_possible']

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.

id: str

The LMS's identifier for this assignment.

name: Optional[str]

The display name of this assignment.

description: Optional[str]

The description of this assignment.

open_date: Optional[edq.util.time.Timestamp]

The datetime that this assignment becomes open at.

close_date: Optional[edq.util.time.Timestamp]

The datetime that this assignment becomes close at.

due_date: Optional[edq.util.time.Timestamp]

The datetime that this assignment is due at.

points_possible: Optional[float]

The maximum number of points possible for this assignment.

def to_query(self) -> ResolvedAssignmentQuery:
78    def to_query(self) -> ResolvedAssignmentQuery:
79        """ Get a query representation of this assignment. """
80
81        return ResolvedAssignmentQuery(self)

Get a query representation of this assignment.