code: def _clisrv_callback(
      self, clisrv, clisrv_req
  ):  # pylint: disable=unused-argument
      utils.debug_log("Received client request", clisrv_req.req_type)
  
      # request = create stream
      if clisrv_req.req_type == CliSrvReqTypes.create_stream:
          stream_req = clisrv_req.req_data
          self.create_stream(
              name=stream_req.stream_name,
              devices=stream_req.devices,
              event_name=stream_req.event_name,
              expr=stream_req.expr,
              throttle=stream_req.throttle,
              vis_args=stream_req.vis_args,
          )
          return None  # ignore return as we can't send back stream obj
      elif clisrv_req.req_type == CliSrvReqTypes.del_stream:
          stream_name = clisrv_req.req_data
          return self.del_stream(stream_name)
      else:
          raise ValueError(
              "ClientServer Request Type {} is not recognized".format(
                  clisrv_req
              )
          )
  
file_path: tensorwatch/tensorwatch/watcher.py
imports: import uuid
  from typing import Sequence
  from .zmq_wrapper import ZmqWrapper
  from .watcher_base import WatcherBase
  from .lv_types import CliSrvReqTypes
  from .lv_types import DefaultPorts, PublisherTopics, ServerMgmtMsg
  from .None import utils
  import threading, time
label_desc: Use image node_id 7 for calling the Watcher obj's underlying member method code with example usage: obj._clisrv_callback(clisrv, clisrv_req) and returns: None, self