跳转到主要内容

Canvas课程工具

项目描述

canvas-course-tools

canvas-course-tools是在阿姆斯特丹自由大学的物理实验课中创建的,旨在极大地减少为教职员工和助教创建包含照片的课程名单所需的时间。还为学生们创建了名单,以便他们可以轻松查找分配的实验和助教。此外,我们还用它来在Canvas上创建学生小组以进行同行反馈。

此软件包提供了canvas命令行工具。在注册Canvas URL和API密钥(您可以在个人资料设置页面生成)后,此工具允许您列出课程的不同部分中的课程和学生。输出具有轻量级标记,非常适合保存为文本文件。然后可以轻松复制和移动文件中的行以创建学生小组。然后,该文件可以由canvas templates命令解析,以根据文本文件渲染模板。这允许创建包含每个学生简短笔记的课程名单,甚至可以包含照片的课程名单(如果您提供照片)。

您还可以使用此工具在Canvas上根据分组列表文件创建分组和分组集。这些分组可用于评分或同行反馈。特别是对于评分,查看学生小组成员而不是在长名单中查找特定学生可能会非常有帮助。

安装

您可以在任何Python环境中使用pip进行安装,但推荐使用pipx来安装canvas-course-tools。

$ pipx install canvas-course-tools

canvas实用工具在终端中可用。

教程

初始设置

首先,我们需要告诉canvas实用工具它可以从哪里找到您机构的Canvas安装。如果您不带参数运行canvas,它将显示支持的命令列表。

$ canvas

 Usage: canvas [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────╮
│ --version      Show the version and exit.                            │
│ --help         Show this message and exit.                           │
╰──────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────╮
│ courses      Add, remove and list Canvas courses.                    │
│ groups       Create Canvas groups based on group lists.              │
│ servers      Add, remove and list Canvas servers.                    │
│ students     Search for or list students.                            │
│ templates    Generate files based on templates and group lists.      │
│ tui          Open Textual TUI.                                       │
╰──────────────────────────────────────────────────────────────────────╯

看起来servers命令可能是一个很好的匹配。让我们检查一下。

$ canvas servers
                                                                        
 Usage: canvas servers [OPTIONS] COMMAND [ARGS]...                      
                                                                        
 Add, remove and list Canvas servers.                                   
                                                                        
╭─ Options ────────────────────────────────────────────────────────────╮
│ --help      Show this message and exit.                              │
╰──────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────╮
│ add     Register an alias for a server with corresponding access     │
│         token.                                                       │
│ list    List the registered servers.                                 │
│ remove  Remove server from configuration.                            │
╰──────────────────────────────────────────────────────────────────────╯

让我们尝试使用add子命令。

$ canvas servers add
                                                                        
 Usage: canvas servers add [OPTIONS] ALIAS URL TOKEN                    
                                                                        
 Try 'canvas servers add --help' for help.                              
╭─ Error ──────────────────────────────────────────────────────────────╮
│ Missing argument 'ALIAS'.                                            │
╰──────────────────────────────────────────────────────────────────────╯

显然我们缺少一个名为ALIAS的东西,但输出并不是很有帮助。然而,它确实建议包含--help参数。如果我们这样做,我们会得到

$ canvas servers add --help

 Usage: canvas servers add [OPTIONS] ALIAS URL TOKEN

 Register an alias for a server with corresponding access token.
 Example:
 canvas servers add school http://canvas.school.example.com/ 123~secret

╭─ Options ────────────────────────────────────────────────────────────╮
│ --force  -f    If alias already exists, force overwrite.             │
│ --help         Show this message and exit.                           │
╰──────────────────────────────────────────────────────────────────────╯

这有助于!输出甚至给出了如何使用该命令的示例。在这里,别名school用于引用您机构的Canvas。当需要引用Canvas服务器时,您可以在其他canvas命令中使用此别名。123~secret应该是您在Canvas账户页面生成的访问令牌的文本。有关如何生成令牌的更多信息,请参阅Canvas文档。您只能查看一次令牌。如果您丢失了它,可以从Canvas个人资料页面撤销它并生成一个新的。一旦您创建了令牌,就可以使用它通过上面的canvas servers add命令添加服务器。如果成功,您的Canvas安装应该会出现在列表中。

$ canvas servers list

 ────────────────────────────────────────────
  Alias    URL
 ────────────────────────────────────────────
  school   http://canvas.school.example.com/
 ────────────────────────────────────────────

现在我们已经注册了Canvas服务器,我们可以使用该实用工具做一些工作。在本教程的其余部分,我们将简要介绍如何使用不同的命令。不要忘记,您可以在任何命令的末尾添加--help以获取该命令的描述及其不同的用法。

列出和添加课程

您可以使用以下方法列出您账户可访问的所有课程:

$ canvas courses list school

 ────────────────────────────────────────────────────────────────────── 
  ID      Alias   Name                        Term                      
 ────────────────────────────────────────────────────────────────────── 
  12345           Physics 101                 2023-2024                
  23456           Calculus 102                2022-2023                
 ────────────────────────────────────────────────────────────────────── 

请注意,“别名”字段仍然为空,因为我们还没有添加课程。您可以通过创建这样的别名来为未来的参考添加课程:

$ canvas courses add phys101 school 12345

我们首先指定了别名(只要不包含空格,您可以选择任何您喜欢的名称),然后指定了服务器别名和课程ID。我们可以看到这是成功的。

$ canvas courses list school

 ────────────────────────────────────────────────────────────────────── 
  ID      Alias     Name                       Term                     
 ────────────────────────────────────────────────────────────────────── 
  12345   phys101   Physics 101                2023-2024               
  23456             Calculus 102               2022-2023               
 ────────────────────────────────────────────────────────────────────── 

要仅列出已注册的课程,我们可以省略canvas服务器作为参数。

$ canvas courses list

 ────────────────────────────────────────────────────────────────────── 
  ID      Alias     Name                       Term                     
 ────────────────────────────────────────────────────────────────────── 
  12345   phys101   Physics 101                2023-2024               
 ────────────────────────────────────────────────────────────────────── 

现在我们可以使用此课程别名(phys101)在其他canvas命令中。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

canvas_course_tools-0.10.3.tar.gz (30.3 kB 查看哈希值)

上传时间 源代码

构建发行版

canvas_course_tools-0.10.3-py3-none-any.whl (34.6 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面