from environs import Env from exceptions import PluginNotFoundError from .anonymous import AnonymousAuthPlugin from .base import BaseAuthPlugin from .pingcap import PingCAPAuthPlugin def get_auth_plugin_from_env(env: Env) -> BaseAuthPlugin: plugin_name = env.str("AUTH_PLUGIN", "anonymous") if plugin_name == "anonymous": return AnonymousAuthPlugin() elif plugin_name == "pingcap": return PingCAPAuthPlugin( auth_app_host=env.str("AUTH_APP_HOST"), auth_app_id=env.str("AUTH_APP_ID"), auth_app_secret=env.str("AUTH_APP_SECRET"), ) else: raise PluginNotFoundError(plugin_name)