Skip to content

Fireline-Science/tws-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tws-sdk

Python client for TWS.

Installation

pip install tws-sdk

Usage

The library provides both synchronous and asynchronous clients for interacting with TWS.

The primary API is run_workflow, which executes a workflow configured via the TWS UI, waits for completion, and returns the result.

Synchronous Usage

from tws import Client as TWSClient

# Use the client with a context manager
with TWSClient(
    public_key="your_public_key",
    secret_key="your_secret_key",
    api_url="your_api_url"
) as tws_client:
    # Run a workflow and wait for completion
    result = tws_client.run_workflow(
        workflow_definition_id="your_workflow_id",
        workflow_args={
            "param1": "value1",
            "param2": "value2"
        },
    )

Asynchronous Usage

The signatures are exactly the same for async usage, but the client class is TWSAsyncClient and client methods are awaited.

from tws import AsyncClient as TWSAsyncClient


async def main():
    # Use the async client with a context manager
    async with TWSAsyncClient(
        public_key="your_public_key",
        secret_key="your_secret_key",
        api_url="your_api_url"
    ) as tws_client:
        # Run a workflow and wait for completion
        result = await tws_client.run_workflow(
            workflow_definition_id="your_workflow_id",
            workflow_args={
                "param1": "value1",
                "param2": "value2"
            },
        )

Tags

You can specify tags, which are string key-value pairs, when calling the run_workflow method. These tags can then be used when designing workflows in TWS to lookup and filter the results of workflow runs. This allows you to associate the results of a workflow run with a specific entity or grouping mechanism within your system, such as a user ID or a lesson ID.

Provide tags to the run_workflow method as a dictionary. Keep in mind that both tag keys and values must be strings that are at most 255 characters long.

tws_client.run_workflow(
    workflow_definition_id="your_workflow_id",
    workflow_args={
        "param1": "value1",
        "param2": "value2"
    },
    tags={
        "user_id": "12345",
        "lesson_id": "67890"
    }
)

About

Python client for Tuneni Web Services

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages