Entrez.efetch returns incomplete genbank records I am using the biopython Entrez.efetch command to retrieve all features (CDS, mRNA, ...) of some genomes.

In this case (NC_014649, Acanthamoeba polyphaga mimivirus), it works as expected:

from Bio import Entrez, SeqIO
handle = Entrez.efetch(id='NC_014649', db='nuccore', rettype='gb')
records = SeqIO.read(handle, 'gb')
records.features

[SeqFeature(FeatureLocation(ExactPosition(0), ExactPosition(1181549), strand=1), type='source'),
 SeqFeature(FeatureLocation(ExactPosition(191), ExactPosition(2609), strand=1), type='gene'),
 SeqFeature(FeatureLocation(ExactPosition(191), ExactPosition(2609), strand=1), type='mRNA'),
 SeqFeature(FeatureLocation(ExactPosition(191), ExactPosition(2579), strand=1), type='CDS'),
...


However in this case (NC_010830, Candidatus Amoebophilus asiaticus), it only returns one record for the whole genome.

handle = Entrez.efetch(id='NC_010830', db='nuccore', rettype='gb')
records = SeqIO.read(handle, 'gb')
records.features
[SeqFeature(FeatureLocation(ExactPosition(0), ExactPosition(1884364), strand=1), type='source')]


However, if I check the corresponding file in the browser, it does have features: https://www.ncbi.nlm.nih.gov/nuccore/NC_010830.1

What could be the reason for this inconsistency ? Did I  miss something ?
This has been answered before. See: https://stackoverflow.com/a/55402322/6262370

In short, you need to either use rettype='gbwithparts' or rettype='gb', style='withparts' to download the entire genbank flat file.