code: def _parse_artifacts(art_list, mutable):
      retval = {}
      url_schema = re.compile("^https{0,1}://")
      s3_schema = re.compile("s3://")
      gcs_schema = re.compile("gs://")
      dhub_schema = re.compile("dockerhub://")
      shub_schema = re.compile("shub://")
  
      for entry in art_list:
          path = re.sub(":[^:]*\Z", "", entry)
          tag = re.sub(".*:(?=[^:]*\Z)", "", entry)
  
          if url_schema.match(entry):
              assert (
                  not mutable
              ), "artifacts specfied by url can only be immutable"
              retval[tag] = {
                  "url": path,
                  "mutable": False,
                  "unpack": False,
              }
          elif (
              s3_schema.match(entry)
              or gcs_schema.match(entry)
              or dhub_schema.match(entry)
              or shub_schema.match(entry)
          ):
              assert (
                  not mutable
              ), "artifacts specfied by url can only be immutable"
              retval[tag] = {
                  "qualified": path,
                  "mutable": False,
                  "unpack": False,
              }
          else:
              retval[tag] = {
                  "local": os.path.expanduser(path),
                  "mutable": mutable,
                  "unpack": True,
              }
              if not mutable:
                  assert os.path.exists(retval[tag]["local"])
      return retval
  
imports: import copy
  import sys
  import argparse
  import re
  import os
  import uuid
  import importlib
  import time
  import six
  import numpy
  from studio.credentials.credentials import KEY_CREDENTIALS
  from studio.hyperparameter import HyperparameterParser
  from studio.extra_util import Progbar, rsync_cp
  from studio.experiments.experiment import create_experiment
  from studio.experiment_submitter import submit_experiments
  from studio import model
  from studio import git_util
  from studio import local_worker
  from studio import fs_tracker
  from studio.dependencies_policies.studio_dependencies_policy import StudioDependencyPolicy
  from studio.util import logs, util
label_desc: Use image node_id 4 for calling a global function with example usage: _parse_artifacts(art_list, mutable) and returns: retval