class_docstr: Abstract class for dialog problems.
docstr: Extract data and go to the next step.
  
  Args:
    train_mode:  string, whether we are in train, dev or test mode
docstr_tok: ["Extract","data","and","go","to","the","next","step",".","Args",":","train_mode",":","string",",","whether","we","are","in","train",",","dev","or","test","mode"]
code: def extract_data(self, train_mode):
      """Extract data and go to the next step.
  
      Args:
        train_mode:  string, whether we are in train, dev or test mode
      """
  
      if self._zipped_data[-2:] == "gz":
          zip_file = tarfile.open(self._zipped_data, "r:gz")
      elif self._zipped_data[-3:] == "zip":
          zip_file = zipfile.ZipFile(self._zipped_data, "r")
      else:
          print(
              "problem_log: "
              + self._zipped_data
              + " is not a .zip or .gz file, so I can't extract it."
          )
  
      zip_file.extractall(self._raw_data_dir)
      zip_file.close()
  
      # Next step is creating the source, target and vocab files.
      print(
          "problem_log: Creating "
          + train_mode
          + " files in "
          + self._data_dir
      )
      self.create_data(train_mode)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import re
  import tarfile
  import zipfile
  import requests
  from tensor2tensor.data_generators import generator_utils
  from tensor2tensor.data_generators import problem
  from tensor2tensor.data_generators import text_encoder
  from tensor2tensor.data_generators import text_problems
  from tensor2tensor.data_generators.text_problems import VocabType
  from tensor2tensor.layers import modalities
  from tensor2tensor.utils import metrics
  import tensorflow.compat.v1
label_desc: Use image node_id 27 for calling the DialogAbstract obj's underlying member method code with example usage: obj.extract_data(train_mode) without return types