UVic 软件工程项目的课程安排程序。专为 SENG 499 Summer 2022 项目而设计。
项目描述
SENG 499 - 公司 2:算法 1
该存储库包含一个包 ( coursescheduler ),用于安排维多利亚大学软件工程学位所需的课程。该问题被实现为约束满足问题,并使用优化的回溯搜索算法来找到有效的时间表。此软件包是为 Capstone SENG499 课程创建的:公司 2 课程调度程序项目。由 Company2 Algorithm1 子团队撰写。
先决条件
这个包需要 Python 3.9 或更高版本。在本 README 中,假定python并且pip将使用 Python 3.9。要检查您的 Python 版本,您可以运行以下命令:
$ python --version # Should output "Python 3.9.0" or higher
要检查您的 pip 版本,您可以运行以下命令:
$ pip --version # Should output some version of pip and "python 3.9" or higher
使用 PIP 从 PyPi 安装
使用pip.
$ pip install coursescheduler
作为 CI/CD 管道的一部分,该包的最新可用版本会自动上传到 PyPi 索引。为确保您使用的是最新版本,请在集成之前升级此模块。
$ python -m pip install --upgrade coursescheduler
从本地档案安装
将此存储库克隆到您的存储库中。在算法 1 模块目录中,构建并安装包,如下所示。注意:您必须更换0.1.0为正确的版本。
$ python -m build
$ pip install coursescheduler-0.1.0.tar.gz
用法
安装后,可以使用 导入和调用算法generate_schedule,如下所示。generate_schedule
需要两个参数并返回一个输出,所有这些都是 Python 字典。API 规范可以在这里找到。
from coursescheduler import generate_schedule
schedule = generate_schedule(professors, schedule)
debug可以包括第三个参数。如果设置为 True,professors和/或schedule可以设置为None并且算法将使用模拟数据。
schedule = generate_schedule(None, None, True) # Uses mock data for professors and schedule
schedule = generate_schedule(professors, None, True) # Uses mock data for schedule
schedule = generate_schedule(None, schedule, True) # Uses mock data for professors
还有一些函数可以根据规范验证输入数据:
from coursescheduler import validate_professor_structure, validate_professors_structure, validate_schedule_structure
validate_professor_structure(professor) # One Professor dict
validate_professors_structure(professors) # A list of Professor dicts
validate_schedule_structure(schedule) # A Schedule dict
如果输入根据规范有效,则这些函数将返回True. 如果存在规范违规,SchemaError将引发 a。第二个参数可以传递给所有三个名为 的验证函数print_output,默认设置为True。如果print_output是True并且输入有效,成功消息将打印到控制台。
开发
要对项目进行更改和测试,请导航到根目录
/path/to/algorithm1/。编辑项目文件后,为了使更改生效,您必须通过以下 cmd 重新安装本地包:
$ pip install .
要运行测试,请运行以下命令:
$ cd tests
$ python -m pytest
Python 短绒
我们遵循PEP8风格指南,并使用flake8对代码进行 lint。
要安装flake8,请运行以下命令:
$ pip install flake8
要运行flake8,请运行以下命令:
$ python -m flake8 [file or directory]
我们建议使用代码格式化程序black:
$ pip install black
跑黑:
$ python -m black [file or directory]
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
coursescheduler -0.1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c257dd9f5e0e20a059935821469794d543c8900d8b6e420e1cd6be416619cac7 |
|
| MD5 | e20746b414827ad95c1a1b9a56721bff |
|
| 布莱克2-256 | ee04936da714341d4d3d6f3afa5bb510a668707a0ab17a335b07faa09eb847e5 |
coursescheduler -0.1.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a40f4c1e865bb3461efab41d660bb25775852c4499b42f535a3eeb272e4adbce |
|
| MD5 | 085ed27374e628a8d6212880585b57c4 |
|
| 布莱克2-256 | 8c7ba068542276c35edf6de8d322c15d8ecfc66fa1faabfe1fe9690ea60547d1 |