This class stores data in a sqlite database on disk. SQLiteStorage.connections A dict mapping UUID ids of a course to a tuple (sqlite3.Connection, threading.Lock). By convention, the Lock must be acquired to write data.
Method | __init__ |
Initialise SQLiteStorage. |
Method | close |
Close all connections present in SQLiteStorage.connections . |
Method | find |
Search for courses, and return a dict mapping their titles to their IDs, and IDs to titles. |
Method | get |
Return an item from the course's cache as a dict. |
Method | get |
Return the metadata of the course as a dict. |
Method | get |
Return the content of the first HTML file found in the learning content, or an empty string. |
Method | get |
Return a nested OrderedDict of learning content identifiers and titles. |
Method | parse |
Scan the current group of learning contents, build output, and recurse into subgroups. |
Method | write |
Create a new SQLite database representing the course. Return a message indicating success or failure. |
Instance Variable | connections |
Undocumented |
Inherited from Storage
:
Method | delete |
Delete the course identified by course. |
Method | delete |
Delete the learning content identified by learning_content_id. |
Method | delete |
Attempt to delete the variant identified by variant_id. Return a message in case of success. |
Method | get |
Return a list of titles of existing courses. |
Method | get |
Return a tuple (directory_name, html) with the name of the first directory found in the learning content, and the content of the first HTML file found in there. Both elements may be empty. |
Method | get |
Return the URI to the first image found in the learning content, or an empty string. |
Method | get |
Return a list of learning contents identifiers for a course in arbitrary order. |
Method | get |
Return a dictionary mapping learning contents identifiers to their titles. |
Method | get |
Return the metadata of the variant as a dict. |
Method | get |
Return a list of all variants for a learning content in a course. |
Method | get |
Return a list of identifiers of all variants for a learning content in a course. |
Method | write |
Create a new learning content. |
Method | write |
Write an re-ordered list of learning contents into the course. |
Method | write |
Write a variant consisting of a single or multiple files, and create the according meta files. |
Search for courses, and return a dict mapping their titles to their IDs, and IDs to titles. Found courses with a reqired MAJOR Luna version larger than the current one will be omitted.
Return an item from the course's cache as a dict. course can be an identifier or the course title. An identifier is recommended, since titles may not be unique. Example: { "path": "square.svg", "data": bytes('<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg width="512" height="512" viewBox="0 0 135.46666 135.46667" version="1.1" id="svg5" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs2" /><g id="layer1"><rect style="fill:#ba2bcd;fill-opacity:1;stroke:none;stroke-width:0.187088;stroke-linecap:square;stroke-linejoin:round" id="rect286" width="95.789398" height="95.789398" x="-47.894699" y="47.894699" transform="rotate(-45)" /></g></svg>', encoding = "utf-8"), "format": "image/svg+xml", "description": "A violet square, balancing on a corner." }
Return the metadata of the course as a dict. course can be an identifier or the course title. An identifier is recommended, since titles may not be unique. Example: { "identifier": "e0f59465-f984-45ef-9b3d-2cf29e9edcd8", "title": "Example Title", "description": "Example description.", "relation": "", "created": "2023-08-28", "modified": "2023-08-28", "dateAccepted": "", "issued": "", "contributor": "Jane", "requires": "Luna LMS 1.0.0", }
Return the content of the first HTML file found in the learning content, or an empty string. course can be an identifier or the course title. An identifier is recommended, since titles may not be unique.
Return a nested OrderedDict of learning content identifiers and titles. course can be an identifier or the course title. An identifier is recommended, since titles may not be unique.
Scan the current group of learning contents, build output, and recurse into subgroups. This method is meant to be called from build_steps().