[Git][debian-gis-team/owslib][experimental] 4 commits: New upstream version 0.34.1

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Tue Jun 17 04:25:37 BST 2025



Bas Couwenberg pushed to branch experimental at Debian GIS Project / owslib


Commits:
08c875ab by Bas Couwenberg at 2025-06-17T05:21:21+02:00
New upstream version 0.34.1
- - - - -
c1178262 by Bas Couwenberg at 2025-06-17T05:21:25+02:00
Update upstream source from tag 'upstream/0.34.1'

Update to upstream version '0.34.1'
with Debian dir 16ba4a94d7de9c4d79c84595fc88fb1c6e7bb702
- - - - -
75ff16f9 by Bas Couwenberg at 2025-06-17T05:21:39+02:00
New upstream release.

- - - - -
bcbeaa40 by Bas Couwenberg at 2025-06-17T05:22:12+02:00
Set distribution to experimental.

- - - - -


8 changed files:

- debian/changelog
- docs/source/features.rst
- docs/source/usage.rst
- owslib/__init__.py
- owslib/iso.py
- owslib/iso3.py
- owslib/ogcapi/features.py
- tests/test_ogcapi_maps_cubewerx.py


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+owslib (0.34.1-1~exp1) experimental; urgency=medium
+
+  * Team upload.
+  * New upstream release.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Tue, 17 Jun 2025 05:22:00 +0200
+
 owslib (0.34.0-1~exp1) experimental; urgency=medium
 
   * Team upload.


=====================================
docs/source/features.rst
=====================================
@@ -64,7 +64,7 @@ OGC API Support
 +--------------------------------------------------------------------------------------+------------+
 | `OGC API - Maps - Part 1: Core`_                                                     | 1.0        |
 +--------------------------------------------------------------------------------------+------------+
-| `OGC API - Records - Part 1: Core`_                                                  | draft      |
+| `OGC API - Records - Part 1: Core`_                                                  | 1.0        |
 +--------------------------------------------------------------------------------------+------------+
 | `OGC API - Processes - Part 1: Core`_                                                | 1.0        |
 +--------------------------------------------------------------------------------------+------------+
@@ -72,7 +72,7 @@ OGC API Support
 +--------------------------------------------------------------------------------------+------------+
 | `OGC API - Connected Systems - Part 2: Dynamic Data`_                                | draft      |
 +--------------------------------------------------------------------------------------+------------+
-| `OGC API - Environmental Data Retrieval - Part 1: Core`_                             | 1.0        |
+| `OGC API - Environmental Data Retrieval - Part 1: Core`_                             | 1.0 , 1.1  |
 +--------------------------------------------------------------------------------------+------------+
 
 .. _`OGC WMS`: https://www.opengeospatial.org/standards/wms


=====================================
docs/source/usage.rst
=====================================
@@ -211,7 +211,7 @@ OGC API - Features - Part 1: Core 1.0
   >>> w.url
   'https://demo.pygeoapi.io/master'
   >>> conformance = w.conformance()
