def _getFileContents(self, clientVersion, fileList, rawStreams):
        manifest = ManifestWriter(self.tmpPath)
        sizeList = []
        exception = None

        for stream, (encFileId, encVersion) in \
                            itertools.izip(rawStreams, fileList):
            if stream is None:
                # return an exception if we couldn't find one of
                # the streams
                exception = errors.FileStreamNotFound
            elif not files.frozenFileHasContents(stream):
                exception = errors.FileHasNoContents
            else:
                contents = files.frozenFileContentInfo(stream)
                filePath = self.repos.contentsStore.hashToPath(
                        contents.sha1())
                try:
                    size = os.stat(filePath).st_size
                    sizeList.append(size)
                    manifest.append(filePath,
                            expandedSize=size,
                            isChangeset=False,
                            preserveFile=True,
                            offset=0,
                            )
                except __HOLE__, e:
                    if e.errno != errno.ENOENT:
                        raise
                    exception = errors.FileContentsNotFound

            if exception:
                raise exception(self.toFileId(encFileId),
                                self.toVersion(encVersion))

        name = manifest.close()
        url = os.path.join(self.urlBase(), "changeset?%s" % name)
        # client versions >= 44 use strings instead of ints for size
        # because xmlrpclib can't marshal ints > 2GiB
        if clientVersion >= 44:
            sizeList = [ str(x) for x in sizeList ]
        else:
            for size in sizeList:
                if size >= 0x80000000:
                    raise errors.InvalidClientVersion(
                        'This version of Conary does not support '
                        'downloading file contents larger than 2 '
                        'GiB.  Please install a new Conary '
                        'client.')
        return url, sizeList
dataset/ETHPy150Open sassoftware/conary/conary/repository/netrepos/netserver.py/NetworkRepositoryServer._getFileContents