A client for the Windmill API
Project description
windmill_client
Overview
windmill_client
is a Python package designed to interact with the Windmill API. It provides a convenient way to manage jobs, resources, and states within the Windmill environment, offering functionalities like job creation, execution, status tracking, and state management.
It's designed to remain api-compatible with the wmill
package, but with some added features and a more direct usage
of Windmill's REST API.
Installation
To install windmill_client
, run the following command:
pip install windmill-client
Usage
Basic Usage
The wmill
package has several methods at the top-level for the most frequent operations you will need.
The following are some common examples:
import time
import windmill_client as wmill
def main():
# Get the value of a variable
wmill.get_variable("u/user/variable_path")
# Run a script synchronously and get the result
wmill.run_script("f/pathto/script", args={"arg1": "value1"})
# Get the value of a resource
wmill.get_resource("u/user/resource_path")
# Set the script's state
wmill.set_state({"ts": time.time()})
# Get the script's state
wmill.get_state()
Advanced Usage
The wmill
package also exposes the Windmill
class, which is the core client for the Windmill platform.
import time
from windmill_client import Windmill
def main():
client = Windmill(
# token=... <- this is optional. otherwise the client will look for the WM_TOKEN env var
)
# Get the current version of the client
client.version
# Get the current user
client.user
# Convenience get and post methods exist for https://app.windmill.dev/openapi.html#/
# these are thin wrappers around the httpx library's get and post methods
# list worker groups
client.get("/configs/list_worker_groups")
# create a group
client.post(
f"/w/{client.workspace}/groups/create",
json={
"name": "my-group",
"summary": "my group summary",
}
)
# Get and set the state of the script
now = time.time()
client.state = {"ts": now}
assert client.state == {"ts": now}
# Run a job asynchronously
job_id = client.run_script_async(path="path/to/script")
# Get its status
client.get_job_status(job_id)
# Get its result
client.get_result(job_id)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file windmill_client-0.7.1.tar.gz
.
File metadata
- Download URL: windmill_client-0.7.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3efd4849a12494f99c06968538a7e88707d429b55da0f04ce35e258dafde7115 |
|
MD5 | 0defdfee63e1995a1ec42aea86114b84 |
|
BLAKE2b-256 | 6a92c07d55f1db017882c703255abcac074d3686cb9b9876d1a18f44919eb71a |
File details
Details for the file windmill_client-0.7.1-py2.py3-none-any.whl
.
File metadata
- Download URL: windmill_client-0.7.1-py2.py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6745f52a9a7a36698e4b284577c0e5fee5c1c842cd464063f34439d174d1fc97 |
|
MD5 | 9a411c9ac1e3b44f1bf96a7163173255 |
|
BLAKE2b-256 | 94e333780fab5107dddd202fd1f9ea11726f445b2f16614ac8dd433b5f3405bd |