1# Copyright (c) 2010-2024 openpyxl
2
3from openpyxl.descriptors.serialisable import Serialisable
4from openpyxl.descriptors import (
5 Typed,
6 DateTime,
7 Bool,
8 Float,
9 String,
10 Integer,
11 Sequence,
12)
13from openpyxl.descriptors.excel import HexBinary
14
15class Index(Serialisable):
16
17 tagname = "x"
18
19 v = Integer(allow_none=True)
20
21 def __init__(self,
22 v=0,
23 ):
24 self.v = v
25
26
27class Tuple(Serialisable):
28
29 tagname = "tpl"
30
31 fld = Integer(allow_none=True)
32 hier = Integer(allow_none=True)
33 item = Integer()
34
35 def __init__(self,
36 fld=None,
37 hier=None,
38 item=None,
39 ):
40 self.fld = fld
41 self.hier = hier
42 self.item = item
43
44
45class TupleList(Serialisable):
46
47 tagname = "tpls"
48
49 c = Integer(allow_none=True)
50 tpl = Typed(expected_type=Tuple, )
51
52 __elements__ = ('tpl',)
53
54 def __init__(self,
55 c=None,
56 tpl=None,
57 ):
58 self.c = c
59 self.tpl = tpl
60
61
62class Missing(Serialisable):
63
64 tagname = "m"
65
66 tpls = Sequence(expected_type=TupleList)
67 x = Sequence(expected_type=Index)
68 u = Bool(allow_none=True)
69 f = Bool(allow_none=True)
70 c = String(allow_none=True)
71 cp = Integer(allow_none=True)
72 _in = Integer(allow_none=True)
73 bc = HexBinary(allow_none=True)
74 fc = HexBinary(allow_none=True)
75 i = Bool(allow_none=True)
76 un = Bool(allow_none=True)
77 st = Bool(allow_none=True)
78 b = Bool(allow_none=True)
79
80 __elements__ = ('tpls', 'x')
81
82 def __init__(self,
83 tpls=(),
84 x=(),
85 u=None,
86 f=None,
87 c=None,
88 cp=None,
89 _in=None,
90 bc=None,
91 fc=None,
92 i=None,
93 un=None,
94 st=None,
95 b=None,
96 ):
97 self.tpls = tpls
98 self.x = x
99 self.u = u
100 self.f = f
101 self.c = c
102 self.cp = cp
103 self._in = _in
104 self.bc = bc
105 self.fc = fc
106 self.i = i
107 self.un = un
108 self.st = st
109 self.b = b
110
111
112class Number(Serialisable):
113
114 tagname = "n"
115
116 tpls = Sequence(expected_type=TupleList)
117 x = Sequence(expected_type=Index)
118 v = Float()
119 u = Bool(allow_none=True)
120 f = Bool(allow_none=True)
121 c = String(allow_none=True)
122 cp = Integer(allow_none=True)
123 _in = Integer(allow_none=True)
124 bc = HexBinary(allow_none=True)
125 fc = HexBinary(allow_none=True)
126 i = Bool(allow_none=True)
127 un = Bool(allow_none=True)
128 st = Bool(allow_none=True)
129 b = Bool(allow_none=True)
130
131 __elements__ = ('tpls', 'x')
132
133 def __init__(self,
134 tpls=(),
135 x=(),
136 v=None,
137 u=None,
138 f=None,
139 c=None,
140 cp=None,
141 _in=None,
142 bc=None,
143 fc=None,
144 i=None,
145 un=None,
146 st=None,
147 b=None,
148 ):
149 self.tpls = tpls
150 self.x = x
151 self.v = v
152 self.u = u
153 self.f = f
154 self.c = c
155 self.cp = cp
156 self._in = _in
157 self.bc = bc
158 self.fc = fc
159 self.i = i
160 self.un = un
161 self.st = st
162 self.b = b
163
164
165class Error(Serialisable):
166
167 tagname = "e"
168
169 tpls = Typed(expected_type=TupleList, allow_none=True)
170 x = Sequence(expected_type=Index)
171 v = String()
172 u = Bool(allow_none=True)
173 f = Bool(allow_none=True)
174 c = String(allow_none=True)
175 cp = Integer(allow_none=True)
176 _in = Integer(allow_none=True)
177 bc = HexBinary(allow_none=True)
178 fc = HexBinary(allow_none=True)
179 i = Bool(allow_none=True)
180 un = Bool(allow_none=True)
181 st = Bool(allow_none=True)
182 b = Bool(allow_none=True)
183
184 __elements__ = ('tpls', 'x')
185
186 def __init__(self,
187 tpls=None,
188 x=(),
189 v=None,
190 u=None,
191 f=None,
192 c=None,
193 cp=None,
194 _in=None,
195 bc=None,
196 fc=None,
197 i=None,
198 un=None,
199 st=None,
200 b=None,
201 ):
202 self.tpls = tpls
203 self.x = x
204 self.v = v
205 self.u = u
206 self.f = f
207 self.c = c
208 self.cp = cp
209 self._in = _in
210 self.bc = bc
211 self.fc = fc
212 self.i = i
213 self.un = un
214 self.st = st
215 self.b = b
216
217
218class Boolean(Serialisable):
219
220 tagname = "b"
221
222 x = Sequence(expected_type=Index)
223 v = Bool()
224 u = Bool(allow_none=True)
225 f = Bool(allow_none=True)
226 c = String(allow_none=True)
227 cp = Integer(allow_none=True)
228
229 __elements__ = ('x',)
230
231 def __init__(self,
232 x=(),
233 v=None,
234 u=None,
235 f=None,
236 c=None,
237 cp=None,
238 ):
239 self.x = x
240 self.v = v
241 self.u = u
242 self.f = f
243 self.c = c
244 self.cp = cp
245
246
247class Text(Serialisable):
248
249 tagname = "s"
250
251 tpls = Sequence(expected_type=TupleList)
252 x = Sequence(expected_type=Index)
253 v = String()
254 u = Bool(allow_none=True)
255 f = Bool(allow_none=True)
256 c = String(allow_none=True)
257 cp = Integer(allow_none=True)
258 _in = Integer(allow_none=True)
259 bc = HexBinary(allow_none=True)
260 fc = HexBinary(allow_none=True)
261 i = Bool(allow_none=True)
262 un = Bool(allow_none=True)
263 st = Bool(allow_none=True)
264 b = Bool(allow_none=True)
265
266 __elements__ = ('tpls', 'x')
267
268 def __init__(self,
269 tpls=(),
270 x=(),
271 v=None,
272 u=None,
273 f=None,
274 c=None,
275 cp=None,
276 _in=None,
277 bc=None,
278 fc=None,
279 i=None,
280 un=None,
281 st=None,
282 b=None,
283 ):
284 self.tpls = tpls
285 self.x = x
286 self.v = v
287 self.u = u
288 self.f = f
289 self.c = c
290 self.cp = cp
291 self._in = _in
292 self.bc = bc
293 self.fc = fc
294 self.i = i
295 self.un = un
296 self.st = st
297 self.b = b
298
299
300class DateTimeField(Serialisable):
301
302 tagname = "d"
303
304 x = Sequence(expected_type=Index)
305 v = DateTime()
306 u = Bool(allow_none=True)
307 f = Bool(allow_none=True)
308 c = String(allow_none=True)
309 cp = Integer(allow_none=True)
310
311 __elements__ = ('x',)
312
313 def __init__(self,
314 x=(),
315 v=None,
316 u=None,
317 f=None,
318 c=None,
319 cp=None,
320 ):
321 self.x = x
322 self.v = v
323 self.u = u
324 self.f = f
325 self.c = c
326 self.cp = cp