Dependable remove __call__
This commit is contained in:
parent
e428fea3da
commit
7fb3aa0f42
5 changed files with 10 additions and 13 deletions
|
@ -5,7 +5,7 @@ Dependables for defining Routers.
|
||||||
import re
|
import re
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Awaitable, Callable, ParamSpec, TypeVar
|
from typing import Awaitable, Callable, Generic, ParamSpec, TypeVar
|
||||||
|
|
||||||
from fastapi import HTTPException, status
|
from fastapi import HTTPException, status
|
||||||
from webdav3.exceptions import RemoteResourceNotFound
|
from webdav3.exceptions import RemoteResourceNotFound
|
||||||
|
@ -29,13 +29,10 @@ Return = TypeVar("Return")
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True, frozen=True)
|
@dataclass(slots=True, frozen=True)
|
||||||
class Dependable[**Params, Return]:
|
class Dependable(Generic[Params, Return]):
|
||||||
func: Callable[Params, Awaitable[Return]]
|
func: Callable[Params, Awaitable[Return]]
|
||||||
responses: dict
|
responses: dict
|
||||||
|
|
||||||
async def __call__(self, *args: Params.args, **kwds: Params.kwargs) -> Return:
|
|
||||||
return await self.func(*args, **kwds)
|
|
||||||
|
|
||||||
|
|
||||||
type _NDependable[Return] = Dependable[[], Return]
|
type _NDependable[Return] = Dependable[[], Return]
|
||||||
|
|
||||||
|
@ -115,7 +112,7 @@ def filter_prefix(
|
||||||
prefix: str,
|
prefix: str,
|
||||||
) -> list[str]:
|
) -> list[str]:
|
||||||
return list(
|
return list(
|
||||||
item for item in (await src()) if item.lower().startswith(prefix.lower())
|
item for item in (await src.func()) if item.lower().startswith(prefix.lower())
|
||||||
)
|
)
|
||||||
|
|
||||||
return Dependable(
|
return Dependable(
|
||||||
|
@ -142,7 +139,7 @@ def filter_prefix_unique(
|
||||||
async def _filter_prefix_unique(
|
async def _filter_prefix_unique(
|
||||||
prefix: str,
|
prefix: str,
|
||||||
) -> str:
|
) -> str:
|
||||||
names = await src(prefix)
|
names = await src.func(prefix)
|
||||||
|
|
||||||
match names:
|
match names:
|
||||||
case [name]:
|
case [name]:
|
||||||
|
|
|
@ -41,7 +41,7 @@ _fpu = filter_prefix_unique(_fp)
|
||||||
async def start_router() -> None:
|
async def start_router() -> None:
|
||||||
_logger.debug(f"{router.prefix} router starting.")
|
_logger.debug(f"{router.prefix} router starting.")
|
||||||
|
|
||||||
remote_path = await _rp()
|
remote_path = await _rp.func()
|
||||||
if not webdav_ensure_path(remote_path):
|
if not webdav_ensure_path(remote_path):
|
||||||
webdav_ensure_files(
|
webdav_ensure_files(
|
||||||
remote_path,
|
remote_path,
|
||||||
|
|
|
@ -41,7 +41,7 @@ _fpu = filter_prefix_unique(_fp)
|
||||||
async def start_router() -> None:
|
async def start_router() -> None:
|
||||||
_logger.debug(f"{router.prefix} router starting.")
|
_logger.debug(f"{router.prefix} router starting.")
|
||||||
|
|
||||||
remote_path = await _rp()
|
remote_path = await _rp.func()
|
||||||
if not webdav_ensure_path(remote_path):
|
if not webdav_ensure_path(remote_path):
|
||||||
webdav_ensure_files(
|
webdav_ensure_files(
|
||||||
remote_path,
|
remote_path,
|
||||||
|
|
|
@ -39,7 +39,7 @@ _fpu = filter_prefix_unique(_fp)
|
||||||
async def start_router() -> None:
|
async def start_router() -> None:
|
||||||
_logger.debug(f"{router.prefix} router starting.")
|
_logger.debug(f"{router.prefix} router starting.")
|
||||||
|
|
||||||
remote_path = await _rp()
|
remote_path = await _rp.func()
|
||||||
if not webdav_ensure_path(remote_path):
|
if not webdav_ensure_path(remote_path):
|
||||||
webdav_ensure_files(
|
webdav_ensure_files(
|
||||||
remote_path,
|
remote_path,
|
||||||
|
|
|
@ -26,7 +26,7 @@ router = APIRouter(prefix="/ticker", tags=["text"])
|
||||||
async def start_router() -> None:
|
async def start_router() -> None:
|
||||||
_logger.debug(f"{router.prefix} router starting.")
|
_logger.debug(f"{router.prefix} router starting.")
|
||||||
|
|
||||||
remote_path = await _rp()
|
remote_path = await _rp.func()
|
||||||
if not webdav_ensure_path(remote_path):
|
if not webdav_ensure_path(remote_path):
|
||||||
webdav_ensure_files(
|
webdav_ensure_files(
|
||||||
remote_path,
|
remote_path,
|
||||||
|
@ -36,8 +36,8 @@ async def start_router() -> None:
|
||||||
|
|
||||||
async def get_ticker_lines() -> Iterator[str]:
|
async def get_ticker_lines() -> Iterator[str]:
|
||||||
cfg = await get_config()
|
cfg = await get_config()
|
||||||
file_name = await _fpu(cfg.ticker.file_name)
|
file_name = await _fpu.func(cfg.ticker.file_name)
|
||||||
remote_path = await _rp()
|
remote_path = await _rp.func()
|
||||||
|
|
||||||
ticker = await WebDAV.read_str(f"{remote_path}/{file_name}")
|
ticker = await WebDAV.read_str(f"{remote_path}/{file_name}")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue