Coverage for gws-app/gws/base/layer/ows.py: 0%
39 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1"""Layer OWS controller."""
3from typing import Optional
5import gws
6import gws.lib.xmlx
7import gws.config.util
10class Config(gws.Config):
11 """Layer OWS configuration."""
13 allowedServices: Optional[list[str]]
14 """Service UIDs which can use this layer. (added in 8.1)"""
15 deniedServices: Optional[list[str]]
16 """Service UIDs which can not use this layer. (added in 8.1)"""
17 featureName: str = ''
18 """Name for features in this layer."""
19 geometryName: str = ''
20 """Name for geometries in this layer."""
21 layerName: str = ''
22 """Name for this layer in WMS services."""
23 xmlns: Optional[str]
24 """XML namespace prefix. (added in 8.1)"""
25 models: Optional[list[gws.ext.config.model]]
26 """OWS-specific models. (added in 8.1)"""
29class Object(gws.LayerOws):
30 def configure(self):
31 self.allowedServiceUids = self.cfg('allowedServices', default=[])
32 self.deniedServiceUids = self.cfg('deniedServices', default=[])
33 self.xmlNamespace = None
35 p = self.cfg('xmlns')
36 if p:
37 self.xmlNamespace, _ = gws.lib.xmlx.namespace.parse_name(p + ':test')
39 self.layerName = self._configure_name('layerName') or self.cfg('_defaultName')
40 self.featureName = self._configure_name('featureName') or self.cfg('_defaultName')
41 # NB geometryName might come from a model later on
42 self.geometryName = self._configure_name('geometryName') or ''
44 gws.config.util.configure_models_for(self)
46 def _configure_name(self, key):
47 p = self.cfg(key)
48 if not p:
49 return
50 ns, pname = gws.lib.xmlx.namespace.parse_name(p)
51 if ns:
52 self.xmlNamespace = ns
53 return pname