Coverage for gws-app/gws/plugin/ows_client/wms/finder.py: 0%
19 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""WMS finder."""
3from typing import Optional
5import gws
6import gws.base.ows.client
7import gws.config.util
8import gws.base.search
9import gws.gis.source
11from . import provider
14@gws.ext.config.finder('wms')
15class Config(gws.base.search.finder.Config):
16 """Search in a WMS service via GetFeatureInfo, at a clicked point."""
18 provider: Optional[provider.Config]
19 """WMS service to query."""
20 sourceLayers: Optional[gws.gis.source.LayerFilter]
21 """Source layers to query."""
24@gws.ext.object.finder('wms')
25class Object(gws.base.ows.client.finder.Object):
26 """Finder that queries the source layers of a WMS service with GetFeatureInfo."""
28 supportsGeometrySearch = True
29 provider: provider.Object
30 """WMS service provider."""
32 def configure_provider(self):
33 return gws.config.util.configure_provider_for(self, provider.Object)
35 def can_run(self, search, user):
36 return (
37 super().can_run(search, user)
38 and bool(search.shape)
39 and search.shape.type == gws.GeometryType.point
40 )