code: def filter_all_data_by_selected_fields(
      all_type_data: Dict[str, Any], selected_fields: List[str]
  ) -> Iterable[Tuple[str, Any]]:
      
      for field in selected_fields:
          if field in all_type_data:
              yield field, all_type_data[field]
          else:
              raise ManifestBuildingError(
                  f"Selected field: {field} not available in data collected from solc output: "
                  f"{list(sorted(all_type_data.keys()))}. Please make sure the relevant data "
                  "is present in your solc output."
              )
docs: Raises exception if selected field data is not available in the contract type data
      automatically gathered by normalize_compiler_output. Otherwise, returns the data.