class_docstr: Class which holds information about all submissions.
  
  All submissions are stored in 3 dictionaries, one for targeted attacks,
  one for non-targeted attacks and one for defenses.
  All submissions are identified using internal competition ID,
  which looks like 'SUB????'. Additionally each submission has external
  identified which could be name of baseline or Kaggle ID.
  External ID only used when list of submissions is formed and when
  scorebored is built. Internal submission IDs are used for all actual
  evaluation. Thus all identifiers are internal IDs unless otherwise noted.
docstr: Loads list of submissions from the directory.
  
  Args:
    dir_suffix: suffix of the directory where submissions are stored,
      one of the folowing constants: ATTACK_SUBDIR, TARGETED_ATTACK_SUBDIR
      or DEFENSE_SUBDIR.
    id_pattern: pattern which is used to generate (internal) IDs
      for submissins. One of the following constants: ATTACK_ID_PATTERN,
      TARGETED_ATTACK_ID_PATTERN or DEFENSE_ID_PATTERN.
  
  Returns:
    dictionary with all found submissions
docstr_tok: ["Loads","list","of","submissions","from","the","directory",".","Args",":","dir_suffix",":","suffix","of","the","directory","where","submissions","are","stored",",","one","of","the","folowing","constants",":","ATTACK_SUBDIR",",","TARGETED_ATTACK_SUBDIR","or","DEFENSE_SUBDIR",".","id_pattern",":","pattern","which","is","used","to","generate","(","internal",")","IDs","for","submissins",".","One","of","the","following","constants",":","ATTACK_ID_PATTERN",",","TARGETED_ATTACK_ID_PATTERN","or","DEFENSE_ID_PATTERN",".","Returns",":","dictionary","with","all","found","submissions"]
code: def _load_submissions_from_datastore_dir(
      self, dir_suffix, id_pattern
  ):
      """Loads list of submissions from the directory.
  
      Args:
        dir_suffix: suffix of the directory where submissions are stored,
          one of the folowing constants: ATTACK_SUBDIR, TARGETED_ATTACK_SUBDIR
          or DEFENSE_SUBDIR.
        id_pattern: pattern which is used to generate (internal) IDs
          for submissins. One of the following constants: ATTACK_ID_PATTERN,
          TARGETED_ATTACK_ID_PATTERN or DEFENSE_ID_PATTERN.
  
      Returns:
        dictionary with all found submissions
      """
      submissions = self._storage_client.list_blobs(
          prefix=os.path.join(self._round_name, dir_suffix)
      )
      return {
          id_pattern.format(idx): SubmissionDescriptor(
              path=s, participant_id=participant_from_submission_path(s)
          )
          for idx, s in enumerate(submissions)
      }
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from collections import namedtuple
  from io import StringIO
  import os
  from six import iteritems
label_desc: Use image node_id 2 for calling the CompetitionSubmissions obj's underlying member method code with example usage: obj._load_submissions_from_datastore_dir(dir_suffix, id_pattern) and returns: unknown