Skip to main content

Utility functions for blueprints

Project description

Shipyard BP Utils

Readme based of version 1.0.0a1

Table of Contents

Overview

This package is a collection of utils that are intended for universal use across all Shipyard Blueprints.

Args

These Utils are used to handle common parsing of arguments from the application to the blueprint along with handling common env var manipulations.

Artifacts

This util mainly manages the creation of files and folders so that the blueprint can store data for cross blueprint communication.

By default, it has the following artifacts:

  • logs: shipyard-vendor/artifacts/logs
  • responses: shipyard-vendor/artifacts/responses
  • variables: shipyard-vendor/artifacts/variables
Logs

This artifact is used to store logs that are generated by the blueprint. Prior to it was uses to store responses and variables. Currently, does not have a strong use case but later may be useful to add a handler to the Shipyard Logger to log to this artifact. Another use case which currently is most likely not be possible is to store the attempt logs

Responses

This artifact is used to store responses that are generated by the blueprint. example

from shipyard_bp_utils.artifacts import Artifacts

artifacts = Artifacts('jira')

response = jira.create_issue(fields=fields)
artifacts.responses.write_json('create_issue', response)
artifacts.variables.write_json('new_issue', response['issueId'])

if needed to pull values from another vessel you can do the following:

from shipyard_bp_utils.artifacts import Artifacts

artifacts = Artifacts('jira')

response = artifacts.responses.read_json('create_issue')
Variables

This artifact is used to store variables that are generated by the blueprint. The difference between the expectation of responses and variables is variables should contain the final result/side effect of the vessal run that may be needed by another vessel and not the raw response details of individual responses of a http requests.

for example:

from shipyard_bp_utils.artifacts import Artifacts

artifacts = Artifacts('slack')

response = slack.send_message(channel=channel, text=text)
artifacts.responses.write_json('send_message', response)
artifacts.variables.write_json('message',
                               {'message_ts': response['ts'],
                                'channel': response['channel'],
                                'contain_attachment': False})

if needed to pull values from another vessel you can do the following:

from shipyard_bp_utils.artifacts import Artifacts

artifacts = Artifacts('slack')

message_details = artifacts.variables.read_json('message')
# alternatively: message_details = artifacts.variables.read('message','json')
if message_details['contain_attachment']:
    print('There was a report sent this week')
else:
    print('There was no report sent this week. Did something go wrong?')

Custom Artifacts

You can also create custom artifacts if you need to store data that is not a response or variable. For example, if you wanted to store the details of a user that was created by the blueprint you could do the following:

from shipyard_bp_utils.artifacts import Artifacts

artifacts = Artifacts('jira')
artifacts.users = artifacts.SubFolder('users')

response = jira.users.write('create_user', 'name='
test_user
',**user_details)
response = jira.response.write_json('create_user', response)

Note: If you need the behaivor of what was once logs.determine_base_artifact_folder you can do the following:

from shipyard_bp_utils.artifacts import Artifacts

base_artifact_folder = Artifacts('jira').base_folder

Files

This util is used for common file manipulation and folder management. It is used to create, read, update, and delete files and folders.

Text

This util is used for common text manipulation. Currently unused

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

shipyard_bp_utils-1.2.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

shipyard_bp_utils-1.2.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file shipyard_bp_utils-1.2.1.tar.gz.

File metadata

  • Download URL: shipyard_bp_utils-1.2.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.16 Darwin/22.5.0

File hashes

Hashes for shipyard_bp_utils-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a65ac05319fdabed46644345ea4106d60d2dc9ad6cc9225dcb07968e4a8bd708
MD5 611a083516fbd4c8ee8b49d5ea5ae943
BLAKE2b-256 5d37266d0603b5877b3d574ac1cd09b7aad2785a6cd1f1ed47a39269a062a349

See more details on using hashes here.

File details

Details for the file shipyard_bp_utils-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for shipyard_bp_utils-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a95314497917e7cf9db8e8d5fe202b5b92104d53f8805c48b098bfc6e4881ab5
MD5 56c465903a3cc01336a63a79c191aa95
BLAKE2b-256 72a4097736b89759a1a482a88d9c16ad35af91943bccea16112b5a76901c2d6c

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