def features(self):
        """list: Get the features from the feature file, metadata file, or in memory"""
        if self.feature_file:
            log.debug('{}: reading features from feature file {}'.format(self.id, self.feature_path))
            with open(self.feature_path) as handle:
                feats = list(GFF.parse(handle))
                if len(feats) > 1:
                    log.warning('Too many sequences in GFF')
                else:
                    return feats[0].features

        elif self.metadata_file:
            log.debug('{}: reading features from metadata file {}'.format(self.id, self.metadata_path))
            tmp_sr = SeqIO.read(self.metadata_path, 'uniprot-xml')
            return tmp_sr.features

        else:
            return self._features
def features ( self ) : if self . feature_file : log . debug ( '{}: reading features from feature file {}' . format ( self . id , self . feature_path ) ) with open ( self . feature_path ) as handle : feats = list ( GFF . parse ( handle ) ) if len ( feats ) > 1 : log . warning ( 'Too many sequences in GFF' ) else : return feats [ 0 ] . features elif self . metadata_file : log . debug ( '{}: reading features from metadata file {}' . format ( self . id , self . metadata_path ) ) tmp_sr = SeqIO . read ( self . metadata_path , 'uniprot-xml' ) return tmp_sr . features else : return self . _features
list: Get the features from the feature file, metadata file, or in memory