Source code for berserk.clients.analysis

from __future__ import annotations

from typing import cast

from ..types import Variant
from .base import BaseClient
from ..types.analysis import PositionEvaluation


[docs]class Analysis(BaseClient): """Client for analysis-related endpoints."""
[docs] def get_cloud_evaluation( self, fen: str, num_variations: int = 1, variant: Variant = "standard", ) -> PositionEvaluation: """Get the cached evaluation of a position, if available. Opening positions have more chances of being available. There are about 15 million positions in the database. Up to 5 variations may be available. Variants are supported. :param fen: FEN of a position :param num_variations: number of variations :param variant: game variant to use :return: cloud evaluation of a position """ path = "/api/cloud-eval" params = {"fen": fen, "multiPv": num_variations, "variant": variant} return cast(PositionEvaluation, self._r.get(path=path, params=params))