Skip to main content

Yoann's Automatic Signature Sheet (YASS)

I am an associate professor at Sorbonne Université (France), and it is not uncommon that I have to print signature sheet (for exams or mandatory sessions).

At my disposal: the Moodle tool, where I can download a list of the students in several format (.ods, .csv, .pdf, etc...). Until recently, I was using libreoffice calc with the .ods file and reformatting it. But this was not the most efficient: first because the operations were always the same (add borders, add blank space, adjust column width to use full width of the page, etc...) and not automatized, and second, because it has happened several times that libreoffice just bugged and was printing blank pdf pages (although the information was still here).

Hence, I decided to code a small tool that would take a list of students/people as a (csv) input and output a pdf file for the signature, using LaTeX. The process is fully automated and can be used with a command-line interface that is described later.

Installation

Yass may be installed from the PyPi repository:

pip install automatic-signature-sheet

For ArchLinux users, a PKGBUILD file is available in the archlinux folder. Hence the package can be installed with the following commands:

git clone https://github.com/nanoy42/yass
cd yass/archlinux
makepkg -si

Examples

Examples can be found in the examples folder.

Templates

YASS is shipped with 3 templates:

  • default.tex which has 4 columns: last name, first name, id and signature (empty).
  • rank.tex which has 5 columns: last name, first name, id, rank (empty) and signature (empty).
  • no-id.tex which has 3 columns: last name, first name and signature (empty).

Command line interface

The command line interface allows for a simple use of the tool. In its simplest form, the CLI can be used as follows:

yass file.csv

By default, this will output the generated file to file.pdf. If the file already exists, yass will prevent the generation unless the -f/--force flag is passed. It is also possible to change the output filename with the -o/--output flag:

yass file.csv -o output.pdf

The title of the signature sheet can be changed with -t/--title,

yass file.csv -t "Some exam"

The vertical size of the signature (defaults to 50pt) can be changed with the -s/--size flag. Note that the unit may not be omitted.

The template can be changed with the -T/--template flag.

yass file.csv -T rank.tex

It is possible to force yass to use the same order in the CSV file (and not perform sorting on the last name) by providing the --no-sort flag.

Finally, the user may use -i/--ignore-lines, --first-name-column, --last-name-column and --person-id-column to change which column is used in the CSV.

Here is the documentation of the command line

usage: yass [-h] [--version] [-t TITLE] [-s SIZE] [-f] [--no-sort] [-i IGNORE_LINES] [--first-name-column FIRST_NAME_COLUMN] [--last-name-column LAST_NAME_COLUMN] [--person-id-column PERSON_ID_COLUMN]
            [-T {default.tex,no-id.tex,rank.tex}] [-o OUTPUT]
            filename

positional arguments:
  filename

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -t, --title TITLE     Title of the signature sheet
  -s, --size SIZE       Size, in pt, of the signature box (default 50pt). Unit may not be omitted.
  -f, --force           Force the generation of the file even if the output file exists.
  --no-sort             Prevent sorting using the alphabetical order on the last name.
  -i, --ignore-lines IGNORE_LINES
                        Number of lines to ignore in the CSV (header(s)). Default: 1.
  --first-name-column FIRST_NAME_COLUMN
                        Column of the first name. Default: 0.
  --last-name-column LAST_NAME_COLUMN
                        Column of the last name. Default: 1.
  --person-id-column PERSON_ID_COLUMN
                        Column of the person id.. Use a negative value to ignore person id. Default: 2.
  -T, --template {default.tex,no-id.tex,rank.tex}
                        LaTeX template to use. Default: default.tex
  -o, --output OUTPUT   Force the output name. Default: input name with .pdf

License

This software is released under the MIT license. For more details, check the LICENSE file or visit https://opensource.org/licenses/MIT.

Metadata

Release files for automatic-signature-sheet 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for automatic-signature-sheet 0.2.1
File Size Uploaded Provenance
automatic_signature_sheet-0.2.1.tar.gz 6.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for automatic-signature-sheet 0.2.1
File Interpreter ABI Platform
automatic_signature_sheet-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 kB

Release files / automatic_signature_sheet-0.2.1.tar.gz

Download URL automatic_signature_sheet-0.2.1.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
11f940c7187d0bd7c1dcda8528e998be0e8c53bfce19821889d418deb8082a9e
BLAKE2b-256 checksum
How to use checksums
5d5e92d04cb257bf4d61562f59c7466f8ea147fd9a4aa84ce8ce7b735ae2f052
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.14.3 Linux/6.18.13-arch1-1

Release files / automatic_signature_sheet-0.2.1-py3-none-any.whl

Download URL automatic_signature_sheet-0.2.1-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81d1871176e91f0ee50a705f352e2886222494b227a424cebea4787c1c6c5fb6
BLAKE2b-256 checksum
How to use checksums
160a4528b4fdda3ddf926e60b85637bd43ae473af3404f1ef1396f74ea99d3aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.14.3 Linux/6.18.13-arch1-1

Security for automatic-signature-sheet 0.2.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page