From 73655928a6f75e89ff98bb5dc4e76745248478ea Mon Sep 17 00:00:00 2001 From: Kurea Date: Wed, 15 May 2024 11:49:54 +0200 Subject: [PATCH 1/6] Update __init__.py managing WebMapService constructor parameters when available --- packages/basemap/src/mpl_toolkits/basemap/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/basemap/src/mpl_toolkits/basemap/__init__.py b/packages/basemap/src/mpl_toolkits/basemap/__init__.py index a7050beed..669fddb88 100644 --- a/packages/basemap/src/mpl_toolkits/basemap/__init__.py +++ b/packages/basemap/src/mpl_toolkits/basemap/__init__.py @@ -4452,7 +4452,10 @@ def wmsimage(self,server,\ if ypixels is None: ypixels = int(self.aspect*xpixels) if verbose: print(server) - wms = WebMapService(server) + wmsInitKeys = ['version', 'xml', 'username', 'password','parse_remote_metadata', 'timeout', 'headers', 'auth'] + wms_options = {k:kwargs[v] for k in wmsInitKeys if k in kwargs} + kwargs = {k:kwargs[v] for k in kwargs if k not in wmsInitKeys} + wms = WebMapService(server, **wms_options) if verbose: print('id: %s, version: %s' % (wms.identification.type,wms.identification.version)) From 1cc971bf922ed1d3f0ea2b1a79c4ca8a1943a49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Thu, 12 Jun 2025 22:05:08 +0200 Subject: [PATCH 2/6] Apply basic linting corrections to Basemap.wmsimage additions --- packages/basemap/src/mpl_toolkits/basemap/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/basemap/src/mpl_toolkits/basemap/__init__.py b/packages/basemap/src/mpl_toolkits/basemap/__init__.py index 225097198..fce035f11 100644 --- a/packages/basemap/src/mpl_toolkits/basemap/__init__.py +++ b/packages/basemap/src/mpl_toolkits/basemap/__init__.py @@ -4452,9 +4452,10 @@ def wmsimage(self,server,\ if ypixels is None: ypixels = int(self.aspect*xpixels) if verbose: print(server) - wmsInitKeys = ['version', 'xml', 'username', 'password','parse_remote_metadata', 'timeout', 'headers', 'auth'] - wms_options = {k:kwargs[v] for k in wmsInitKeys if k in kwargs} - kwargs = {k:kwargs[v] for k in kwargs if k not in wmsInitKeys} + wms_keys = ["version", "xml", "username", "password", "auth", + "headers", "timeout", "parse_remote_metadata"] + wms_options = {k: kwargs[v] for k in wms_keys if k in kwargs} + kwargs = {k: kwargs[v] for k in kwargs if k not in wms_keys} wms = WebMapService(server, **wms_options) if verbose: print('id: %s, version: %s' % From 4fab297fe12417e5e5bef975a7f04628bed7b1e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Thu, 12 Jun 2025 22:06:40 +0200 Subject: [PATCH 3/6] Fix incorrect v iterator variable --- packages/basemap/src/mpl_toolkits/basemap/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/basemap/src/mpl_toolkits/basemap/__init__.py b/packages/basemap/src/mpl_toolkits/basemap/__init__.py index fce035f11..e0b343ced 100644 --- a/packages/basemap/src/mpl_toolkits/basemap/__init__.py +++ b/packages/basemap/src/mpl_toolkits/basemap/__init__.py @@ -4454,8 +4454,8 @@ def wmsimage(self,server,\ if verbose: print(server) wms_keys = ["version", "xml", "username", "password", "auth", "headers", "timeout", "parse_remote_metadata"] - wms_options = {k: kwargs[v] for k in wms_keys if k in kwargs} - kwargs = {k: kwargs[v] for k in kwargs if k not in wms_keys} + wms_options = {k: kwargs[k] for k in wms_keys if k in kwargs} + kwargs = {k: kwargs[k] for k in kwargs if k not in wms_keys} wms = WebMapService(server, **wms_options) if verbose: print('id: %s, version: %s' % From eabea54a32fd514898b3ec50176ba2e17ac7e629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Thu, 12 Jun 2025 22:09:07 +0200 Subject: [PATCH 4/6] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa768063f..ee1ff0369 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ https://semver.org/spec/v2.0.0.html - NumPy 2.0 support (PR [#614] by @cvanelteren, solves issue [#604]). - Automated wheels for x86_64 and arm64 (PR [#620] by @cvanelteren, solves issue [#608]). +- Support in `Basemap.wmsimage` to redirect `WebMapService` constructor + parameters when available (PR [#603] by @Kurea, solves issue [#602]). ### Changed - **BREAKING CHANGE**: Set Python minimum supported version to 3.9. @@ -1177,6 +1179,10 @@ https://github.com/matplotlib/basemap/pull/614 https://github.com/matplotlib/basemap/issues/608 [#604]: https://github.com/matplotlib/basemap/issues/604 +[#603]: +https://github.com/matplotlib/basemap/pull/603 +[#602]: +https://github.com/matplotlib/basemap/issues/602 [#598]: https://github.com/matplotlib/basemap/pull/598 [#595]: From 074835cf9e980046ce08f9459ac8bc86c0507125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Thu, 12 Jun 2025 22:15:45 +0200 Subject: [PATCH 5/6] Revert order of items in wms_keys The original order in the PR was the same order as the function signature for `WebMapService`, so let's keep it. --- packages/basemap/src/mpl_toolkits/basemap/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/basemap/src/mpl_toolkits/basemap/__init__.py b/packages/basemap/src/mpl_toolkits/basemap/__init__.py index e0b343ced..a3a12631b 100644 --- a/packages/basemap/src/mpl_toolkits/basemap/__init__.py +++ b/packages/basemap/src/mpl_toolkits/basemap/__init__.py @@ -4452,8 +4452,8 @@ def wmsimage(self,server,\ if ypixels is None: ypixels = int(self.aspect*xpixels) if verbose: print(server) - wms_keys = ["version", "xml", "username", "password", "auth", - "headers", "timeout", "parse_remote_metadata"] + wms_keys = ["version", "xml", "username", "password", + "parse_remote_metadata", "timeout", "headers", "auth"] wms_options = {k: kwargs[k] for k in wms_keys if k in kwargs} kwargs = {k: kwargs[k] for k in kwargs if k not in wms_keys} wms = WebMapService(server, **wms_options) From bc243d9bdd60ffe04cf46c72b8e9e7ebeaf8d174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Thu, 12 Jun 2025 22:16:47 +0200 Subject: [PATCH 6/6] Update Basemap.wmsimage docstring --- packages/basemap/src/mpl_toolkits/basemap/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/basemap/src/mpl_toolkits/basemap/__init__.py b/packages/basemap/src/mpl_toolkits/basemap/__init__.py index a3a12631b..05f9a1eb8 100644 --- a/packages/basemap/src/mpl_toolkits/basemap/__init__.py +++ b/packages/basemap/src/mpl_toolkits/basemap/__init__.py @@ -4413,6 +4413,7 @@ def wmsimage(self,server,\ verbose if True, print WMS server info (default False). \**kwargs extra keyword arguments passed on to + OWSLib.wms.WebMapService and OWSLib.wms.WebMapService.getmap. ============== ====================================================