Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/pivot/record.py: 77%
49 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1# Copyright (c) 2010-2022 openpyxl
3from openpyxl.descriptors.serialisable import Serialisable
4from openpyxl.descriptors import (
5 Typed,
6 Integer,
7 Sequence,
8)
9from openpyxl.descriptors.sequence import (
10 MultiSequence,
11 MultiSequencePart,
12)
13from openpyxl.descriptors.excel import ExtensionList
14from openpyxl.descriptors.nested import (
15 NestedInteger,
16 NestedBool,
17)
19from openpyxl.xml.constants import SHEET_MAIN_NS
20from openpyxl.xml.functions import tostring
22from .fields import (
23 Boolean,
24 Error,
25 Missing,
26 Number,
27 Text,
28 TupleList,
29 DateTimeField,
30 Index,
31)
34class Record(Serialisable):
36 tagname = "r"
38 _fields = MultiSequence()
39 m = MultiSequencePart(expected_type=Missing, store="_fields")
40 n = MultiSequencePart(expected_type=Number, store="_fields")
41 b = MultiSequencePart(expected_type=Boolean, store="_fields")
42 e = MultiSequencePart(expected_type=Error, store="_fields")
43 s = MultiSequencePart(expected_type=Text, store="_fields")
44 d = MultiSequencePart(expected_type=DateTimeField, store="_fields")
45 x = MultiSequencePart(expected_type=Index, store="_fields")
48 def __init__(self,
49 _fields=(),
50 m=None,
51 n=None,
52 b=None,
53 e=None,
54 s=None,
55 d=None,
56 x=None,
57 ):
58 self._fields = _fields
61class RecordList(Serialisable):
63 mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"
64 rel_type = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords"
65 _id = 1
66 _path = "/xl/pivotCache/pivotCacheRecords{0}.xml"
68 tagname ="pivotCacheRecords"
70 r = Sequence(expected_type=Record, allow_none=True)
71 extLst = Typed(expected_type=ExtensionList, allow_none=True)
73 __elements__ = ('r', )
74 __attrs__ = ('count', )
76 def __init__(self,
77 count=None,
78 r=(),
79 extLst=None,
80 ):
81 self.r = r
82 self.extLst = extLst
85 @property
86 def count(self):
87 return len(self.r)
90 def to_tree(self):
91 tree = super(RecordList, self).to_tree()
92 tree.set("xmlns", SHEET_MAIN_NS)
93 return tree
96 @property
97 def path(self):
98 return self._path.format(self._id)
101 def _write(self, archive, manifest):
102 """
103 Write to zipfile and update manifest
104 """
105 xml = tostring(self.to_tree())
106 archive.writestr(self.path[1:], xml)
107 manifest.append(self)
110 def _write_rels(self, archive, manifest):
111 pass