From 71aae9010faad7504af0b299dd0b268cff42a499 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 29 Jan 2024 18:49:01 +0800 Subject: feat(core): add type checking to handle mismatch returns --- src/infini/core.py | 3 +++ src/infini/exceptions.py | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'src') diff --git a/src/infini/core.py b/src/infini/core.py index 87066370..552d9bf2 100644 --- a/src/infini/core.py +++ b/src/infini/core.py @@ -4,6 +4,7 @@ from infini.generator import TextGenerator from infini.handler import Handler from infini.output import Output from infini.typing import Any, Generator +from infini.exceptions import ValueError class Core: @@ -22,6 +23,8 @@ class Core: input = pre_intercepted_stream for handled_stream in self.handle(input): + if not isinstance(handled_stream, Output): + raise ValueError("Handler functions should return or yield a `Output` object.") if handled_stream.is_empty(): return outcome = self.generate(handled_stream) diff --git a/src/infini/exceptions.py b/src/infini/exceptions.py index 8bc9ceb4..37386ce3 100644 --- a/src/infini/exceptions.py +++ b/src/infini/exceptions.py @@ -8,3 +8,7 @@ class KeyError(InfiniException): class UnknownEvent(InfiniException): """文本事件不存在""" + + +class ValueError(InfiniException, ValueError): + """错误的数据""" -- cgit v1.2.3-70-g09d2