28 lines
819 B
Python
28 lines
819 B
Python
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
|