code: def parse_args(self, parser, argv, environ=None):
      args = super().parse_args(parser, argv, environ=environ)
  
      if args.endpoint is None:
          args.endpoint = f"{args.host}:{get_next_port()}"
      self._endpoint_file_name = self._write_supervisor_endpoint_file(
          args
      )
  
      args.supervisors = f"{args.supervisors},{args.endpoint}".strip(
          ","
      )
  
      web_config = self.config.get("web", {})
      if args.web_port is not None:
          web_config["host"] = args.endpoint.split(":", 1)[0]
          web_config["port"] = int(args.web_port)
      self.config["web"] = web_config
  
      return args
  
file_path: mars/mars/deploy/oscar/supervisor.py
imports: import logging
  import os
  from ...None import oscar
  from ...services import NodeRole
  from ...utils import get_next_port
  from .cmdline import OscarCommandRunner
  from .local import start_supervisor, stop_supervisor
  from .pool import create_supervisor_actor_pool
label_desc: Use image node_id 3 for calling the SupervisorCommandRunner obj's underlying member method code with example usage: obj.parse_args(parser, argv, environ) and returns: args