Spaces:
Configuration error
Configuration error
import numpy as np | |
import os, sys | |
import pickle | |
import yaml | |
from easydict import EasyDict as edict | |
from typing import Any, IO | |
ROOT_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..') | |
class TextLogger: | |
def __init__(self, log_path): | |
self.log_path = log_path | |
with open(self.log_path, "w") as f: | |
f.write("") | |
def log(self, log): | |
with open(self.log_path, "a+") as f: | |
f.write(log + "\n") | |
class Loader(yaml.SafeLoader): | |
"""YAML Loader with `!include` constructor.""" | |
def __init__(self, stream: IO) -> None: | |
"""Initialise Loader.""" | |
try: | |
self._root = os.path.split(stream.name)[0] | |
except AttributeError: | |
self._root = os.path.curdir | |
super().__init__(stream) | |
def construct_include(loader: Loader, node: yaml.Node) -> Any: | |
"""Include file referenced at node.""" | |
filename = os.path.abspath(os.path.join(loader._root, loader.construct_scalar(node))) | |
extension = os.path.splitext(filename)[1].lstrip('.') | |
with open(filename, 'r') as f: | |
if extension in ('yaml', 'yml'): | |
return yaml.load(f, Loader) | |
elif extension in ('json', ): | |
return json.load(f) | |
else: | |
return ''.join(f.readlines()) | |
def get_config(config_path): | |
yaml.add_constructor('!include', construct_include, Loader) | |
with open(config_path, 'r') as stream: | |
config = yaml.load(stream, Loader=Loader) | |
config = edict(config) | |
_, config_filename = os.path.split(config_path) | |
config_name, _ = os.path.splitext(config_filename) | |
config.name = config_name | |
return config | |
def ensure_dir(path): | |
""" | |
create path by first checking its existence, | |
:param paths: path | |
:return: | |
""" | |
if not os.path.exists(path): | |
os.makedirs(path) | |
def read_pkl(data_url): | |
file = open(data_url,'rb') | |
content = pickle.load(file) | |
file.close() | |
return content |