mirror of
https://github.com/long2ice/fastapi-cache.git
synced 2026-03-24 20:47:54 +00:00
feat: add more type hints
This commit is contained in:
@@ -1,28 +1,29 @@
|
||||
from typing import Callable
|
||||
from typing import Callable, Optional, Type
|
||||
|
||||
from fastapi_cache.backends import Backend
|
||||
from fastapi_cache.coder import Coder, JsonCoder
|
||||
from fastapi_cache.key_builder import default_key_builder
|
||||
|
||||
|
||||
class FastAPICache:
|
||||
_backend = None
|
||||
_prefix = None
|
||||
_expire = None
|
||||
_backend: Optional[Backend] = None
|
||||
_prefix: Optional[str] = None
|
||||
_expire: Optional[int] = None
|
||||
_init = False
|
||||
_coder = None
|
||||
_key_builder = None
|
||||
_coder: Optional[Type[Coder]] = None
|
||||
_key_builder: Optional[Callable] = None
|
||||
_enable = True
|
||||
|
||||
@classmethod
|
||||
def init(
|
||||
cls,
|
||||
backend,
|
||||
backend: Backend,
|
||||
prefix: str = "",
|
||||
expire: int = None,
|
||||
coder: Coder = JsonCoder,
|
||||
expire: Optional[int] = None,
|
||||
coder: Type[Coder] = JsonCoder,
|
||||
key_builder: Callable = default_key_builder,
|
||||
enable: bool = True,
|
||||
):
|
||||
) -> None:
|
||||
if cls._init:
|
||||
return
|
||||
cls._init = True
|
||||
@@ -34,31 +35,31 @@ class FastAPICache:
|
||||
cls._enable = enable
|
||||
|
||||
@classmethod
|
||||
def get_backend(cls):
|
||||
def get_backend(cls) -> Backend:
|
||||
assert cls._backend, "You must call init first!" # nosec: B101
|
||||
return cls._backend
|
||||
|
||||
@classmethod
|
||||
def get_prefix(cls):
|
||||
def get_prefix(cls) -> Optional[str]:
|
||||
return cls._prefix
|
||||
|
||||
@classmethod
|
||||
def get_expire(cls):
|
||||
def get_expire(cls) -> Optional[int]:
|
||||
return cls._expire
|
||||
|
||||
@classmethod
|
||||
def get_coder(cls):
|
||||
def get_coder(cls) -> Optional[Type[Coder]]:
|
||||
return cls._coder
|
||||
|
||||
@classmethod
|
||||
def get_key_builder(cls):
|
||||
def get_key_builder(cls) -> Optional[Callable]:
|
||||
return cls._key_builder
|
||||
|
||||
@classmethod
|
||||
def get_enable(cls):
|
||||
def get_enable(cls) -> bool:
|
||||
return cls._enable
|
||||
|
||||
@classmethod
|
||||
async def clear(cls, namespace: str = None, key: str = None):
|
||||
async def clear(cls, namespace: Optional[str] = None, key: Optional[str] = None) -> int:
|
||||
namespace = cls._prefix + (":" + namespace if namespace else "")
|
||||
return await cls._backend.clear(namespace, key)
|
||||
|
||||
Reference in New Issue
Block a user