alex_wmill


Namealex_wmill JSON
Version 1.440.0 PyPI version JSON
download
home_pagehttps://windmill.dev
SummaryA client library for accessing Windmill server wrapping the Windmill client API
upload_time2024-12-17 16:28:16
maintainerNone
docs_urlNone
authorRuben Fiszel
requires_python<4.0,>=3.7
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # wmill

The core client for the [Windmill](https://windmill.dev) platform.


## 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:

```python
import time

import 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.

```python
import time

from wmill 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)


```

            

Raw data

            {
    "_id": null,
    "home_page": "https://windmill.dev",
    "name": "alex_wmill",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Ruben Fiszel",
    "author_email": "ruben@windmill.dev",
    "download_url": "https://files.pythonhosted.org/packages/ee/4c/ddbd230be9d80bdbb972b5e3ed74b26dbe3096b66d9b6d08ce2d2fddfbe1/alex_wmill-1.440.0.tar.gz",
    "platform": null,
    "description": "# wmill\n\nThe core client for the [Windmill](https://windmill.dev) platform.\n\n\n## Usage\n\n### Basic Usage\n\nThe `wmill` package has several methods at the top-level for the most frequent operations you will need.\n\nThe following are some common examples:\n\n```python\nimport time\n\nimport wmill\n\n\ndef main():\n    # Get the value of a variable\n    wmill.get_variable(\"u/user/variable_path\")\n    \n    # Run a script synchronously and get the result\n    wmill.run_script(\"f/pathto/script\", args={\"arg1\": \"value1\"})\n    \n    # Get the value of a resource\n    wmill.get_resource(\"u/user/resource_path\")\n    \n    # Set the script's state\n    wmill.set_state({\"ts\": time.time()})\n    \n    # Get the script's state\n    wmill.get_state()\n```\n\n### Advanced Usage\n\nThe `wmill` package also exposes the `Windmill` class, which is the core client for the Windmill platform.\n\n```python\nimport time\n\nfrom wmill import Windmill\n\ndef main():\n    client = Windmill(\n        # token=...  <- this is optional. otherwise the client will look for the WM_TOKEN env var\n    )\n\n    # Get the current version of the client\n    client.version\n\n    # Get the current user\n    client.user\n    \n    # Convenience get and post methods exist for https://app.windmill.dev/openapi.html#/\n    # these are thin wrappers around the httpx library's get and post methods\n    # list worker groups\n    client.get(\"/configs/list_worker_groups\")\n    # create a group\n    client.post(\n        f\"/w/{client.workspace}/groups/create\",\n        json={\n            \"name\": \"my-group\",\n            \"summary\": \"my group summary\",\n        }\n    )\n    \n    # Get and set the state of the script\n    now = time.time()\n    client.state = {\"ts\": now}\n    assert client.state == {\"ts\": now}\n    \n    # Run a job asynchronously\n    job_id = client.run_script_async(path=\"path/to/script\")\n    # Get its status\n    client.get_job_status(job_id)\n    # Get its result\n    client.get_result(job_id)\n\n\n```\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A client library for accessing Windmill server wrapping the Windmill client API",
    "version": "1.440.0",
    "project_urls": {
        "Documentation": "https://windmill.dev",
        "Homepage": "https://windmill.dev"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "118fa4d63122feb86065e1e5fa1a1be81f91396b58265dc7fe9a8befa25b525e",
                "md5": "bd4697cb0f17a77b9a6bf5eaf8e83739",
                "sha256": "0ac236603a1022123f658cefe94c0cc004a893effc0a201cc274bcc9f0ae2fcb"
            },
            "downloads": -1,
            "filename": "alex_wmill-1.440.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bd4697cb0f17a77b9a6bf5eaf8e83739",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.7",
            "size": 11135,
            "upload_time": "2024-12-17T16:28:12",
            "upload_time_iso_8601": "2024-12-17T16:28:12.233524Z",
            "url": "https://files.pythonhosted.org/packages/11/8f/a4d63122feb86065e1e5fa1a1be81f91396b58265dc7fe9a8befa25b525e/alex_wmill-1.440.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee4cddbd230be9d80bdbb972b5e3ed74b26dbe3096b66d9b6d08ce2d2fddfbe1",
                "md5": "5737d9c0339128b121bf9a0cf80c10e3",
                "sha256": "506c82251a0d014f09a907660cce7907b8d0b797dc81b2a87cdef923fa98b5f9"
            },
            "downloads": -1,
            "filename": "alex_wmill-1.440.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5737d9c0339128b121bf9a0cf80c10e3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.7",
            "size": 10930,
            "upload_time": "2024-12-17T16:28:16",
            "upload_time_iso_8601": "2024-12-17T16:28:16.892555Z",
            "url": "https://files.pythonhosted.org/packages/ee/4c/ddbd230be9d80bdbb972b5e3ed74b26dbe3096b66d9b6d08ce2d2fddfbe1/alex_wmill-1.440.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-17 16:28:16",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "alex_wmill"
}
        
Elapsed time: 0.46705s