Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

windmill_client-0.7.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

windmill_client-0.7.1-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

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

Hashes for windmill_client-0.7.1.tar.gz
Algorithm Hash digest
SHA256 3efd4849a12494f99c06968538a7e88707d429b55da0f04ce35e258dafde7115
MD5 0defdfee63e1995a1ec42aea86114b84
BLAKE2b-256 6a92c07d55f1db017882c703255abcac074d3686cb9b9876d1a18f44919eb71a

See more details on using hashes here.

File details

Details for the file windmill_client-0.7.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for windmill_client-0.7.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6745f52a9a7a36698e4b284577c0e5fee5c1c842cd464063f34439d174d1fc97
MD5 9a411c9ac1e3b44f1bf96a7163173255
BLAKE2b-256 94e333780fab5107dddd202fd1f9ea11726f445b2f16614ac8dd433b5f3405bd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page