Spaces:
Sleeping
Sleeping
from abc import ABC, abstractmethod | |
from typing import List | |
from dataclasses import dataclass | |
from aiohttp.web import Response, Request, StreamResponse | |
class QueryValidatorParams: | |
k_miners: int | |
exclude: List[str] | |
roles: List[str] | |
messages: List[str] | |
timeout: int | |
prefer: str | |
request: Request | |
sampling_mode: str | |
def from_request(request: Request): | |
data = request["data"] | |
return QueryValidatorParams( | |
k_miners=data.get("k", 10), | |
exclude=data.get("exclude", []), | |
roles=data["roles"], | |
messages=data["messages"], | |
timeout=data.get("timeout", 10), | |
prefer=data.get("prefer", "longest"), | |
request=request, | |
sampling_mode=data.get("sampling_mode", "random"), | |
) | |
class ValidatorAPI(ABC): | |
async def query_validator(self, params: QueryValidatorParams) -> StreamResponse: | |
pass | |
class MockValidator(ValidatorAPI): | |
async def query_validator(self, params: QueryValidatorParams) -> StreamResponse: | |
... | |