Coverage for gws-app/gws/plugin/legend/combined/__init__.py: 0%

22 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1from typing import Optional, cast 

2 

3import gws 

4import gws.lib.image 

5import gws.lib.mime 

6import gws.base.legend 

7 

8 

9 

10gws.ext.new.legend('combined') 

11 

12 

13class Config(gws.base.legend.Config): 

14 """Combined legend.""" 

15 

16 layerUids: list[str] 

17 """layers""" 

18 

19 

20class Object(gws.base.legend.Object): 

21 layerUids: list[str] 

22 

23 def configure(self): 

24 self.layerUids = self.cfg('layerUids') 

25 

26 def render(self, args=None): 

27 outputs = [] 

28 

29 for uid in self.layerUids: 

30 layer = cast(gws.Layer, self.root.get(uid, gws.ext.object.layer)) 

31 if layer and layer.legend: 

32 lro = layer.legend.render(args) 

33 if lro: 

34 outputs.append(lro) 

35 

36 return gws.base.legend.combine_outputs(outputs, self.options)