le utils包含kolibri、ricecooker和kolibri studio中使用的共享常量。

le-utils的Python项目详细描述


实用程序

le utils包包含ricecooker、kolibri和 科利布里工作室。此软件包不打算直接安装或使用,但是 在所有学习平等产品中扮演重要角色。

常数

中的python文件用于 定义要从python代码中使用的常量(通常采用all_caps格式)。 在 用于前端代码的文件夹。 这意味着,添加一个新常量可能需要编辑多个文件:python 常量定义文件、json文件和任何相关的测试。

语言

该文件le_utils/constants/languages.py和 中的查找表 定义ricecooker、kolibri和 以及Kolibri Studio,以识别不同语言的教育内容。

内部表示使用两个字母代码的混合(例如en), 两个字母和国家代码(例如,巴西葡萄牙语为pt br), 以及三个字母代码(例如,zul表示zulu)。

为了确保在与 Kolibri生态系统(例如,向Kolibri工作室上传新内容时),您 必须使用helper方法查找语言对象

>>> from le_utils.constants.languages import getlang
>>> language_obj = getlang('en')       # lookup language using language code
>>> language_obj
Language(native_name='English', primary_code='en', subcode=None, name='English', ka_name=None)

如果查找失败,函数getlang将返回none。在这种情况下,你 可以尝试按名称查找或按下面定义的Alpha2代码(ISO_-1)查找方法。

一旦您成功地查找了语言对象,就可以获得 表示语言代码来自语言对象的code属性:

>>> language_obj.code
'en'

ricecooker api期望这些内部表示语言代码 为所有属性(频道语言、节点语言和文件语言)提供。

更多查找帮助程序方法

helper方法允许您按名称查找语言:

>>> from le_utils.constants.languages import getlang_by_name
>>> language_obj = getlang_by_name('English')  # lookup language by name
>>> language_obj
Language(native_name='English', primary_code='en', subcode=None, name='English', ka_name=None)

模块定义了另外两种语言查找方法:

  • 使用getlang_by_native_name按本机语言名称查找名称, 例如,您可以寻找"fran_ais"来查找法语。
  • 使用getlang_by_alpha2使用标准的两个字母代码执行查找 定义于 由pycountries库支持。

有用的链接

以下网站适用于研究语言代码:

许可证

Kolibri和Kolibri Studio中的所有内容节点都必须具有许可证。文件 le-utils/constants/licenses.py包含 用于标识许可证类型的常量。这些常数应该是 与helper方法结合使用 创建许可证对象。

若要初始化许可证对象,必须指定许可证类型和 版权所有人(str)。例如:

from ricecooker.classes.licenses import get_license
from le_utils.constants import licenses
license = get_license(licenses.CC_BY, copyright_holder="Khan Academy")

注意:除 公共领域n版权持有者的许可证不能为无。

内容类型(contentnode子类)

Kolibri生态系统中的内容项有几种。类型 每个对象的属性可以是("topic"、"video"、"audio"、"exercise"中的一个 "文档",或"HTML5"。 有关最新列表,请参见常量/content-kinds.py

当前支持的内容类型有:

  • 主题节点(文件夹)
  • 由视频文件和字幕支持的视频内容节点
  • 音频文件支持的音频内容节点
  • 文档文件(pdf或epub)支持的文档内容节点
  • HTML5压缩文件支持的HTML5应用程序内容节点
  • 幻灯片内容节点
  • 练习内容节点

kind属性标识 不同于ricecooker、studio和kolibri的数据模型:

有关可用的通用和不同模型属性的详细说明 在平台每个部分的内容节点上,请参见本文档

文件格式(扩展名)

这些是表示文件类型的低级常量,本质上是 与文件扩展名同义。文件格式mp4非常方便 文件扩展名的代理mp4。 参见文件格式.py 以及资源/formatlookup.json

格式预设(contentnode文件关系)

每个contentnode都与一个或多个 此关联通过文件的格式预设属性来表示。 格式预设是文件在内容节点中扮演的角色, 例如,缩略图、高分辨率视频或低分辨率视频。 注意,格式预设在 常量/format\u presets.py 作为json,resources/presetlookup.json" rel="nofollow">资源/presetlookup.json

可以将内容节点上的不同格式预设视为不同的"插槽" 由文件填充,某些插槽是必需的,而其他插槽是可选的。 例如,要使video node(kind=video)成为有效的内容节点,它必须 至少有一个与之相关的视频文件填充高分辨率视频 插槽或低分辨率视频插槽。某些插槽中可以有多个文件, 像视频字幕预设一样,因为视频节点可以多个字幕 与它关联,用于不同的语言。

下图说明了内容节点、文件和格式预设之间的结构。

演示内容类型(节点)、文件和格式预设之间的关系。

在所示示例中,视频节点是内容类型video的,并且有三个 相关文件:

  • 第一个文件具有文件格式mp4和格式预设高分辨率视频
  • 第二个文件也采用mp4格式,但与内容节点的关系 是不是低分辨率视频
  • 格式为vtt的第三个文件与 视频字幕的格式预设

格式预设在整个Kolibri内容生态系统中起着至关重要的作用, 管理由ricecooker、kolibri studio应用的内容验证规则 编辑规则和kolibri上的呈现逻辑。

文件类型(ricecooker.files.file子类)

在ricecooker上用作标识符,表示序列化时的文件类型 作为内容导入过程的一部分,将内容转换为json。注意,文件类型常量 是ricecooker操作的内部,不在kolibri studio或kolibri中使用。

练习

该文件le-utils/constants/exercises.py 包含不同问题类型和掌握模式的标识符。

Proquint通道令牌

文件包含helper方法 用于生成内容频道的proquint标识符。这些是短字符串 在没有全键盘的设备上很容易输入,例如sutul hakuh

角色

角色常量用于 科利布里站台。目前,仅支持两个级别的可见性:

  • 学习者(默认):所有Kolibri用户都可以看到内容节点
  • coach:内容节点仅对kolibri coach和管理员可见

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序