upgrading to vcfpy 0.14.2, dropping support for python 3.8, 3.9#91
Conversation
|
closes #89 |
|
also closes #76 |
| if not isinstance(call.data.get(field), list): | ||
| call.data[field] = [] |
There was a problem hiding this comment.
What actually does call.data.get(field) return here for this specific use case? None? Could there be a case where an existing value exists that would return a non-list? I think we should be careful here to not accidentally overwrite existing values
There was a problem hiding this comment.
There were some checks upstream in the readcount annotator tool that attempted to address the case of existing data, but I agree that it's better to handle it here, in case we reuse it.
| def write_record(entry): | ||
| fill_missing_multi_value_format_fields(entry, vcf_writer.header) | ||
| vcf_writer.write_record(entry) |
There was a problem hiding this comment.
This paradigm is repeated in pretty much every tool. Maybe this should move into the utils and then be used by all the tools.
There was a problem hiding this comment.
good suggestion - done
Bumps the vcfpy version to 0.14.2. This requires some changes to how FORMAT fields are handled - namely, when adding values to one sample, all other samples must contain either a value, or a marker for an empty value (.), matching the VCF spec. Before, it implicitly handled missing/None values, now it throws errors unless we explicitly provide an empty list.
The bump to vcfpy 0.14.2 requires python >= 3.10. We're dropping support for python 3.8 and 3.9 (EOL was Oct 2025 for 3.9) with this change, and will note that in the release.