# - - - T a x o n . w r i t e F l a t def writeFlat ( self, outFile ): '''Write a record to the tree file. '''
For the exact format of this file, see the specification. There are five fields: the taxonomic key; the bird code; the status code; the scientific name; and the English name.
Not all taxa have a code. The method described in Section 19.6, “
Taxon.abbr(): Is there a standard
None if the
taxon has no standard bird code; in that case we substitute a
blank code field.
#-- 1 -- # [ if self has a standard code -> # code := that code # else -> # code := '' ] code = self.abbr() or ''
Because the English name may have underbars around the scientific name, we'll need a version of it with those removed.
#-- 2 -- # [ cleanEng := self.eng with underbars removed ] cleanEng = self.eng.replace('_', '')
The Python format string
"%-*s" takes two
arguments, a field length and a string; the string is
left-justified in a field of that length.
#-- 3 -- # [ outFile +:= (self's taxonomic key number) + code + # self.status + (self.sci right-blank-padded to L_SCI) + # (self.eng right-blank-padded to L_ENG) + "\n" outFile.write ( "%s" # self.txKey "%-*s" # abbrMod.ABBR_L, code "%s" # self.status "%-*s" # L_SCI, self.sci "%-*s\n" % # L_ENG, cleanEng (self.txKey, abbrMod.ABBR_L, code, self.status, L_SCI, self.sci, L_ENG, cleanEng) )