INNER CODE UNIT · Python

wait_for_lines_or_done

MakazhanAlpamys/Soup · src/soup_cli/ui/app.py:233

    def wait_for_lines_or_done(
        self, next_idx: int, timeout: float = 0.5
    ) -> tuple[list[tuple[int, str]], bool]:
        """Wait until lines >= next_idx are available or process is marked done."""
        with self._new_line_cond:
            available = [item for item in self._lines if item[0] >= next_idx]
            if available or self._done:
                return available, self._done
            self._new_line_cond.wait(timeout=timeout)
            available = [item for item in self._lines if item[0] >= next_idx]
            return available, self._done


def _drain_stdout_worker(proc: subprocess.Popen, log_buffer: TrainLogBuffer) -> None:
    """Continuously read stdout of proc until EOF and write to log_buffer."""
    stdout = getattr(proc, "stdout", None)
    if stdout is None:
        log_buffer.mark_done()

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…