code: def __init__(self, limit=_DEFAULT_LIMIT, loop=None):
      # The line length limit is  a security feature;
      # it also doubles as half the buffer limit.
  
      if limit <= 0:
          raise ValueError("Limit cannot be <= 0")
  
      self._limit = limit
      if loop is None:
          self._loop = events._get_event_loop()
      else:
          self._loop = loop
      self._buffer = bytearray()
      self._eof = False  # Whether we're done.
      self._waiter = None  # A future used by _wait_for_data()
      self._exception = None
      self._transport = None
      self._paused = False
      if self._loop.get_debug():
          self._source_traceback = format_helpers.extract_stack(
              sys._getframe(1)
          )
  
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 1 to create a new StreamReader object  with example: obj = StreamReader(limit, loop)