datethyme._scheduling_utils
Note the following type aliases used for readability in this file:
type SpanPair[TP: TimeProtocol] = tuple[SpanProtocol[TP], SpanProtocol[TP]]
type SpanTuple[TP: TimeProtocol] = tuple[SpanProtocol[TP], ...]
type SpanList[TP: TimeProtocol] = list[SpanProtocol[TP]]
type SpanIterable[TP: TimeProtocol] = Iterable[SpanProtocol[TP]]
type PairCallback[TP: TimeProtocol] = Callable[
[SpanProtocol[TP], SpanProtocol[TP]],
SpanPair[TP],
]
snap_forward
Please write me!
snap_back
Please write me!
snap_between
Please write me!
earliest_start
Please write me!
latest_end
Please write me!
most_central
Please write me!
stack_forward
Please write me!
stack_backward
Please write me!
stack_from_middle
Please write me!
apply_pairwise
Please write me!
split_overlap_equal
Please write me!
split_overlap_proportional
Please write me!
split_overlap_inverse_proportional
Please write me!
split_gap_equal
Please write me!
split_gap_proportional
Please write me!
split_gap_inverse_proportional
Please write me!
truncate
truncate(seq: SpanIterable[T], earliest: T, latest: T) -> tuple[SpanList[T], SpanList[T], SpanList[T]]
Please write me!
truncate_nodiscard
truncate_nodiscard(seq: SpanIterable[T], earliest: TimeProtocol, latest: TimeProtocol) -> SpanList[T] | None
Please write me!
eclipse_forward
Please write me!
eclipse_backward
Please write me!
resolve_overlaps
resolve_overlaps(seq: SpanIterable[T], mode: Literal['EQUAL', 'PROPORTIONAL', 'INVERSE']) -> SpanTuple[T]
Please write me!
resolve_gaps
resolve_gaps(seq: SpanIterable[T], mode=Literal['EQUAL', 'PROPORTIONAL', 'INVERSE', 'SNAP_FORWARD', 'SNAP_BACK']) -> SpanTuple[T]
Please write me!
squeeze
squeeze(seq: SpanIterable[T], mode: Literal['PROPORTIONAL', 'EQUAL'], earliest: T | None = None, latest: T | None = None, min_minutes: int | float = 5) -> SpanTuple[T]
Squeeze all elements of seq to fit between earliest and latest.
squeeze_with_rollover
squeeze_with_rollover(seq: SpanIterable[T], mode: Literal['PROPORTIONAL', 'EQUAL'], earliest: T | None = None, latest: T | None = None, min_minutes: int | float = 5) -> tuple[SpanTuple[T], SpanTuple[T]]
Please write me!