code: def _read_header(file, full_file_path_and_name):
      """Read the header information, returning the meta information."""
      # Meta data for data information
      meta_data = {
          "is_univariate": True,
          "is_equally_spaced": True,
          "is_equal_length": True,
          "has_nans": False,
          "has_timestamps": False,
          "has_class_labels": True,
      }
      # Read header until @data tag met
      for line in file:
          line = line.strip().lower()
          if line:
              if line.startswith("@problemname"):
                  tokens = line.split(" ")
                  token_len = len(tokens)
              elif line.startswith("@timestamps"):
                  tokens = line.split(" ")
                  if tokens[1] == "true":
                      meta_data["has_timestamps"] = True
                  elif tokens[1] != "false":
                      raise OSError(
                          f"invalid timestamps tag value {tokens[1]} value in file "
                          f"{full_file_path_and_name}"
                      )
              elif line.startswith("@univariate"):
                  tokens = line.split(" ")
                  token_len = len(tokens)
                  if tokens[1] == "false":
                      meta_data["is_univariate"] = False
                  elif tokens[1] != "true":
                      raise OSError(
                          f"invalid univariate tag value {tokens[1]} in file "
                          f"{full_file_path_and_name}"
                      )
              elif line.startswith("@equallength"):
                  tokens = line.split(" ")
                  if tokens[1] == "false":
                      meta_data["is_equal_length"] = False
                  elif tokens[1] != "true":
                      raise OSError(
                          f"invalid unequal tag value {tokens[1]} in file "
                          f"{full_file_path_and_name}"
                      )
              elif line.startswith("@classlabel"):
                  tokens = line.split(" ")
                  token_len = len(tokens)
                  if tokens[1] == "false":
                      meta_data["has_class_labels"] = False
                  elif tokens[1] != "true":
                      raise OSError(
                          "invalid classLabel value in file "
                          f"{full_file_path_and_name}"
                      )
                  if token_len == 2 and meta_data["class_labels"]:
                      raise OSError(
                          f"if the classlabel tag is true then class values must be "
                          f"supplied in file{full_file_path_and_name} but read {tokens}"
                      )
              elif line.startswith("@targetlabel"):
                  tokens = line.split(" ")
                  token_len = len(tokens)
                  if tokens[1] == "false":
                      meta_data["has_class_labels"] = False
                  elif tokens[1] != "true":
                      raise OSError(
                          "invalid targetlabel value in file "
                          f"{full_file_path_and_name}"
                      )
                  if token_len > 2:
                      raise OSError(
                          "targetlabel tag should not be accompanied with info "
                          "apart from true/false, but found "
                          f"{tokens}"
                      )
              elif line.startswith("@data"):
                  return meta_data
      raise OSError(
          f"End of file reached for {full_file_path_and_name} but no indicated start of "
          f"data with the tag @data"
      )
  
imports: import os
  import textwrap
label_desc: Use image node_id 2 for calling a global function with example usage: _read_header(file, full_file_path_and_name) and returns: meta_data