I've looked at the ones you mention and any others I could find.
This one seems to be the most complete and easiest to use:
https://github.com/jdoughertyii/PyVCF
usage is like:
for rec in VCFReader(open('some.vcf')):
print rec.CHROM, rec.POS, rec.filter, rec.info["AF"]
though, it does not have a writer class.
EDIT:
This, has become the official fork and it has a writer class.
For C++, I've written vcflib. It has utilities for a number of functions, such as haplotype-based file comparisons (for accurate indel comparisons), filtering, and statistical summarization. It can operate on uncompressed or compressed and tabix indexed VCF files. Mostly, I've used it as a reader/writer class for other projects.
I am using that library as well (with a couple of minor mods) for another project. Works okay for me.
The idea for the UPPER was to distinguish native (upper) fields from derived (lower) attributes/methods. For better or worse...
thanks. any idea why UPPERCASE field names?
Not sure other than that's how they appear in the VCF filter. You could file a bug at https://github.com/jamescasbon/PyVCF
Pyvcf is too slow ... Is there anything else in python using C++ as backend ?
CyVCF2 https://github.com/brentp/cyvcf2