Skip to content

Updated BaseRunner.run API#238

Open
MattBurn wants to merge 11 commits into
faccts:mainfrom
MattBurn:baserunner-run
Open

Updated BaseRunner.run API#238
MattBurn wants to merge 11 commits into
faccts:mainfrom
MattBurn:baserunner-run

Conversation

@MattBurn

@MattBurn MattBurn commented May 1, 2026

Copy link
Copy Markdown
Contributor

Closes Issues

Closes #235

Description

  • Replaces the competing capture, silent, stdout, and stderr controls in BaseRunner.run with explicit stdout/stderr stream targets.
  • Adds subprocess stream fanout support for Path, string paths, open text streams, callbacks, subprocess.PIPE capture, and multiple destinations using opi.execution.text_stream.TextStreamFanout.
  • Adds immutable run result objects opi.execution.base.RunResult and opi.execution.run.SubprocessRunResult with captured output, return-code helpers.
  • Deprecates stdin_str, capture, and silent in favor of stdin and stdout/stderr stream targets.
  • Adds focused unit tests for capture, fanout, live callbacks, stdin, timeout handling, and invalid stream targets.

Release Notes

Added

Changed

Deprecated

@MattBurn MattBurn requested a review from a team as a code owner May 1, 2026 13:09
@MattBurn

MattBurn commented May 1, 2026

Copy link
Copy Markdown
Contributor Author

Apologies for the number of CI runs, finally figured out how nox works to check locally in the future

@timmyte

timmyte commented May 6, 2026

Copy link
Copy Markdown
Contributor

Apologies for the number of CI runs, finally figured out how nox works to check locally in the future

Anything that could be improved in the docs to make this clearer?

@MattBurn

MattBurn commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

I am new to nox so I did not grasp what nox was going to run in CI before pushing. I ended up using uv tool run nox which was a nice and simple way to run everything at once locally. Possibly worth adding to the development guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Simplify BaseRunner.run method

2 participants