Goblet Workflows (Beta)
Goblet Workflows is a wrapper around GCP Workflows, which is a fully-managed orchestration platform that executes services in an order that you define: a workflow. These workflows can combine services including custom services hosted on Cloud Run or Cloud Functions, Google Cloud services such as Cloud Vision AI and BigQuery, and any HTTP-based API.
While GCP Workflows is powerful, it requires learning a complex yaml DSL, which makes it hard to manage and scale, and has a steap learning curve to get started.
Goblet Workflows uses similar syntax that you can expect from airflow and prefect, to make it easy to write, deploy, and manager your workflows, while leveraging the severless nature of GCP workflows.
See below for a simple workflow example.
from goblet_workflows.workflow import Workflow
from goblet_workflows.steps import AssignStep, BQStep
w = Workflow("bigquery-step-example", params=["column"])
upack_args = AssignStep(
w,
"upack_args",
column="${column}"
)
bq_step = BQStep(w, "bq_step", "select {column} from DATASET limit 1")
bq_step_2 = BQStep(w, "bq_step_2", "select colomn2 from DATASET2 where column1 = {bq_step[0]} ")
upack_args > bq_step > bq_step_2
Not to deploy you simply have to run the command goblet_workflows deploy, which will yield the workflow below.
Getting started
To install run:
pip install goblet_workflows
To deploy a workflow create a main.py file where you define your workflow and steps.
Then run
goblet_workflows deploy
To view the yaml run
goblet_workflows print
To execute a workflow run
goblet_workflows execute
To execute a workflow run with an arg
goblet_workflows execute --arg '{"project_id":"PROJECT","var1":"xx"}'
Examples
Features
- Generic Steps
- Branches
- Deployment of Workflows and Schedules
- GCP Connectors
- Execute Workflows
GCP Workflows
Issues
Please file any issues, bugs or feature requests as an issue on our GitHub page.
Roadmap
☑ Http Steps
☑ GCP Generic Connectors
☑ BQ Connector
☑ Dataform Connector
☑ Deploy
☑ Deploy Arbitrary File
☑ Execute
☐ Delete
☑ Schedule
☐ Conditions
☐ Subworkflows
☐ Parameter typing
Want to Contribute
If you would like to contribute to the library (e.g. by improving the documentation, solving a bug or adding a cool new feature) submit a pull request.
Metadata
Release files for goblet-workflows 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| goblet_workflows-0.1.4.tar.gz | 14.7 kB | Without provenance | Details for goblet_workflows-0.1.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| goblet_workflows-0.1.4-py3-none-any.whl | Python 3 | none | any | Details for goblet_workflows-0.1.4-py3-none-any.whl |
Total release size: 29.1 kB
Release files / goblet_workflows-0.1.4.tar.gz
| Download URL | goblet_workflows-0.1.4.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89fedaad9958c00b5f041a4710605114e4efc156526edff6d7502d0fdd17ba8f
|
|
BLAKE2b-256 checksum How to use checksums |
3cf629148189c847aadecc39124d8d96c2ce01a2466e2bb8bf82786ee32be061
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|
Release files / goblet_workflows-0.1.4-py3-none-any.whl
| Download URL | goblet_workflows-0.1.4-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a11e1af769d9b7a66b4624ea38a182c871bfd7ed3595cd21370eff56bfd4997c
|
|
BLAKE2b-256 checksum How to use checksums |
d4c1d51f424a3c06a60675bf86a822b45a405964ed5cf92344d0f55d66f431c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|
Security for goblet-workflows 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.