Source code for pytaxa.taxa.taxa

from ..utils import *
from .taxon import Taxon

[docs]class Taxa(object): """ Taxa class Stores one or more `taxon` objects. Prints first 10 taxa for brevity sake. :param taxa: Any number of objects of type `Taxon` resulting from a call to :func:`~pytaxa.taxa.Taxon` Usage:: # make a taxon from pytaxa import constructors as cs name = cs.taxon_name("Poa") rank = cs.taxon_rank("genus", "ncbi") db = cs.taxon_database("ncbi", "http://www.ncbi.nlm.nih.gov/taxonomy", "NCBI Taxonomy Database", "*") id = cs.taxon_id(12345, db) from pytaxa import Taxon tx = Taxon(name, rank, id, "L.") # combine many taxon's into taxa from pytaxa import Taxa Taxa(tx) bb = Taxa(tx, tx) bb # handles empty taxon objects Taxa(tx, Taxon(None), tx) # various accessors: len bb = Taxa(tx, tx) len(bb) """ def __init__(self, *taxa: Taxon): super(Taxa, self).__init__() self.taxa = list(taxa) self.xlen = len(taxa) def __repr__(self): no = "<taxa>\n no. taxa: %d\n " % len(self.taxa) z = [z.print_taxon() for z in self.taxa[:10]] mssg = no + '\n '.join(z) return mssg def __len__(self): return self.xlen