code: def __init__(self, metric, variant, src, iter=0, **kwargs):
      self._url = src
      parts = urlparse(src)
      self._key = urlunparse(
          (
              "",
              "",
              parts.path,
              parts.params,
              parts.query,
              parts.fragment,
          )
      )
      super(ImageEventNoUpload, self).__init__(
          metric, variant, iter=iter, **kwargs
      )
  
imports: import abc
  import hashlib
  import time
  from functools import reduce
  from logging import getLevelName
  import attr
  import numpy
  import pathlib2
  import six
  from PIL import Image
  from six.moves.urllib.parse import urlparse, urlunparse
  from ...backend_api.services import events
  from ...config import deferred_config
  from ...debugging.log import LoggerRoot
  from ...storage.util import quote_url
  from ...utilities.attrs import attrs
  from ...utilities.process.mp import SingletonLock
label_desc: Use image node_id 1 to create a new ImageEventNoUpload object from inherited base classes: MetricsEventAdapter with example: obj = ImageEventNoUpload(metric, variant, src, iter)