a method to retrieve the details for a record in the table 
            
        :param primary_key: string with primary key of record 
        :return: dictionary with record fields

def read(self, primary_key):
    
        ''' 
            a method to retrieve the details for a record in the table 
            
        :param primary_key: string with primary key of record 
        :return: dictionary with record fields 
        '''
        
        title = '%s.read' % self.__class__.__name__
        
    # retrieve record object
        # record_object = self.session.query(self.record).filter_by(id=primary_key).first()
        select_statement = self.table.select(self.table.c.id==primary_key)
        record_object = self.session.execute(select_statement).first()
        if not record_object:
            raise ValueError('%s(primary_key=%s) does not exist.' % (title, primary_key))
        
    # reconstruct record details
        record_details = self._reconstruct_record(record_object)
                    
        return record_details