Abstracts
The core abstract APIs that define various class behaviors.
This module contains all of the abstract classes and APIs for defining objects. Abstracts include abstract data structures (like a graph), APIs for concepts such as queueing adapters and environment APIs, as well as fundamental data structures.
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
Graph
An abstract graph data structure.
Source code in maestrowf/abstracts/graph.py
add_edge(src, dest)
abstractmethod
Add the edge (src, dest) to the graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
src |
Source vertex name. |
required | |
dest |
Destination vertex name. |
required |
add_node(name, obj)
abstractmethod
Method to add a node to the graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
String identifier of the node. |
required | |
obj |
An object representing the value of the node. |
required |
remove_edge(src, dest)
abstractmethod
Remove edge (src, dest) from the graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
src |
Source vertex name. |
required | |
dest |
Destination vertex name. |
required |
PickleInterface
A mixin class that implements a general pickle interface using dill.
Source code in maestrowf/abstracts/__init__.py
pickle(path)
Generate a pickle file of of a class instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path |
The path to write the pickle to. |
required |
unpickle(path)
classmethod
Load a pickled instance from a pickle file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path |
Path to a pickle file containing a class instance. |
required |
Source code in maestrowf/abstracts/__init__.py
Singleton
Bases: _Singleton('SingletonMeta', (object), {})
Single type to allow for classes to be typed as a singleton.
Source code in maestrowf/abstracts/__init__.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
Specification
Abstract class for loading and verifying a Study Specification
Source code in maestrowf/abstracts/specification.py
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
|
desc(value)
Setter for the description of a study specification.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
String value representing the new description. |
required |
get_parameters()
abstractmethod
Generate a ParameterGenerator object from the global parameters.
Returns:
Type | Description |
---|---|
A ParameterGenerator with data from the specification. |
get_study_environment()
abstractmethod
Generate a StudyEnvironment object from the environment in the spec.
Returns:
Type | Description |
---|---|
A StudyEnvironment object with the data in the specification. |
get_study_steps()
abstractmethod
Generate a list of StudySteps from the study in the specification.
Returns:
Type | Description |
---|---|
A list of StudyStep objects. |
load_specification(path)
Method for loading a study specification from a file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path |
Path to a study specification. |
required |
Returns:
Type | Description |
---|---|
A specification object containing the information loaded from path. |
Source code in maestrowf/abstracts/specification.py
load_specification_from_stream(stream)
Method for loading a study specification from a stream.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
stream |
Raw text stream containing specification data. |
required |
Returns:
Type | Description |
---|---|
A specification object containing the information in string. |
Source code in maestrowf/abstracts/specification.py
name(value)
Setter for the name of a study specification.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
String value representing the new name. |
required |
output_path()
Return the OUTPUT_PATH variable (if it exists).
Returns:
Type | Description |
---|---|
Returns OUTPUT_PATH if it exists, empty string otherwise. |
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). |