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."""