docs: def view(self, buffer_time = 10.0, sample_size = 10000, name=None, description=None, start=False):
          """
          Defines a view on a stream.
  
          A view is a continually updated sampled buffer of a streams's tuples.
          Views allow visibility into a stream from external clients such
          as Jupyter Notebooks, the Streams console,
          `Microsoft Excel <https://www.ibm.com/support/knowledgecenter/SSCRJU_4.2.0/com.ibm.streams.excel.doc/doc/excel_overview.html>`_ or REST clients.
  
          The view created by this method can be used by external clients
          and through the returned :py:class:`~streamsx.topology.topology.View` object after the topology is submitted. For example a Jupyter Notebook can
          declare and submit an application with views, and then
          use the resultant `View` objects to visualize live data within the streams.
  
          When the stream contains Python objects then they are converted
          to JSON.
  
          Args:
              buffer_time: Specifies the buffer size to use measured in seconds.
              sample_size: Specifies the number of tuples to sample per second.
              name(str): Name of the view. Name must be unique within the topology. Defaults to a generated name.
              description: Description of the view.
              start(bool): Start buffering data when the job is submitted.
                  If `False` then the view starts buffering data when the first
                  remote client accesses it to retrieve data.
   
          Returns:
              streamsx.topology.topology.View: View object which can be used to access the data when the
              topology is submitted.
  
          .. note:: Views are only supported when submitting to distributed
              contexts including Streaming Analytics service.
          """
          if name is None:
              name = ''.join(random.choice('0123456789abcdef') for x in range(16))
  
          if self.oport.schema == streamsx.topology.schema.CommonSchema.Python:
              if self._json_stream:
                  view_stream = self._json_stream
              else:
                  self._json_stream = self.as_json(force_object=False)._layout(hidden=True)
                  view_stream = self._json_stream
                  # colocate map operator with stream that is being viewed.
                  if self._placeable:
                      self._colocate(view_stream, 'view')
          else:
              view_stream = self
  
          port = view_stream.oport.name
          view_config = {
                  'name': name,
                  'port': port,
                  'description': description,
                  'bufferTime': buffer_time,
                  'sampleSize': sample_size}
          if start:
              view_config['activateOption'] = 'automatic'
          view_stream.oport.operator.addViewConfig(view_config)
          _view = View(name)
          self.topology.graph._views.append(_view)
          return _view