Source code for fluidsimfoam.foam_input_files.util
"""Utilities"""
from typing import Union
[docs]def as_dict(data: Union[dict, str], filter_comments=True) -> dict:
"""return a dict, potentially by converting a str"""
if isinstance(data, dict):
return data
elif isinstance(data, str):
data_as_str = data
data = {}
for line in data_as_str.strip().split("\n"):
line = line.strip().removesuffix(";")
if any(line.startswith(comment_char) for comment_char in ("//", "#")):
if filter_comments:
continue
else:
key, value = line, None
else:
key, value = line.split(maxsplit=1)
data[key] = value
return data
else:
raise TypeError