This virtual method breaks out the fields of a species line
and adds them to the internal structures of
self. The generic intended function is given here, but we use
the standard Python convention for a virtual function, raising
The concrete class will probably want to call Section 13.6, “
BaseSpeciesSet.addSpecies(): Add a new
species line” to add the fields to
the internal tables.
# - - - B a s e S p e c i e s S e t . r e a d L i n e - - - def readLine(self, scan): '''Virtual method for the concrete line-reading method. [ scan is a Scan object -> if the line in scan is not a valid species code line -> scan := scan located somewhere in the same line Log() +:= error message(s) raise IOError else -> self.spec4Map +:= an entry mapping the uppercased 4-letter species code from that line |-> a Species object representing that line self.spec6Map +:= an entry mapping the uppercased 6-letter species code from that line |-> a Species object representing that line self.engMap +:= an entry mapping the English name from that line |-> a Species object representing that line ] ''' raise NotImplementedError
A line that has a 4-letter or 6-letter code already
self is not considered valid.