Coverage for gws-app/gws/plugin/model_field/float/__init__.py: 80%

20 statements  

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

1"""Float field. 

2 

3A scalar field for floating-point numbers. Values from the client are 

4converted with ``float()``. Without a configured widget, the field uses a 

5``float`` widget. 

6 

7Example:: 

8 

9 fields+ { name "area" type "float" title "Area" } 

10""" 

11 

12import gws 

13import gws.base.model.scalar_field 

14 

15 

16@gws.ext.config.modelField('float') 

17class Config(gws.base.model.scalar_field.Config): 

18 """Field for floating-point numbers.""" 

19 

20 pass 

21 

22 

23@gws.ext.props.modelField('float') 

24class Props(gws.base.model.scalar_field.Props): 

25 pass 

26 

27 

28@gws.ext.object.modelField('float') 

29class Object(gws.base.model.scalar_field.Object): 

30 """Float field object.""" 

31 

32 attributeType = gws.AttributeType.float 

33 

34 def configure_widget(self): 

35 if not super().configure_widget(): 

36 self.widget = self.root.create_shared(gws.ext.object.modelWidget, type='float') 

37 return True 

38 

39 def prop_to_python(self, feature, value, mc): 

40 try: 

41 return float(value) 

42 except ValueError: 

43 return gws.ErrorValue