code: def start(
      self,
      abort_callback=None,
      logger=None,
      upload_stdout=True,
      upload_stderr=True,
      send_hardware_metrics=True,
      run_monitoring_thread=True,
      handle_uncaught_exceptions=True,
  ):
      if handle_uncaught_exceptions:
          self._set_uncaught_exception_handler()
  
      if logger:
          channel = self._experiment._get_channel(
              "logger", "text", ChannelNamespace.SYSTEM
          )
          channel_writer = ChannelWriter(
              self._experiment, channel.name, ChannelNamespace.SYSTEM
          )
          self._logger_handler = StreamHandler(channel_writer)
          self._logger = logger
          logger.addHandler(self._logger_handler)
  
      if upload_stdout and not is_notebook():
          self._stdout_uploader = StdOutWithUpload(self._experiment)
  
      if upload_stderr and not is_notebook():
          self._stderr_uploader = StdErrWithUpload(self._experiment)
  
      abortable = (
          abort_callback is not None
          or DefaultAbortImpl.requirements_installed()
      )
      if abortable:
          self._run_aborting_thread(abort_callback)
      else:
          _logger.warning(
              "psutil is not installed. You will not be able to abort this experiment from the UI."
          )
  
      if run_monitoring_thread:
          self._run_monitoring_thread()
  
      if send_hardware_metrics:
          self._run_hardware_metrics_reporting_thread()
  
imports: import logging
  import os
  import sys
  import time
  import traceback
  from logging import StreamHandler
  from neptune.common.hardware.gauges.gauge_mode import GaugeMode
  from neptune.common.hardware.metrics.service.metric_service_factory import MetricServiceFactory
  from neptune.common.utils import in_docker, is_ipython, is_notebook
  from neptune.legacy.internal.abort import CustomAbortImpl, DefaultAbortImpl
  from neptune.legacy.internal.channels.channels import ChannelNamespace
  from neptune.legacy.internal.streams.channel_writer import ChannelWriter
  from neptune.legacy.internal.streams.stdstream_uploader import StdErrWithUpload, StdOutWithUpload
  from neptune.legacy.internal.threads.aborting_thread import AbortingThread
  from neptune.legacy.internal.threads.hardware_metric_reporting_thread import HardwareMetricReportingThread
  from neptune.legacy.internal.threads.ping_thread import PingThread
label_desc: Use image node_id 2 for calling the ExecutionContext obj's underlying member method code with example usage: obj.start(abort_callback, logger, upload_stdout, upload_stderr, send_hardware_metrics, run_monitoring_thread, handle_uncaught_exceptions) without return types