docs: def get_taf_flight_rules(lines: [dict]) -> [dict]:  # type: ignore
      """
      Get flight rules by looking for missing data in prior reports
      """
      for i, line in enumerate(lines):
          temp_vis, temp_cloud = line['visibility'], line['clouds']
          for report in reversed(lines[:i]):
              if not _is_tempo_or_prob(report['type']):
                  if temp_vis == '':
                      temp_vis = report['visibility']
                  if 'SKC' in report['other'] or 'CLR' in report['other']:
                      temp_cloud = 'temp-clear'
                  elif temp_cloud == []:
                      temp_cloud = report['clouds']
                  if temp_vis != '' and temp_cloud != []:
                      break
          if temp_cloud == 'temp-clear':
              temp_cloud = []
          line['flight_rules'] = FLIGHT_RULES[get_flight_rules(temp_vis, get_ceiling(temp_cloud))]
      return lines