Source code for pymead.utils.read_write_files

import json
import os
import pickle
import typing

from PyQt6.QtCore import QStandardPaths

from pymead import q_settings


[docs] def save_data(var, file): if os.path.splitext(file)[-1] == '.pkl': with open(file, 'wb') as file: pickle.dump(var, file, protocol=-1) elif os.path.splitext(file)[-1] in ['.json', '.jmea']: with open(file, 'w') as file: json.dump(var, file, indent=4) else: raise Exception('Invalid file extension for data save! Current available choices: .pkl, .json, .jmea')
[docs] def load_data(file): if os.path.splitext(file)[-1] == '.pkl': with open(file, 'rb') as file: var = pickle.load(file) return var elif os.path.splitext(file)[-1] in ['.json', '.jmea']: with open(file, 'r') as file: var = json.load(file) return var else: raise Exception('Invalid file extension for data load! Current available choices: .pkl, .json, .jmea')
[docs] def write_tuple_tuple_to_file(fname: str, data: typing.Tuple[tuple]): """Data must be 2-D""" with open(fname, 'w') as f: for row in data: for col in row: f.write(f"{col} ") f.write("\n")
[docs] def load_documents_path(settings_var: str): """ Utility function that returns a specified QSettings path location if saved, otherwise returns the Documents location Parameters ========== settings_var: str Key to the path location in ``pymead.q_settings`` Returns ======= str Path specified by ``settings_var``, otherwise the Documents location """ if q_settings.contains(settings_var): path = q_settings.value(settings_var) else: path = QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DocumentsLocation) return path