Metadata-Version: 2.1
Name: smartjob
Version: 0.0.24
Summary: Little async python library for dealing with GCP/Cloud Run Jobs and GCP/VertexAI CustomJobs
Author: Fabien MARTY
Author-email: fab@fabien-marty.dev
Requires-Python: >=3.11,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: docker (>=7.1.0,<8.0.0)
Requires-Dist: google-cloud-aiplatform (>=1.60.0)
Requires-Dist: google-cloud-run (>=0.10.8)
Requires-Dist: rich (>=13.7.1)
Requires-Dist: setuptools (>=72.1.0)
Requires-Dist: stlog (>=0.2.1)
Requires-Dist: tenacity (>=9.0.0,<10.0.0)
Requires-Dist: typer (>=0.12.3)
Description-Content-Type: text/markdown

# Welcome on SmartJob Python Library!

## What is it?

**SmartJob** is a thin Python 3.11+ library for dealing with [GCP/Cloud Run Jobs](https://cloud.google.com/run), [GCP/VertexAI CustomJobs](https://cloud.google.com/vertex-ai/docs/training/create-custom-job) and (local) Docker:

- in a **very simple** way
- in a **unified** way *(with as little difference as possible between the 3 providers)*
- in a **fully [async](https://docs.python.org/3/library/asyncio.html)** way *(in most cases, plain `asyncio` Python is enough for dealing with complex parallel workflows (including parralelism, chaining, conditionals...) and you don't need to learn another pipeline workflow)*
- 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.

## Quickstart

[Let's go 🚀](https://fabien-marty.github.io/smartjob/tutorials/quickstart/)

## Documentation

[https://fabien-marty.github.io/smartjob/](https://fabien-marty.github.io/smartjob/)
