53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from typing import Any, List, Tuple
|
|
import os
|
|
|
|
try:
|
|
import importlib.resources as pkg_resources
|
|
except:
|
|
import importlib_resources as pkg_resources
|
|
|
|
OUTPUT_ERROR = -1
|
|
OUTPUT_KATAGO_STDERR = -0.5
|
|
OUTPUT_INFO = 0
|
|
OUTPUT_DEBUG = 1
|
|
OUTPUT_EXTRA_DEBUG = 2
|
|
|
|
|
|
def var_to_grid(array_var: List[Any], size: Tuple[int, int]) -> List[List[Any]]:
|
|
"""convert ownership/policy to grid format such that grid[y][x] is for move with coords x,y"""
|
|
ix = 0
|
|
grid = [[]] * size[1]
|
|
for y in range(size[1] - 1, -1, -1):
|
|
grid[y] = array_var[ix : ix + size[0]]
|
|
ix += size[0]
|
|
return grid
|
|
|
|
|
|
def evaluation_class(points_lost: float, eval_thresholds: List[float]):
|
|
i = 0
|
|
while i < len(eval_thresholds) - 1 and points_lost < eval_thresholds[i]:
|
|
i += 1
|
|
return i
|
|
|
|
|
|
resource_scopes = []
|
|
|
|
|
|
def clean_temp():
|
|
for s in resource_scopes:
|
|
s.__exit__(None, None, None)
|
|
|
|
|
|
def find_package_resource(path):
|
|
if path.startswith("katrain"):
|
|
parts = path.replace("\\", "/").split("/")
|
|
try:
|
|
path_obj = pkg_resources.path(".".join(parts[:-1]), parts[-1]).__enter__()
|
|
resource_scopes.append(path_obj)
|
|
return str(path_obj)
|
|
except ModuleNotFoundError as e:
|
|
print(f"File {path} not found, installation possibly broken")
|
|
return "FILENOTFOUND"
|
|
else:
|
|
return path # absolute path
|