By screening though the code of the read_vcf() function of Fred2.IO.FIleReader I noticed the following:
l194: v_list = record.ALT with record an item of vl being a Record object from pyvcf package
This, if I am not mistaken, will return a list of alternate allele of pyvcf specific type (in my case vcf.model._Substitution).
l218 elif record.is_indel:
l219 if len(v_list)%3 == 0:
In the previous condition, determining if the variant will lead to a frameshift, the modulo is done on the list and not on the allele itself, so it will always return 1 if there is only one variant identified at the given loci and not the actual length of the allele itself isn't it?