class_docstr: Extends watcher to add methods so calls for create and delete stream can be sent to server.
      
class_docstr_tok: ["Extends","watcher","to","add","methods","so","calls","for","create","and","delete","stream","can","be","sent","to","server","."]
code: def create_stream(
      self,
      name: str = None,
      devices: Sequence[str] = None,
      event_name: str = "",
      expr=None,
      throttle: float = 1,
      vis_args: VisArgs = None,
  ) -> Stream:  # overriden
      stream_req = StreamCreateRequest(
          stream_name=name,
          devices=self.devices_or_default(devices),
          event_name=event_name,
          expr=expr,
          throttle=throttle,
          vis_args=vis_args,
      )
  
      self._zmq_srvmgmt_sub.add_stream_req(stream_req)
  
      if stream_req.devices is not None:
          stream = self.open_stream(
              name=stream_req.stream_name, devices=stream_req.devices
          )
      else:  # we cannot return remote streams that are not backed by a device
          stream = None
      return stream
  
file_path: tensorwatch/tensorwatch/watcher_client.py
imports: from typing import Any, Dict, Sequence, List
  from .zmq_wrapper import ZmqWrapper
  from .lv_types import CliSrvReqTypes, ClientServerRequest, DefaultPorts
  from .lv_types import VisArgs, PublisherTopics, ServerMgmtMsg, StreamCreateRequest
  from .stream import Stream
  from .zmq_mgmt_stream import ZmqMgmtStream
  from .None import utils
  from .watcher_base import WatcherBase
label_desc: Use image node_id 6 for calling the WatcherClient obj's underlying member method code with example usage: obj.create_stream(name, devices, event_name, expr, throttle, vis_args) and returns: stream