Source code for TagScriptEngine.block.stopblock

from typing import Optional

from ..exceptions import StopError
from ..interface import verb_required_block
from ..interpreter import Context
from . import helper_parse_if


[docs]class StopBlock(verb_required_block(True, parameter=True)): """ The stop block stops tag processing if the given parameter is true. If a message is passed to the payload it will return that message. **Usage:** ``{stop(<bool>):[string]}`` **Aliases:** ``halt, error`` **Payload:** string, None **Parameter:** bool **Example:** :: {stop({args}==):You must provide arguments for this tag.} # enforces providing arguments for a tag """ ACCEPTED_NAMES = ("stop", "halt", "error") def process(self, ctx: Context) -> Optional[str]: if helper_parse_if(ctx.verb.parameter): raise StopError("" if ctx.verb.payload is None else ctx.verb.payload) return ""