async def METHOD_NAME(self, size=None):
    start = self.tell()
    def pre(x):
        return x == ""
    def post(x):
        return size and (self.tell() - start) >= size
    blob = None
    while blob != "" and not (size and (self.tell() - start) >= size):
        blob = await self._get_chunk(self.tell(), size=self._length(start, size))
        yield blob