<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sort_seq_records(self, seq_records):
 """Checks that SeqExpandedRecords are sorted by gene_code and then by voucher code. The dashes in taxon names need to be converted to underscores so the dataset will be accepted by Biopython to do format conversions. """

        for seq_record in seq_records:
            seq_record.voucher_code = seq_record.voucher_code.replace("-", "_")

        unsorted_gene_codes = set([i.gene_code for i in seq_records])
        sorted_gene_codes = list(unsorted_gene_codes)
        sorted_gene_codes.sort(key=lambda x: x.lower())

        unsorted_voucher_codes = set([i.voucher_code for i in seq_records])
        sorted_voucher_codes = list(unsorted_voucher_codes)
        sorted_voucher_codes.sort(key=lambda x: x.lower())

        sorted_seq_records = []
        for gene_code in sorted_gene_codes:
            for voucher_code in sorted_voucher_codes:
                for seq_record in seq_records:
                    should_be_done = (
                        seq_record.gene_code == gene_code and
                        seq_record.voucher_code == voucher_code
                    )
                    if should_be_done:
                        sorted_seq_records.append(seq_record)
        return sorted_seq_records