Skip to content

upgrading to vcfpy 0.14.2, dropping support for python 3.8, 3.9#91

Merged
chrisamiller merged 5 commits into
griffithlab:masterfrom
chrisamiller:versionbum
Jul 7, 2026
Merged

upgrading to vcfpy 0.14.2, dropping support for python 3.8, 3.9#91
chrisamiller merged 5 commits into
griffithlab:masterfrom
chrisamiller:versionbum

Conversation

@chrisamiller

Copy link
Copy Markdown
Collaborator
  1. 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.

  2. 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.

@chrisamiller

Copy link
Copy Markdown
Collaborator Author

closes #89

@chrisamiller

Copy link
Copy Markdown
Collaborator Author

also closes #76

Comment thread vatools/utils.py Outdated
Comment on lines +23 to +24
if not isinstance(call.data.get(field), list):
call.data[field] = []

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread vatools/vcf_readcount_annotator.py Outdated
Comment on lines +319 to +321
def write_record(entry):
fill_missing_multi_value_format_fields(entry, vcf_writer.header)
vcf_writer.write_record(entry)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paradigm is repeated in pretty much every tool. Maybe this should move into the utils and then be used by all the tools.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good suggestion - done

@susannasiebert susannasiebert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@chrisamiller chrisamiller merged commit 7efd8ee into griffithlab:master Jul 7, 2026
5 checks passed
@chrisamiller chrisamiller mentioned this pull request Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants