Module for working with course requisite data and checking requisite satisfaciton.
Project description
Requisite Processor
The RequisiteProcessor class is designed to evaluate whether the prerequisite rules for a course are met given a list of completed courses and test score data.
Prerequisite Data
This module can make use of any arbitrary prerequisite information given that it is formatted correctly. For more information on the necessary structure as well as the latest prerequsite data for UNM courses, see this repo:
https://lobogit.unm.edu/unm-data-analytics/requisite-data#
Usage
Initialization
Initialize the RequisiteProcessor with a dictionary of prerequisite rules.
from requisite_processor import RequisiteProcessor
prerequisite_rules = {
"202310": {
"MATH 1512": {
"type": "course",
"course": {"code": "MATH 1234"},
"minimum_course_grade": "C"
}
}
}
processor = RequisiteProcessor(prerequisite_rules)
Processor Methods
The RequisiteProcessor contains the following methods: availabile_academic_periods: Returns a list of all academic periods in the dataset.
academic_periods = processor.availabile_academic_periods
print(academic_periods) # Output: ['202310', '202380']
latest_available_academic_period: Returns the most recent academic period.
latest_period = processor.latest_available_academic_period
print(latest_period) # Output: '202380'
check_satisfaction: Checks if a student satisfies the prerequisites for a course in a specific academic period.
Parameters:
- course_code (str): Course to check prerequisites for.
- courses_taken (list[dict], optional): List of completed courses and grades. Defaults to [].
- test_scores (dict, optional): Test scores dictionary. Defaults to {}.
- academic_period (str, optional): Academic period. Defaults to the latest available.
- ignore_tests (bool, optional): Ignore test requirements. Defaults to False.
- ignore_grades (bool, optional): Ignore grade requirements. Defaults to False.
Returns: RequisiteCheckResult object. The result of the prerequisite check.
See below for example usage.
Example Prerequisite Satisfaction Check
courses_taken = [{"code": "MATH 1250", "grade": "B"}]
test_scores = {"A01": 28}
result = processor.check_satisfaction(
course_code="MATH 1512",
courses_taken=courses_taken,
test_scores=test_scores
)
print(result.satisfied) # Output: True or False
Future Work
- Write tests
- Allow for more customization in how requisites are processed.
- Write additional helper functions such as string representation of requirements, flattend requirements and more.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file requisite_processor-0.1.2.tar.gz.
File metadata
- Download URL: requisite_processor-0.1.2.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.14 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad5a130bd3422b3b511c181e28091587a5d450ce52ceebd9245abada738a7599
|
|
| MD5 |
a91c2e2ef94a64680e3180f35b365435
|
|
| BLAKE2b-256 |
45144dd7d4f29088131a4146e7bd2118ca4bd9ac48b78085eba77eb78e111770
|
File details
Details for the file requisite_processor-0.1.2-py3-none-any.whl.
File metadata
- Download URL: requisite_processor-0.1.2-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.14 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db21fdcafe33e401a013fef6700e63f583caed83483248621cc4f3f060329cc9
|
|
| MD5 |
bd3e6611082f63e95be1ca62328dd89d
|
|
| BLAKE2b-256 |
93baf3e2fd193a4ffd90bebbe67af822f9ad5c2e63aaf021b4f86b8ef0c304a9
|