Skip to content

Rewrite list scheduler and related schedulers

I think the following pattern makes more sense (modulo spelling/details)

class ListScheduler(Scheduler, ABC):
    def __init__(
        self,
        max_resources: Optional[dict[TypeName, int]] = None,
        max_concurrent_reads: Optional[int] = None,
        max_concurrent_writes: Optional[int] = None,
        input_times: Optional[dict["GraphID", int]] = None,
        output_delta_times: Optional[dict["GraphID", int]] = None,
        cyclic: Optional[bool] = False,
        sort_order = tuple(tuple(int, int), ...) # Or whatever the type is
    ) -> None:

class EarliestDeadlineScheduler(Scheduler, ABC):
    def __init__(
        self,
        max_resources: Optional[dict[TypeName, int]] = None,
        max_concurrent_reads: Optional[int] = None,
        max_concurrent_writes: Optional[int] = None,
        input_times: Optional[dict["GraphID", int]] = None,
        output_delta_times: Optional[dict["GraphID", int]] = None,
        cyclic: Optional[bool] = False,
    ) -> None:
         super().__init__(max_resources=max_resources, ..., sort_order=((1, None)))

In that way a user can easily specify their own sort order if wanted.