Skip to main content

Python client

The Python client library for Windmill provides a convenient way to interact with the Windmill platform's API from within your script jobs. By authenticating with the WM_TOKEN reserved variable, you can utilize the Python client to access various functionalities offered by Windmill.

Installation

To use the Python client library, you need to install the wmill package. You can install it via pip:

pip install wmill

Usage

To use the Python client library in your script, include the following prelude:

import wmill

def main(...):
# Your script code

Client Class

The Client class is the main entry point for interacting with the Windmill API. It provides methods for accessing resources, running scripts, retrieving job statuses and results, and more. Here is the class signature:

class Client(base_url: str = 'http://localhost:8000/api', token: str = '')

Methods

get_resource

def get_resource(self, path: str) -> Dict[str, Any]

The get_resource method retrieves a resource at the specified path from the Windmill platform. It returns the resource as a Python dictionary (Dict[str, Any]).

run_script_async

def run_script_async(self, hash: str, args: Dict[str, Any] = {}, scheduled_in_secs: Optional[None] = None) -> str

The run_script_async method launches the execution of a script asynchronously on the Windmill platform. It returns the job ID associated with the script execution.

run_script_sync

def run_script_sync(self, hash: str, args: Dict[str, Any] = {}, verbose: bool = False) -> Dict[str, Any]

The run_script_sync method runs a script synchronously on the Windmill platform. It waits for the script to complete and returns the result as a Python dictionary (Dict[str, Any]).

get_job_status

def get_job_status(self, job_id: str) -> JobStatus

The get_job_status method retrieves the status of a queued or completed job identified by its job ID. It returns an instance of the JobStatus enumeration.

get_result

def get_result(self, job_id: str) -> Dict[str, Any]

The get_result method retrieves the result of a completed job identified by its job ID. It returns the result as a Python dictionary (Dict[str, Any]).

get_version

def get_version(self) -> str

The get_version method returns the current version of the Windmill backend.

JobStatus Enumeration

The JobStatus class is an enumeration that represents the different states of a job in Windmill. It provides the following class variables:

  • COMPLETED: Represents a completed job.
  • RUNNING: Represents a job that is currently running.
  • WAITING: Represents a job that is queued and waiting to be executed.

The JobStatus enumeration is useful when retrieving the status of a job using the get_job_status method.