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
Hashes for windmill_client-0.7.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e56c5301b021d11c3af64f3991036769b198caae1e4359d6a918208a98f8a5e2 |
|
MD5 | 97e8bf965df437e55d871eb49ef28173 |
|
BLAKE2b-256 | 92e3ea2497ba2c0a4be0dc0584df7f3f3f5a42e44b67a84188e2afffa3d83791 |