Task scheduler with automatic resource leveling.
Project description
Task scheduler with automatic resource leveling
The task scheduler reads one or more JSON configuration files, that includes:
- project general information
- list of resources
- list of tasks.
The output is a work plan, with the tasks automatically assigned to resources ("resource leveling"), as JSON format.
The goal is to find the best possible end date (as soon as possible).
The internal algorithm follows these rules:
- efficient use of resources, if possible 100%, with no overload at all
- long tasks may be carried out in parallel by several people.
Dependencies
Taskshed requires Python ≥ 3.7 and:
You can install dependencies in a virtual environment with:
pip install -r requirements.txt
Usage
The input data is written in JSON format. One or more files are accepted, each one overwrites any file previously loaded.
Content of files can be read from standard input or filenames are allowed as command line arguments. Both can be used at same time.
The command tasksched
allows two actions:
workplan
: build an optimized work plan using project/resources/tasks info in input; the output is JSON datatext
: convert output ofworkplan
action (JSON data) to text for display in the terminal (colors and unicode chars are used by default but optional).
See file project_complete.json for an example of input JSON files with all possible fields and file workplan_complete.json for an example of output workplan, as JSON.
Example: use of another program extract-tasks
to extract tasks from a ticketing
tool and two configuration files for the project and resources, build the work plan
and convert it to text for display:
$ extract-tasks | tasksched workplan project.json team.json | tasksched text
Copyright
Copyright © 2020 Sébastien Helleu
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for tasksched-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e5d17d90e9a327d9144737096ba3c00559a56a5982dc7c5e37932b2b2cf4e11 |
|
MD5 | 717d04c3e423d29da2dbd67f9cb7310e |
|
BLAKE2b-256 | 7c23b6432e2a9cf1b72c7655fe517bdefaec3f78d23b18a03e65463798688a76 |