def METHOD_NAME(food_data, selected_gap_type=None, selected_gap_code=None):
    for row in food_data.rows:
        for gap_class, gap_code in [
                (ConvFactorGaps, row.conv_factor_gap_code),
                (FctGaps, row.fct_gap_code),
        ]:
            if _matches_filters(row, gap_class, gap_code, selected_gap_type, selected_gap_code):
                manually_set = ['gap_type', 'gap_code', 'gap_desc', 'number_occurrence']
                yield {
                    'gap_type': gap_class.name,
                    'gap_code': gap_code,
                    'gap_desc': gap_class.DESCRIPTIONS[gap_code],
                    **{col: getattr(row, col, None) for col in GapsDetailsData.headers
                    if col not in manually_set},
                }