33< head >
44< meta charset ="utf-8 ">
55< meta name ="viewport " content ="width=device-width, initial-scale=1, minimum-scale=1 ">
6- < meta name ="generator " content ="pdoc3 0.11.1 ">
6+ < meta name ="generator " content ="pdoc3 0.11.5 ">
77< title > edupage_api.classrooms API documentation</ title >
88< meta name ="description " content ="">
99< link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css " integrity ="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA== " crossorigin >
1010< link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css " integrity ="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA== " crossorigin >
1111< link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css " crossorigin >
12- < style > : root {--highlight-color : # fe9 }.flex {display : flex !important }body {line-height : 1.5em }# content {padding : 20px }# sidebar {padding : 1.5em ;overflow : hidden}# sidebar > * : last-child {margin-bottom : 2cm }.http-server-breadcrumbs {font-size : 130% ;margin : 0 0 15px 0 }# footer {font-size : .75em ;padding : 5px 30px ;border-top : 1px solid # ddd ;text-align : right}# footer p {margin : 0 0 0 1em ;display : inline-block}# footer p : last-child {margin-right : 30px }h1 , h2 , h3 , h4 , h5 {font-weight : 300 }h1 {font-size : 2.5em ;line-height : 1.1em }h2 {font-size : 1.75em ;margin : 2em 0 .50em 0 }h3 {font-size : 1.4em ;margin : 1.6em 0 .7em 0 }h4 {margin : 0 ;font-size : 105% }h1 : target , h2 : target , h3 : target , h4 : target , h5 : target , h6 : target {background : var (--highlight-color );padding : .2em 0 }a {color : # 058 ;text-decoration : none;transition : color .2s ease-in-out}a : visited {color : # 503 }a : hover {color : # b62 }.title code {font-weight : bold}h2 [id ^= "header-" ]{margin-top : 2em }.ident {color : # 900 ;font-weight : bold}pre code {font-size : .8em ;line-height : 1.4em ;padding : 1em ;display : block}code {background : # f3f3f3 ;font-family : "DejaVu Sans Mono" , monospace;padding : 1px 4px ;overflow-wrap : break-word}h1 code {background : transparent}pre {border-top : 1px solid # ccc ;border-bottom : 1px solid # ccc ;margin : 1em 0 }# http-server-module-list {display : flex;flex-flow : column}# http-server-module-list div {display : flex}# http-server-module-list dt {min-width : 10% }# http-server-module-list p {margin-top : 0 }.toc ul , # index {list-style-type : none;margin : 0 ;padding : 0 }# index code {background : transparent}# index h3 {border-bottom : 1px solid # ddd }# index ul {padding : 0 }# index h4 {margin-top : .6em ;font-weight : bold}@media (min-width : 200ex ){# index .two-column {column-count : 2 }}@media (min-width : 300ex ){# index .two-column {column-count : 3 }}dl {margin-bottom : 2em }dl dl : last-child {margin-bottom : 4em }dd {margin : 0 0 1em 3em }# header-classes + dl > dd {margin-bottom : 3em }dd dd {margin-left : 2em }dd p {margin : 10px 0 }.name {background : # eee ;font-size : .85em ;padding : 5px 10px ;display : inline-block;min-width : 40% }.name : hover {background : # e0e0e0 }dt : target .name {background : var (--highlight-color )}.name > span : first-child {white-space : nowrap}.name .class > span : nth-child (2 ){margin-left : .4em }.inherited {color : # 999 ;border-left : 5px solid # eee ;padding-left : 1em }.inheritance em {font-style : normal;font-weight : bold}.desc h2 {font-weight : 400 ;font-size : 1.25em }.desc h3 {font-size : 1em }.desc dt code {background : inherit}.source summary , .git-link-div {color : # 666 ;text-align : right;font-weight : 400 ;font-size : .8em ;text-transform : uppercase}.source summary > * {white-space : nowrap;cursor : pointer}.git-link {color : inherit;margin-left : 1em }.source pre {max-height : 500px ;overflow : auto;margin : 0 }.source pre code {font-size : 12px ;overflow : visible}.hlist {list-style : none}.hlist li {display : inline}.hlist li : after {content : ',\2002' }.hlist li : last-child : after {content : none}.hlist .hlist {display : inline;padding-left : 1em }img {max-width : 100% }td {padding : 0 .5em }.admonition {padding : .1em 1em ;margin-bottom : 1em }.admonition-title {font-weight : bold}.admonition .note , .admonition .info , .admonition .important {background : # aef }.admonition .todo , .admonition .versionadded , .admonition .tip , .admonition .hint {background : # dfd }.admonition .warning , .admonition .versionchanged , .admonition .deprecated {background : # fd4 }.admonition .error , .admonition .danger , .admonition .caution {background : lightpink}</ style >
12+ < style > : root {--highlight-color : # fe9 }.flex {display : flex !important }body {line-height : 1.5em }# content {padding : 20px }# sidebar {padding : 1.5em ;overflow : hidden}# sidebar > * : last-child {margin-bottom : 2cm }.http-server-breadcrumbs {font-size : 130% ;margin : 0 0 15px 0 }# footer {font-size : .75em ;padding : 5px 30px ;border-top : 1px solid # ddd ;text-align : right}# footer p {margin : 0 0 0 1em ;display : inline-block}# footer p : last-child {margin-right : 30px }h1 , h2 , h3 , h4 , h5 {font-weight : 300 }h1 {font-size : 2.5em ;line-height : 1.1em }h2 {font-size : 1.75em ;margin : 2em 0 .50em 0 }h3 {font-size : 1.4em ;margin : 1.6em 0 .7em 0 }h4 {margin : 0 ;font-size : 105% }h1 : target , h2 : target , h3 : target , h4 : target , h5 : target , h6 : target {background : var (--highlight-color );padding : .2em 0 }a {color : # 058 ;text-decoration : none;transition : color .2s ease-in-out}a : visited {color : # 503 }a : hover {color : # b62 }.title code {font-weight : bold}h2 [id ^= "header-" ]{margin-top : 2em }.ident {color : # 900 ;font-weight : bold}pre code {font-size : .8em ;line-height : 1.4em ;padding : 1em ;display : block}code {background : # f3f3f3 ;font-family : "DejaVu Sans Mono" , monospace;padding : 1px 4px ;overflow-wrap : break-word}h1 code {background : transparent}pre {border-top : 1px solid # ccc ;border-bottom : 1px solid # ccc ;margin : 1em 0 }# http-server-module-list {display : flex;flex-flow : column}# http-server-module-list div {display : flex}# http-server-module-list dt {min-width : 10% }# http-server-module-list p {margin-top : 0 }.toc ul , # index {list-style-type : none;margin : 0 ;padding : 0 }# index code {background : transparent}# index h3 {border-bottom : 1px solid # ddd }# index ul {padding : 0 }# index h4 {margin-top : .6em ;font-weight : bold}@media (min-width : 200ex ){# index .two-column {column-count : 2 }}@media (min-width : 300ex ){# index .two-column {column-count : 3 }}dl {margin-bottom : 2em }dl dl : last-child {margin-bottom : 4em }dd {margin : 0 0 1em 3em }# header-classes + dl > dd {margin-bottom : 3em }dd dd {margin-left : 2em }dd p {margin : 10px 0 }.name {background : # eee ;font-size : .85em ;padding : 5px 10px ;display : inline-block;min-width : 40% }.name : hover {background : # e0e0e0 }dt : target .name {background : var (--highlight-color )}.name > span : first-child {white-space : nowrap}.name .class > span : nth-child (2 ){margin-left : .4em }.inherited {color : # 999 ;border-left : 5px solid # eee ;padding-left : 1em }.inheritance em {font-style : normal;font-weight : bold}.desc h2 {font-weight : 400 ;font-size : 1.25em }.desc h3 {font-size : 1em }.desc dt code {background : inherit}.source > summary , .git-link-div {color : # 666 ;text-align : right;font-weight : 400 ;font-size : .8em ;text-transform : uppercase}.source summary > * {white-space : nowrap;cursor : pointer}.git-link {color : inherit;margin-left : 1em }.source pre {max-height : 500px ;overflow : auto;margin : 0 }.source pre code {font-size : 12px ;overflow : visible;min-width : max-content}.hlist {list-style : none}.hlist li {display : inline}.hlist li : after {content : ',\2002' }.hlist li : last-child : after {content : none}.hlist .hlist {display : inline;padding-left : 1em }img {max-width : 100% }td {padding : 0 .5em }.admonition {padding : .1em 1em ;margin : 1em 0 }.admonition-title {font-weight : bold}.admonition .note , .admonition .info , .admonition .important {background : # aef }.admonition .todo , .admonition .versionadded , .admonition .tip , .admonition .hint {background : # dfd }.admonition .warning , .admonition .versionchanged , .admonition .deprecated {background : # fd4 }.admonition .error , .admonition .danger , .admonition .caution {background : lightpink}</ style >
1313< style media ="screen and (min-width: 700px) "> @media screen and (min-width : 700px ){# sidebar {width : 30% ;height : 100vh ;overflow : auto;position : sticky;top : 0 }# content {width : 70% ;max-width : 100ch ;padding : 3em 4em ;border-left : 1px solid # ddd }pre code {font-size : 1em }.name {font-size : 1em }main {display : flex;flex-direction : row-reverse;justify-content : flex-end}.toc ul ul , # index ul ul {padding-left : 1em }.toc > ul > li {margin-top : .5em }}</ style >
1414< style media ="print "> @media print{# sidebar h1 {page-break-before : always}.source {display : none}}@media print{* {background : transparent !important ;color : # 000 !important ;box-shadow : none !important ;text-shadow : none !important }a [href ]: after {content : " (" attr (href) ")" ;font-size : 90% }a [href ][title ]: after {content : none}abbr [title ]: after {content : " (" attr (title) ")" }.ir a : after , a [href ^= "javascript:" ]: after , a [href ^= "#" ]: after {content : "" }pre , blockquote {border : 1px solid # 999 ;page-break-inside : avoid}thead {display : table-header-group}tr , img {page-break-inside : avoid}img {max-width : 100% !important }@page {margin : 0.5cm }p , h2 , h3 {orphans : 3 ;widows : 3 }h1 , h2 , h3 , h4 , h5 , h6 {page-break-after : avoid}}</ style >
1515< script defer src ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js " integrity ="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ== " crossorigin > </ script >
1616< script > window . addEventListener ( 'DOMContentLoaded' , ( ) => {
1717hljs . configure ( { languages : [ 'bash' , 'css' , 'diff' , 'graphql' , 'ini' , 'javascript' , 'json' , 'plaintext' , 'python' , 'python-repl' , 'rust' , 'shell' , 'sql' , 'typescript' , 'xml' , 'yaml' ] } ) ;
1818hljs . highlightAll ( ) ;
19+ /* Collapse source docstrings */
20+ setTimeout ( ( ) => {
21+ [ ...document . querySelectorAll ( '.hljs.language-python > .hljs-string' ) ]
22+ . filter ( el => el . innerHTML . length > 200 && [ '"""' , "'''" ] . includes ( el . innerHTML . substring ( 0 , 3 ) ) )
23+ . forEach ( el => {
24+ let d = document . createElement ( 'details' ) ;
25+ d . classList . add ( 'hljs-string' ) ;
26+ d . innerHTML = '<summary>"""</summary>' + el . innerHTML . substring ( 3 ) ;
27+ el . replaceWith ( d ) ;
28+ } ) ;
29+ } , 100 ) ;
1930} ) </ script >
2031</ head >
2132< body >
@@ -40,7 +51,6 @@ <h2 class="section-title" id="header-classes">Classes</h2>
4051< span > (</ span > < span > classroom_id: int, name: str, short: str)</ span >
4152</ code > </ dt >
4253< dd >
43- < div class ="desc "> < p > Classroom(classroom_id: int, name: str, short: str)</ p > </ div >
4454< details class ="source ">
4555< summary >
4656< span > Expand source code</ span >
@@ -51,6 +61,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5161 name: str
5262 short: str</ code > </ pre >
5363</ details >
64+ < div class ="desc "> < p > Classroom(classroom_id: int, name: str, short: str)</ p > </ div >
5465< h3 > Class variables</ h3 >
5566< dl >
5667< dt id ="edupage_api.classrooms.Classroom.classroom_id "> < code class ="name "> var < span class ="ident "> classroom_id</ span > : int</ code > </ dt >
@@ -72,7 +83,6 @@ <h3>Class variables</h3>
7283< span > (</ span > < span > edupage: < a title ="edupage_api.module.EdupageModule " href ="module.html#edupage_api.module.EdupageModule "> EdupageModule</ a > )</ span >
7384</ code > </ dt >
7485< dd >
75- < div class ="desc "> </ div >
7686< details class ="source ">
7787< summary >
7888< span > Expand source code</ span >
@@ -116,22 +126,69 @@ <h3>Class variables</h3>
116126 None,
117127 )</ code > </ pre >
118128</ details >
129+ < div class ="desc "> </ div >
119130< h3 > Ancestors</ h3 >
120131< ul class ="hlist ">
121132< li > < a title ="edupage_api.module.Module " href ="module.html#edupage_api.module.Module "> Module</ a > </ li >
122133</ ul >
123134< h3 > Methods</ h3 >
124135< dl >
125136< dt id ="edupage_api.classrooms.Classrooms.get_classroom "> < code class ="name flex ">
126- < span > def < span class ="ident "> get_classroom</ span > </ span > (< span > self, classroom_id: Union[ int, str] ) ‑> Optional[ < a title ="edupage_api.classrooms.Classroom " href ="#edupage_api.classrooms.Classroom "> Classroom</ a > ] </ span >
137+ < span > def < span class ="ident "> get_classroom</ span > </ span > (< span > self, classroom_id: int | str) ‑> < a title ="edupage_api.classrooms.Classroom " href ="#edupage_api.classrooms.Classroom "> Classroom</ a > | None </ span >
127138</ code > </ dt >
128139< dd >
140+ < details class ="source ">
141+ < summary >
142+ < span > Expand source code</ span >
143+ </ summary >
144+ < pre > < code class ="python "> def get_classroom(self, classroom_id: Union[int, str]) -> Optional[Classroom]:
145+ try:
146+ classroom_id = int(classroom_id)
147+ except (ValueError, TypeError):
148+ return None
149+
150+ return next(
151+ (
152+ classroom
153+ for classroom in self.get_classrooms()
154+ if classroom.classroom_id == classroom_id
155+ ),
156+ None,
157+ )</ code > </ pre >
158+ </ details >
129159< div class ="desc "> </ div >
130160</ dd >
131161< dt id ="edupage_api.classrooms.Classrooms.get_classrooms "> < code class ="name flex ">
132- < span > def < span class ="ident "> get_classrooms</ span > </ span > (< span > self) ‑> Optional[ list] </ span >
162+ < span > def < span class ="ident "> get_classrooms</ span > </ span > (< span > self) ‑> list | None </ span >
133163</ code > </ dt >
134164< dd >
165+ < details class ="source ">
166+ < summary >
167+ < span > Expand source code</ span >
168+ </ summary >
169+ < pre > < code class ="python "> @ModuleHelper.logged_in
170+ def get_classrooms(self) -> Optional[list]:
171+ classroom_list = DbiHelper(self.edupage).fetch_classroom_list()
172+
173+ if classroom_list is None:
174+ return None
175+
176+ classrooms = []
177+
178+ for classroom_id_str in classroom_list:
179+ if not classroom_id_str:
180+ continue
181+
182+ classrooms.append(
183+ Classroom(
184+ int(classroom_id_str),
185+ classroom_list[classroom_id_str]["name"],
186+ classroom_list[classroom_id_str]["short"],
187+ )
188+ )
189+
190+ return classrooms</ code > </ pre >
191+ </ details >
135192< div class ="desc "> </ div >
136193</ dd >
137194</ dl >
@@ -172,7 +229,7 @@ <h4><code><a title="edupage_api.classrooms.Classrooms" href="#edupage_api.classr
172229</ nav >
173230</ main >
174231< footer id ="footer ">
175- < p > Generated by < a href ="https://pdoc3.github.io/pdoc " title ="pdoc: Python API documentation generator "> < cite > pdoc</ cite > 0.11.1 </ a > .</ p >
232+ < p > Generated by < a href ="https://pdoc3.github.io/pdoc " title ="pdoc: Python API documentation generator "> < cite > pdoc</ cite > 0.11.5 </ a > .</ p >
176233</ footer >
177234</ body >
178235</ html >
0 commit comments