def create_rate_limiter(self, dic) -> BaseLimiter: config = {key.lower(): val for (key, val) in dic.items()} try: limiter = import_class(config.pop("backend")) except KeyError: limiter = import_class('pyot.limiters.MemoryLimiter') config["game"] = self._game config["api_key"] = self._api_key return limiter(**config)
def _make_pipeline(self, pipeline_configs): stores = [] _track = [] for config in pipeline_configs: config = {key.lower() if key.upper() == key else key: value for (key,value) in config.items()} store_cls = import_class(config.pop("backend")) if store_cls in _track and store_cls.unique == True: raise RuntimeError(f"Store '{store_cls.__name__}' should only have one instance in the pipeline") _track.append(store_cls) config.update({"game": self.MODEL.lower()}) store = store_cls(**config) stores.append(store) return stores