code: def read(self, size_or_buffer, timeout = None):
          r
          return self.device.read(self, size_or_buffer, timeout)
docs: r"""Read data from the endpoint.
  
          The parameter size_or_buffer is either the number of bytes to
          read or an array object where the data will be put in and timeout is the
          time limit of the operation. The transfer type and endpoint address
          are automatically inferred.
  
          The method returns either an array object or the number of bytes
          actually read.
  
          For details, see the Device.read() method.