def read_json_file(filename: Union[Text, Path]) -> Any: """Read json from a file.""" content = read_file(filename) try: return json.loads(content) except ValueError as e: raise FileIOException( f"Failed to read json from '{os.path.abspath(filename)}'. Error: {e}" )
def read_file(filename: Union[Text, Path], encoding: Text = DEFAULT_ENCODING) -> Any: """Read text from a file.""" try: with open(filename, encoding=encoding) as f: return f.read() except FileNotFoundError: raise FileNotFoundException( f"Failed to read file, " f"'{os.path.abspath(filename)}' does not exist.") except UnicodeDecodeError: raise FileIOException( f"Failed to read file '{os.path.abspath(filename)}', " f"could not read the file using {encoding} to decode " f"it. Please make sure the file is stored with this " f"encoding.")