Coverage for gws-app/gws/base/ows/client/model.py: 80%

25 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""Generic OWS model.""" 

2 

3import gws 

4import gws.base.feature 

5import gws.base.model 

6import gws.config.util 

7import gws.lib.crs 

8import gws.lib.extent 

9import gws.gis.source 

10 

11 

12class Object(gws.base.model.default_model.Object): 

13 """Generic OWS model. 

14 

15 Read-only model that reads features from the queryable source layers of an 

16 OWS service provider. Clients cannot create, update or delete features. 

17 """ 

18 

19 provider: gws.OwsServiceProvider 

20 """Service provider.""" 

21 sourceLayers: list[gws.SourceLayer] 

22 """Source layers to read features from.""" 

23 

24 def configure(self): 

25 self.configure_model() 

26 

27 def configure_provider(self): 

28 pass 

29 

30 def configure_sources(self): 

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

32 

33 self.configure_source_layers() 

34 

35 def configure_source_layers(self): 

36 """Select the queryable source layers of the provider, or those given in the configuration. 

37 

38 Returns: 

39 Always ``True``. 

40 """ 

41 

42 return gws.config.util.configure_source_layers_for(self, self.provider.sourceLayers, is_queryable=True) 

43 

44 def find_features(self, search, mc): 

45 if not self.sourceLayers: 

46 return [] 

47 return [ 

48 self.feature_from_record(r, mc) 

49 for r in self.provider.get_features(search, self.sourceLayers) 

50 ] 

51 

52 def props(self, user): 

53 return gws.u.merge( 

54 super().props(user), 

55 canCreate=False, 

56 canDelete=False, 

57 canWrite=False, 

58 )