Skip to main content

Python library to populate Moodle question banks using a Cloze/XML format.

Project description

moocloze

Python library to populate Moodle question banks using a Cloze/XML format.

It aims to provide a functionality similar to that of PyCloze, but reducing the necessity of specific knowledge about the Moodle XML or Cloze formats.

Contents:

Installation

The moocloze library is available as a pip package:

pip install moocloze

You can then import it as a normal package in any python code:

import moocloze

Minimal example

The following code (download source)

import moocloze

questions = [moocloze.Question(
    name=f"How much is {i}+{i}",
    contents=f"What is the result of {i}+{i}? "
             f"{moocloze.Numerical(i + i)}")
    for i in range(3)]

quiz = moocloze.Quiz(questions)

quiz.to_xml_file(output_path="example_quiz.xml")

generates a file in Cloze/XML format (download XML file) that can be imported in Moodle. Once imported, 3 questions are added to the bank, one of which is shown next:

Example output of a numerical question

Creating questions and importing into Moodle

The following workflow is proposed to add questions to a Moodle category

  • In your computer:

    1. Create a list of (related) Question instances.
      import moocloze
      questions = [moocloze.Question(name="...", contents="..."), ...]
      
    2. Define a Quiz containing that list of questions.
      quiz = moocloze.Quiz(questions)
      
    3. Use that quiz's to_xml_file method to create a .xml file with the Moodle XML/Cloze format.
      quiz.to_xml_file("my_questions.xml") 
      
  • In Moodle:

    1. Go to your course's Question bank question bank

    2. (Optional) Go to the question Categories page and add your category categories

    3. Go to the question Import page, select the category where questions are to be imported (here "Raw audio file size", shown under the "General" section), upload your xml file (e.g., "my_questions.xml" in the example below) and press "Import": import

    4. You will be shown a confirmation page. If no errors are found, you are done!

Full example

You can find a complete example that produces a single question using all supported field (response) types:

  • moocloze.Numerical (integers or floats, with arbitrary error tolerance)
  • moocloze.Multiresponse (one or more valid options using checkboxes)
  • moocloze.Multichoice (one valid option among several, using dropdown menus or radio buttons)
  • moocloze.ShortAnswer (short text)

A screenshot of the question is shown next (see full size):

import

References

Project details


Download files

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

Source Distribution

moocloze-1.0.1.tar.gz (6.9 kB view hashes)

Uploaded Source

Built Distribution

moocloze-1.0.1-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page