Default behavior is the same
Executors:
-
Default: run() w/ a pass-through to show real time stderr of progress
-
subprocess.run pass-through
-
SubprocessCommand generates functions in dataclasses you can invoke later
Rather than immediately running a SubprocessCommand, you can introspect, pickle it, adjust it, etc.
Git(executor=SubprocessCommand)
-
Bring your own
If you're not satisfied and don't think a PR will do, create your own executor class.
If you do, you may want to either 1.) override the class's #run() or 2.) pass a run_fn to override it.