Coverage for gws-app/gws/base/ows/client/finder.py: 56%

27 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-24 12:46 +0200

1import gws 

2import gws.base.model 

3import gws.base.search 

4import gws.config.util 

5import gws.gis.source 

6 

7 

8class Object(gws.base.search.finder.Object): 

9 """Generic OWS Finder.""" 

10 

11 supportsGeometrySearch = True 

12 serviceProvider: gws.OwsProvider 

13 sourceLayers: list[gws.SourceLayer] 

14 

15 def configure(self): 

16 self.configure_provider() 

17 self.configure_sources() 

18 self.configure_models() 

19 self.configure_templates() 

20 

21 def configure_provider(self): 

22 pass 

23 

24 def configure_sources(self): 

25 gws.u.require(self.serviceProvider, 'failed to configure service provider') 

26 

27 self.configure_source_layers() 

28 if not self.sourceLayers: 

29 raise gws.Error(f'no queryable layers in {self.serviceProvider}') 

30 

31 def configure_source_layers(self): 

32 return gws.config.util.configure_source_layers_for(self, self.serviceProvider.sourceLayers, is_queryable=True) 

33 

34 def configure_models(self): 

35 return gws.config.util.configure_models_for(self, with_default=True) 

36 

37 def create_model(self, cfg): 

38 return self.create_child( 

39 gws.ext.object.model, 

40 cfg, 

41 type=self.extType, 

42 _defaultProvider=self.serviceProvider, 

43 _defaultSourceLayers=self.sourceLayers 

44 )