22 lines
584 B
Python

from typing import Protocol, runtime_checkable
from modules.task import QTask
from modules.task_pool import QTaskPool
from modules.variant import QVariant
from modules.variant_set import QVariantSet
from utils.types import A, C, Q, V
@runtime_checkable
class VTaskConstraintDynamic(Protocol[C, V, Q, A]):
def _dyn(self):
return None
def check_if_satisfied(
self,
task: QTask[C, V, Q, A],
task_pool: QTaskPool[C, V, Q, A],
previous_variants: QVariantSet[C, V, Q, A],
current_variant: QVariant[C, V, Q, A],
) -> bool: ...