summaryrefslogtreecommitdiff
path: root/common/__init__.py
blob: 5770ec96ac1935317a32dd3188df5b8293ec59b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import math
from typing import Any, Callable

def load_data_from_file (path: str, mask_noent = True) -> dict[str, float]:
	try:
		with open(path) as f:
			return load_data(f.readline)
	except FileNotFoundError as e:
		if not mask_noent:
			raise e

	return dict[str, float]()

def load_data (read_f: Callable) -> dict[str, float]:
	ret = dict[str, float]()

	while True:
		l = read_f()
		if not l:
			break

		tpl = l.strip().split()
		v = float(tpl[1])
		if math.isfinite(v):
			ret[tpl[0]] = v

	return ret