Source code for pyEpiabm.output.abstract_reporter
#
# AbstractReporter Class
#
import os
import logging
[docs]
class AbstractReporter:
"""Abstract class for Data Reporters.
"""
[docs]
def __init__(self, folder: str, clear_folder: bool = False):
"""Constructor method for reporter. Makes a new folder
in specified location if one does not already exist.
Also clears contents of an existing folder if
clear_folder is true.
Parameters
----------
folder : str
Absolute path to folder to store results
clear_folder : bool
Whether to empty the folder before saving results
"""
self.folder = folder
if os.path.exists(folder):
if clear_folder:
try:
for file in os.scandir(folder):
os.remove(file.path)
except IsADirectoryError as e:
logging.exception(f"{type(e).__name__}: cannot delete"
+ f" folder {folder} as it contains"
+ " subfolders")
else:
os.makedirs(folder)
[docs]
def write(self):
"""Write data to .csv files in target folder.
"""
raise NotImplementedError