Skip to main content

python-gantt-csv manage gantt.Task arguments with csv format.

Project description

python-gantt-csv manages the arguments of gantt.Task in csv format and resolves dependencies between tasks.
You will be able to edit tasks without worrying about the order in which you define them.

Requirements

This projects needs the following libraries:

Additionnal requirements

Installation

pip install python-gantt-csv

Definition of Task Arguments in CSV Format

column name valid value
name str
start ‘today’ or iso format date (Ex: ‘2014-12-26’)
duration int
percent_done int
resources ‘None’ or str or colon separated str (Ex: ‘ANO:JLS’)
depends_of ‘None’ or unique str or colon separated unique str (Ex: ‘1:2’)
color Hex color (Ex: #FF8080)
id unique str

Usage

Directory structure

.
├── example1.csv
├── example2.csv
└── example.py

Run example

python example.py

example1.csv

name,start,depends_of,duration,percent_done,resources,color,id
tache1,2014-12-25,None,4,44,ANO,#FF8080,1
tache2,2014-12-28,None,6,0,JLS,#c70039,2
tache3,2014-12-25,1:2:6,5,50,ANO:JLS,#f37121,3
tache4,2015-01-01,1,4,40,JLS,#c0e218,4
tache6,2014-12-25,6,4,0,ANO:JLS,#f37121,5
tache7,2014-12-28,None,6,0,JLS,#c0e218,6
tache8,today,6,4,0,ANO:JLS,#111d5e,7

example2.csv

name,start,depends_of,duration,percent_done,resources,color,id
tache5,2014-12-23,None,3,0,ANO:JLS,#f37121,1

example.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import datetime
from pathlib import Path

import gantt

from gantt_csv import create_project_from_csv, RESOURCES


YMD_VACATIONS = [
    (2014, 12, 30),
    (2014, 12, 31),
    (2015, 1, 1),
    (2015, 1, 2),
]


# Change font default
gantt.define_font_attributes(fill='black',
                             stroke='black',
                             stroke_width=0,
                             font_family="Verdana")

# Add vacations for everyone
for year, month, date in YMD_VACATIONS:
    gantt.add_vacations(datetime.date(year, month, date))

# Create project from csv files
projects = []
for csv_path in Path('.').glob('*.csv'):
    p1 = create_project_from_csv(csv_path)
    projects.append(p1)

# Or Create project from list
# task_table = []
# with open("gantt_args1.csv", "rt", encoding="utf-8", newline='') as f:
#     reader = csv.reader(f)
#     for row in reader:
#         task_table.append(row)
# p1 = create_project_from_table(
#     "Example2 project",
#     task_table[1:],
#     header=task_table[0]
# )

# Create parent project
parent_project = gantt.Project(name='Parent Project')
# which contains the other projects
for project in projects:
    parent_project.add_task(project)

# MAKE DRAW
parent_project.make_svg_for_tasks(filename='test_full.svg',
                                  today=datetime.date.today(),
                                  start=datetime.date(2014, 12, 20),
                                  end=datetime.date(2015, 2, 20))
parent_project.make_svg_for_resources(filename='test_resources.svg',
                                      today=datetime.date.today(),
                                      resources=tuple(RESOURCES.values()))
parent_project.make_svg_for_tasks(filename='test_weekly.svg',
                                  today=datetime.date.today(),
                                  scale=gantt.DRAW_WITH_WEEKLY_SCALE)

Licence

GPL v3 or any later version

Author

Shota Horie (horie.shouta at gmail.com)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-gantt-csv, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size python_gantt_csv-0.4.0-py3-none-any.whl (7.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size python-gantt-csv-0.4.0.tar.gz (86.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page