class FastqcReportWriter(object):
    def __init__(self, fastqc_summary, output_dir="./Fastqc_Writer_Report"):
        self.fastqc_summary = fastqc_summary
        self.file_manager = FastqcReportFileManager(output_dir)

    def write_report_for_tag(self, tag):
        file_path = self.file_manager.file_path_for_tag(tag)
        html_string = self.fastqc_summary.get_html_for_tag(tag)
        with open(file_path, "w") as html_file:
            print(html_string, file=html_file)
        print("Written: " + os.path.basename(file_path))

    def write(self):
        for tag in fastqc_report_tags():
            self.write_report_for_tag(tag)


if __name__ == "__main__":
    mateHandler = MateHandler()
    dirInfos = [MateDirInfo(mate) for mate in mateHandler.list_project_mates()]
    pairs = list(zip([dirInfo.first_fastqc_zip_path for dirInfo in dirInfos],
                     [dirInfo.second_fastqc_zip_path for dirInfo in dirInfos]))
    fastqcSummary = PairedFastqcSummary(pairs)
    writer = FastqcReportWriter(fastqcSummary, "TestData/FastqcSummary")
    writer.write()