def execute(self, identifier, inputs, output=None, mode=ASYNC, lineage=False, request=None, response=None):
<EOL>log.info('<STR_LIT>')<EOL>execution = WPSExecution(version=self.version, url=self.url,<EOL>username=self.username, password=self.password, verbose=self.verbose,<EOL>headers=self.headers, verify=self.verify, cert=self.cert, timeout=self.timeout)<EOL>if request is None:<EOL><INDENT>requestElement = execution.buildRequest(identifier, inputs, output, mode=mode, lineage=lineage)<EOL>request = etree.tostring(requestElement)<EOL>execution.request = request<EOL><DEDENT>log.debug(request)<EOL>if response is None:<EOL><INDENT>response = execution.submitRequest(request)<EOL><DEDENT>else:<EOL><INDENT>response = etree.fromstring(response)<EOL><DEDENT>log.debug(etree.tostring(response))<EOL>execution.parseResponse(response)<EOL>return execution<EOL>
Submits a WPS process execution request.
Returns a WPSExecution object, which can be used to monitor the status of the job, and ultimately
retrieve the result.

:param str identifier: the requested process identifier
:param inputs: list of process inputs as (input_identifier, value) tuples (where value is either a string
        for LiteralData, or an object for ComplexData).
:param output: optional list of process outputs as tuples (output_identifier, as_ref, mime_type).
        `as_ref` can be True (as reference),
        False (embedded in response) or None (use service default).
        `mime_type` should be text or None (use service default)
:param mode: execution mode: SYNC, ASYNC or AUTO. Default: ASYNC
:param lineage: if lineage is "true", the Execute operation response shall include the DataInputs and
         OutputDefinitions elements.
:param request: optional pre-built XML request document, prevents building of request from other arguments
:param response: optional pre-built XML response document, prevents submission of request to live WPS server