class_docstr: Generic class to download the pre-trained models
  
  Usage Example:
  
  chunker = ChunkerModel.get_instance()
  chunker2 = ChunkerModel.get_instance()
  print(chunker, chunker2)
  print("Local File path = ", chunker.get_file_path())
  files_models = chunker2.get_model_files()
  for idx, file_name in enumerate(files_models):
      print(str(idx) + ": " + file_name)
class_docstr_tok: ["Generic","class","to","download","the","pre-trained","models","Usage","Example",":","chunker","=","ChunkerModel.get_instance","(",")","chunker2","=","ChunkerModel.get_instance","(",")","print","(","chunker",",","chunker2",")","print","(","``","Local","File","path","=","``",",","chunker.get_file_path","(",")",")","files_models","=","chunker2.get_model_files","(",")","for","idx",",","file_name","in","enumerate","(","files_models",")",":","print","(","str","(","idx",")","+","``",":","``","+","file_name",")"]
code: def __init__(self, model_name, sub_path, files):
      if isinstance(
          self,
          (
              BistModel,
              ChunkerModel,
              MrcModel,
              IntentModel,
              AbsaModel,
              NerModel,
          ),
      ):
          if self._instance is not None:  # pylint: disable=no-member
              raise Exception("This class is a singleton!")
      self.model_name = model_name
      self.base_path = S3_PREFIX + sub_path
      self.files = files
      self.download_path = (
          LIBRARY_OUT / "pretrained_models" / self.model_name
      )
      self.model_files = []
  
imports: from nlp_architect.utils.io import uncompress_file, zipfile_list
  from nlp_architect.utils.file_cache import cached_path
  from nlp_architect import LIBRARY_OUT
label_desc: Use image node_id 1 to create a new PretrainedModel object  with example: obj = PretrainedModel(model_name, sub_path, files)