This method converts the instance into a flat-file
record, represented as a single string. For a discussion
of the operation of this method, see Section 74.1, “Design notes for the
# - - - B a s e E n c o u n t e r . f l a t t e n - - - def flatten(self): '''Return self as a flat-file record. '''
First we check to make sure the derived class provided the table that drives our logic.
#-- 1 -- if self.OUT_FIELD_LIST is None: raise NotImplementedError("Classes derived from " "BaseEncounter must provide an OUT_FIELD_LIST " "attribute.")
Next, we build up a list named
containing the flattened version of each field named in
OUT_FIELD_LIST. This is a one-liner in
Python, using a list comprehension. List comprehensions
are discussed in List displays in the online Python
#-- 2 -- # [ flatList := a list of strings representing flattened # values of fields in self as defined by the class # names and field names in self.OUT_FIELD_LIST ] flatList = [ fClass.flatten(getattr(self, fName)) for fClass, fName in self.OUT_FIELD_LIST ]
All that remains is to return the concatenation of all these strings.
#-- 3 -- return "".join(flatList)