Source code for rook.pflow.base
"""Abstract processing-flow vocabulary."""
from abc import ABC, abstractmethod
[docs]
class RequestSource:
"""Normalized source for a request."""
[docs]
class RequestDecision(ABC):
"""One decision about how a request should be handled."""
@property
@abstractmethod
def returns_original_files(self):
"""Return whether the decision bypasses operation execution."""
[docs]
class RequestResolver(ABC):
"""Turns raw request inputs into one request decision."""
[docs]
@abstractmethod
def resolve(self, collection, inputs):
"""Return one request decision."""
[docs]
class DecisionExecutor(ABC):
"""Executes one request decision."""
[docs]
@abstractmethod
def execute(self, decision, inputs, runner):
"""Return output URIs for a request decision."""
[docs]
class RequestPolicy:
"""Optional base for small context-specific request policies."""