Source code for blissoda.utils.pyfai

from typing import Optional
import json


[docs] def read_config(filename: Optional[str]) -> dict: if not filename: return dict() if filename.endswith(".json"): return _read_json(filename) else: return _read_poni(filename)
def _read_json(filename: str) -> dict: with open(filename, "r") as fp: return json.load(fp) def _read_poni(filename: str) -> dict: options = dict() with open(filename, "r") as f: for line in f: if not line or line.startswith("#"): continue key, sep, value = line.partition(":") if not sep or not value: continue try: value = json.loads(value.strip()) except json.JSONDecodeError: value = value.strip() except Exception: continue options[_parse_poni_key(key)] = value return options def _parse_poni_key(k: str) -> str: new_key = k.strip().lower() if new_key == "distance": return "dist" return new_key