class documentation

class SQLiteStorage(Storage):

Constructor: SQLiteStorage()

View In Hierarchy

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_sqlite_connections Close all connections present in SQLiteStorage.connections .
Method find_courses Search for courses, and return a dict mapping their titles to their IDs, and IDs to titles.
Method get_cached_item Return an item from the course's cache as a dict.
Method get_course_metadata Return the metadata of the course as a dict.
Method get_html Return the content of the first HTML file found in the learning content, or an empty string.
Method get_learning_contents_ordered Return a nested OrderedDict of learning content identifiers and titles.
Method parse_group Scan the current group of learning contents, build output, and recurse into subgroups.
Method write_course Create a new SQLite database representing the course. Return a message indicating success or failure.
Instance Variable connections Undocumented

Inherited from Storage:

Method delete_course Delete the course identified by course.
Method delete_learning_content Delete the learning content identified by learning_content_id.
Method delete_variant Attempt to delete the variant identified by variant_id. Return a message in case of success.
Method get_course_titles Return a list of titles of existing courses.
Method get_directory 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_image Return the URI to the first image found in the learning content, or an empty string.
Method get_learning_contents Return a list of learning contents identifiers for a course in arbitrary order.
Method get_learning_contents_titles Return a dictionary mapping learning contents identifiers to their titles.
Method get_variant_metadata Return the metadata of the variant as a dict.
Method get_variants Return a list of all variants for a learning content in a course.
Method get_variants_ids Return a list of identifiers of all variants for a learning content in a course.
Method write_learning_content Create a new learning content.
Method write_learning_contents_list Write an re-ordered list of learning contents into the course.
Method write_variant Write a variant consisting of a single or multiple files, and create the according meta files.
def __init__(self):

Initialise SQLiteStorage.

def close_sqlite_connections(self):

Close all connections present in SQLiteStorage.connections .

def find_courses(self):

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.

def get_cached_item(self, course, path):

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." }

def get_course_metadata(self, course):

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", }

def get_html(self, course, learning_content_id):

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.

def get_learning_contents_ordered(self, course):

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.

def parse_group(self, current_level, current_parent, cursor, all_parents):

Scan the current group of learning contents, build output, and recurse into subgroups. This method is meant to be called from build_steps().

def write_course(self, title):

Create a new SQLite database representing the course. Return a message indicating success or failure.

connections: dict =

Undocumented