File size: 941 Bytes
4d0ffdd
 
 
 
 
6a28f91
4d0ffdd
 
 
 
 
6a28f91
 
4d0ffdd
 
 
 
f6c65ef
4d0ffdd
 
f6c65ef
4d0ffdd
 
 
f6c65ef
4d0ffdd
 
 
 
f6c65ef
4d0ffdd
 
f6c65ef
4d0ffdd
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""First-In-First-Out (FIFO) scheduling policy.

Schedules cases in the order they were filed, treating all cases equally.
This is the simplest baseline policy.
"""

from __future__ import annotations

from datetime import date
from typing import List

from src.core.case import Case
from src.core.policy import SchedulerPolicy


class FIFOPolicy(SchedulerPolicy):
    """FIFO scheduling: cases scheduled in filing order."""

    def prioritize(self, cases: List[Case], current_date: date) -> List[Case]:
        """Sort cases by filed_date (earliest first).

        Args:
            cases: List of eligible cases
            current_date: Current simulation date (unused)

        Returns:
            Cases sorted by filing date (oldest first)
        """
        return sorted(cases, key=lambda c: c.filed_date)

    def get_name(self) -> str:
        return "FIFO"

    def requires_readiness_score(self) -> bool:
        return False