Skip to main content

Waylay Python SDK.

Project description

Waylay Python SDK

Python SDK for the Waylay Platform.

This waylay-sdk package provides a basic SDK client for the Waylay REST apis.

See Waylay Docs for documentation.

Installation

This package requires a python runtime 3.9 or higher.

The basic client can be installed with

pip install waylay-sdk

This client provides basic configuration, authorization and plugin features for the SDK.

It includes a generic http client to make authenticated calls to the services available on your Waylay gateway endpoint.

Support for specific Waylay services or tools is provided by separate service and tool packages.

Basic usage

In webscripts and plugins

The SDK client can be used in the python webscripts and plugins of the Waylay platform.

In that case, the webscript or plugin runtime will configure and authenticate a client, and provide it as a waylay parameter to the webscript or plugin callback function.

You just need to state the required SDK package dependencies when authoring the webscript or plugin.

async def execute(request: Request, waylay: WaylayClient):
    # list templates with the query as specified in the request body
    template_query = request.json()

    # with only the 'waylay-sdk' package:
    templates = await waylay.api_client('GET', '/rules/v1/templates', query=template_query)

    # with the 'waylay-rules-sdk' service plugin package
    # templates = await waylay.rules.templates.list(query=template_query)
    return templates

Interactive Authentication

When used outside the Waylay platform (e.g. in a python notebook) the client requires you to provide

  • the gateway endpoint: api.waylay.io for Enterprise users,
  • an API key-secret pair: see Waylay Console at >Settings>Authentication keys.
from waylay.sdk install WaylayClient

# this will interactively request the gateway and credentials on first usage.
client = WaylayClient.from_profile()

# list the available service packages
client.services

# use the generic api client to see the status page of the 'registry' service.
resp = await client.api_client.request('GET', '/registry/v2')

Credentials and endpoints are stored in a local profile file (you can have multiple such profiles). Other authentication methods are available (JWToken, pass apiKey/Secret directly)

Service packages

Support for a specific Waylay REST api comes as a separate service package. Each service provides two packages:

  • an api package waylay-<service>-sdk that describes all resources and actions for that service. JSON request and responses are represented as basic python data (dict, list, primitives)
  • a types package waylay-<service>-sdk-types that provides pydantic models to represent JSON request and responses.

The types package is optional. When installed, its pydantic models are used to serialize requests and deserialize responses. When used in a python IDE, code completion will help you navigate the attributes of request and responses. This makes it easier to interact with the API as a developer. But as the underlying REST api evolves, the types package might require regular dependency updates.

Use the types package for interactive cases (python notebooks), or solutions that are regularly tested and maintained.

When not installed, the SDK client does not interfere with the json representations of requests and responses, and you should check the API documentation of the service for exact specifications.

The Service plugs are generated from their openapi description.

waylay-alarms-sdk Alarms api package

The waylay-alarms-sdk package provides the client bindings for the Alarms service, based on its openapi specification.

## with types
pip install waylay-alarms-sdk[types]

## without types
pip install waylay-alarms-sdk

waylay-data-sdk Data (broker) api package

The waylay-data-sdk package provides the client bindings for the data api of the broker service, based on its openapi specification.

## with types
pip install waylay-data-sdk[types]

## without types
pip install waylay-data-sdk

waylay-resources-sdk Resources (digital twin) api package

The waylay-resources-sdk package provides the client bindings for the resources service, based on its openapi specification.

## with types
pip install waylay-resources-sdk[types]

## without types
pip install waylay-resources-sdk

waylay-rules-sdk Rules (rules engine) api package

The waylay-rules-sdk package provides the client bindings for the rules service, based on its openapi specification.

## with types
pip install waylay-rules-sdk[types]

## without types
pip install waylay-rules-sdk

waylay-storage-sdk Storage (file object storage) api package

The waylay-storage-sdk package provides the client bindings for the storage service, based on its openapi specification.

## with types
pip install waylay-storage-sdk[types]

## without types
pip install waylay-storage-sdk

waylay-registry-sdk Function Registry V2 api package

The waylay-registry-sdk package provides the client bindings for the registry v2 service, based on its openapi specification.

## with types
pip install waylay-registry-sdk[types]

## without types
pip install waylay-registry-sdk

Tool packages

Tool packages provide SDK extensions for specific use cases.

waylay-ml-adapter-sdk ML Adapter tool package

The waylay-ml-adapter-sdk package provides utilities for using and deploying Machine Learning models in plugs and webscripts.

## basic install
pip install waylay-ml-adapter-sdk

## install with support for pytorch models
pip install waylay-ml-adapter-sdk[pytorch]

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

waylay-sdk-0.0.4.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

waylay_sdk-0.0.4-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file waylay-sdk-0.0.4.tar.gz.

File metadata

  • Download URL: waylay-sdk-0.0.4.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for waylay-sdk-0.0.4.tar.gz
Algorithm Hash digest
SHA256 1eb3caf22a641f6d6e3683f432355716dc814201d7573ab85c09617732383bae
MD5 6dc458c7826027408a2a9ceee35c52a4
BLAKE2b-256 c88c789503ce0014392abbd3887d721a608af50d4944e04b741ee6740fe96234

See more details on using hashes here.

File details

Details for the file waylay_sdk-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: waylay_sdk-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for waylay_sdk-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2c52579b24a32a69e1745431532d94bc3302d6acd98b53e3fd2a11ad0d3568c5
MD5 16d0e1d568abab03074fd922c08e8c51
BLAKE2b-256 4882dc049f3da6eb4cfb7d929e591e2a084e0ae9149964b614a02f21f8bcf140

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