code: def Pull(cls, connection, filename, dest_file, progress_callback):
          
          if progress_callback:
              total_bytes = cls.Stat(connection, filename)[1]
              progress = cls._HandleProgress(lambda current: progress_callback(filename, current, total_bytes))
              next(progress)
  
          cnxn = FileSyncConnection(connection, b'<2I')
          try:
              cnxn.Send(b'RECV', filename)
              for cmd_id, _, data in cnxn.ReadUntil((b'DATA',), b'DONE'):
                  if cmd_id == b'DONE':
                      break
                  dest_file.write(data)
                  if progress_callback:
                      progress.send(len(data))
          except usb_exceptions.CommonUsbError as e:
              raise PullFailedError('Unable to pull file %s due to: %s' % (filename, e))
docs: Pull a file from the device into the file-like dest_file.