Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

LE Utils and constants shared across Kolibri, Ricecooker, and the Kolibri Studio.

Project Description

Utilities and constants shared across Ricecooker, Kolibri, and Kolibri Studio.

Languages

The file le_utils/constants/languages.py and the lookup table in le_utils/resources/languagelookup.json define the internal representation for languages codes used by Ricecooker, Kolibri, and Kolibri Studio to identify educational content in different languages.

The internal representation uses a mixture of two-letter codes (e.g. en), two-letter-and-country code (e.g. pt-BR for Brazilian Portuguese), and three-letter codes (e.g., zul for Zulu).

In order to make sure you have the correct language code when interfacing with the Kolibri ecosystem (e.g. when uploading new content to Kolibri Studio), you must lookup the language object using the helper method getlang:

>>> 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)

The function getlang will return None if the lookup fails. In such cases, you can try lookup by name or lookup by alpha2 code (ISO_639-1) methods defined below.

Once you’ve successfully looked up the language object, you can obtain the internal representation language code from the language object’s code attribute:

>>> language_obj.code
'en'

The Ricecooker API expects these internal representation language codes will be supplied for all language attributes (channel language, node language, and files language).

More lookup helper methods

The helper method getlang_by_name allows you to lookup a language by name:

>>> 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)

The module le_utils.constants.languages defines two other language lookup methods: - Use getlang_by_native_name for lookup up names by native language name, e.g., you look for ‘Français’ to find French. - Use getlang_by_alpha2 to perform lookups using the standard two-letter codes defined in ISO_639-1 that are supported by the pycountries library.

Licenses

All content nodes within Kolibri and Kolibri Studio must have a license. The file le_utils/constants/licenses.py contains the constants used to identify the license types. These constants are meant to be used in conjunction with the helper method ricecooker.classes.licenses.get_license to create Licence objects.

To initialize a license object, you must specify the license type and the copyright_holder (str) which identifies a person or an organization. For example:

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

Note: The copyright_holder field is required for all License types except for the public domain license for which copyright_holder can be None.

Content Kinds and File Types

The files le_utils/constants/content_kinds.py and le_utils/constants/file_types.py contain identifiers for the different content types supported by Kolibri and Kolibri Studio.

The currently supported content formats are - Topic node (folder) - Video content nodes backed by a video files - Audio content nodes backed by an audio files - Document content nodes backed by a document files (PDF) - HTML5 app content nodes backed by a HTML5 zip files - Exercise content nodes, which contain different types of questions

File Formats and Format Presets

The files le_utils/constants/file_formats.py and le_utils/constants/format_presets.py contain strings used in user interface to identify different file formats.

Exercises

The file le_utils/constants/exercises.py contains identifiers for different question types and mastery models.

Proquint Channel Tokens

The file le_utils/proquint.py contains helper methods for generating proquint identifiers for content channels. These are short strings that are easy to enter on devices without a full keyboard, e.g. sutul-hakuh.

Release History

This version
History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

History Node

0.0.12

History Node

0.0.11

History Node

0.0.10

History Node

0.0.9rc24

History Node

0.0.9rc23

History Node

0.0.9rc22

History Node

0.0.9rc21

History Node

0.0.9rc20

History Node

0.0.9rc19

History Node

0.0.9rc18

History Node

0.0.9rc17

History Node

0.0.9rc16

History Node

0.0.9rc15

History Node

0.0.9rc14

History Node

0.0.9c13

History Node

0.0.9rc12

History Node

0.0.9rc11

History Node

0.0.9rc10

History Node

0.0.9rc9

History Node

0.0.9rc8

History Node

0.0.9rc7

History Node

0.0.9rc6

History Node

0.0.9rc5

History Node

0.0.9rc4

History Node

0.0.9rc3

History Node

0.0.9rc2

History Node

0.0.9rc1

History Node

0.0.9rc0

History Node

0.0.9b0

History Node

0.0.9a0

History Node

0.0.8

History Node

0.0.7

History Node

0.0.4

History Node

0.0.3

History Node

0.0.2

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
le-utils-0.1.5.tar.gz
(20.2 kB) Copy SHA256 Hash SHA256
Source None Jan 11, 2018

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting