Исходный код raito.plugins.roles.providers
from __future__ import annotations
from typing import TYPE_CHECKING, overload
from .base import BaseRoleProvider
from .json import JSONRoleProvider
from .memory import MemoryRoleProvider
from .protocol import IRoleProvider
from .sql import get_postgresql_provider, get_sqlite_provider
if TYPE_CHECKING:
from .redis import RedisRoleProvider
__all__ = (
"BaseRoleProvider",
"IRoleProvider",
"JSONRoleProvider",
"MemoryRoleProvider",
"get_postgresql_provider",
"get_redis_provider",
"get_sqlite_provider",
)
@overload
def get_redis_provider() -> type[RedisRoleProvider]: ...
@overload
def get_redis_provider(*, throw: bool = False) -> type[RedisRoleProvider] | None: ...
[документация]
def get_redis_provider(*, throw: bool = True) -> type[RedisRoleProvider] | None:
try:
from .redis import RedisRoleProvider
except ImportError as exc:
if not throw:
return None
msg = (
"RedisRoleProvider requires redis package. Install it using `pip install raito[redis]`"
)
raise ImportError(msg) from exc
return RedisRoleProvider