Skip to main content

Functions to simplify Swimlane connector development.

Project description

swimlane-connector-utilities

This package contains utility functions to be used in Swimlane Connectors.

Swimlane Attachments

This helper function is to create attachments easily, in Swimlane output format. You can either create a single attachment, with create_attachment

from swimlane_connector_utilities import create_attachment

output = {
    "attachment_key1": create_attachment("myfile.txt", "this is a text file")
    "attachment_key2": create_attachment("myfile.exe", <byte data here>)
}

Or multiple attachments with SwimlaneAttachments

from swimlane_connector_utilities import SwimlaneAttachments


swa = SwimlaneAttachments()


swa.add_attachment("myfile.txt", "this is a text file")
swa.add_attachment("myfile.exe", <byte data here>)


output = {
    "attachment_list": swa.get_attachments()
}

Create Test Connection

Creating test connections can be repetitive, so a test connection that looks like this:

from swimlane_connector_utilities import create_test_conn

# My Integration Auth, copied from __init__.py for example purposes
class MyIntegration(object):
    def __init__(self, context):
        # Do auth here
        pass

    def do_auth(self):
        pass


class SwMain(object):
    def __init__(self, context):
        self.context = context

    def execute(self):
        try:
            MyIntegration(self.context).do_auth()

            return {"successful": True}
        except Exception as e:
            return {"successful": False, "errorMessage": str(e)}

Can be easily turned into

from swimlane_connector_utilities import create_test_conn

# My Integration Auth, copied from __init__.py for example purposes
class MyIntegration(object):
    def __init__(self, context):
        # Do auth here
        pass

    def do_auth(self):
        pass
        
SwMain = create_test_conn(MyIntegration, execute_func="do_auth")

Note that if you do authentication in init you can exclude the execute_func param

Parse Datetime

datetime inputs can be many different formats and often we want to accept a time relative to the current time, such as 10 minutes ago. To handle all datetime inputs, you can use the function parse_datetime. This function accepts all common datetime formats as well as the relative time format below, and returns a pendulum object. An InvalidInput error will be raised if it is not a valid datetime.

Relative datetime format:

For the current time:
    now
Any other time:
    (+/-)(integer) (milliseconds|seconds|minutes|days|weeks|months|years)
    
examples:
    now
    -1 months
    +3 days
    -123 seconds

parse_datetime can be used to parse the input, then convert the pendulum object to the format the api requires.

from swimlane_connector_utilities import parse_datetime

data = {"time_1": "2020-02-02 10:10:10", "time_2": "-5 minutes", "text_field": "text"}
for field in ["time_1", "time_2"]:
    data[field] = parse_datetime(field, data[field]).to_iso8601_string()

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

swimlane_connector_utilities-1.1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file swimlane_connector_utilities-1.1.0.tar.gz.

File metadata

File hashes

Hashes for swimlane_connector_utilities-1.1.0.tar.gz
Algorithm Hash digest
SHA256 acf59b31937bb64c81d0186b3bbc046bb05d396ca45876214a490a4224c4f6a3
MD5 451f815e0a568c6dfdc5ebb8b8894695
BLAKE2b-256 747fdb2fd8ac782e5a1eb8e7447ef330495487919dea3aed53e6f232aa710b71

See more details on using hashes here.

File details

Details for the file swimlane_connector_utilities-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for swimlane_connector_utilities-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eada9736dc722411a512bf4dfcb02b15b6df090499a8108f639b3a276f52dc40
MD5 09c947b81494146ed27bf911b5cc884f
BLAKE2b-256 1a28a21854ec8e92b9168374886e7275960d54566bd2eef057941550eaecb00c

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