Exposing a non CLI API


Is there any plan to expose a pure python API so that DVC commands can be run directly within a python script ? (At the moment, I am building a pipeline based on a series of subprocesses that call the various DVC commands, but development / debugging would be smoother if I could directly call the underlying python code).

It is probably already possible, but there are no examples in the documentation about this use case.

Thanks !

Hi @tmain !

We do have an internal python API( dvc/project.py ), but it is not stable, not documented and thus not yet ready to be relied on. The only API that is stable and for which we guarantee backward compatibility is CLI(that being said it will also change in the next major release v1.0 which we’ve planned a lot of improvements for). Considering that the CLI will be changed in v1.0, python API will be changed as well, so it makes sense to stabilize it for 1.0. We plan to release 1.0 in the nearest future.


1 Like

Excellent news, will look forward to it !