Welcome on SmartJob Python Library!
What is it?
SmartJob is a thin Python 3.11+ job library for dealing with GCP/Cloud Run Jobs, GCP/Cloud Batch Jobs and GCP/VertexAI CustomJobs and (local) Docker (jobs):
- in a very simple way
- in a unified way (with as little difference as possible between the 4 providers)
- in an async way (not with
asynciobut withconcurrent.futures.Futureobjects; in most cases, this is enough for dealing with complex parallel workflows (including parralelism, chaining, conditionals...) and you don't need to learn another pipeline workflow or switching your whole codebase toasyncio) - in a reactive way (when you're in the experimentation phase, you can pass the main Python script without rebuilding/pushing a whole docker image at each attempt)
- in a production ready way (with retries, timeouts...)
Non-features
SmartJob is a thin library and not a whole pipeline framework. He tries to be as un-opinionated as possible.