Source code for pynenc.util.files
import json
import tomllib
from typing import Any
import yaml
[docs]
def load_config_from_toml(file_path: str) -> dict:
"""
Loads configuration from a TOML file.
:param str file_path: The path to the TOML file.
:return: A dictionary containing the configuration data.
"""
with open(file_path, "rb") as toml_file:
if config_data := tomllib.load(toml_file):
if "pyproject.toml" in file_path:
return config_data.get("tool", {}).get("pynenc", {})
return config_data or {}
[docs]
def load_file(filepath: str) -> dict[str, Any]:
"""
Loads data from a file based on its extension (YAML, JSON, TOML).
:param str filepath: The path to the file.
:return: A dictionary containing the file's data.
"""
with open(filepath) as _file:
if filepath.lower().endswith(".yaml") or filepath.lower().endswith(".yml"):
# TODO fix yaml
return yaml.load(_file, Loader=yaml.SafeLoader)
if filepath.lower().endswith(".json"):
return json.load(_file)
if filepath.lower().endswith(".toml"):
return load_config_from_toml(filepath)
raise ValueError(f"Unexpected file extension {filepath=}")