TentaMaker
This Python package provides a system for building exams (tentor) at Chalmers.
Based on a pool of questions and solutions, the system generates exams both in the form of PDF files for printing and PNG files for inclusion in online exam systems such as Inspera or Canvas.
Documentation
First, install the package by the following command:
$ pip install tentamaker
Then, create a directory where you want to create and store the generated exams and enter the directory, for example:
$ mkdir exams
$ cd exams
Then, run the following command to create the initial structure for your exams:
$ init-exam
This will populate the current directory with a number of directories where the
output will be stored. This will also create a directory named config
containing the configuration of the exam.
To create an exam, you first need to build a pool of questions. Edit the file
config/pool.tex to build the pool of questions. Each question should be
entered in LaTeX in the following format
% X.y.z
Formulation of question.
% Answer
Solution to question.
%
See the file config/pool.tex for examples of how to write questions and
solutions.
Each question has a label in the format X.y.z where X is a capital letter
(A, B, C, ...) denoting which part of the exam that the question belongs
to. The number y denotes the number of the question within the part X and
the number z denotes a variant of the question. Each question can have many
variants.
When generating exams, the last variant of each question is selected, unless the randomization option is set (see below).
The next step is to edit the configuration file conf/conf.toml to set the title
of the course, the course code, name of examiner etc.
Once this is done, you may proceed to generate the exam by running the following command:
$ make-exam yyyy-mm-yy
Here, yyyy-mm-yy is the date of the exam. This will generate PDF files in the
directory pdf and snapshots of the questions in the directory png.
The command make-exam supports a number of optional command-line arguments
described below.
Add --randomize to randomize the selection of questions. The randomization
uses the seed specified in conf/conf.toml. If the seed is missing, the seed
will use a "non-deterministic" seed from the operating system.
Add --verbose to see more detailed output. This is useful for example if the
process hangs at "Building PDF file..." to see what might have gone wrong when
running LaTeX (pdflatex).
Add --no-snapshots to skip generation of PNG snapshots. This is useful during
the creation of an exam (not creating PNG files until the exam is final).
Authors (in order of appearance)
License
This project is licensed under the MIT license.
Copyright is held by the individual authors as listed at the top of each source file.
Metadata
Release files for tentamaker 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tentamaker-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / tentamaker-0.1.1-py3-none-any.whl
| Download URL | tentamaker-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3aed0b37108cb3a84be551224b3c0eced90f69318f04cd1edb2acc3d08a70dea
|
|
BLAKE2b-256 checksum How to use checksums |
655d953613ff6c95d35eafab5499bb8bf436825e24cdc557bcd6753995636c89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Security for tentamaker 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.