Added
- `prefix_separator` for separating non-executable node types from executable ones.
- `subscript_prefix`, `generator_prefix`, `sublattice_prefix`, `attr_prefix` for prefixes of subscripts, generators,
sublattices, and attributes, when called on an electron and added to the transport graph.
- `exclude_from_postprocess` list of prefixes to denote those nodes which won't be used in post processing the workflow.
- `__int__()`, `__float__()`, `__complex__()` for converting a node to an integer, float, or complex to a value of 0 then handling those types in post processing.
- `__iter__()` generator added to Electron for supporting multiple return values from an electron execution.
- `__getattr__()` added to Electron for supporting attribute access on the node output.
- `__getitem__()` added to Electron for supporting subscripting on the node output.
- `electron_outputs` added as an attribute to lattice.
Changed
- `electron_list_prefix`, `electron_dict_prefix`, `parameter_prefix` modified to reflect new way to assign prefixes to nodes.
- In `build_graph` instead of ignoring all exceptions, now the exception is shown alongwith the runtime error notifying that object manipulation should be avoided inside a lattice.
- `node_id` changed to `self.node_id` in Electron's `__call__()`.
- `parameter` type electrons now have the default metadata instead of empty dictionary.
- Instead of deserializing and checking whether a sublattice is there, now a `sublattice_prefix` is used to denote when a node is a sublattice.
- In `dispatcher_stack_test`, `test_dispatcher_flow` updated to indicate the new use of `parameter_prefix`.
Fixed
- When an execution fails due to something happening in `run_workflow`, then result object's status is now failed and the object is saved alongwith throwing the appropriate exception.