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

1"""WMS finder.""" 

2 

3from typing import Optional 

4 

5import gws 

6import gws.base.ows.client 

7import gws.config.util 

8import gws.base.search 

9import gws.gis.source 

10 

11from . import provider 

12 

13 

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.""" 

17 

18 provider: Optional[provider.Config] 

19 """WMS service to query.""" 

20 sourceLayers: Optional[gws.gis.source.LayerFilter] 

21 """Source layers to query.""" 

22 

23 

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.""" 

27 

28 supportsGeometrySearch = True 

29 provider: provider.Object 

30 """WMS service provider.""" 

31 

32 def configure_provider(self): 

33 return gws.config.util.configure_provider_for(self, provider.Object) 

34 

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 )