Spaces:
Sleeping
Sleeping
import os | |
import json | |
import yaml | |
import base64 | |
import joblib | |
from typing import Any | |
from pathlib import Path | |
from box import ConfigBox | |
from ensure import ensure_annotations | |
from box.exceptions import BoxValueError | |
from kidney_classification import logger | |
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: | |
content = yaml.safe_load(yaml_file) | |
logger.info(f"yaml file: {path_to_yaml} loaded successfully") | |
return ConfigBox(content) | |
except BoxValueError: | |
raise ValueError("yaml file is empty") | |
except Exception as e: | |
raise e | |
def create_directories(path_to_directories: list, verbose=True): | |
"""create list of directories | |
Args: | |
path_to_directories (list): list of path of directories | |
ignore_log (bool, optional): ignore if multiple dirs is to be created. Defaults to False. | |
""" | |
for path in path_to_directories: | |
if not os.path.exists(path): | |
os.makedirs(path) | |
if verbose: | |
logger.info(f"created directory at: {path}") | |
else: | |
continue | |
def decodeImage(imgstring, fileName): | |
imgdata = base64.b64decode(imgstring) | |
with open(fileName, "wb") as f: | |
f.write(imgdata) | |
f.close() | |
def encodeImageIntoBase64(croppedImagePath): | |
with open(croppedImagePath, "rb") as f: | |
return base64.b64encode(f.read()) | |
def save_json(path: Path, data: dict): | |
"""save json data | |
Args: | |
path (Path): path to json file | |
data (dict): data to be saved in json file | |
""" | |
with open(path, "w") as f: | |
json.dump(data, f, indent=4) | |
logger.info(f"json file saved at: {path}") | |