class_docstr: Helper class to adapt between Protocol and StreamReader.
  
  (This is a helper class instead of making StreamReader itself a
  Protocol subclass, because the StreamReader has other potential
  uses, and to prevent the user of the StreamReader to accidentally
  call inappropriate methods of the protocol.)
class_docstr_tok: ["Helper","class","to","adapt","between","Protocol","and","StreamReader",".","(","This","is","a","helper","class","instead","of","making","StreamReader","itself","a","Protocol","subclass",",","because","the","StreamReader","has","other","potential","uses",",","and","to","prevent","the","user","of","the","StreamReader","to","accidentally","call","inappropriate","methods","of","the","protocol",".",")"]
code: def data_received(self, data):
      reader = self._stream_reader
      if reader is not None:
          reader.feed_data(data)
  
imports: import collections
  import socket
  import sys
  import warnings
  import weakref
  from .None import coroutines
  from .None import events
  from .None import exceptions
  from .None import format_helpers
  from .None import protocols
  from .log import logger
  from .tasks import sleep
label_desc: Use image node_id 6 for calling the StreamReaderProtocol obj's underlying member method code with example usage: obj.data_received(data) without return types