# GeneticTabler
[![DeepSource](https://deepsource.io/gh/themagicalmammal/genetictabler.svg/?label=active+issues&show_trend=true)](https://deepsource.io/gh/themagicalmammal/genetictabler/)
Time Table scheduling using genetic algorithm.
Developed by [Dipan Nanda](https://github.com/themagicalmammal) and [Ashish Shah](https://github.com/capriciousBoson) (c) 2021
## Example of Usage
```python
from genetictabler import GenerateTimeTable
total_classes = 6
no_courses = 6
slots = 6
total_days = 7
daily_repetition = 3
"""
Variable Definitions:
:param total_classes: It is the count of total number of timetables you want.
Suppose If you 4 batches/student groups for CS freshmen
all studying the same courses/modules/subjects you can
generate 4 different yet coherent yet timetables without
having any clashes.
:param no_courses: It is the count of total number of courses/modules/subjects
that a class or classes are going to be taught. For example
if a class is going to be taught only maths, physics,
chemistry and CS then total count will be 4.
:param slots: It is the count of total lectures that are to be scheduled each
day.
:param total_days: It is the count of total number of days for which you want
to schedule the timetable. For example a weekly timetable
will have total 5/6 days. A monthly schedule can be of 25
days.
:param daily_repetition: It is the maximum allowed number of times a
course/subject/module can have lectures per day. It
is used when the slots count is more than no_courses.
Note:- The table returned by the above function call is a 3-dimensional
list/array. Which is a list of timetables for each class which in itself are
2d arrays.
"""
table = GenerateTimeTable(total_classes, no_courses, slots, total_days, daily_repetition)
for single_table in table.run():
for days in single_table:
print(days)
print("-----------------------------------")
```
## Changelog
Go [here](https://github.com/themagicalmammal/genetictabler/blob/main/CHANGELOG.md) to checkout the complete changelog.
## License
#### This is under BSD 3 Clause License
[![License: BSD](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://github.com/themagicalmammal/genetictabler/blob/main/LICENSE)
Raw data
{
"_id": null,
"home_page": "",
"name": "genetictabler",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,geneticalgorithm,genetics,genes,chromosomes,timetable",
"author": "Dipan Nanda",
"author_email": "d19cyber@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fc/1a/a33a313552620c3e63405c07036304a4b1e95513754eba9fb719da35a548/genetictabler-1.1.1.tar.gz",
"platform": null,
"description": "\n# GeneticTabler\n[![DeepSource](https://deepsource.io/gh/themagicalmammal/genetictabler.svg/?label=active+issues&show_trend=true)](https://deepsource.io/gh/themagicalmammal/genetictabler/)\n\nTime Table scheduling using genetic algorithm.\n\nDeveloped by [Dipan Nanda](https://github.com/themagicalmammal) and [Ashish Shah](https://github.com/capriciousBoson) (c) 2021\n\n## Example of Usage\n\n```python\nfrom genetictabler import GenerateTimeTable\n\ntotal_classes = 6\nno_courses = 6\nslots = 6\ntotal_days = 7\ndaily_repetition = 3\n\n\"\"\"\nVariable Definitions:\n\n:param total_classes: It is the count of total number of timetables you want. \n Suppose If you 4 batches/student groups for CS freshmen\n all studying the same courses/modules/subjects you can \n generate 4 different yet coherent yet timetables without \n having any clashes.\n\n:param no_courses: It is the count of total number of courses/modules/subjects \n that a class or classes are going to be taught. For example \n if a class is going to be taught only maths, physics, \n chemistry and CS then total count will be 4.\n\n:param slots: It is the count of total lectures that are to be scheduled each \n day. \n\n:param total_days: It is the count of total number of days for which you want \n to schedule the timetable. For example a weekly timetable \n will have total 5/6 days. A monthly schedule can be of 25 \n days.\n\n:param daily_repetition: It is the maximum allowed number of times a \n course/subject/module can have lectures per day. It \n is used when the slots count is more than no_courses.\n \nNote:- The table returned by the above function call is a 3-dimensional \nlist/array. Which is a list of timetables for each class which in itself are \n2d arrays.\n\"\"\"\n\ntable = GenerateTimeTable(total_classes, no_courses, slots, total_days, daily_repetition)\nfor single_table in table.run():\n for days in single_table:\n print(days)\n print(\"-----------------------------------\")\n\n\n```\n\n## Changelog\nGo [here](https://github.com/themagicalmammal/genetictabler/blob/main/CHANGELOG.md) to checkout the complete changelog.\n\n## License\n#### This is under BSD 3 Clause License\n[![License: BSD](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://github.com/themagicalmammal/genetictabler/blob/main/LICENSE)\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A time table scheduler using Genetic algorithm(s).",
"version": "1.1.1",
"split_keywords": [
"python",
"geneticalgorithm",
"genetics",
"genes",
"chromosomes",
"timetable"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03d21337def5edf7e6694952d5fec7c63109ba6c1bcc215c5f82ca9cf98c8fe5",
"md5": "7914344deb2b2ee0191363a9cd57e6f4",
"sha256": "e3ecadd28d5662de64d05daaa67210e795a6144eec747243a93d1b035423ca11"
},
"downloads": -1,
"filename": "genetictabler-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7914344deb2b2ee0191363a9cd57e6f4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 6790,
"upload_time": "2023-01-03T15:43:01",
"upload_time_iso_8601": "2023-01-03T15:43:01.893993Z",
"url": "https://files.pythonhosted.org/packages/03/d2/1337def5edf7e6694952d5fec7c63109ba6c1bcc215c5f82ca9cf98c8fe5/genetictabler-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc1aa33a313552620c3e63405c07036304a4b1e95513754eba9fb719da35a548",
"md5": "53fa3cad8db755b43c6a85f74a6378fc",
"sha256": "ff8bf58deecddce14c9f4887fcdf66cd8797daff2fd41678b759d999893943ce"
},
"downloads": -1,
"filename": "genetictabler-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "53fa3cad8db755b43c6a85f74a6378fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6666,
"upload_time": "2023-01-03T15:43:03",
"upload_time_iso_8601": "2023-01-03T15:43:03.118842Z",
"url": "https://files.pythonhosted.org/packages/fc/1a/a33a313552620c3e63405c07036304a4b1e95513754eba9fb719da35a548/genetictabler-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-03 15:43:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "genetictabler"
}