Envobject
The collection of basic classes that can be used for an environment.
Dependency
Bases: Substitution
Abstract object representing a dependency.
The Dependency base class is intended to be used to capture external items the workflow is dependent on. These items include (but are not limited to):
* Remotely stored repositories (such as bitbucket)
* Paths located on the filesystem that hold required files or binaries
* Binaries that are required to be installed using a specific package
manager
* External APIs that a workflow needs to pull data from
The goal of this base class is to make it so that this package is able to pull external dependencies in a consistent manner.
Source code in maestrowf/abstracts/envobject.py
acquire(substitutions=None)
abstractmethod
Acquire the dependency as specfied by the class instance.
Subclasses that implement this interface should raise exceptions during acquisition should they be unable to retrieve their specified dependency. It is assumed that if acquiring throws an exception that the study cannot proceed forward.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
substitutions |
List of Substitution objects that can be applied. |
None
|
Source code in maestrowf/abstracts/envobject.py
EnvObject
An abstract class representing objects that exist in a study's environment.
The EnvObject is meant to be used to represent entities in the larger environment that affect the execution of a study (and therefore jobs). This abstract base class should be used to represent things such as data dependencies, code dependencies, variables, aliases, etc. The only method we require is _verify, to allow users to verify that they've provided the minimal information for the object to be valid.
Source code in maestrowf/abstracts/envobject.py
Source
Bases: EnvObject
Abstract class representing classes that alter environment sourcing.
WARNING: The API for this class is still in development. The Source environment class is meant to provide a way to programmatically set environment settings that binaries or other scripts may require in the workflow. Such settings that are intended to be captured are:
* Exporting of shell/environment variables (using 'export')
* Setting of an environment package with the 'use' command
Source code in maestrowf/abstracts/envobject.py
apply(data)
abstractmethod
Apply the Source to some string data.
Subclasses of Source should use this method in order to apply an environment altering change. The 'data' parameter should be a string representing a command to apply Source to or a list of other commands that Source should be included with.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
A string representing a command or set of other sources. |
required |
Returns:
Type | Description |
---|---|
A string with the Source applied. |
Source code in maestrowf/abstracts/envobject.py
Substitution
Bases: EnvObject
Abstract class representing classes that perform value replacements.
Source code in maestrowf/abstracts/envobject.py
substitute(data)
abstractmethod
Perform a replacement of some substring into data.
The method takes the input string data and performs a replacement. This API is used to represent concepts such as variables or parameters that would want to be replaced within the string data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
A string to perform a replacement on. |
required |
Returns:
Type | Description |
---|---|
A string equal to the original string data with substitutions made (if any were performed). |