def readinto(self, buf, **kwargs):
    '\n        Read into ``buf`` from the device. The number of bytes read will be the\n        length of ``buf``.\n\n        If ``start`` or ``end`` is provided, then the buffer will be sliced\n        as if ``buf[start:end]``. This will not cause an allocation like\n        ``buf[start:end]`` will so it saves memory.\n\n        :param bytearray buffer: buffer to write into\n        :param int start: Index to start writing at\n        :param int end: Index to write up to but not include\n        '
    self.i2c.readfrom_into(self.device_address, buf, **kwargs)
Read into ``buf`` from the device. The number of bytes read will be the
length of ``buf``.

If ``start`` or ``end`` is provided, then the buffer will be sliced
as if ``buf[start:end]``. This will not cause an allocation like
``buf[start:end]`` will so it saves memory.

:param bytearray buffer: buffer to write into
:param int start: Index to start writing at
:param int end: Index to write up to but not include
def readinto(self, buf, **kwargs):
    '\n        Read into ``buf`` from the device. The number of bytes read will be the\n        length of ``buf``.\n\n        If ``start`` or ``end`` is provided, then the buffer will be sliced\n        as if ``buf[start:end]``. This will not cause an allocation like\n        ``buf[start:end]`` will so it saves memory.\n\n        :param bytearray buffer: buffer to write into\n        :param int start: Index to start writing at\n        :param int end: Index to write up to but not include\n        '
    self.i2c.readfrom_into(self.device_address, buf, **kwargs)