libvcs icon indicating copy to clipboard operation
libvcs copied to clipboard

Allow injecting `Executor` class to control how commands are made / ran

Open tony opened this issue 3 years ago • 0 comments
trafficstars

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.

tony avatar Jul 09 '22 18:07 tony