Attendance Tool - MSP
An easy-to-use Python package for automated attendance processing, validation, and professional report generation. Built mainly for Microsoft Student Partners Tech Club (MSP), but works for any technical session or event at Misr International University (MIU).
This package is heavily tested with pytest and clearly documented on Read the Docs. For more details, including example datasets and the full development journey, check out the repository.
Features
- CSV Attendance Processing: Validate and process attendance sheets with robust error handling.
- Data Validation: Detects invalid records, missing fields, and edge cases.
- Report Generation: Export formatted attendance reports to Word and PDF.
- Modern GUI: Interactive, user-friendly interface built with CustomTkinter.
- Command-Line Support: Flexible CLI for batch processing and automation.
- Extensible API: Easily integrate into other Python projects.
Installation
pip install attendance-tool-msp
Usage
CSV Format Requirements
Your CSV file must contain the following columns (headers):
Full NameUniversity IDCourse CodeCourse TimeDoctor/TA Name
These columns are required for successful processing. If any are missing or empty, the tool will raise an error and the file will not be processed.
Note: Columns like
TimestampandUniversity Emailcolumn is only validated if present, but is not mandatory.
Core Workflow: Processor + Exporter
Use Processor and Exporter together to process attendance data and generate reports:
from attendance_tool_msp import Processor, Exporter
processor = Processor("data.csv")
valid_rows, invalid_rows = processor.process()
exporter = Exporter(valid_rows, invalid_rows, title="Session Report")
filename_word = exporter.export_word()
filename_pdf = exporter.export_pdf()
Simple GUI Launch
If you prefer not to handle arguments or workflow, just launch the GUI with a single line:
from attendance_tool_msp import launch_gui
launch_gui()
Command-Line Integration
For CLI usage, use the argument parser helpers:
from attendance_tool_msp import initialize_parser, validate_arguments
parser = initialize_parser()
args = parser.parse_args()
mode = validate_arguments(parser, args)
# Use mode to determine workflow (see documentation for details)
Requirements
- Python 3.10+
- python-docx
- docx2pdf
- validators
- customtkinter
- pillow
Documentation & Repository
MIT License
For the most up-to-date license and project details, visit the GitHub LICENSE.
Metadata
Release files for attendance-tool-msp 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| attendance_tool_msp-1.0.3.tar.gz | 222.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| attendance_tool_msp-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 446.6 kB
Release files / attendance_tool_msp-1.0.3.tar.gz
| Download URL | attendance_tool_msp-1.0.3.tar.gz |
|---|---|
| Size | 222.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
372b14509339573ba407d74dc6766457c9f1324d1afc13cf2d240d299b76e142
|
|
BLAKE2b-256 checksum How to use checksums |
a9a72e874ea31089a536025cf24d6d8e57c0aa50561098af64392824a46ec5c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.6
|
Release files / attendance_tool_msp-1.0.3-py3-none-any.whl
| Download URL | attendance_tool_msp-1.0.3-py3-none-any.whl |
|---|---|
| Size | 223.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2ba2967c51cdfb5cf5d0ce92d75918aca11a2a78e0041b67fd27432bbf464e16
|
|
BLAKE2b-256 checksum How to use checksums |
399a14a89b7e4fc3c4ea7c7581c1bec57e9856c1c6c94b4eef6597a3b8f04dba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.6
|