Coverage for gws-app/gws/plugin/dimension/__init__.py: 0%
27 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"""Provide configuration for the client Dimension module."""
3from typing import Optional
5import gws
6import gws.base.action
7import gws.base.storage
9gws.ext.new.action('dimension')
12class Config(gws.base.action.Config):
13 """Dimension action"""
15 layerUids: Optional[list[str]]
16 """snap layer uids"""
17 pixelTolerance: int = 10
18 """pixel tolerance"""
19 storage: Optional[gws.base.storage.Config]
20 """storage configuration"""
23class Props(gws.base.action.Props):
24 layerUids: Optional[list[str]]
25 pixelTolerance: int
26 storage: gws.base.storage.Props
29class Object(gws.base.action.Object):
30 storage: Optional[gws.base.storage.Object]
32 def configure(self):
33 self.storage = self.create_child_if_configured(
34 gws.base.storage.Object, self.cfg('storage'), categoryName='Dimension')
36 def props(self, user):
37 return gws.u.merge(
38 super().props(user),
39 layerUids=self.cfg('layerUids') or [],
40 pixelTolerance=self.cfg('pixelTolerance'),
41 storage=self.storage,
42 )
44 @gws.ext.command.api('dimensionStorage')
45 def handle_storage(self, req: gws.WebRequester, p: gws.base.storage.Request) -> gws.base.storage.Response:
46 if not self.storage:
47 raise gws.NotFoundError()
48 return self.storage.handle_request(req, p)