Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/worksheet/scenario.py: 67%

54 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1# Copyright (c) 2010-2022 openpyxl 

2 

3from openpyxl.descriptors.serialisable import Serialisable 

4from openpyxl.descriptors import ( 

5 String, 

6 Integer, 

7 Bool, 

8 Sequence, 

9 Convertible, 

10) 

11from .cell_range import MultiCellRange 

12 

13 

14class InputCells(Serialisable): 

15 

16 tagname = "inputCells" 

17 

18 r = String() 

19 deleted = Bool(allow_none=True) 

20 undone = Bool(allow_none=True) 

21 val = String() 

22 numFmtId = Integer(allow_none=True) 

23 

24 def __init__(self, 

25 r=None, 

26 deleted=False, 

27 undone=False, 

28 val=None, 

29 numFmtId=None, 

30 ): 

31 self.r = r 

32 self.deleted = deleted 

33 self.undone = undone 

34 self.val = val 

35 self.numFmtId = numFmtId 

36 

37 

38class Scenario(Serialisable): 

39 

40 tagname = "scenario" 

41 

42 inputCells = Sequence(expected_type=InputCells) 

43 name = String() 

44 locked = Bool(allow_none=True) 

45 hidden = Bool(allow_none=True) 

46 user = String(allow_none=True) 

47 comment = String(allow_none=True) 

48 

49 __elements__ = ('inputCells',) 

50 __attrs__ = ('name', 'locked', 'hidden', 'user', 'comment', 'count') 

51 

52 def __init__(self, 

53 inputCells=(), 

54 name=None, 

55 locked=False, 

56 hidden=False, 

57 count=None, 

58 user=None, 

59 comment=None, 

60 ): 

61 self.inputCells = inputCells 

62 self.name = name 

63 self.locked = locked 

64 self.hidden = hidden 

65 self.user = user 

66 self.comment = comment 

67 

68 

69 @property 

70 def count(self): 

71 return len(self.inputCells) 

72 

73 

74class ScenarioList(Serialisable): 

75 

76 tagname = "scenarios" 

77 

78 scenario = Sequence(expected_type=Scenario) 

79 current = Integer(allow_none=True) 

80 show = Integer(allow_none=True) 

81 sqref = Convertible(expected_type=MultiCellRange, allow_none=True) 

82 

83 __elements__ = ('scenario',) 

84 

85 def __init__(self, 

86 scenario=(), 

87 current=None, 

88 show=None, 

89 sqref=None, 

90 ): 

91 self.scenario = scenario 

92 self.current = current 

93 self.show = show 

94 self.sqref = sqref 

95 

96 

97 def append(self, scenario): 

98 s = self.scenario 

99 s.append(scenario) 

100 self.scenario = s 

101 

102 

103 def __bool__(self): 

104 return bool(self.scenario) 

105