Начало работы

[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]: