Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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