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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for shipyard_bp_utils-1.0.1a6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fefbe8dd17213e402ae4e7bc3ec50db18a1b90d38679aff73678eee02dd6612e |
|
MD5 | fe4d64da5be031841a69e52dc4385778 |
|
BLAKE2b-256 | 2b60e64ab82db19e6a1ece5763426250433a3064e20aac734d7ff06d799980b7 |
Hashes for shipyard_bp_utils-1.0.1a6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 733bfec1547d2b901a075fbeb84f76b31a97b319f10b2a2da5df72dc251135b1 |
|
MD5 | da373db292f3e9d9d35de1df845e1fc9 |
|
BLAKE2b-256 | 5a140e379f166eb14290834080de36f43cd7fbcb641489ae1e9f5ccf4b23a41b |