-  {u'conformsTo': [u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson']}
+  {'conformsTo': ['http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson']}
   >>> api = w.api()  # OpenAPI document/
   >>> collections = w.collections()
   >>> len(collections['collections'])
@@ -231,7 +231,11 @@ OGC API - Features - Part 1: Core 1.0
   6
   >>> lakes_query = w.collection_items('lakes')
   >>> lakes_query['features'][0]['properties']
-  {u'scalerank': 0, u'name_alt': None, u'admin': None, u'featureclass': u'Lake', u'id': 0, u'name': u'Lake Baikal'}
+  {'scalerank': 0, 'name_alt': None, 'admin': None, 'featureclass': 'Lake', 'id': 0, 'name': 'Lake Baikal'}
+  >>> lakes_query = w.collection_items('lakes', name='L. Ontario')
+  >>> len(lakes_querylakes_query['features'][0]['properties']
+  {'id': 0, 'scalerank': 0, 'name': 'Lake Baikal', 'name_alt': 'https://en.wikipedia.org/wiki/Lake_Baikal', 'admin': None, 'featureclass': 'Lake'}
+
 
 OGC API - Coverages - Part 1: Core 1.0
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -275,7 +279,7 @@ OGC API - Records - Part 1: Core 1.0
   >>> w.url
   'https://example.org/records-api'
   >>> conformance = w.conformance()
-  {'conformsTo': [u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html', u'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson', u'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/core', u'http://www.opengis.net/spec/ogcapi-records/1.0/req/oas30', u'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/json', u'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/html']}
+  {'conformsTo': ['http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html', 'http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson', 'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/core', 'http://www.opengis.net/spec/ogcapi-records/1.0/req/oas30', 'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/json', 'http://www.opengis.net/spec/ogcapi-records-1/1.0/req/html']}
   >>> api = w.api()  # OpenAPI document
   >>> collections = w.collections()
   >>> len(collections)
@@ -295,9 +299,9 @@ OGC API - Records - Part 1: Core 1.0
   8
   >>> my_catalogue_query = w.collection_items('my-catalogue')
   >>> my_catalogue_query['features'][0]['properties'].keys()
-  [u'title', u'abstract', u'keywords']
+  ['title', 'abstract', 'keywords']
   >>> my_catalogue_query['features'][0]['properties']['title']
-  u'Roadrunner ambush locations'
+  'Roadrunner ambush locations'
   >>> my_catalogue_query2 = w.collection_items('my-catalogue', q='birds')
   >>> msc_wis_dcpc_query2['numberMatched']
   2
@@ -305,10 +309,10 @@ OGC API - Records - Part 1: Core 1.0
   2
   >>> my_catalogue_cql_text_query = w.collection_items('my-catalogue', filter="title LIKE 'Roadrunner%'")
   >>> my_catalogue_cql_text_query['features'][0]['properties']['title']
-  u'Roadrunner ambush locations'
+  'Roadrunner ambush locations'
   >>> my_catalogue_cql_json_query = w.collection_items('my-catalogue', limit=1, cql={'eq': [{ 'property': 'title' }, 'Roadrunner ambush locations']})
   >>> my_catalogue_cql_json_query['features'][0]['properties']['title']
-  u'Roadrunner ambush locations'
+  'Roadrunner ambush locations'
 
   >>> import json
 


=====================================
owslib/__init__.py
=====================================
@@ -1 +1 @@
-__version__ = '0.34.0'
+__version__ = '0.34.1'


=====================================
owslib/iso.py
=====================================
@@ -1278,6 +1278,8 @@ class MD_ImageDescription(object):
             self.attribute_description = None
             self.cloud_cover = None
             self.processing_level = None
+            self.illumination_elevation_angle = None
+            self.illumination_azimuth_angle = None
         else:
             val = img_desc.find(util.nspath_eval('gmd:attributeDescription/gco:RecordType', namespaces))
             self.attribute_description = util.testXMLValue(val)
@@ -1288,6 +1290,12 @@ class MD_ImageDescription(object):
             val = img_desc.find(util.nspath_eval('gmd:cloudCoverPercentage/gco:Real', namespaces))
             self.cloud_cover = util.testXMLValue(val)
 
+            val = img_desc.find(util.nspath_eval('gmd:illuminationElevationAngle/gco:Real', namespaces))
+            self.illumination_elevation_angle = util.testXMLValue(val)
+
+            val = img_desc.find(util.nspath_eval('gmd:illuminationAzimuthAngle/gco:Real', namespaces))
+            self.illumination_azimuth_angle = util.testXMLValue(val)
+
             val = img_desc.find(util.nspath_eval(
                 'gmd:processingLevelCode/gmd:RS_Identifier/gmd:code/gco:CharacterString', namespaces))
             self.processing_level = util.testXMLValue(val)


=====================================
owslib/iso3.py
=====================================
@@ -1509,6 +1509,8 @@ class MD_ImageDescription(printable):
             self.attributedescription = None
             self.cloudcover = None
             self.processinglevel = None
+            self.illumination_elevation_angle = None
+            self.illumination_azimuth_angle = None
         else:
             attdesc = img_desc.find(util.nspath_eval('mrc:attributeDescription/gco:RecordType', self.namespaces))
             self.attributedescription = util.testXMLValue(attdesc)
@@ -1519,6 +1521,12 @@ class MD_ImageDescription(printable):
             cloudcov = img_desc.find(util.nspath_eval('mrc:cloudCoverPercentage/gco:Real', self.namespaces))
             self.cloudcover = util.testXMLValue(cloudcov)
 
+            iea = img_desc.find(util.nspath_eval('mrc:illuminationElevationAngle/gco:Real', self.namespaces))
+            self.illumination_elevation_angle = util.testXMLValue(iea)
+
+            iaa = img_desc.find(util.nspath_eval('mrc:illuminationAzimuthAngle/gco:Real', self.namespaces))
+            self.illumination_azimuth_angle = util.testXMLValue(iaa)
+
             proclvl = img_desc.find(util.nspath_eval(
                 'mrc:processingLevelCode/mcc:MD_Identifier/mcc:code/gco:CharacterString', self.namespaces))
             self.processinglevel = util.testXMLValue(proclvl)


=====================================
owslib/ogcapi/features.py
=====================================
@@ -124,6 +124,8 @@ class Features(Collections):
         @param filter: CQL TEXT expression
         @type cql: dict
         @param cql: CQL JSON payload
+        @type sortby: tuple
+        @param sortby: sort property and direction (`asc`, `desc`)
 
         @returns: feature results
         """
@@ -131,7 +133,17 @@ class Features(Collections):
         if 'bbox' in kwargs:
             kwargs['bbox'] = ','.join(list(map(str, kwargs['bbox'])))
         if 'datetime_' in kwargs:
-            kwargs['datetime'] = kwargs['datetime_']
+            kwargs['datetime'] = kwargs.pop('datetime_')
+        if 'sortby' in kwargs:
+            try:
+                sort_property, sort_order = kwargs.pop('sortby')
+                if sort_order == 'desc':
+                    sortby = f'-{sort_property}'
+                else:
+                    sortby = sort_property
+                kwargs['sortby'] = sortby
+            except ValueError as err:
+                LOGGER.debug(f'Cannot handle sortby; skipping: {err}')
 
         if 'cql' in kwargs:
             LOGGER.debug('CQL query detected')


=====================================
tests/test_ogcapi_maps_cubewerx.py
=====================================
@@ -28,5 +28,5 @@ def test_ogcapi_maps_pygeoapi():
     assert erm['id'] == 'erm'
     assert erm['title'] == 'EuroRegionalMap'
 
-    data = w.map('erm', width=1200, height=800, transparent=False)
+    data = w.map('erm', width=600, height=400, transparent=False)
     assert isinstance(data, BytesIO)



View it on GitLab: https://salsa.debian.org/debian-gis-team/owslib/-/compare/892681643ab09cca78fd4080ef95c982f7481fa0...bcbeaa407156dd7ae06cf832208d58803c85944b

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/owslib/-/compare/892681643ab09cca78fd4080ef95c982f7481fa0...bcbeaa407156dd7ae06cf832208d58803c85944b
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20250617/099c7bb5/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list