Router

class glados.router.GladosRoute(route_type, route, function)[source]

Bases: object

Represents a single route

Parameters
  • route_type (RouteType) –

  • route (str) –

  • function (Callable) –

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 exists

Return 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 request

Returns

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
get_route(route_type, route)[source]

Get a GladosRoute object for the requested route.

Parameters
  • route_type (RouteType) – the type of route to get

  • route (str) – the route to get

Raises

GladosRouteNotFoundError – the requested route is not found

Return type

Callable

route_function(route_type, route)[source]

Return only the callable function for the requested GladosRoute.

Parameters
  • route_type (RouteType) – the type of route to get

  • route (str) – the route to get

Returns

return the requested routes callable function

Return type

Callable