本文整理汇总了Python中nbgrader.api.Gradebook.remove_notebook方法的典型用法代码示例。如果您正苦于以下问题:Python Gradebook.remove_notebook方法的具体用法?Python Gradebook.remove_notebook怎么用?Python Gradebook.remove_notebook使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nbgrader.api.Gradebook
的用法示例。
在下文中一共展示了Gradebook.remove_notebook方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _clean_old_notebooks
# 需要导入模块: from nbgrader.api import Gradebook [as 别名]
# 或者: from nbgrader.api.Gradebook import remove_notebook [as 别名]
def _clean_old_notebooks(self, assignment_id, student_id):
gb = Gradebook(self.db_url)
assignment = gb.find_assignment(assignment_id)
regexp = os.path.join(
self._format_source("(?P<assignment_id>.*)", "(?P<student_id>.*)"),
"(?P<notebook_id>.*).ipynb")
# find a set of notebook ids for new notebooks
new_notebook_ids = set([])
for notebook in self.notebooks:
m = re.match(regexp, notebook)
if m is None:
raise RuntimeError("Could not match '%s' with regexp '%s'", notebook, regexp)
gd = m.groupdict()
if gd['assignment_id'] == assignment_id and gd['student_id'] == student_id:
new_notebook_ids.add(gd['notebook_id'])
# pull out the existing notebook ids
old_notebook_ids = set(x.name for x in assignment.notebooks)
# no added or removed notebooks, so nothing to do
if old_notebook_ids == new_notebook_ids:
return
# some notebooks have been removed, but there are submissions associated
# with the assignment, so we don't want to overwrite stuff
if len(assignment.submissions) > 0:
self.fail("Cannot modify existing assignment '%s' because there are submissions associated with it", assignment)
# remove the old notebooks
for notebook_id in (old_notebook_ids - new_notebook_ids):
self.log.warning("Removing notebook '%s' from the gradebook", notebook_id)
gb.remove_notebook(notebook_id, assignment_id)