Source code for arbiterd.dispatcher

# -*- coding: utf-8 -*-
# Copyright 2021 - 2021, Sean Mooney and the arbiterd contributors
# SPDX-License-Identifier: Apache-2.0
import dataclasses
import logging
import typing as ty
from dataclasses import dataclass

from arbiterd import arbiters


[docs]@dataclass(init=False) class Dispatcher: """Dispatcher and Manager of arbiters""" arbiters: ty.Dict = dataclasses.field(default_factory=dict) def __init__(self) -> None: logging.debug('initalising dispatcher') self.arbiters = { a_type: cls() for a_type, cls in arbiters.get_all_arbiters().items()} logging.debug(f'with self.arbiters={self.arbiters}')
[docs] def arbitrate(self, a_type, context) -> str: return self.arbiters[a_type].arbitrate(context)
[docs] def revoke(self, a_type, context) -> str: return self.arbiters[a_type].revoke(context)