[PyWPS-dev] Handle complex input of a process within/without a chain in a same way possible?

gunnar.stroeer at yahoo.de gunnar.stroeer at yahoo.de
Wed Dec 12 09:34:01 PST 2018


Hi Everybody,

I currently develop some processes for a masterthesis using PyWPS v4 as 
implementation. Mostly it works fine for single processes, as well with 
QGIS as client. However I stucked when it comes to chaining.

Normally in single processes I use "in_file = 
request.inputs['in_geom'][0].file" for read in some complex GML 
geometry. In cases I wanna use the same process in a chain the code 
above doesn't work anymore because the input is the same as the output 
of the prior process. Therefore "in_file = 
request.inputs['in_geom'][0].file" additionally gets all the XML code of 
the prior response - and the process crashed.

To handle this I use "import lxml" to parse the response XML looking for 
the "xlink:href" attribute value with the referenced GML output file of 
the first process. It works for the process in a chain, only. Whether 
the process is used in a chain or not I could handle in the process 
code, like a case distinction. Therefor I have to parse XML all the time 
again and again... and it makes me feel that I use PyWPS in a wrong way.

I also could use "RawDataOutput", but this is obviously a bad solution 
for large data inputs/outputs.

Is there any method to handle the described problem without writing too 
much code just to get know whether the process is used in a chain or 
not? Or is there something completely wrong what I'm doing?

https://gitlab.com/hadlaskard/integration-of-wps-in-local-sdi/blob/master/processes/proc_buffer.py

Thanks,
Gunnar


More information about the pywps-dev mailing list