Spaces:
Sleeping
Sleeping
File size: 1,117 Bytes
b073cce 7ea7f29 b073cce fdc8fdb b073cce 1e9def1 cd059dd fdc8fdb b073cce 1e9def1 fdc8fdb cd059dd b073cce fdc8fdb ab063cf b073cce 7ea7f29 b073cce fdc8fdb 7ea7f29 b073cce |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
from abc import ABC, abstractmethod
from typing import List
from dataclasses import dataclass
from aiohttp.web import Response, Request, StreamResponse
@dataclass
class QueryValidatorParams:
k_miners: int
exclude: List[str]
roles: List[str]
messages: List[str]
timeout: int
prefer: str
request: Request
sampling_mode: str
@staticmethod
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):
@abstractmethod
async def query_validator(self, params: QueryValidatorParams) -> StreamResponse:
pass
class MockValidator(ValidatorAPI):
async def query_validator(self, params: QueryValidatorParams) -> StreamResponse:
...
|