[OWSLib-devel] [owslib-users] Bug in owslib?

Christian Ledermann christian.ledermann at gmail.com
Mon Sep 16 22:59:35 PDT 2013


On Mon, Sep 16, 2013 at 11:44 PM, Tom Kralidis <tomkralidis at hotmail.com> wrote:
> Luca: thanks for the info.
>
> fwiw, all the tests now pass for me locally (Debian wheezy).
>
> Looking at https://travis-ci.org/geopython/OWSLib, it appears that most/all errors are precision/rounding errors.
>
> All: suggestions on combating these issues such that the assertions are portable?

the only way I worked around this is to test only on simple (integer)
values. Floats
just are'nt 'stable' enough :(

>
>
>
>
>
>
> From: Luca.Cinquini at jpl.nasa.gov
> To: tomkralidis at hotmail.com
> CC: christopher.eykamp at tudor.lu; owslib-devel at lists.osgeo.org
> Subject: Re: [OWSLib-devel] [owslib-users] Bug in owslib?
> Date: Mon, 16 Sep 2013 20:35:37 +0000
>
>
>
>
>
>
> Correction: all WPS tests pass.... but others are still failing, it seems.
> thanks, L
>
>
>
> On Sep 16, 2013, at 2:04 PM,  wrote:
>
>
>
> Hi Chris,
> I fixed the bug changing "LiteralData" to "LiteralOutput" when parsing the WPS output, all tests pass.
> thanks again for reporting it,
> Luca
>
>
>
> On Sep 10, 2013, at 5:18 AM, Christopher Eykamp wrote:
>
>
> Hi Luca,
>
>
>
> Yes, of course I can.  My main goal in contacting you was 1) to make sure my local modification was correct, and 2) alert you to the issue.
>
>
>
> Both of those goals have now been achieved.
>
>
>
> Thanks!
>
>
>
> Chris
>
>
>
> PS Would you please let me know when you do push the updated code, so I know when it is safe to delete my local patch file.
>
>
>
>
>
>
>
>
>
> On 2013-09-09 23:42, Cinquini, Luca (3980) wrote:
>
>
>
> Hi Chris,
> ok - I think you are right: when parsing the output, the element is called "LiteralOutput" and not "LiteralData".
>
>
>
> I can make the change in the Git repo (any objections ?), although I just realized that a few tests are already not working, and it would be good to fix them before I make any changes. Can you work with a modified local copy for the time being ?
>
>
>
> thanks for reporting this,
> Luca
>
>
>
> On Sep 9, 2013, at 6:56 AM, Christopher Eykamp wrote:
>
>
> Hi Luca,
>
>
>
> Thank you for your reply.  First off, you are right that I meant DescribeProcess.  My mind is ajumble with WxS soup.  It's easy to get mixed up!
>
>
>
> I have a test service, implemented in pyWPS.  If I make the following request:
>
>
>
> http://wps.iguess.tudor.lu/cgi-bin/pywps.cgi?SERVICE=WPS&VERSION=1.0.0&REQUEST=DescribeProcess&identifier=test_rand_map
>
>
>
> I get back the following XML (excerpted):
>
>
>
> <Output>
> <ows:Identifier>num</ows:Identifier>
> <ows:Title>A sample literal output.</ows:Title>
> <LiteralOutput>
> <ows:DataType
> ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
> </LiteralOutput>
> </Output>
>
>
> A copy of the full output is available here:
>
>
>
> http://pastebin.com/JFB603TD
>
>
>
> This would suggest either a problem with pyWPS or owslib.
>
>
>
> Chris
>
>
>
>
>
> On 2013-09-07 00:32, Cinquini, Luca (3980) wrote:
>
>
>
> Hi Chris,
>         it's been a while since I used the WPS client, so I might be totally wrong here, but...
>
> First of all, are you referring to the output of a WPS DescribeProcess request (not "DescribeCoverage") ? If so, I think the output contains "LiteralData" elements, not "LiteralOutput", for example you can run the following request straight out of the OWSlib package (see below). I don't see any "LiteralOutput" tag... But off course I could be wrong, in which case can you send an example request and response ?
>
> thanks a lot,
> Luca
>
> ==================================================================================================================
>
> brelay5:examples cinquini$ python wps-client.py -u http://rsg.pml.ac.uk/wps/vector.cgi -r DescribeProcess -i v.mkgrid -v
> ARGV      : ['-u', 'http://rsg.pml.ac.uk/wps/vector.cgi', '-r', 'DescribeProcess', '-i', 'v.mkgrid', '-v']
> OPTIONS   : [('-u', 'http://rsg.pml.ac.uk/wps/vector.cgi'), ('-r', 'DescribeProcess'), ('-i', 'v.mkgrid'), ('-v', '')]
> http://rsg.pml.ac.uk/wps/vector.cgi?identifier=v.mkgrid&version=1.0.0&request=DescribeProcess&service=WPS
> <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
> <ns0:ProcessDescriptions xmlns:ns0="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WPS" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd" xml:lang="en-CA">
>     <ProcessDescription statusSupported="true" storeSupported="true" ns0:processVersion="1">
>         <ows:Identifier>v.mkgrid</ows:Identifier>
>         <ows:Title>Creates a vector map of a user-defined grid.</ows:Title>
>         <ows:Abstract>http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html</ows:Abstract>
>         <ows:Metadata xlink:href="http://earthserver.pml.ac.uk/wps/vector.cgi?service=WPS&request=DescribeProcess&version=1.0.0&identifier=v.mkgrid" xlink:title="vector" />
>         <ows:Metadata xlink:href="http://earthserver.pml.ac.uk/wps/vector.cgi?service=WPS&request=DescribeProcess&version=1.0.0&identifier=v.mkgrid" xlink:title="geometry" />
>         <DataInputs>
>             <Input maxOccurs="2" minOccurs="0">
>                 <ows:Identifier>box</ows:Identifier>
>                 <ows:Title>Width and height of boxes in grid</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                     <ows:AnyValue />
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="2" minOccurs="0">
>                 <ows:Identifier>coor</ows:Identifier>
>                 <ows:Title>Lower left easting and northing coordinates of map</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                     <ows:AnyValue />
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="1" minOccurs="0">
>                 <ows:Identifier>angle</ows:Identifier>
>                 <ows:Title>Angle of rotation (in degrees counter-clockwise)</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                     <ows:AnyValue />
>                     <DefaultValue>0.0</DefaultValue>
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="1" minOccurs="0">
>                 <ows:Identifier>breaks</ows:Identifier>
>                 <ows:Title>Number of horizontal vertex points per grid cell</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
>                     <ows:AnyValue />
>                     <DefaultValue>3</DefaultValue>
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="2" minOccurs="2">
>                 <ows:Identifier>grid</ows:Identifier>
>                 <ows:Title>Number of rows and columns in grid</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
>                     <ows:AnyValue />
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="1" minOccurs="0">
>                 <ows:Identifier>-p</ows:Identifier>
>                 <ows:Title>Create grid of points instead of areas and centroids</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#boolean">boolean</ows:DataType>
>                     <ows:AllowedValues>
>                             <ows:Value>True</ows:Value>
>                             <ows:Value>False</ows:Value>
>                     </ows:AllowedValues>
>                     <DefaultValue>False</DefaultValue>
>                 </LiteralData>
>             </Input>
>             <Input maxOccurs="1" minOccurs="0">
>                 <ows:Identifier>position</ows:Identifier>
>                 <ows:Title>Where to place the grid</ows:Title>
>                 <LiteralData>
>                     <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#string">string</ows:DataType>
>                     <ows:AllowedValues>
>                             <ows:Value>region</ows:Value>
>                             <ows:Value>coor</ows:Value>
>                     </ows:AllowedValues>
>                     <DefaultValue>region</DefaultValue>
>                 </LiteralData>
>             </Input>
>         </DataInputs>
>         <ProcessOutputs>
>             <Output>
>                 <ows:Identifier>map</ows:Identifier>
>                 <ows:Title>Name for output vector map</ows:Title>
>                 <ComplexOutput>
>                     <Default>
>                         <Format>
>                             <MimeType>text/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                         </Format>
>                     </Default>
>                     <Supported>
>                         <Format>
>                             <MimeType>text/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                         </Format>
>                         <Format>
>                             <MimeType>application/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                         </Format>
>                         <Format>
>                             <MimeType>text/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
>                         </Format>
>                         <Format>
>                             <MimeType>application/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
>                         </Format>
>                         <Format>
>                             <MimeType>text/xml</MimeType>
>                             <Encoding>UTF-8</Encoding>
>                             <Schema>http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd</Schema>
>                         </Format>
>                     </Supported>
>                 </ComplexOutput>
>             </Output>
>         </ProcessOutputs>
>     </ProcessDescription>
> </ns0:ProcessDescriptions>
>  <class 'owslib.wps.Process'> : {'identifier': 'v.mkgrid', 'verbose': True, 'title': 'Creates a vector map of a user-defined grid.', '_root': <Element 'ProcessDescription' at 0x1007b1f10>, 'statusSupported': True, 'storeSupported': True, 'processVersion': None, 'abstract': 'http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Width and height of boxes in grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'box'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Lower left easting and northing coordinates of map', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'coor'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Angle of rotation (in degrees counter-clockwise)', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': '0.0', 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 1, 'identifier': 'angle'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Number of horizontal vertex points per grid cell', 'dataType': '//www.w3.org/TR/xmlschema-2/#integer', 'defaultValue': '3', 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 1, 'identifier': 'breaks'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 2, 'title': 'Number of rows and columns in grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#integer', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'grid'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Create grid of points instead of areas and centroids', 'dataType': '//www.w3.org/TR/xmlschema-2/#boolean', 'defaultValue': 'False', 'supportedValues': [], 'allowedValues': ['True', 'False'], 'maxOccurs': 1, 'identifier': '-p'}
>         Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Where to place the grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#string', 'defaultValue': 'region', 'supportedValues': [], 'allowedValues': ['region', 'coor'], 'maxOccurs': 1, 'identifier': 'position'}
>         Output:  <class 'owslib.wps.Output'> : {'mimeType': None, 'reference': None, 'title': 'Name for output vector map', 'dataType': 'ComplexData', 'defaultValue': <owslib.wps.ComplexData object at 0x1007b96d0>, 'supportedValues': [<owslib.wps.ComplexData object at 0x1007b9450>, <owslib.wps.ComplexData object at 0x1007b9590>, <owslib.wps.ComplexData object at 0x1007b9610>, <owslib.wps.ComplexData object at 0x1007b9690>, <owslib.wps.ComplexData object at 0x1007b9650>], 'allowedValues': [], 'identifier': 'map', 'data': []}
> WPS Process: identifier=v.mkgrid
> WPS Process: title=Creates a vector map of a user-defined grid.
> WPS Process: abstract=http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html
> Process input: identifier=box, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=2
> Process input: identifier=coor, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=2
> Process input: identifier=angle, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=1
> Process input: identifier=breaks, data type=//www.w3.org/TR/xmlschema-2/#integer, minOccurs=0, maxOccurs=1
> Process input: identifier=grid, data type=//www.w3.org/TR/xmlschema-2/#integer, minOccurs=2, maxOccurs=2
> Process input: identifier=-p, data type=//www.w3.org/TR/xmlschema-2/#boolean, minOccurs=0, maxOccurs=1
> Process input: identifier=position, data type=//www.w3.org/TR/xmlschema-2/#string, minOccurs=0, maxOccurs=1
> Process output: identifier=map, data type=ComplexData
>
>
> On Sep 6, 2013, at 9:15 AM, Tom Kralidis wrote:
>
>
>
> Hi Chris: FYI looks like this got sent to the old OWSLib sourceforge mailing list (which I should turn off).  I've cc'd owslib-devel at lists.osgeo.org, which is the list we are currently using (more info at http://lists.osgeo.org/mailman/listinfo/owslib-devel).
>
> I'm guessing Luca may have some comments per below.
>
> ..Tom
>
>
> Date: Fri, 6 Sep 2013 16:17:12 +0200
> From: christopher.eykamp at tudor.lu
> To: owslib-users at lists.sourceforge.net
> Subject: [owslib-users] Bug in owslib?
>
>
>
>
>
>
>    Hello,
>
>
>
>    I sent this query to the owslib-devel list  a few weeks ago, and got
>    no response.  I'm trying again here.  I've fixed this in my local
>    copy of owslib, but want some reaffirmation that it is actually a
>    bug, and that my fix makes sense.
>
>
>
>    Thanks,
>
>
>
>    Chris
>
>
>
>    -------------------
>
>
>
>    I found what might be a bug in owslib, and want to confirm it.
>    Fortunately, if I am correct, it is a trivial fix.
>
>
>
>    So this is the issue:
>
>
>
>    I *think* that when parsing the results
>    of a WPS DescribeCoverage request, literal outputs are included in
>    the LiteralOutput tag. owslib seems to be looking for the
>    LiteralData tag, which is used in the input.
>
>
>
>    So the fix would be to replace
>
>
>
>    self._parseLiteralData(outputElement, 'LiteralData')
>
>
>
>    with
>
>
>
>    self._parseLiteralData(outputElement, 'LiteralOutput')
>
>
>
>    in wps.py, line c. 979.
>
>
>
>    I can be more specific if there is consensus that this is indeed a
>    problem.
>
>
>
>    Thanks!
>
>
>
>    Chris
>
>
>
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
> _______________________________________________
> owslib-users mailing list
> owslib-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/owslib-users
> _______________________________________________
> OWSLib-devel mailing list
> OWSLib-devel at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/owslib-devel
> _______________________________________________
> OWSLib-devel mailing list
> OWSLib-devel at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/owslib-devel



-- 
Best Regards,

Christian Ledermann

Nairobi - Kenya
Mobile : +254 702978914

<*)))>{

If you save the living environment, the biodiversity that we have left,
you will also automatically save the physical environment, too. But If
you only save the physical environment, you will ultimately lose both.

1) Don’t drive species to extinction

2) Don’t destroy a habitat that species rely on.

3) Don’t change the climate in ways that will result in the above.

}<(((*>


More information about the OWSLib-devel mailing list