code: def _fastq_load_files(
      input_files: List[str], shard_size: Optional[int] = 4096
  ) -> Iterator:
      """Load data as Iterator.
  
      Parameters
      ----------
      input_files: List[str]
          List of fastq filenames.
      shard_size: int, optional (default 4096)
          Chunksize for reading fastq files.
  
      Yields
      -------
      Iterator
          Generator which yields the data which is the same shard size.
      """
      shard_num = 0
      for input_file in input_files:
          logger.info(
              "About to start loading fastq from %s." % input_file
          )
          # Open index file
          with open(input_file, "r") as f:
              # create an empty list to store lines in files.
              df = []
              line_number = 0
              # iterate through each line in the input file
              for num, line in enumerate(f):
                  # If the number of lines iterated through is equal or less than the shard size:
                  if (shard_size is not None) and (
                      (num + 1) - line_number <= (shard_size * 4)
                  ):
                      # append to list
                      df.append(line)
                  else:
                      # else yield the list
                      shard_num += 1
                      logger.info(
                          "Loading shard %d of size %s."
                          % (shard_num, str(shard_size))
                      )
                      # set the line_number variable to the last line number (num) before 'yield' was called
                      line_number = num
                      # yield list (shard/batch)
                      yield df
                      # Re-initialize list with the index line to begin a new shard.
                      df = [line]
              if len(df) > 0:
                  yield df
  
imports: import os
  import tempfile
  import zipfile
  import time
  import logging
  import warnings
  from typing import List, Optional, Tuple, Any, Sequence, Union, Iterator
  import pandas
  import numpy
  from deepchem.utils.typing import OneOrMany
  from deepchem.utils.data_utils import load_image_files, load_csv_files, load_json_files, load_sdf_files, unzip_file
  from deepchem.feat import UserDefinedFeaturizer, Featurizer
  from deepchem.data import Dataset, DiskDataset, NumpyDataset, ImageDataset
  from deepchem.feat.molecule_featurizers import OneHotFeaturizer
  from deepchem.utils.genomics_utils import encode_bio_sequence
label_desc: Use image node_id 2 for calling a global function with example usage: _fastq_load_files(input_files, shard_size) without return types