pjplan package¶
Subpackages¶
Submodules¶
pjplan.calendar module¶
- pjplan.calendar.DEFAULT_CALENDAR = Weekly: [-, -] |[92m MON [0m|[92m TUE [0m|[92m WED [0m|[92m THU [0m|[92m FRI [0m|[92m SAT [0m|[92m SUN [0m| | 8.0 | 8.0 | 8.0 | 8.0 | 8.0 |[97m 0.0 [0m|[97m 0.0 [0m|¶
Default calendar monday-friday with 8 hours per day
- class pjplan.calendar.DirectCalendar(units: Dict[datetime, float] | None = None)¶
Bases:
IWorkCalendar
- property dates¶
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- set_units(units: Dict[datetime, float])¶
- class pjplan.calendar.FixedCalendar(units: float, start: datetime | None = None, end: datetime | None = None)¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.FuncCalendar(calendar: IWorkCalendar, func: Callable[[float], float])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.IWorkCalendar¶
Bases:
ABC
Work calendar interface
- apply(func: Callable[[float], float]) IWorkCalendar ¶
- abstract get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.WeeklyCalendar(start: datetime | None = None, end: datetime | None = None, days: List[int] | None = None, units_per_day: int | float | Dict[int, float] | None = None)¶
Bases:
IWorkCalendar
IWorkCalendar implementation with following arguments: 1. working_days - list of week working days 0 - monday, 1 - tuesday, etc. 2. day_hours - number of working hours in working day
- clone() WeeklyCalendar ¶
- property end¶
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- get_week_day_hours() Dict[int, float] ¶
- property start¶
- class pjplan.calendar.WorkCalendarDisjunction(calendars: Iterable[IWorkCalendar])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.WorkCalendarDiv(calendars: Iterable[IWorkCalendar])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.WorkCalendarSub(calendars: Iterable[IWorkCalendar])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.WorkCalendarSum(calendars: Iterable[IWorkCalendar])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
- class pjplan.calendar.WorkCalendarsMul(calendars: Iterable[IWorkCalendar])¶
Bases:
IWorkCalendar
- get_available_units(date: datetime) float ¶
Returns number of work hours for date :param date: date :return: number of work hours
pjplan.resource module¶
- class pjplan.resource.IResource(name: str)¶
Bases:
ABC
Ресурс - человек, машина или любая другая сущность, которая необходима для выполнения работы (Task)
- abstract get_available_units(date: datetime) float ¶
- get_nearest_availability_date(start_date: datetime, direction: int, max_days=100) datetime ¶
Возвращает ближайшую дату доступности ресурса, начиная со start_date :param direction: 1 или -1 :param start_date: дата начала поиска :param max_days: максимальный интервал поиска (в днях) :return: дата доступности
- class pjplan.resource.Resource(name: str, calendar: ~pjplan.calendar.IWorkCalendar = Weekly: [-, -] |[92m MON [0m|[92m TUE [0m|[92m WED [0m|[92m THU [0m|[92m FRI [0m|[92m SAT [0m|[92m SUN [0m| | 8.0 | 8.0 | 8.0 | 8.0 | 8.0 |[97m 0.0 [0m|[97m 0.0 [0m|)¶
Bases:
IResource
- get_available_units(date: datetime) float ¶
Возвращает количество доступных рабочих часов ресурса в указанную дату :param date: дата :return: количество доступных часов ресурса
pjplan.schedule module¶
- class pjplan.schedule.BackwardScheduler(end: datetime | None = None, resources: List[IResource] | None = None, balance_resources: bool = True, default_estimate: int = 0)¶
Bases:
IScheduler
- class pjplan.schedule.ForwardScheduler(start: datetime | None = None, resources: List[IResource] | None = None, balance_resources: bool = True, default_estimate: int = 0)¶
Bases:
IScheduler
- class pjplan.schedule.IScheduler¶
Bases:
ABC
Планировщик проектов. Строит расписание проекта
- class pjplan.schedule.ResourceUsage¶
Bases:
object
Отчет об использовании ресурсов
- add_rows(rows: List[ResourceUsageItem])¶
- rows() List[ResourceUsageItem] ¶
- class pjplan.schedule.ResourceUsageItem(resource: pjplan.resource.IResource, date: datetime.datetime, task: pjplan.task.Task, units: float)¶
Bases:
object
- date: datetime¶
- task: Task¶
- units: float¶
- class pjplan.schedule.Schedule(schedule: WBS, resource_usage: ResourceUsage)¶
Bases:
object
pjplan.wbs module¶
- class pjplan.wbs.WBS(tasks: Iterable[Task] | None = None, **kwargs)¶
Bases:
object
Work Burn-down Structure
- critical_path() CriticalPath ¶
- critical_path2()¶
- property end: datetime | None¶
Returns max end date from all tasks in WBS
- print(fields: Iterable[str] | None = None, children=True, theme=None)¶
Print task sheet :param fields: fields to print :param children: show/hide child tasks :param theme: color theme
Color theme specified by dict: {
‘header_color’: ‘<header color>’, ‘level_colors’: [‘<level 0 color>’, ‘<level 1 color>’, …]
}
- remove(task: Task) bool ¶
Remove task from WBS :param task:
- remove_all(key: Callable[[Task], bool] | None = None, **kwargs)¶
Remove all tasks matched to key from WBS. :param key: see TaskList.remove_all for details :param kwargs: see TaskList.remove_all for details :return: list of deleted tasks
- property roots: _ChildrenList¶
List of all root tasks in WBS
- property start: datetime | None¶
Returns min start date from all tasks in WBS
- subtree(roots: Task | Iterable[Task]) WBS ¶
Returns new WBS, contains subtree of this WBS with all children and successors/predecessors inside this subtree or outside WBS.
- Parameters:
roots – root tasks for new WBS
- Returns:
new WBS
- property tasks: _ImmutableTaskList¶
List of all tasks in WBS
Module contents¶
Пакет содержит API для работы с проектами и расписаниями задач.