Spaces:
Runtime error
Runtime error
from pathlib import Path | |
import yaml | |
from box import ConfigBox | |
from box.exceptions import BoxValueError | |
from research_assistant.app_logging import app_logger | |
from research_assistant.entity import articleLoaderConfig | |
def read_yaml(path_to_yaml: Path) -> ConfigBox: | |
"""reads yaml file and returns | |
Args: | |
path_to_yaml (str): path like input | |
Raises: | |
ValueError: if yaml file is empty | |
e: empty file | |
Returns: | |
ConfigBox: ConfigBox type | |
""" | |
try: | |
with open(path_to_yaml) as yaml_file: | |
app_logger.info(f"yaml file: {path_to_yaml} loaded successfully") | |
return ConfigBox(yaml.safe_load(yaml_file)) | |
except BoxValueError as e: | |
raise ValueError("yaml file is empty") from e | |
def create_directories(path_to_directories: list, verbose=True): | |
"""create list of directories | |
Args: | |
path_to_directories (list): list of path of directories | |
verbose (bool, optional): whether to log the creation of directories. Defaults to True. | |
""" | |
for path in path_to_directories: | |
Path(path).mkdir(parents=True, exist_ok=True) | |
if verbose: | |
app_logger.info(f"created directory at: {path}") | |
def write_to_file(filename, text): | |
"""write text to file | |
Args: | |
path (str): file path | |
text (str): text to write | |
""" | |
with open(filename, "w") as file: | |
file.write(text) | |
app_logger.info(f"wrote text to file: {filename}") | |
def write_summary_to_file(config: articleLoaderConfig, text: str): | |
create_directories([config.summary_save_dir]) | |
output_filepath = ( | |
Path(config.summary_save_dir) / f"summary_{Path(config.file_path).stem}.md" | |
) | |
write_to_file(output_filepath, text) | |