Automatically assigns seats to students in a smart way.
Project description
LupSeat
LupSeats assigns seats to students in a smart and automatic away. View pypi link: pypi.org/project/LupSeat
Instructions
Install with
pip3 install lupseat
Run with
lupseat students_file seats_file [OPTS]
Required Args
-
students_file
- A csv file containing first name, middle name, last name, student id, dominant hand, special needs flag (see students.csv for example) -
seats_file
- A yaml file containing the room seating information. (see seats.txt for example)
Optional Args
-
--out output_file_name
-
--fmt output_format_string
-
--gout output_image_file_name
-
--seed seed_for_rand
-
--algorithm algorithm_type
-
--eval
- A flag to produce evaluation score (average number of students sitting next to each other). Lower score is better. -
--nosave
- A flag to disable saving output files (used primarily for automated evaluation).
Algorithm Types
- RandomAssign - random assignment of seats
- ChunkIncrease - slowly increase chunk size (i.e. number of students sitting together) until all students can fit in a room. A bottom up approach.
- ConsecDivice (Default) - consecutively divide the room until all empty seats are allocated. A top down approach.
Output format string
The output format string specifies how students are identified in the output file.
Variable names: sid, fname, lname.
Variable names in format string must be encased by brackets, and can be sliced using the bar operator.
Examples
{fname} {lname} has sid {sid}
{sid|-5,-1}
{fname|0}.{lname|0}.
Unit Tests
Run unit tests with python3 -m unittest unit-tests/*_test.py
Fuzz Test & Algorithm Evaluation
Run fuzz test with cd scripts && ./alg_evaluator.sh
.
This will produce run 500 tests with randomized seats and students for each algorithm, then average out the evaluation scores (see --eval).
The lowest score is the best performing test.
Build Instructions
Building for pip requires setup_tools
, wheel
, tqdm
, and twine
to be installed with pip.
python3 setup.py bdist_wheel
python3 -m twine upload dist/*
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file LupSeat-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: LupSeat-1.2.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ceaac0e69fefa5af720ed306dc28d4769211536b89899343280a6e5b8c4946c |
|
MD5 | cb6d69c213c78cf2c9baa322af604ea0 |
|
BLAKE2b-256 | c03858a9d61decd35f5ed8abf3986f089ad092cce999345097b498d4824237f8 |