-
Notifications
You must be signed in to change notification settings - Fork 0
/
datastructures.py
executable file
·143 lines (125 loc) · 2.71 KB
/
datastructures.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
from dataclasses import dataclass
from typing import List, Optional
@dataclass
class CompletionData:
state: int
timecompleted: int
overrideby: Optional[int]
valueused: bool
hascompletion: bool
isautomatic: bool
istrackeduser: bool
uservisible: bool
@dataclass
class Content:
fileurl: str
filename: str
filepath: str
filesize: int
timemodified: int
mimetype: Optional[str] = None
timecreated: Optional[int] = None
isexternalfile: Optional[bool] = None
@dataclass
class Module:
id: int
name: str
instance: int
contextid: int
visible: int
uservisible: bool
visibleoncoursepage: int
modicon: str
modname: str
completion: int
url: Optional[str] = None # Sometimes its missing, bc some courses write a short intro text at the beginning?
completiondata: Optional[CompletionData] = None
contents: List[Content] = None
@dataclass
class Section:
id: int
name: str
visible: int
section: int
uservisible: bool
modules: List[Module]
####### Container for courses
@dataclass
class RecentCourse:
id: int
fullname: str
shortname: str
idnumber: str
summary: str
summaryformat: int
startdate: int
enddate: int
visible: bool
fullnamedisplay: str
viewurl: str
courseimage: str
progress: int
hasprogress: bool
isfavourite: bool
hidden: bool
timeaccess: int
showshortname: bool
coursecategory: str
########### Assignments
@dataclass
class Config:
plugin: str
subtype: str
name: str
value: str
@dataclass
class IntroAttachment:
filename: str
filepath: str
filesize: int
fileurl: str
timemodified: int
mimetype: str
isexternalfile: bool
@dataclass
class Assignment:
id: int
cmid: int
course: int
name: str
nosubmissions: int
submissiondrafts: int
sendnotifications: int
sendlatenotifications: int
sendstudentnotifications: int
duedate: int
allowsubmissionsfromdate: int
grade: int
timemodified: int
completionsubmit: int
cutoffdate: int
gradingduedate: int
teamsubmission: int
requireallteammemberssubmit: int
teamsubmissiongroupingid: int
blindmarking: int
hidegrader: int
revealidentities: int
attemptreopenmethod: str
maxattempts: int
markingworkflow: int
markingallocation: int
requiresubmissionstatement: int
preventsubmissionnotingroup: int
configs: List[Config]
intro: str
introformat: int
introfiles: List
introattachments: List[IntroAttachment]
@dataclass
class Course:
id: int
fullname: str
shortname: str
timemodified: int
assignments: List[Assignment]