python-gantt-csv 0.4.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

pythonganttcsv 0.4.0

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:

python-gantt see http://xael.org/pages/python-gantt-en.html



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)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.