weaver.processes.wps1_process ============================= .. py:module:: weaver.processes.wps1_process Module Contents --------------- .. py:data:: LOGGER .. py:class:: Wps1RemoteJobProgress Progress of a remotely monitored job process execution. .. note:: Implementations can reuse same progress values or intermediate ones within the range of the relevant sections. .. py:class:: Wps1Process(provider: str, process: str, request: Optional[weaver.wps.service.WorkerRequest], update_status: weaver.typedefs.UpdateStatusPartialFunction) Common interface for :term:`WPS` :term:`Process` to be used for dispatching :term:`CWL` jobs. Multiple convenience methods are provided. Processes inheriting from this base should implement required abstract methods and override operations as needed. .. note:: For expected operations details and their execution order, please refer to :ref:`proc_workflow_ops`. .. seealso:: :meth:`execute` for complete details of the operations and ordering. .. py:attribute:: provider .. py:attribute:: process .. py:attribute:: wps_provider :type: Optional[owslib.wps.WebProcessingService] :value: None .. py:attribute:: wps_process :type: Optional[weaver.typedefs.ProcessOWS] :value: None .. py:method:: format_inputs(job_inputs: weaver.typedefs.JobInputs) -> weaver.typedefs.OWS_InputDataValues Convert submitted :term:`CWL` workflow inputs into corresponding :mod:`OWSLib.wps` representation for execution. :param job_inputs: inputs list with IDs and values submitted to the workflow. :returns: converted OWS inputs ready for submission to remote WPS process. .. py:method:: format_outputs(job_outputs: weaver.typedefs.JobOutputs) -> weaver.typedefs.JobOutputs Implementation dependent operations to configure expected outputs for :term:`Job` execution. This is an optional step that will simply pass down the outputs as is if no formatting is required. Otherwise, the implementing :term:`Process` can override the step to reorganize workflow step outputs into the necessary format required for their :meth:`dispatch` call. .. py:method:: prepare(workflow_inputs: weaver.typedefs.CWL_RuntimeInputsMap, expected_outputs: weaver.typedefs.CWL_ExpectedOutputs) -> None Implementation dependent operations to prepare the :term:`Process` for :term:`Job` execution. This is an optional step that can be omitted entirely if not needed. This step should be considered for the creation of a reusable client or object handler that does not need to be recreated on any subsequent steps, such as for :meth:`dispatch` and :meth:`monitor` calls. .. py:method:: dispatch(process_inputs: weaver.typedefs.JobInputs, process_outputs: weaver.typedefs.JobOutputs) -> weaver.typedefs.JobExecution Implementation dependent operations to dispatch the :term:`Job` execution to the remote :term:`Process`. :returns: reference details that will be passed to :meth:`monitor`. .. py:method:: monitor(monitor_reference: weaver.typedefs.JobExecution) -> bool Implementation dependent operations to monitor the status of the :term:`Job` execution that was dispatched. This step should block :meth:`execute` until the final status of the remote :term:`Job` (failed/success) can be obtained. :returns: success status .. py:method:: get_results(monitor_reference: weaver.typedefs.JobExecution) -> weaver.typedefs.JobResults Implementation dependent operations to retrieve the results following a successful :term:`Job` execution. The operation should **NOT** fetch (stage) results, but only obtain the locations where they can be retrieved, based on the monitoring reference that was generated from the execution. :returns: results locations