Начало работы¶
[1]:
import sys
from datetime import datetime
sys.path.append('../../../src')
from pjplan import Task, ForwardScheduler, WBS, MermaidGantt, WeeklyCalendar, Resource, MermaidNetwork
Давайте опишем простую структуру работ:
[2]:
with WBS() as prj:
prj // Task(1, 'Task 1', estimate=40, resource='Developer')
prj // Task(2, 'Task 2', predecessors=[prj[1]], estimate=20, resource='Developer')
with prj // Task(3, 'Task 3') as t3:
t3 // Task(4, 'Task 4', predecessors=[prj[2]], estimate=100, resource='Tester')
t3 // Task(5, 'Task 5', predecessors=[prj[2]], estimate=50, resource='Tester')
Опишем ресурсы:
[3]:
work_calendar = WeeklyCalendar(days=[0,1,2,3,4], units_per_day=8)
developer = Resource(name='Developer', calendar=work_calendar)
tester = Resource(name='Tester', calendar=work_calendar)
Теперь мы можем рассчитать расписание для нашего проекта:
[4]:
schedule = ForwardScheduler(
start=datetime.now(),
resources=[developer, tester]
).calc(prj)
и визуализировать его в виде диаграммы Ганта:
[5]:
MermaidGantt(schedule.schedule, tick_interval="10day")
[5]:
а так же сетевой диаграммы:
[6]:
MermaidNetwork(schedule.schedule)
[6]: