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: | |
| ... | |