import logging import time from typing import Any from api.core.Auth import AlterState from core.basic.character import createCharacter logger = logging.getLogger('dcalc.calc') def calculate(state: AlterState, config: dict[str, Any] | None) -> dict[str, Any]: started_at = time.perf_counter() safe_config = config or {} character = createCharacter(state.alter, state.equVersion) created_at = time.perf_counter() result = character.calc(safe_config) finished_at = time.perf_counter() logger.info( 'calc completed alter=%s equVersion=%s create_ms=%.2f calc_ms=%.2f total_ms=%.2f', state.alter, state.equVersion, (created_at - started_at) * 1000, (finished_at - created_at) * 1000, (finished_at - started_at) * 1000, ) return result