Electron
@covalent.electron(_func=None, *, backend=None, executor=None, files=[], deps_bash=None, deps_pip=None, call_before=[], call_after=[])
Electron decorator to be called upon a function. Returns the wrapper function with the same functionality as _func.
PARAMETERS.
_func (Optional
[Callable
]) – function to be decorated
KEYWORD ARGUMENTS
- backend – DEPRECATED: Same as executor.
- executor – Alternative executor object to be used in the execution of each node. If not passed, the local executor is used by default..
- deps_bash – An optional DepsBash object specifying a list of shell commands to run before _func.
- deps_pip – An optional DepsPip object specifying a list of PyPI packages to install before running _func.
- call_before – An optional list of DepsCall objects specifying python functions to invoke before the electron
- call_after – An optional list of DepsCall objects specifying python functions to invoke after the electron
- files – An optional list of FileTransfer objects which copy files to/from remote or local filesystems.
RETURNS
Electron object inside which the decorated function exists.
RETURN TYPE
class covalent._workflow.electron.Electron(function, node_id=None, metadata=None)[source]
An electron (or task) object that is a modular component of a work flow and is returned by electron
.
function
Function to be executed.
node_id
Node id of the electron.
metadata
Metadata to be used for the function execution.
kwargs
Keyword arguments if any.
Methods:
add_collection_node_to_graph(graph, prefix) | Adds the node to lattice’s transport graph in the case where a collection of electrons is passed as an argument to another electron. |
connect_node_with_others(node_id, …) | Adds a node along with connecting edges for all the arguments to the electron. |
get_metadata(name) | Get value of the metadata of given name. |
get_op_function(operand_1, operand_2, op) | Function to handle binary operations with electrons as operands. |
set_metadata(name, value) | GFunction to add/edit metadata of given name and value to electron’s metadata. |
wait_for(electrons) | Waits for the given electrons to complete before executing this one. |
Attributes:
Get transportable electron object and metadata. |
add_collection_node_to_graph(graph, prefix) [source]
Adds the node to lattice’s transport graph in the case where a collection of electrons is passed as an argument to another electron.
PARAMETERS
- graph (_TransportGraph) – Transport graph of the lattice
- prefix (
str
) – Prefix of the node
RETURNS
Node id of the added node
RETURN TYPE
node_id
property as_transportable_dict: Dict
Get transportable electron object and metadata.
RETURN TYPE
Dict
connect_node_with_others(node_id, param_name, param_value, param_type, arg_index, transport_graph) [source]
Adds a node along with connecting edges for all the arguments to the electron.
PARAMETERS
- node_id (
int
) – Node number of the electron
- param_name (
str
) – Name of the parameter
- param_value (
Union
[Any
,ForwardRef
]) – Value of the parameter
- param_type (
str
) – Type of parameter, positional or keyword
- transport_graph (_TransportGraph) – Transport graph of the lattice
RETURNS
None
get_metadata(name) [source]
Get value of the metadata of given name.
PARAMETERS
name (str
) – Name of the metadata whose value is needed.
RETURNS
Value of the metadata of given name.
RETURN TYPE
value
RAISES
KeyError – If metadata of given name is not present.
get_op_function(operand_1, operand_2, op) [source]
Function to handle binary operations with electrons as operands. This will not execute the operation but rather create another electron which will be postponed to be executed according to the default electron configuration/metadata.
This also makes sure that if these operations are being performed outside of a lattice, then they are performed as is.
PARAMETERS
- operand_1 (
Union
[Any
,Electron
])]) – First operand of the binary operation.
- operand_2 (
Union
[Any
,Electron
])]) – Second operand of the binary operation.
- op (
str
) – Operator to be used in the binary operation.
RETURNS
Electron object corresponding to the operation execution. Behaves as a normal function call if outside a lattice.
RETURN TYPE
electron
set_metadata(name, value) [source]
Function to add/edit metadata of given name and value to electron’s metadata.
PARAMETERS
- name (
str
) – Name of the metadata to be added/edited.
- value (
Any
) – Name of the metadata to be added/edited.
RETURN TYPE
None
RETURNS
None
wait_for(electrons) [source]
Waits for the given electrons to complete before executing this one. Adds the necessary edges between this and those electrons without explicitly connecting their inputs/outputs.
Useful when execution of this electron relies on a side-effect from the another one.
PARAMETERS
electrons (UnionElectron
]), IterableElectron
])]) – Electron(s) which will be waited for to complete execution before starting execution for this one
RETURNS
Eectron