def encode_execute_response(self, process, inputs, results, lineage=False): response_elem = WPS("ExecuteResponse", self.encode_process_brief(process), WPS("Status", WPS("ProcessSucceded"), # TODO: other states creationTime=isoformat(now()) ) ) if lineage: response_elem.append( WPS("DataInputs", ) ) response_elem.extend(( WPS("OutputDefinitions", *[ self.encode_parameter(name, parameter, False) for name, parameter in process.outputs.items() ]), WPS("ProcessOutputs", *[ self.encode_output(name, process.outputs[name], data) for name, data in results.items() ]) )) return response_elem
def encode_process_brief(self, process): elem = WPS("Process", OWS("Identifier", process.identifier), OWS("Title", getattr(process, "title", None) or process.identifier), OWS("Abstract", getattr(process, "description", "")) ) elem.extend([ OWS("Metadata", metadata) for metadata in getattr(process, "metadata", []) ]) elem.extend([ OWS("Profile", profile) for profile in getattr(process, "profiles", []) ]) version = getattr(process, "version", None) if version: elem.attr[ns_wps("processVersion")] = version return elem