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

1"""Provide configuration for the client Dimension module.""" 

2 

3from typing import Optional 

4 

5import gws 

6import gws.base.action 

7import gws.base.storage 

8 

9gws.ext.new.action('dimension') 

10 

11 

12class Config(gws.base.action.Config): 

13 """Dimension action""" 

14 

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

21 

22 

23class Props(gws.base.action.Props): 

24 layerUids: Optional[list[str]] 

25 pixelTolerance: int 

26 storage: gws.base.storage.Props 

27 

28 

29class Object(gws.base.action.Object): 

30 storage: Optional[gws.base.storage.Object] 

31 

32 def configure(self): 

33 self.storage = self.create_child_if_configured( 

34 gws.base.storage.Object, self.cfg('storage'), categoryName='Dimension') 

35 

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 ) 

43 

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)