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

97 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 Float, 

6 Bool, 

7 Integer, 

8 NoneSet, 

9 ) 

10from openpyxl.descriptors.excel import UniversalMeasure, Relation 

11 

12 

13class PrintPageSetup(Serialisable): 

14 """ Worksheet print page setup """ 

15 

16 tagname = "pageSetup" 

17 

18 orientation = NoneSet(values=("default", "portrait", "landscape")) 

19 paperSize = Integer(allow_none=True) 

20 scale = Integer(allow_none=True) 

21 fitToHeight = Integer(allow_none=True) 

22 fitToWidth = Integer(allow_none=True) 

23 firstPageNumber = Integer(allow_none=True) 

24 useFirstPageNumber = Bool(allow_none=True) 

25 paperHeight = UniversalMeasure(allow_none=True) 

26 paperWidth = UniversalMeasure(allow_none=True) 

27 pageOrder = NoneSet(values=("downThenOver", "overThenDown")) 

28 usePrinterDefaults = Bool(allow_none=True) 

29 blackAndWhite = Bool(allow_none=True) 

30 draft = Bool(allow_none=True) 

31 cellComments = NoneSet(values=("asDisplayed", "atEnd")) 

32 errors = NoneSet(values=("displayed", "blank", "dash", "NA")) 

33 horizontalDpi = Integer(allow_none=True) 

34 verticalDpi = Integer(allow_none=True) 

35 copies = Integer(allow_none=True) 

36 id = Relation() 

37 

38 

39 def __init__(self, 

40 worksheet=None, 

41 orientation=None, 

42 paperSize=None, 

43 scale=None, 

44 fitToHeight=None, 

45 fitToWidth=None, 

46 firstPageNumber=None, 

47 useFirstPageNumber=None, 

48 paperHeight=None, 

49 paperWidth=None, 

50 pageOrder=None, 

51 usePrinterDefaults=None, 

52 blackAndWhite=None, 

53 draft=None, 

54 cellComments=None, 

55 errors=None, 

56 horizontalDpi=None, 

57 verticalDpi=None, 

58 copies=None, 

59 id=None): 

60 self._parent = worksheet 

61 self.orientation = orientation 

62 self.paperSize = paperSize 

63 self.scale = scale 

64 self.fitToHeight = fitToHeight 

65 self.fitToWidth = fitToWidth 

66 self.firstPageNumber = firstPageNumber 

67 self.useFirstPageNumber = useFirstPageNumber 

68 self.paperHeight = paperHeight 

69 self.paperWidth = paperWidth 

70 self.pageOrder = pageOrder 

71 self.usePrinterDefaults = usePrinterDefaults 

72 self.blackAndWhite = blackAndWhite 

73 self.draft = draft 

74 self.cellComments = cellComments 

75 self.errors = errors 

76 self.horizontalDpi = horizontalDpi 

77 self.verticalDpi = verticalDpi 

78 self.copies = copies 

79 self.id = id 

80 

81 

82 def __bool__(self): 

83 return bool(dict(self)) 

84 

85 

86 

87 

88 @property 

89 def sheet_properties(self): 

90 """ 

91 Proxy property 

92 """ 

93 return self._parent.sheet_properties.pageSetUpPr 

94 

95 

96 @property 

97 def fitToPage(self): 

98 return self.sheet_properties.fitToPage 

99 

100 

101 @fitToPage.setter 

102 def fitToPage(self, value): 

103 self.sheet_properties.fitToPage = value 

104 

105 

106 @property 

107 def autoPageBreaks(self): 

108 return self.sheet_properties.autoPageBreaks 

109 

110 

111 @autoPageBreaks.setter 

112 def autoPageBreaks(self, value): 

113 self.sheet_properties.autoPageBreaks = value 

114 

115 

116 @classmethod 

117 def from_tree(cls, node): 

118 self = super(PrintPageSetup, cls).from_tree(node) 

119 self.id = None # strip link to binary settings 

120 return self 

121 

122 

123class PrintOptions(Serialisable): 

124 """ Worksheet print options """ 

125 

126 tagname = "printOptions" 

127 horizontalCentered = Bool(allow_none=True) 

128 verticalCentered = Bool(allow_none=True) 

129 headings = Bool(allow_none=True) 

130 gridLines = Bool(allow_none=True) 

131 gridLinesSet = Bool(allow_none=True) 

132 

133 def __init__(self, horizontalCentered=None, 

134 verticalCentered=None, 

135 headings=None, 

136 gridLines=None, 

137 gridLinesSet=None, 

138 ): 

139 self.horizontalCentered = horizontalCentered 

140 self.verticalCentered = verticalCentered 

141 self.headings = headings 

142 self.gridLines = gridLines 

143 self.gridLinesSet = gridLinesSet 

144 

145 

146 def __bool__(self): 

147 return bool(dict(self)) 

148 

149 

150class PageMargins(Serialisable): 

151 """ 

152 Information about page margins for view/print layouts. 

153 Standard values (in inches) 

154 left, right = 0.75 

155 top, bottom = 1 

156 header, footer = 0.5 

157 """ 

158 tagname = "pageMargins" 

159 

160 left = Float() 

161 right = Float() 

162 top = Float() 

163 bottom = Float() 

164 header = Float() 

165 footer = Float() 

166 

167 def __init__(self, left=0.75, right=0.75, top=1, bottom=1, header=0.5, 

168 footer=0.5): 

169 self.left = left 

170 self.right = right 

171 self.top = top 

172 self.bottom = bottom 

173 self.header = header 

174 self.footer = footer