Metadata-Version: 2.1
Name: smartjob
Version: 0.0.8
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.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: google-cloud-aiplatform (>=1.60.0,<2.0.0)
Requires-Dist: google-cloud-run (>=0.10.8,<0.11.0)
Requires-Dist: rich (>=13.7.1,<14.0.0)
Requires-Dist: setuptools (>=72.1.0,<73.0.0)
Requires-Dist: stlog (>=0.2.0,<0.3.0)
Requires-Dist: typer (>=0.12.3,<0.13.0)
Description-Content-Type: text/markdown

# Welcome on SmartJob Python Library!

## What is it?

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

- in a **very simple** way
- in a **unified** way *(with as little difference as possible between the 2 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)*


## 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/)
