Router¶
-
class
glados.router.
GladosRoute
(route_type, route, function)[source]¶ Bases:
object
Represents a single route
Parameters: - route_type (
RouteType
) – - route (
str
) – - function (
Callable
) –
- route_type (
-
class
glados.router.
GladosRouter
(**kwargs)[source]¶ Bases:
object
-
add_route
(plugin, route)[source]¶ Add a route to the router
Parameters: - plugin – the plugin the route belongs to
- route (
GladosRoute
) – the route to be added
Raises: KeyError
– a route with the same type and same name already existsReturn type: NoReturn
-
add_routes
(plugin)[source]¶ Add multiple routes to the router.
Parameters: plugin – the plugin to add routes from Return type: NoReturn
-
exec_route
(request)[source]¶ Execute a route function directly
Parameters: request ( GladosRequest
) – the GLaDOS requestReturns: Return type: the data returned by the plugin Examples
>>> def mock_function(request: GladosRequest): ... print(f"Mock Function: {request.params.message}") ... return True >>> router = GladosRouter() >>> route = GladosRoute(RouteType.SendMessage, "send_mock", mock_function) >>> router.add_route(route) >>> request = GladosRequest(RouteType.SendMessage, "send_mock", message="Hello World!") >>> successful = router.exec_route(request) Mock Function: Hello World! >>> print(successful) True
>>> def mock_function(request: GladosRequest): ... print(f"Mock Function: {request.params.message}") ... return True >>> router = GladosRouter() >>> route = GladosRoute(RouteType.SendMessage, "send_mock", mock_function) >>> router.add_route(route) >>> request = GladosRequest(RouteType.SendMessage, "send_mock_fail", message="Hello World!") >>> successful = router.exec_route(request) >>> print(successful) False
-