genetictabler


Namegenetictabler JSON
Version 1.1.1 PyPI version JSON
download
home_page
SummaryA time table scheduler using Genetic algorithm(s).
upload_time2023-01-03 15:43:03
maintainer
docs_urlNone
authorDipan Nanda
requires_python
licenseGPLv3
keywords python geneticalgorithm genetics genes chromosomes timetable
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# 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"
}
        
Elapsed time: 0.03450s