aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-03-15 14:54:00 +0800
committer苏向夜 <fu050409@163.com>2024-03-15 14:54:00 +0800
commit177f59ea6c7ca6f3d9d433826b946bc96462cc42 (patch)
tree69623feb572ee7382b635e5dc5e7b49e82980f56
parent891c43e63693172dfd54e40ebcaed455657b8a13 (diff)
downloadinfini-177f59ea6c7ca6f3d9d433826b946bc96462cc42.tar.gz
infini-177f59ea6c7ca6f3d9d433826b946bc96462cc42.zip
feat(register): add namespace field in register
-rw-r--r--src/infini/register.py27
-rw-r--r--src/infini/typing.py1
2 files changed, 25 insertions, 3 deletions
diff --git a/src/infini/register.py b/src/infini/register.py
index 4b191cb6..8ccff3d6 100644
--- a/src/infini/register.py
+++ b/src/infini/register.py
@@ -22,7 +22,13 @@ class Register:
self.interceptors = []
self.generators = {}
- def pre_interceptor(self, router: Union[Router, str], priority: int = 0):
+ def pre_interceptor(
+ self,
+ router: Union[Router, str],
+ *,
+ priority: int = 0,
+ namespace: Optional[str] = None,
+ ):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs) -> Union[Input, Output]:
@@ -33,13 +39,20 @@ class Register:
"priority": priority,
"router": Contains(router) if isinstance(router, str) else router,
"handler": wrapper,
+ "namespace": namespace,
}
)
return wrapper
return decorator
- def handler(self, router: Union[Router, str], priority: int = 0):
+ def handler(
+ self,
+ router: Union[Router, str],
+ *,
+ priority: int = 0,
+ namespace: Optional[str] = None,
+ ):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs) -> Output:
@@ -50,6 +63,7 @@ class Register:
"priority": priority,
"router": Contains(router) if isinstance(router, str) else router,
"handler": wrapper,
+ "namespace": namespace,
}
)
return wrapper
@@ -73,7 +87,13 @@ class Register:
return decorator
- def interceptor(self, router: Union[Router, str], priority: int = 0):
+ def interceptor(
+ self,
+ router: Union[Router, str],
+ *,
+ priority: int = 0,
+ namespace: Optional[str] = None,
+ ):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs) -> Union[Input, Output]:
@@ -84,6 +104,7 @@ class Register:
"priority": priority,
"router": Contains(router) if isinstance(router, str) else router,
"handler": wrapper,
+ "namespace": namespace,
}
)
return wrapper
diff --git a/src/infini/typing.py b/src/infini/typing.py
index 14c219fc..24faad83 100644
--- a/src/infini/typing.py
+++ b/src/infini/typing.py
@@ -31,3 +31,4 @@ class RouterType(TypedDict):
priority: int
router: "Router"
handler: Callable[..., Union[Stream, OutputGenerator]]
+ namespace: Optional[str]