numbers-parser 3.9.6__tar.gz → 3.10.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/PKG-INFO +23 -5
  2. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/README.md +22 -4
  3. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/pyproject.toml +2 -3
  4. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/_cat_numbers.py +14 -0
  5. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/_unpack_numbers.py +15 -1
  6. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/cell.py +23 -11
  7. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/cell_storage.py +2 -28
  8. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/constants.py +1 -1
  9. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/file.py +7 -0
  10. numbers_parser-3.10.1/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py +69 -0
  11. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCHArchives_sos_pb2.py +2 -2
  12. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSKArchives_pb2.py +47 -47
  13. numbers_parser-3.10.1/src/numbers_parser/generated/TSSArchives_pb2.py +64 -0
  14. numbers_parser-3.10.1/src/numbers_parser/generated/TSWPArchives_pb2.py +284 -0
  15. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/iwafile.py +6 -0
  16. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/model.py +31 -11
  17. numbers_parser-3.9.6/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py +0 -69
  18. numbers_parser-3.9.6/src/numbers_parser/generated/TSSArchives_pb2.py +0 -64
  19. numbers_parser-3.9.6/src/numbers_parser/generated/TSWPArchives_pb2.py +0 -286
  20. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/LICENSE.rst +0 -0
  21. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/__init__.py +0 -0
  22. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/bullets.py +0 -0
  23. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/containers.py +0 -0
  24. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/data/empty.numbers +0 -0
  25. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/document.py +0 -0
  26. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/exceptions.py +0 -0
  27. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/formula.py +0 -0
  28. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/functionmap.py +0 -0
  29. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TNArchives_pb2.py +0 -0
  30. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TNArchives_sos_pb2.py +0 -0
  31. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TNCommandArchives_pb2.py +0 -0
  32. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TNCommandArchives_sos_pb2.py +0 -0
  33. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSAArchives_pb2.py +0 -0
  34. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSAArchives_sos_pb2.py +0 -0
  35. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSACommandArchives_sos_pb2.py +0 -0
  36. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCEArchives_pb2.py +0 -0
  37. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCH3DArchives_pb2.py +0 -0
  38. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCHArchives_Common_pb2.py +0 -0
  39. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCHArchives_pb2.py +0 -0
  40. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCHCommandArchives_pb2.py +0 -0
  41. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSCHPreUFFArchives_pb2.py +0 -0
  42. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSDArchives_pb2.py +0 -0
  43. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSDArchives_sos_pb2.py +0 -0
  44. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSDCommandArchives_pb2.py +0 -0
  45. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSKArchives_sos_pb2.py +0 -0
  46. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSPArchiveMessages_pb2.py +0 -0
  47. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSPDatabaseMessages_pb2.py +0 -0
  48. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSPMessages_pb2.py +0 -0
  49. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSSArchives_sos_pb2.py +0 -0
  50. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSTArchives_pb2.py +0 -0
  51. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSTArchives_sos_pb2.py +0 -0
  52. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSTCommandArchives_pb2.py +0 -0
  53. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSTStylePropertyArchiving_pb2.py +0 -0
  54. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSWPArchives_sos_pb2.py +0 -0
  55. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/TSWPCommandArchives_pb2.py +0 -0
  56. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/generated/__init__.py +0 -0
  57. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/mapping.py +0 -0
  58. {numbers_parser-3.9.6 → numbers_parser-3.10.1}/src/numbers_parser/numbers_uuid.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: numbers-parser
3
- Version: 3.9.6
3
+ Version: 3.10.1
4
4
  Summary: Read and write Apple Numbers spreadsheets
5
5
  Home-page: https://github.com/masaccio/numbers-parser
6
6
  License: MIT
@@ -33,8 +33,8 @@ Description-Content-Type: text/markdown
33
33
  [![codecov](https://codecov.io/gh/masaccio/numbers-parser/branch/main/graph/badge.svg?token=EKIUFGT05E)](https://codecov.io/gh/masaccio/numbers-parser)
34
34
 
35
35
  `numbers-parser` is a Python module for parsing [Apple Numbers](https://www.apple.com/numbers/)
36
- `.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 12.2
37
- (current as of October 2022).
36
+ `.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 13.0
37
+ (current as of April 2023).
38
38
 
39
39
  It supports and is tested against Python versions from 3.8 onwards. It is not compatible with earlier versions of Python.
40
40
 
@@ -200,6 +200,15 @@ else:
200
200
 
201
201
  Bulleted and numbered data can also be extracted with the bullet or number characters present in the text for each line in the cell in the same way as above but using the `formatted_bullets` property. A single space is inserted between the bullet character and the text string and in the case of bullets, this will be the Unicode character seen in Numbers, for example `"• some text"`.
202
202
 
203
+ ### Hyperlinks
204
+
205
+ Numbers does not support hyperlinks to cells within a spreadsheet, but does allow embedding links in cells. When cells contain hyperlinks, `numbers_parser` returns the text version of the cell. The `hyperlinks` property of cells where `is_bulleted` is `True` is a list of text and URL tuples:
206
+
207
+ ``` python
208
+ cell = table.cell(0, 0)
209
+ (text, url) = cell.hyperlinks[0]
210
+ ```
211
+
203
212
  ###  Cell images
204
213
 
205
214
  Querying cell formats is currently limited to image backrgounds only. If a cell has no background image, `None` is returned for all calls.
@@ -349,10 +358,19 @@ The default protobuf package installation may not include the C++ optimised vers
349
358
 
350
359
  `This script requires the Protobuf installation to use the C++ implementation. Please reinstall Protobuf with C++ support.`
351
360
 
352
- To include the C++ support, download a released version of Google protobuf [from github](https://github.com/protocolbuffers/protobuf). Build instructions are in the [`src/README.md`](https://github.com/protocolbuffers/protobuf/blob/main/src/README.md) in the distribution but for macOS with [Homebrew](https://brew.sh) the two steps are, firstly to install the native protobuf libraries, which must be on your `LD_LIBRARY_PATH`:
361
+ To include the C++ support, download a released version of Google protobuf [from github](https://github.com/protocolbuffers/protobuf). Build instructions are described in [`src/README.md`](https://github.com/protocolbuffers/protobuf/blob/main/src/README).These have changed greatly over time, but as of April 2023, this was useful:
353
362
 
363
+ ``` shell
364
+ bazel build :protoc :protobuf
365
+ cmake . -DCMAKE_CXX_STANDARD=14
366
+ cmake --build . --parallel 8
367
+ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
368
+ export LD_LIBRARY_PATH=../bazel-bin/src/google
369
+ cd python
370
+ python3 setup.py -q bdist_wheel --cpp_implementation --warnings_as_errors --compile_static_extension
371
+ ```
354
372
 
355
- This will install protobuf in a folder above the source installation which can then be used by `make bootstrap` in the `numbers-parser` source tree.
373
+ This can then be used `make bootstrap` in the `numbers-parser` source tree. The signing workflow assumes that you have an Apple Developer Account and that you have created provisioning profile that includes iCloud. Using a self-signed certificate does not seem to work, at least on Apple Silicon (a working PR contradicting this is greatly appreciated).
356
374
 
357
375
  ## Credits
358
376
 
@@ -5,8 +5,8 @@
5
5
  [![codecov](https://codecov.io/gh/masaccio/numbers-parser/branch/main/graph/badge.svg?token=EKIUFGT05E)](https://codecov.io/gh/masaccio/numbers-parser)
6
6
 
7
7
  `numbers-parser` is a Python module for parsing [Apple Numbers](https://www.apple.com/numbers/)
8
- `.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 12.2
9
- (current as of October 2022).
8
+ `.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 13.0
9
+ (current as of April 2023).
10
10
 
11
11
  It supports and is tested against Python versions from 3.8 onwards. It is not compatible with earlier versions of Python.
12
12
 
@@ -172,6 +172,15 @@ else:
172
172
 
173
173
  Bulleted and numbered data can also be extracted with the bullet or number characters present in the text for each line in the cell in the same way as above but using the `formatted_bullets` property. A single space is inserted between the bullet character and the text string and in the case of bullets, this will be the Unicode character seen in Numbers, for example `"• some text"`.
174
174
 
175
+ ### Hyperlinks
176
+
177
+ Numbers does not support hyperlinks to cells within a spreadsheet, but does allow embedding links in cells. When cells contain hyperlinks, `numbers_parser` returns the text version of the cell. The `hyperlinks` property of cells where `is_bulleted` is `True` is a list of text and URL tuples:
178
+
179
+ ``` python
180
+ cell = table.cell(0, 0)
181
+ (text, url) = cell.hyperlinks[0]
182
+ ```
183
+
175
184
  ###  Cell images
176
185
 
177
186
  Querying cell formats is currently limited to image backrgounds only. If a cell has no background image, `None` is returned for all calls.
@@ -321,10 +330,19 @@ The default protobuf package installation may not include the C++ optimised vers
321
330
 
322
331
  `This script requires the Protobuf installation to use the C++ implementation. Please reinstall Protobuf with C++ support.`
323
332
 
324
- To include the C++ support, download a released version of Google protobuf [from github](https://github.com/protocolbuffers/protobuf). Build instructions are in the [`src/README.md`](https://github.com/protocolbuffers/protobuf/blob/main/src/README.md) in the distribution but for macOS with [Homebrew](https://brew.sh) the two steps are, firstly to install the native protobuf libraries, which must be on your `LD_LIBRARY_PATH`:
333
+ To include the C++ support, download a released version of Google protobuf [from github](https://github.com/protocolbuffers/protobuf). Build instructions are described in [`src/README.md`](https://github.com/protocolbuffers/protobuf/blob/main/src/README).These have changed greatly over time, but as of April 2023, this was useful:
325
334
 
335
+ ``` shell
336
+ bazel build :protoc :protobuf
337
+ cmake . -DCMAKE_CXX_STANDARD=14
338
+ cmake --build . --parallel 8
339
+ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
340
+ export LD_LIBRARY_PATH=../bazel-bin/src/google
341
+ cd python
342
+ python3 setup.py -q bdist_wheel --cpp_implementation --warnings_as_errors --compile_static_extension
343
+ ```
326
344
 
327
- This will install protobuf in a folder above the source installation which can then be used by `make bootstrap` in the `numbers-parser` source tree.
345
+ This can then be used `make bootstrap` in the `numbers-parser` source tree. The signing workflow assumes that you have an Apple Developer Account and that you have created provisioning profile that includes iCloud. Using a self-signed certificate does not seem to work, at least on Apple Silicon (a working PR contradicting this is greatly appreciated).
328
346
 
329
347
  ## Credits
330
348
 
@@ -12,7 +12,7 @@ name = "numbers-parser"
12
12
  packages = [{include = "numbers_parser", from = "src"}]
13
13
  readme = "README.md"
14
14
  repository = "https://github.com/masaccio/numbers-parser"
15
- version = "3.9.6"
15
+ version = "3.10.1"
16
16
 
17
17
  [tool.poetry.scripts]
18
18
  cat-numbers = "numbers_parser._cat_numbers:main"
@@ -50,8 +50,7 @@ omit = ["src/numbers_parser/generated/*.py"]
50
50
  directory = "coverage_html_report"
51
51
 
52
52
  [tool.pytest.ini_options]
53
- addopts = "-ra -s"
54
- minversion = 6.0
53
+ addopts = "--cov=src/numbers_parser --cov-report=term-missing"
55
54
 
56
55
  [tool.tox]
57
56
  legacy_tox_ini = """
@@ -1,11 +1,15 @@
1
1
  import argparse
2
2
  import csv
3
+ import logging
3
4
  import sys
4
5
 
5
6
  from numbers_parser import Document, _get_version
7
+ from numbers_parser import __name__ as numbers_parser_name
6
8
  from numbers_parser.exceptions import FileFormatError
7
9
  from numbers_parser.cell import ErrorCell
8
10
 
11
+ logger = logging.getLogger(numbers_parser_name)
12
+
9
13
 
10
14
  def command_line_parser():
11
15
  parser = argparse.ArgumentParser(
@@ -49,6 +53,9 @@ def command_line_parser():
49
53
  "-t", "--table", action="append", help="Names of table(s) to include in export"
50
54
  )
51
55
  parser.add_argument("document", nargs="*", help="Document(s) to export")
56
+ parser.add_argument(
57
+ "--debug", default=False, action="store_true", help="Enable debug logging"
58
+ )
52
59
  return parser
53
60
 
54
61
 
@@ -100,6 +107,13 @@ def main():
100
107
  elif len(args.document) == 0:
101
108
  parser.print_help()
102
109
  else:
110
+ hdlr = logging.StreamHandler()
111
+ hdlr.setFormatter(logging.Formatter("%(levelname)s:%(name)s:%(message)s"))
112
+ logger.addHandler(hdlr)
113
+ if args.debug:
114
+ logger.setLevel("DEBUG")
115
+ else:
116
+ logger.setLevel("ERROR")
103
117
  for filename in args.document:
104
118
  try:
105
119
  if args.list_sheets:
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import json
3
+ import logging
3
4
  import regex
4
5
  import sys
5
6
 
@@ -9,14 +10,17 @@ from base64 import b64decode
9
10
  from binascii import hexlify
10
11
  from compact_json import Formatter
11
12
 
12
-
13
13
  from numbers_parser.file import read_numbers_file
14
14
  from numbers_parser import _get_version
15
+ from numbers_parser import __name__ as numbers_parser_name
15
16
  from numbers_parser.iwafile import IWAFile
16
17
  from numbers_parser.exceptions import FileFormatError, UnsupportedError, FileError
17
18
  from numbers_parser.numbers_uuid import NumbersUUID
18
19
 
19
20
 
21
+ logger = logging.getLogger(numbers_parser_name)
22
+
23
+
20
24
  def ensure_directory_exists(prefix, path):
21
25
  """Ensure that a path's directory exists."""
22
26
  parts = os.path.split(path)
@@ -113,6 +117,9 @@ def main():
113
117
  "--pretty", action="store_true", help="Enable all prettifying options"
114
118
  )
115
119
  parser.add_argument("--output", "-o", help="directory name to unpack into")
120
+ parser.add_argument(
121
+ "--debug", default=False, action="store_true", help="Enable debug logging"
122
+ )
116
123
  args = parser.parse_args()
117
124
  if args.version:
118
125
  print(_get_version())
@@ -125,6 +132,13 @@ def main():
125
132
  elif len(args.document) == 0:
126
133
  parser.print_help()
127
134
  else:
135
+ hdlr = logging.StreamHandler()
136
+ hdlr.setFormatter(logging.Formatter("%(levelname)s:%(name)s:%(message)s"))
137
+ logger.addHandler(hdlr)
138
+ if args.debug:
139
+ logger.setLevel("DEBUG")
140
+ else:
141
+ logger.setLevel("ERROR")
128
142
  for document in args.document:
129
143
  output_dir = args.output or document.replace(".numbers", "")
130
144
  try:
@@ -6,6 +6,7 @@ from numbers_parser.cell_storage import CellType, CellStorage
6
6
 
7
7
  from pendulum import duration, Duration, DateTime
8
8
  from functools import lru_cache
9
+ from typing import List, Tuple
9
10
 
10
11
 
11
12
  class Cell:
@@ -25,7 +26,7 @@ class Cell:
25
26
  return cell
26
27
 
27
28
  @classmethod
28
- def from_storage(cls, cell_storage: CellStorage):
29
+ def from_storage(cls, cell_storage: CellStorage): # noqa: C901
29
30
  row_col = (cell_storage.row_num, cell_storage.col_num)
30
31
  merge_cells = cell_storage.model.merge_cell_ranges(cell_storage.table_id)
31
32
  is_merged = row_col in merge_cells
@@ -48,8 +49,8 @@ class Cell:
48
49
  cell = DurationCell(*row_col, value)
49
50
  elif cell_storage.type == CellType.ERROR:
50
51
  cell = ErrorCell(*row_col)
51
- elif cell_storage.type == CellType.BULLET:
52
- cell = BulletedTextCell(*row_col, cell_storage.value)
52
+ elif cell_storage.type == CellType.RICH_TEXT:
53
+ cell = RichTextCell(*row_col, cell_storage.value)
53
54
  else:
54
55
  raise UnsupportedError( # pragma: no cover
55
56
  f"Unsupport cell type {cell_storage.type} "
@@ -140,18 +141,20 @@ class TextCell(Cell):
140
141
  return self._value
141
142
 
142
143
 
143
- class BulletedTextCell(Cell):
144
+ class RichTextCell(Cell):
144
145
  def __init__(self, row_num: int, col_num: int, value):
145
146
  self._type = TSTArchives.automaticCellType
146
147
  super().__init__(row_num, col_num, value["text"])
147
148
  self._bullets = value["bullets"]
148
- self._formatted_bullets = [
149
- value["bullet_chars"][i] + " " + value["bullets"][i]
150
- if value["bullet_chars"][i] is not None
151
- else value["bullets"][i]
152
- for i in range(len(self._bullets))
153
- ]
154
- self.is_bulleted = True
149
+ self._hyperlinks = value["hyperlinks"]
150
+ if value["bulleted"]:
151
+ self._formatted_bullets = [
152
+ value["bullet_chars"][i] + " " + value["bullets"][i]
153
+ if value["bullet_chars"][i] is not None
154
+ else value["bullets"][i]
155
+ for i in range(len(self._bullets))
156
+ ]
157
+ self.is_bulleted = True
155
158
 
156
159
  @property
157
160
  def value(self) -> str:
@@ -165,6 +168,15 @@ class BulletedTextCell(Cell):
165
168
  def formatted_bullets(self) -> str:
166
169
  return self._formatted_bullets
167
170
 
171
+ @property
172
+ def hyperlinks(self) -> List[Tuple]:
173
+ return self._hyperlinks
174
+
175
+
176
+ # Backwards compatibility to earlier class names
177
+ class BulletedTextCell(RichTextCell):
178
+ pass
179
+
168
180
 
169
181
  class EmptyCell(Cell):
170
182
  def __init__(self, row_num: int, col_num: int):
@@ -94,32 +94,6 @@ CELL_STORAGE_MAP_V5 = OrderedDict(
94
94
  ]
95
95
  )
96
96
 
97
- # CELL_STORAGE_MAP_V4 = OrderedDict(
98
- # [
99
- # (0x2, {"attr": "cell_style_id"}),
100
- # (0x80, {"attr": "text_style_id"}), # SheetJS skips
101
- # (0x400, {"attr": "conditional_style_id"}), # SheetJS skips
102
- # (0x800, {"attr": "conditional_style_rule_id"}), # SheetJS skips
103
- # (0x4, {"attr": "current_format_id"}), # SheetJS skips
104
- # (0x8, {"attr": "formula_id"}), # SheetJS skips
105
- # (0x100, {"attr": "formula_error_id"}), # SheetJS skips
106
- # (0x200, {"attr": "rich_id"}),
107
- # (0x1000, {"attr": "comment_id"}), # SheetJS skips
108
- # (0x2000, {"attr": "import_warning_id"}), # SheetJS skips
109
- # (0x10, {"attr": "string_id"}),
110
- # (0x20, {"attr": "double", "size": 8}),
111
- # (0x40, {"attr": "seconds", "size": 8}),
112
- # (0x10000, {"attr": "num_format_id"}), # SheetJS skips
113
- # (0x80000, {"attr": "currency_format_id"}), # SheetJS skips
114
- # (0x20000, {"attr": "date_format_id"}), # SheetJS skips
115
- # (0x40000, {"attr": "duration_format_id"}), # SheetJS skips
116
- # (0x100000, {"attr": "control_format_id"}), # SheetJS skips
117
- # (0x200000, {"attr": "custom_format_id"}), # SheetJS skips
118
- # (0x400000, {"attr": "base_format_id"}), # SheetJS skips
119
- # (0x800000, {"attr": "multiple_choice_id"}), # SheetJS skips
120
- # ]
121
- # )
122
-
123
97
 
124
98
  class CellStorage:
125
99
  def __init__( # noqa: C901
@@ -178,8 +152,8 @@ class CellStorage:
178
152
  self.value = None
179
153
  self.type = CellType.ERROR
180
154
  elif cell_type == TSTArchives.automaticCellType:
181
- self.value = self.model.table_bullets(self.table_id, self.rich_id)
182
- self.type = CellType.BULLET
155
+ self.value = self.model.table_rich_text(self.table_id, self.rich_id)
156
+ self.type = CellType.RICH_TEXT
183
157
  elif cell_type == 10:
184
158
  self.value = self.d128
185
159
  self.type = CellType.NUMBER
@@ -43,7 +43,7 @@ class CellType(IntEnum):
43
43
  BOOL = 5
44
44
  DURATION = 6
45
45
  ERROR = 7
46
- BULLET = 8
46
+ RICH_TEXT = 8
47
47
 
48
48
 
49
49
  class CellPadding(IntEnum):
@@ -1,3 +1,5 @@
1
+ import logging
2
+
1
3
  from io import BytesIO
2
4
  from zipfile import ZipFile, BadZipFile
3
5
 
@@ -6,8 +8,12 @@ from numbers_parser.exceptions import FileError, FileFormatError
6
8
 
7
9
  import os
8
10
 
11
+ logger = logging.getLogger(__name__)
12
+ debug = logger.debug
13
+
9
14
 
10
15
  def read_numbers_file(path, file_handler=None, object_handler=None):
16
+ debug("read_numbers_file: path=%s", path)
11
17
  if os.path.isdir(path):
12
18
  if os.path.isfile(os.path.join(path, "Index.zip")):
13
19
  get_objects_from_zip_file(
@@ -80,6 +86,7 @@ def extract_iwa_archives(blob, filename, file_handler, object_handler):
80
86
  return
81
87
 
82
88
  try:
89
+ debug("extract_iwa_archives: filename=%s", filename)
83
90
  iwaf = IWAFile.from_buffer(blob, filename)
84
91
  except Exception as e: # pragma: no cover
85
92
  raise FileFormatError(f"{filename}: invalid IWA file {filename}") from e
@@ -0,0 +1,69 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: TSCHArchives_GEN.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf.internal import builder as _builder
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ # @@protoc_insertion_point(imports)
10
+
11
+ _sym_db = _symbol_database.Default()
12
+
13
+
14
+ import numbers_parser.generated.TSPMessages_pb2 as TSPMessages__pb2
15
+ import numbers_parser.generated.TSKArchives_pb2 as TSKArchives__pb2
16
+ import numbers_parser.generated.TSDArchives_pb2 as TSDArchives__pb2
17
+ import numbers_parser.generated.TSSArchives_pb2 as TSSArchives__pb2
18
+ import numbers_parser.generated.TSCHArchives_Common_pb2 as TSCHArchives__Common__pb2
19
+ import numbers_parser.generated.TSCH3DArchives_pb2 as TSCH3DArchives__pb2
20
+
21
+
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16TSCHArchives_GEN.proto\x12\x0eTSCH.Generated\x1a\x11TSPMessages.proto\x1a\x11TSKArchives.proto\x1a\x11TSDArchives.proto\x1a\x11TSSArchives.proto\x1a\x19TSCHArchives_Common.proto\x1a\x14TSCH3DArchives.proto\"\xae\x0c\n\x11\x43hartStyleArchive\x12*\n\"tschchartinfodefault3dchartopacity\x18\x01 \x01(\x02\x12O\n\"tschchartinfoarea3dlightingpackage\x18\x02 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12N\n!tschchartinfobar3dlightingpackage\x18\x03 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12Q\n$tschchartinfocolumn3dlightingpackage\x18\x04 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12R\n%tschchartinfodefault3dlightingpackage\x18\x05 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12O\n\"tschchartinfoline3dlightingpackage\x18\x06 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12N\n!tschchartinfopie3dlightingpackage\x18\x07 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12\x31\n)tschchartinfodefaultaxisanchorlabelatends\x18| \x01(\x08\x12<\n\"tschchartinfodefaultbackgroundfill\x18\x08 \x01(\x0b\x32\x10.TSD.FillArchive\x12@\n$tschchartinfodefaultbackgroundstroke\x18\t \x01(\x0b\x32\x12.TSD.StrokeArchive\x12)\n!tschchartinfodefaultborderopacity\x18\n \x01(\x02\x12<\n tschchartinfodefaultbordershadow\x18\x0b \x01(\x0b\x32\x12.TSD.ShadowArchive\x12<\n tschchartinfodefaultborderstroke\x18\x0c \x01(\x0b\x32\x12.TSD.StrokeArchive\x12)\n!tschchartinfodefaultcombinelayers\x18\r \x01(\x08\x12:\n2tschchartinfodefaultdatasetnameparagraphstyleindex\x18\x15 \x01(\x05\x12@\n&tschchartinfodefaultgridbackgroundfill\x18\x0e \x01(\x0b\x32\x10.TSD.FillArchive\x12\x31\n)tschchartinfodefaultgridbackgroundopacity\x18\x0f \x01(\x02\x12\'\n\x1ftschchartinfodefaultinterbargap\x18\x10 \x01(\x02\x12\'\n\x1ftschchartinfodefaultintersetgap\x18\x11 \x01(\x02\x12\x34\n,tschchartinfodefaultradarradiusgridlinecurve\x18\x1d \x01(\x08\x12\x35\n-tschchartinfodefaultroundedcornerouterendonly\x18{ \x01(\x08\x12/\n\'tschchartinfodefaultroundedcornerradius\x18z \x01(\x02\x12&\n\x1etschchartinfodefaultshowborder\x18\x12 \x01(\x08\x12\x32\n\x1etschchartinfodefaulttitlecolor\x18\x13 \x01(\x0b\x32\n.TSP.Color\x12\x34\n,tschchartinfodefaulttitleparagraphstyleindex\x18\x14 \x01(\x05\x32L\n\x07\x63urrent\x12\x17.TSCH.ChartStyleArchive\x18\x90N \x01(\x0b\x32!.TSCH.Generated.ChartStyleArchive\"\xab\r\n\x14\x43hartNonStyleArchive\x12&\n\x1etschchartinfodefault3dbarshape\x18\x01 \x01(\x05\x12(\n tschchartinfodefault3dbeveledges\x18\x02 \x01(\x08\x12.\n&tschchartinfodefault3dintersetdepthgap\x18\x03 \x01(\x02\x12\x42\n\x1etschchartinfodefault3drotation\x18\x04 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12<\n\x18tschchartinfoarea3dscale\x18\x05 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12;\n\x17tschchartinfobar3dscale\x18\x06 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12>\n\x1atschchartinfocolumn3dscale\x18\x07 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12?\n\x1btschchartinfodefault3dscale\x18\x08 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12<\n\x18tschchartinfoline3dscale\x18\t \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12;\n\x17tschchartinfopie3dscale\x18\n \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12\x42\n\x1etschchartinfodefault3dviewport\x18\x0b \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12(\n tschchartinfoareacalloutlinetype\x18p \x01(\x05\x12\'\n\x1ftschchartinfobarcalloutlinetype\x18q \x01(\x05\x12*\n\"tschchartinfobubblecalloutlinetype\x18r \x01(\x05\x12+\n#tschchartinfodefaultcalloutlinetype\x18w \x01(\x05\x12(\n tschchartinfolinecalloutlinetype\x18s \x01(\x05\x12\'\n\x1ftschchartinfopiecalloutlinetype\x18o \x01(\x05\x12+\n#tschchartinfoscattercalloutlinetype\x18t \x01(\x05\x12/\n\'tschchartinfostackedareacalloutlinetype\x18u \x01(\x05\x12.\n&tschchartinfostackedbarcalloutlinetype\x18v \x01(\x05\x12?\n7tschchartinfodefaultdeprecatedroundedcornerouterendonly\x18y \x01(\x08\x12\x39\n1tschchartinfodefaultdeprecatedroundedcornerradius\x18x \x01(\x02\x12/\n\'tschchartinfodefaultdatasetnamelocation\x18\x18 \x01(\x05\x12\x33\n+tschchartinfodefaultdonutplacetitleatcenter\x18\x1c \x01(\x08\x12\'\n\x1ftschchartinfodefaultinnerradius\x18\x1b \x01(\x02\x12\x30\n(tschchartinfodefaultmultidatacontroltype\x18\x19 \x01(\x05\x12)\n!tschchartinfodefaultpiestartangle\x18\x13 \x01(\x02\x12+\n#tschchartinfodefaultradarstartangle\x18\x1d \x01(\x02\x12&\n\x1etschchartinfodefaultshowlegend\x18\x14 \x01(\x08\x12%\n\x1dtschchartinfodefaultshowtitle\x18\x15 \x01(\x08\x12*\n\"tschchartinfodefaultskiphiddendata\x18\x16 \x01(\x08\x12!\n\x19tschchartinfodefaulttitle\x18\x17 \x01(\t2R\n\x07\x63urrent\x12\x1a.TSCH.ChartNonStyleArchive\x18\x90N \x01(\x0b\x32$.TSCH.Generated.ChartNonStyleArchive\"\xed\x02\n\x12LegendStyleArchive\x12\x34\n\x1atschlegendmodeldefaultfill\x18\x01 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x36\n.tschlegendmodeldefaultlabelparagraphstyleindex\x18\x02 \x01(\x05\x12%\n\x1dtschlegendmodeldefaultopacity\x18\x03 \x01(\x02\x12\x38\n\x1ctschlegendmodeldefaultshadow\x18\x04 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x38\n\x1ctschlegendmodeldefaultstroke\x18\x05 \x01(\x0b\x32\x12.TSD.StrokeArchive2N\n\x07\x63urrent\x12\x18.TSCH.LegendStyleArchive\x18\x90N \x01(\x0b\x32\".TSCH.Generated.LegendStyleArchive\"m\n\x15LegendNonStyleArchive2T\n\x07\x63urrent\x12\x1b.TSCH.LegendNonStyleArchive\x18\x90N \x01(\x0b\x32%.TSCH.Generated.LegendNonStyleArchive\"\xe1\x13\n\x15\x43hartAxisStyleArchive\x12.\n&tschchartaxiscategory3dgridlineopacity\x18\x01 \x01(\x02\x12+\n#tschchartaxisvalue3dgridlineopacity\x18\x02 \x01(\x02\x12\x41\n%tschchartaxiscategory3dgridlinestroke\x18\x03 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12>\n\"tschchartaxisvalue3dgridlinestroke\x18\x04 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12.\n&tschchartaxiscategoryhorizontalspacing\x18\x05 \x01(\x05\x12\x37\n/tschchartaxisdefaultlabelanglebaselinedirection\x18. \x01(\x05\x12\x35\n-tschchartaxiscategorylabelparagraphstyleindex\x18\x06 \x01(\x05\x12\x34\n,tschchartaxisdefaultlabelparagraphstyleindex\x18\x07 \x01(\x05\x12\x32\n*tschchartaxisvaluelabelparagraphstyleindex\x18\x08 \x01(\x05\x12.\n&tschchartaxiscategorylabelsorientation\x18\t \x01(\x02\x12-\n%tschchartaxisdefaultlabelsorientation\x18\n \x01(\x02\x12+\n#tschchartaxisvaluelabelsorientation\x18\x0b \x01(\x02\x12\x31\n)tschchartaxiscategorymajorgridlineopacity\x18\x0c \x01(\x02\x12.\n&tschchartaxisvaluemajorgridlineopacity\x18\r \x01(\x02\x12\x44\n(tschchartaxiscategorymajorgridlineshadow\x18\x0e \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x41\n%tschchartaxisvaluemajorgridlineshadow\x18\x0f \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x44\n(tschchartaxiscategorymajorgridlinestroke\x18\x10 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x41\n%tschchartaxisvaluemajorgridlinestroke\x18\x11 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x31\n)tschchartaxiscategoryminorgridlineopacity\x18\x12 \x01(\x02\x12.\n&tschchartaxisvalueminorgridlineopacity\x18\x13 \x01(\x02\x12\x44\n(tschchartaxiscategoryminorgridlineshadow\x18\x14 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x41\n%tschchartaxisvalueminorgridlineshadow\x18\x15 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x44\n(tschchartaxiscategoryminorgridlinestroke\x18\x16 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x41\n%tschchartaxisvalueminorgridlinestroke\x18\x17 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12%\n\x1dtschchartaxiscategoryshowaxis\x18\x18 \x01(\x08\x12\"\n\x1atschchartaxisvalueshowaxis\x18\x19 \x01(\x08\x12.\n&tschchartaxisdefaultshowextensionlines\x18/ \x01(\x08\x12\x32\n*tschchartaxiscategoryshowgridlinetickmarks\x18* \x01(\x08\x12/\n\'tschchartaxisvalueshowgridlinetickmarks\x18+ \x01(\x08\x12*\n\"tschchartaxiscategoryshowlastlabel\x18\x1a \x01(\x08\x12/\n\'tschchartaxiscategoryshowmajorgridlines\x18\x1b \x01(\x08\x12\x34\n,tschchartaxispolarcategoryshowmajorgridlines\x18, \x01(\x08\x12,\n$tschchartaxisvalueshowmajorgridlines\x18\x1c \x01(\x08\x12/\n\'tschchartaxiscategoryshowmajortickmarks\x18\x1d \x01(\x08\x12,\n$tschchartaxisvalueshowmajortickmarks\x18\x1e \x01(\x08\x12*\n\"tschchartaxisvalueshowminimumlabel\x18\x1f \x01(\x08\x12/\n\'tschchartaxiscategoryshowminorgridlines\x18 \x01(\x08\x12,\n$tschchartaxisvalueshowminorgridlines\x18! \x01(\x08\x12/\n\'tschchartaxiscategoryshowminortickmarks\x18\" \x01(\x08\x12,\n$tschchartaxisvalueshowminortickmarks\x18# \x01(\x08\x12-\n%tschchartaxiscategorytickmarklocation\x18$ \x01(\x05\x12*\n\"tschchartaxisvaluetickmarklocation\x18% \x01(\x05\x12\x35\n-tschchartaxiscategorytitleparagraphstyleindex\x18& \x01(\x05\x12\x34\n,tschchartaxisdefaulttitleparagraphstyleindex\x18\' \x01(\x05\x12\x32\n*tschchartaxisvaluetitleparagraphstyleindex\x18( \x01(\x05\x12,\n$tschchartaxiscategoryverticalspacing\x18) \x01(\x05\x32T\n\x07\x63urrent\x12\x1b.TSCH.ChartAxisStyleArchive\x18\x90N \x01(\x0b\x32%.TSCH.Generated.ChartAxisStyleArchive\"\xa7\n\n\x18\x43hartAxisNonStyleArchive\x12\x43\n!tschchartaxisdefault1_0dateformat\x18\x14 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12\x45\n#tschchartaxisdefault1_0numberformat\x18\x02 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12+\n#tschchartaxisdefault3dlabelposition\x18\x01 \x01(\x05\x12@\n\x1etschchartaxisdefaultdateformat\x18\x16 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12\x44\n\"tschchartaxisdefaultdurationformat\x18\x15 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12*\n\"tschchartaxisdefaultlabelexplosion\x18\x17 \x01(\x02\x12\x42\n tschchartaxisdefaultnumberformat\x18* \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12,\n$tschchartaxisdefaultnumberformattype\x18\x03 \x01(\x05\x12)\n!tschchartaxisvaluenumberofdecades\x18\x04 \x01(\x05\x12\x30\n(tschchartaxisvaluenumberofmajorgridlines\x18\x05 \x01(\x05\x12\x30\n(tschchartaxisvaluenumberofminorgridlines\x18\x06 \x01(\x05\x12(\n tschchartaxiscategoryplottoedges\x18\x07 \x01(\x08\x12\x1f\n\x17tschchartaxisvaluescale\x18\x08 \x01(\x05\x12\'\n\x1ftschchartaxiscategoryshowlabels\x18\t \x01(\x08\x12&\n\x1etschchartaxisdefaultshowlabels\x18\n \x01(\x08\x12$\n\x1ctschchartaxisvalueshowlabels\x18\x0b \x01(\x08\x12-\n%tschchartaxiscategoryshowserieslabels\x18\x0c \x01(\x08\x12.\n&tschchartaxismultidatashowserieslabels\x18\x13 \x01(\x08\x12&\n\x1etschchartaxiscategoryshowtitle\x18\r \x01(\x08\x12#\n\x1btschchartaxisvalueshowtitle\x18\x0e \x01(\x08\x12\"\n\x1atschchartaxiscategorytitle\x18\x0f \x01(\t\x12\x1f\n\x17tschchartaxisvaluetitle\x18\x10 \x01(\t\x12\x46\n\x1btschchartaxisdefaultusermax\x18\x11 \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive\x12\x46\n\x1btschchartaxisdefaultusermin\x18\x12 \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive2Z\n\x07\x63urrent\x12\x1e.TSCH.ChartAxisNonStyleArchive\x18\x90N \x01(\x0b\x32(.TSCH.Generated.ChartAxisNonStyleArchive\"\xb3\x35\n\x17\x43hartSeriesStyleArchive\x12I\n+tschchartseriesdefaultcalloutlineendlineend\x18\x82\x01 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12K\n-tschchartseriesdefaultcalloutlinestartlineend\x18\x81\x01 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12I\n,tschchartseriesdefaultcalloutlinestrokestyle\x18\x80\x01 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x42\n%tschchartseriesdefaulterrorbarlineend\x18\x01 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12J\n-tschchartseriesdefaulterrorbarlineendscatterx\x18\x02 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12@\n$tschchartseriesdefaulterrorbarshadow\x18\x03 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12-\n%tschchartseriesdefaulterrorbarspacing\x18\x62 \x01(\x05\x12\x35\n-tschchartseriesdefaulterrorbarspacingscatterx\x18\x63 \x01(\x05\x12@\n$tschchartseriesdefaulterrorbarstroke\x18\x04 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12H\n,tschchartseriesdefaulterrorbarstrokescatterx\x18\x05 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x33\n\x19tschchartseries3dareafill\x18\x06 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x32\n\x18tschchartseries3dbarfill\x18\x07 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x35\n\x1btschchartseries3dcolumnfill\x18\x08 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x33\n\x19tschchartseries3dlinefill\x18\t \x01(\x0b\x32\x10.TSD.FillArchive\x12\x32\n\x18tschchartseries3dpiefill\x18\n \x01(\x0b\x32\x10.TSD.FillArchive\x12\x31\n\x17tschchartseriesareafill\x18\x0b \x01(\x0b\x32\x10.TSD.FillArchive\x12\x30\n\x16tschchartseriesbarfill\x18\x0c \x01(\x0b\x32\x10.TSD.FillArchive\x12\x33\n\x19tschchartseriescolumnfill\x18\r \x01(\x0b\x32\x10.TSD.FillArchive\x12\x34\n\x1atschchartseriesdefaultfill\x18\x0e \x01(\x0b\x32\x10.TSD.FillArchive\x12\x36\n\x1ctschchartseriesmixedareafill\x18\x0f \x01(\x0b\x32\x10.TSD.FillArchive\x12\x38\n\x1etschchartseriesmixedcolumnfill\x18\x10 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x30\n\x16tschchartseriespiefill\x18\x11 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x37\n\x1ctschchartseriesradarareafill\x18\xa5\x01 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x43\n:tschchartseriesradarareafilluseseriesstrokealphamultiplier\x18\xbd\x01 \x01(\x02\x12\x34\n+tschchartseriesradarareafilluseseriesstroke\x18\xbc\x01 \x01(\x08\x12\x33\n+tschchartseriesarealabelparagraphstyleindex\x18\x12 \x01(\x05\x12\x32\n*tschchartseriesbarlabelparagraphstyleindex\x18\x13 \x01(\x05\x12\x36\n.tschchartseriesdefaultlabelparagraphstyleindex\x18\x14 \x01(\x05\x12\x35\n,tschchartseriesdonutlabelparagraphstyleindex\x18\x98\x01 \x01(\x05\x12\x33\n+tschchartserieslinelabelparagraphstyleindex\x18\x15 \x01(\x05\x12\x34\n,tschchartseriesmixedlabelparagraphstyleindex\x18\x16 \x01(\x05\x12\x32\n*tschchartseriespielabelparagraphstyleindex\x18\x17 \x01(\x05\x12\x35\n,tschchartseriesradarlabelparagraphstyleindex\x18\xa7\x01 \x01(\x05\x12%\n\x1dtschchartseriesdefaultopacity\x18\x18 \x01(\x02\x12:\n2tschchartseriesareaoutsidelabelparagraphstyleindex\x18\x19 \x01(\x05\x12\x39\n1tschchartseriesbaroutsidelabelparagraphstyleindex\x18\x1a \x01(\x05\x12=\n5tschchartseriesdefaultoutsidelabelparagraphstyleindex\x18\x1b \x01(\x05\x12<\n3tschchartseriesdonutoutsidelabelparagraphstyleindex\x18\x99\x01 \x01(\x05\x12;\n3tschchartseriesmixedoutsidelabelparagraphstyleindex\x18\x1c \x01(\x05\x12\x39\n1tschchartseriespieoutsidelabelparagraphstyleindex\x18\x1d \x01(\x05\x12<\n3tschchartseriesradaroutsidelabelparagraphstyleindex\x18\xa8\x01 \x01(\x05\x12\x37\n\x1btschchartseries3dareashadow\x18\x1e \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x36\n\x1atschchartseries3dbarshadow\x18\x1f \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x39\n\x1dtschchartseries3dcolumnshadow\x18 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x37\n\x1btschchartseries3dlineshadow\x18! \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x36\n\x1atschchartseries3dpieshadow\x18\" \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x35\n\x19tschchartseriesareashadow\x18# \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x34\n\x18tschchartseriesbarshadow\x18$ \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x37\n\x1btschchartseriesbubbleshadow\x18% \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x38\n\x1ctschchartseriesdefaultshadow\x18& \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x35\n\x19tschchartserieslineshadow\x18\' \x01(\x0b\x32\x12.TSD.ShadowArchive\x12:\n\x1etschchartseriesmixedareashadow\x18( \x01(\x0b\x32\x12.TSD.ShadowArchive\x12<\n tschchartseriesmixedcolumnshadow\x18) \x01(\x0b\x32\x12.TSD.ShadowArchive\x12:\n\x1etschchartseriesmixedlineshadow\x18* \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x34\n\x18tschchartseriespieshadow\x18+ \x01(\x0b\x32\x12.TSD.ShadowArchive\x12;\n\x1etschchartseriesradarareashadow\x18\xa9\x01 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x38\n\x1ctschchartseriesscattershadow\x18, \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x35\n\x19tschchartseriesareastroke\x18- \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x34\n\x18tschchartseriesbarstroke\x18. \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x37\n\x1btschchartseriesbubblestroke\x18/ \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x35\n\x19tschchartserieslinestroke\x18\x30 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12:\n\x1etschchartseriesmixedareastroke\x18\x31 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12<\n tschchartseriesmixedcolumnstroke\x18\x32 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12:\n\x1etschchartseriesmixedlinestroke\x18\x33 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x34\n\x18tschchartseriespiestroke\x18\x34 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12;\n\x1etschchartseriesradarareastroke\x18\xac\x01 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x38\n\x1ctschchartseriesscatterstroke\x18\x35 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x37\n\x1dtschchartseriesareasymbolfill\x18\x36 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x39\n\x1ftschchartseriesbubblesymbolfill\x18\x37 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x37\n\x1dtschchartserieslinesymbolfill\x18\x38 \x01(\x0b\x32\x10.TSD.FillArchive\x12<\n\"tschchartseriesmixedareasymbolfill\x18\x39 \x01(\x0b\x32\x10.TSD.FillArchive\x12<\n\"tschchartseriesmixedlinesymbolfill\x18: \x01(\x0b\x32\x10.TSD.FillArchive\x12=\n\"tschchartseriesradarareasymbolfill\x18\xaf\x01 \x01(\x0b\x32\x10.TSD.FillArchive\x12:\n tschchartseriesscattersymbolfill\x18; \x01(\x0b\x32\x10.TSD.FillArchive\x12\x32\n*tschchartseriesareasymbolfilluseseriesfill\x18< \x01(\x08\x12\x32\n*tschchartserieslinesymbolfilluseseriesfill\x18= \x01(\x08\x12\x37\n/tschchartseriesmixedareasymbolfilluseseriesfill\x18> \x01(\x08\x12\x37\n/tschchartseriesmixedlinesymbolfilluseseriesfill\x18? \x01(\x08\x12\x38\n/tschchartseriesradarareasymbolfilluseseriesfill\x18\xb1\x01 \x01(\x08\x12\x34\n,tschchartseriesareasymbolfilluseseriesstroke\x18@ \x01(\x08\x12\x36\n.tschchartseriesbubblesymbolfilluseseriesstroke\x18\x41 \x01(\x08\x12\x34\n,tschchartserieslinesymbolfilluseseriesstroke\x18\x42 \x01(\x08\x12\x39\n1tschchartseriesmixedareasymbolfilluseseriesstroke\x18\x43 \x01(\x08\x12\x39\n1tschchartseriesmixedlinesymbolfilluseseriesstroke\x18\x44 \x01(\x08\x12:\n1tschchartseriesradarareasymbolfilluseseriesstroke\x18\xb3\x01 \x01(\x08\x12\x37\n/tschchartseriesscattersymbolfilluseseriesstroke\x18\x45 \x01(\x08\x12%\n\x1dtschchartseriesareasymbolsize\x18\x46 \x01(\x02\x12%\n\x1dtschchartserieslinesymbolsize\x18G \x01(\x02\x12*\n\"tschchartseriesmixedareasymbolsize\x18H \x01(\x02\x12*\n\"tschchartseriesmixedlinesymbolsize\x18I \x01(\x02\x12+\n\"tschchartseriesradarareasymbolsize\x18\xb5\x01 \x01(\x02\x12(\n tschchartseriesscattersymbolsize\x18J \x01(\x02\x12;\n\x1ftschchartseriesareasymbolstroke\x18K \x01(\x0b\x32\x12.TSD.StrokeArchive\x12=\n!tschchartseriesbubblesymbolstroke\x18L \x01(\x0b\x32\x12.TSD.StrokeArchive\x12;\n\x1ftschchartserieslinesymbolstroke\x18M \x01(\x0b\x32\x12.TSD.StrokeArchive\x12@\n$tschchartseriesmixedareasymbolstroke\x18N \x01(\x0b\x32\x12.TSD.StrokeArchive\x12@\n$tschchartseriesmixedlinesymbolstroke\x18O \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x41\n$tschchartseriesradarareasymbolstroke\x18\xb7\x01 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12>\n\"tschchartseriesscattersymbolstroke\x18P \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x41\n%tschchartseriesdefaulttrendlineshadow\x18U \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x41\n%tschchartseriesdefaulttrendlinestroke\x18V \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x36\n.tschchartseriesdefaulttrendlineequationopacity\x18Q \x01(\x02\x12\x42\n:tschchartseriesdefaulttrendlineequationparagraphstyleindex\x18R \x01(\x05\x12\x36\n.tschchartseriesdefaulttrendlinersquaredopacity\x18S \x01(\x02\x12\x42\n:tschchartseriesdefaulttrendlinersquaredparagraphstyleindex\x18T \x01(\x05\x12-\n%tschchartseriesareavaluelabelposition\x18W \x01(\x05\x12,\n$tschchartseriesbarvaluelabelposition\x18X \x01(\x05\x12/\n\'tschchartseriesbubblevaluelabelposition\x18Y \x01(\x05\x12\x30\n(tschchartseriesdefaultvaluelabelposition\x18Z \x01(\x05\x12-\n%tschchartserieslinevaluelabelposition\x18[ \x01(\x05\x12\x32\n*tschchartseriesmixedareavaluelabelposition\x18\\ \x01(\x05\x12\x34\n,tschchartseriesmixedcolumnvaluelabelposition\x18] \x01(\x05\x12\x32\n*tschchartseriesmixedlinevaluelabelposition\x18^ \x01(\x05\x12\x33\n*tschchartseriesradarareavaluelabelposition\x18\xb9\x01 \x01(\x05\x12\x30\n(tschchartseriesscattervaluelabelposition\x18_ \x01(\x05\x12\x34\n,tschchartseriesstackedareavaluelabelposition\x18` \x01(\x05\x12\x33\n+tschchartseriesstackedbarvaluelabelposition\x18\x61 \x01(\x05\x12/\n\'tschchartseriesdefaultvaluelabelspacing\x18\x64 \x01(\x05\x32X\n\x07\x63urrent\x12\x1d.TSCH.ChartSeriesStyleArchive\x18\x90N \x01(\x0b\x32\'.TSCH.Generated.ChartSeriesStyleArchive\"\xeb\'\n\x1a\x43hartSeriesNonStyleArchive\x12\x45\n#tschchartseriesdefault1_0dateformat\x18\x45 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12G\n%tschchartseriesdefault1_0numberformat\x18\x15 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12\x43\n!tschchartseriespie1_0numberformat\x18\x16 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12+\n#tschchartseriespie2_3labelexplosion\x18\x10 \x01(\x02\x12,\n$tschchartseriesbubbleadjustmentscale\x18\x01 \x01(\x02\x12\x42\n tschchartseriesdefaultdateformat\x18G \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12\x46\n$tschchartseriesdefaultdurationformat\x18\x46 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12,\n$tschchartseriesareaenablecalloutline\x18g \x01(\x05\x12+\n#tschchartseriesbarenablecalloutline\x18h \x01(\x05\x12.\n&tschchartseriesbubbleenablecalloutline\x18i \x01(\x05\x12/\n\'tschchartseriesdefaultenablecalloutline\x18n \x01(\x05\x12,\n$tschchartserieslineenablecalloutline\x18j \x01(\x05\x12+\n#tschchartseriespieenablecalloutline\x18\x66 \x01(\x05\x12/\n\'tschchartseriesscatterenablecalloutline\x18k \x01(\x05\x12\x33\n+tschchartseriesstackedareaenablecalloutline\x18l \x01(\x05\x12\x32\n*tschchartseriesstackedbarenablecalloutline\x18m \x01(\x05\x12\x64\n0tschchartseriesdefaulterrorbarcustomnegativedata\x18\x02 \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12l\n8tschchartseriesdefaulterrorbarcustomnegativedatascatterx\x18\x03 \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12\x64\n0tschchartseriesdefaulterrorbarcustompositivedata\x18\x04 \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12l\n8tschchartseriesdefaulterrorbarcustompositivedatascatterx\x18\x05 \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12\x30\n(tschchartseriesdefaulterrorbarfixedvalue\x18\x06 \x01(\x02\x12\x38\n0tschchartseriesdefaulterrorbarfixedvaluescatterx\x18\x07 \x01(\x02\x12\x32\n*tschchartseriesdefaulterrorbarpercentvalue\x18\x08 \x01(\x02\x12:\n2tschchartseriesdefaulterrorbarpercentvaluescatterx\x18\t \x01(\x02\x12-\n%tschchartseriesdefaulterrorbarsetting\x18\n \x01(\x05\x12\x35\n-tschchartseriesdefaulterrorbarsettingscatterx\x18\x0b \x01(\x05\x12\x31\n)tschchartseriesdefaulterrorbarstddevvalue\x18\x0c \x01(\x02\x12\x39\n1tschchartseriesdefaulterrorbarstddevvaluescatterx\x18\r \x01(\x02\x12*\n\"tschchartseriesdefaulterrorbartype\x18\x0e \x01(\x05\x12\x32\n*tschchartseriesdefaulterrorbartypescatterx\x18\x0f \x01(\x05\x12)\n tschchartseriespielabelexplosion\x18\x93\x01 \x01(\x02\x12%\n\x1dtschchartseriesbubblelinetype\x18\x11 \x01(\x05\x12#\n\x1btschchartserieslinelinetype\x18\x12 \x01(\x05\x12(\n tschchartseriesmixedlinelinetype\x18\x13 \x01(\x05\x12)\n tschchartseriesradararealinetype\x18\xbd\x01 \x01(\x05\x12&\n\x1etschchartseriesscatterlinetype\x18\x14 \x01(\x05\x12\x44\n\"tschchartseriesdefaultnumberformat\x18\x62 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12@\n\x1etschchartseriespienumberformat\x18\x63 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12.\n&tschchartseriesdefaultnumberformattype\x18\x17 \x01(\x05\x12*\n\"tschchartseriespienumberformattype\x18\x18 \x01(\x05\x12K\n)tschchartseriesstackedpercentnumberformat\x18\x19 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12(\n tschchartseriesdefaultseriestype\x18\x1a \x01(\x05\x12*\n\"tschchartseriesdefaultshowerrorbar\x18\x1b \x01(\x08\x12\x32\n*tschchartseriesdefaultshowerrorbarscatterx\x18\x1c \x01(\x08\x12.\n&tschchartseriesbubbleshowlabelsinfront\x18\x65 \x01(\x08\x12/\n\'tschchartseriesdefaultshowlabelsinfront\x18\x64 \x01(\x08\x12&\n\x1etschchartseriesscattershowline\x18\x1d \x01(\x08\x12-\n%tschchartseriesbubbleshownegativedata\x18\x1e \x01(\x08\x12-\n%tschchartseriesbubbleshowserieslabels\x18\x41 \x01(\x08\x12*\n\"tschchartseriespieshowserieslabels\x18\x1f \x01(\x08\x12.\n&tschchartseriesscattershowserieslabels\x18\x43 \x01(\x08\x12%\n\x1dtschchartseriesareashowsymbol\x18 \x01(\x08\x12%\n\x1dtschchartserieslineshowsymbol\x18! \x01(\x08\x12*\n\"tschchartseriesmixedareashowsymbol\x18\" \x01(\x08\x12*\n\"tschchartseriesmixedlineshowsymbol\x18# \x01(\x08\x12+\n\"tschchartseriesradarareashowsymbol\x18\xa0\x01 \x01(\x08\x12(\n tschchartseriesscattershowsymbol\x18$ \x01(\x08\x12+\n#tschchartseriesdefaultshowtrendline\x18% \x01(\x08\x12*\n\"tschchartseriesareashowvaluelabels\x18& \x01(\x08\x12)\n!tschchartseriesbarshowvaluelabels\x18\' \x01(\x08\x12,\n$tschchartseriesbubbleshowvaluelabels\x18( \x01(\x08\x12-\n%tschchartseriesdefaultshowvaluelabels\x18) \x01(\x08\x12*\n\"tschchartserieslineshowvaluelabels\x18* \x01(\x08\x12+\n#tschchartseriesmixedshowvaluelabels\x18+ \x01(\x08\x12)\n!tschchartseriespieshowvaluelabels\x18, \x01(\x08\x12,\n#tschchartseriesradarshowvaluelabels\x18\xa2\x01 \x01(\x08\x12-\n%tschchartseriesscattershowvaluelabels\x18- \x01(\x08\x12*\n\"tschchartseriesbubblesizedimension\x18. \x01(\x05\x12\'\n\x1etschchartseriesareastacklabels\x18\x8b\x01 \x01(\x08\x12&\n\x1dtschchartseriesbarstacklabels\x18\x8c\x01 \x01(\x08\x12)\n tschchartseriesbubblestacklabels\x18\x8d\x01 \x01(\x08\x12*\n!tschchartseriesdefaultstacklabels\x18\x92\x01 \x01(\x08\x12\'\n\x1etschchartserieslinestacklabels\x18\x8e\x01 \x01(\x08\x12&\n\x1dtschchartseriespiestacklabels\x18\x8a\x01 \x01(\x08\x12*\n!tschchartseriesscatterstacklabels\x18\x8f\x01 \x01(\x08\x12.\n%tschchartseriesstackedareastacklabels\x18\x90\x01 \x01(\x08\x12-\n$tschchartseriesstackedbarstacklabels\x18\x91\x01 \x01(\x08\x12%\n\x1dtschchartseriesareasymboltype\x18/ \x01(\x05\x12%\n\x1dtschchartserieslinesymboltype\x18\x30 \x01(\x05\x12*\n\"tschchartseriesmixedareasymboltype\x18\x31 \x01(\x05\x12*\n\"tschchartseriesmixedlinesymboltype\x18\x32 \x01(\x05\x12+\n\"tschchartseriesradarareasymboltype\x18\xa3\x01 \x01(\x05\x12(\n tschchartseriesscattersymboltype\x18\x33 \x01(\x05\x12\x36\n.tschchartseriesdefaulttrendlineequationoffsetx\x18\x34 \x01(\x02\x12\x36\n.tschchartseriesdefaulttrendlineequationoffsety\x18\x35 \x01(\x02\x12\x32\n*tschchartseriesdefaulttrendlinelabelstring\x18\x36 \x01(\t\x12,\n$tschchartseriesdefaulttrendlineorder\x18\x37 \x01(\x05\x12-\n%tschchartseriesdefaulttrendlineperiod\x18\x38 \x01(\x05\x12\x36\n.tschchartseriesdefaulttrendlinersquaredoffsetx\x18\x39 \x01(\x02\x12\x36\n.tschchartseriesdefaulttrendlinersquaredoffsety\x18: \x01(\x02\x12\x33\n+tschchartseriesdefaulttrendlineshowequation\x18; \x01(\x08\x12\x30\n(tschchartseriesdefaulttrendlineshowlabel\x18< \x01(\x08\x12\x32\n*tschchartseriesdefaulttrendlineshowr2value\x18= \x01(\x08\x12+\n#tschchartseriesdefaulttrendlinetype\x18> \x01(\x05\x12,\n$tschchartseriesbubblevaluelabelsaxis\x18\x42 \x01(\x05\x12-\n%tschchartseriesscattervaluelabelsaxis\x18\x44 \x01(\x05\x12(\n tschchartseriespiewedgeexplosion\x18? \x01(\x02\x12*\n\"tschchartseriesdefaultyaxisordinal\x18@ \x01(\x05\x32^\n\x07\x63urrent\x12 .TSCH.ChartSeriesNonStyleArchive\x18\x90N \x01(\x0b\x32*.TSCH.Generated.ChartSeriesNonStyleArchive\"\xea\x02\n\x19ReferenceLineStyleArchive\x12\x38\n0tschreferencelinedefaultlabelparagraphstyleindex\x18\x03 \x01(\x05\x12:\n\x1etschreferencelinedefaultshadow\x18\x02 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12:\n\x1etschreferencelinedefaultstroke\x18\x01 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12=\n5tschreferencelinedefaultvaluelabelparagraphstyleindex\x18\x04 \x01(\x05\x32\\\n\x07\x63urrent\x12\x1f.TSCH.ReferenceLineStyleArchive\x18\x90N \x01(\x0b\x32).TSCH.Generated.ReferenceLineStyleArchive\"\xa4\x03\n\x1cReferenceLineNonStyleArchive\x12N\n#tschreferencelinedefaultcustomvalue\x18\x06 \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive\x12%\n\x1dtschreferencelinedefaultlabel\x18\x05 \x01(\t\x12)\n!tschreferencelinedefaultshowlabel\x18\x03 \x01(\x08\x12(\n tschreferencelinedefaultshowline\x18\x02 \x01(\x08\x12.\n&tschreferencelinedefaultshowvaluelabel\x18\x04 \x01(\x08\x12$\n\x1ctschreferencelinedefaulttype\x18\x01 \x01(\x05\x32\x62\n\x07\x63urrent\x12\".TSCH.ReferenceLineNonStyleArchive\x18\x90N \x01(\x0b\x32,.TSCH.Generated.ReferenceLineNonStyleArchive\"\xf2\r\n\x1e\x43hartGenericPropertyMapArchive\x12\x1f\n\x17tschchartinfo3dbarshape\x18\x01 \x01(\x05\x12!\n\x19tschchartinfo3dbeveledges\x18\x02 \x01(\x08\x12#\n\x1btschchartinfo3dchartopacity\x18\x03 \x01(\x02\x12\'\n\x1ftschchartinfo3dintersetdepthgap\x18\x04 \x01(\x02\x12K\n\x1etschchartinfo3dlightingpackage\x18\x05 \x01(\x0b\x32#.TSCH.Chart3DLightingPackageArchive\x12;\n\x17tschchartinfo3drotation\x18\x06 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12\x38\n\x14tschchartinfo3dscale\x18\x07 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12;\n\x17tschchartinfo3dviewport\x18\x08 \x01(\x0b\x32\x1a.TSCH.Chart3DVectorArchive\x12*\n\"tschchartinfoaxisanchorlabelatends\x18\t \x01(\x08\x12\x35\n\x1btschchartinfobackgroundfill\x18\n \x01(\x0b\x32\x10.TSD.FillArchive\x12\x39\n\x1dtschchartinfobackgroundstroke\x18\x0b \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\"\n\x1atschchartinfoborderopacity\x18\x0c \x01(\x02\x12\x35\n\x19tschchartinfobordershadow\x18\r \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x35\n\x19tschchartinfoborderstroke\x18\x0e \x01(\x0b\x32\x12.TSD.StrokeArchive\x12$\n\x1ctschchartinfocalloutlinetype\x18\x0f \x01(\x05\x12\"\n\x1atschchartinfocombinelayers\x18\x10 \x01(\x08\x12\x38\n0tschchartinfodeprecatedroundedcornerouterendonly\x18\x11 \x01(\x08\x12\x32\n*tschchartinfodeprecatedroundedcornerradius\x18\x12 \x01(\x02\x12(\n tschchartinfodatasetnamelocation\x18\x13 \x01(\x05\x12\x33\n+tschchartinfodatasetnameparagraphstyleindex\x18\x14 \x01(\x05\x12,\n$tschchartinfodonutplacetitleatcenter\x18\x15 \x01(\x08\x12\x39\n\x1ftschchartinfogridbackgroundfill\x18\x16 \x01(\x0b\x32\x10.TSD.FillArchive\x12*\n\"tschchartinfogridbackgroundopacity\x18\x17 \x01(\x02\x12 \n\x18tschchartinfoinnerradius\x18\x18 \x01(\x02\x12 \n\x18tschchartinfointerbargap\x18\x19 \x01(\x02\x12 \n\x18tschchartinfointersetgap\x18\x1a \x01(\x02\x12)\n!tschchartinfomultidatacontroltype\x18\x1b \x01(\x05\x12\"\n\x1atschchartinfopiestartangle\x18\x1c \x01(\x02\x12-\n%tschchartinforadarradiusgridlinecurve\x18\x1d \x01(\x08\x12$\n\x1ctschchartinforadarstartangle\x18\x1e \x01(\x02\x12.\n&tschchartinforoundedcornerouterendonly\x18\x1f \x01(\x08\x12(\n tschchartinforoundedcornerradius\x18 \x01(\x02\x12\x1f\n\x17tschchartinfoshowborder\x18! \x01(\x08\x12\x1f\n\x17tschchartinfoshowlegend\x18\" \x01(\x08\x12\x1e\n\x16tschchartinfoshowtitle\x18# \x01(\x08\x12#\n\x1btschchartinfoskiphiddendata\x18$ \x01(\x08\x12+\n\x17tschchartinfotitlecolor\x18% \x01(\x0b\x32\n.TSP.Color\x12\x1a\n\x12tschchartinfotitle\x18& \x01(\t\x12-\n%tschchartinfotitleparagraphstyleindex\x18\' \x01(\x05\"\x87\x02\n\x1fLegendGenericPropertyMapArchive\x12-\n\x13tschlegendmodelfill\x18\x01 \x01(\x0b\x32\x10.TSD.FillArchive\x12/\n\'tschlegendmodellabelparagraphstyleindex\x18\x02 \x01(\x05\x12\x1e\n\x16tschlegendmodelopacity\x18\x03 \x01(\x02\x12\x31\n\x15tschlegendmodelshadow\x18\x04 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\x31\n\x15tschlegendmodelstroke\x18\x05 \x01(\x0b\x32\x12.TSD.StrokeArchive\"\xd0\x0f\n\"ChartAxisGenericPropertyMapArchive\x12<\n\x1atschchartaxis1_0dateformat\x18\x01 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12>\n\x1ctschchartaxis1_0numberformat\x18\x02 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12&\n\x1etschchartaxis3dgridlineopacity\x18\x03 \x01(\x02\x12\x39\n\x1dtschchartaxis3dgridlinestroke\x18\x04 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12$\n\x1ctschchartaxis3dlabelposition\x18\x05 \x01(\x05\x12\x39\n\x17tschchartaxisdateformat\x18\x06 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12=\n\x1btschchartaxisdurationformat\x18\x07 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12&\n\x1etschchartaxishorizontalspacing\x18\x08 \x01(\x05\x12\x30\n(tschchartaxislabelanglebaselinedirection\x18\t \x01(\x05\x12#\n\x1btschchartaxislabelexplosion\x18\n \x01(\x02\x12-\n%tschchartaxislabelparagraphstyleindex\x18\x0b \x01(\x05\x12&\n\x1etschchartaxislabelsorientation\x18\x0c \x01(\x02\x12)\n!tschchartaxismajorgridlineopacity\x18\r \x01(\x02\x12<\n tschchartaxismajorgridlineshadow\x18\x0e \x01(\x0b\x32\x12.TSD.ShadowArchive\x12<\n tschchartaxismajorgridlinestroke\x18\x0f \x01(\x0b\x32\x12.TSD.StrokeArchive\x12)\n!tschchartaxisminorgridlineopacity\x18\x10 \x01(\x02\x12<\n tschchartaxisminorgridlineshadow\x18\x11 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12<\n tschchartaxisminorgridlinestroke\x18\x12 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12;\n\x19tschchartaxisnumberformat\x18\x13 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12%\n\x1dtschchartaxisnumberformattype\x18\x14 \x01(\x05\x12$\n\x1ctschchartaxisnumberofdecades\x18\x15 \x01(\x05\x12+\n#tschchartaxisnumberofmajorgridlines\x18\x16 \x01(\x05\x12+\n#tschchartaxisnumberofminorgridlines\x18\x17 \x01(\x05\x12 \n\x18tschchartaxisplottoedges\x18\x18 \x01(\x08\x12\x1a\n\x12tschchartaxisscale\x18\x19 \x01(\x05\x12\x1d\n\x15tschchartaxisshowaxis\x18\x1a \x01(\x08\x12\'\n\x1ftschchartaxisshowextensionlines\x18\x1b \x01(\x08\x12*\n\"tschchartaxisshowgridlinetickmarks\x18\x1c \x01(\x08\x12\x1f\n\x17tschchartaxisshowlabels\x18\x1d \x01(\x08\x12\"\n\x1atschchartaxisshowlastlabel\x18\x1e \x01(\x08\x12\'\n\x1ftschchartaxisshowmajorgridlines\x18\x1f \x01(\x08\x12\'\n\x1ftschchartaxisshowmajortickmarks\x18 \x01(\x08\x12%\n\x1dtschchartaxisshowminimumlabel\x18! \x01(\x08\x12\'\n\x1ftschchartaxisshowminorgridlines\x18\" \x01(\x08\x12\'\n\x1ftschchartaxisshowminortickmarks\x18# \x01(\x08\x12%\n\x1dtschchartaxisshowserieslabels\x18$ \x01(\x08\x12\x1e\n\x16tschchartaxisshowtitle\x18% \x01(\x08\x12%\n\x1dtschchartaxistickmarklocation\x18& \x01(\x05\x12\x1a\n\x12tschchartaxistitle\x18\' \x01(\t\x12-\n%tschchartaxistitleparagraphstyleindex\x18( \x01(\x05\x12?\n\x14tschchartaxisusermax\x18) \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive\x12?\n\x14tschchartaxisusermin\x18* \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive\x12$\n\x1ctschchartaxisverticalspacing\x18+ \x01(\x05\"\xbd!\n$ChartSeriesGenericPropertyMapArchive\x12>\n\x1ctschchartseries1_0dateformat\x18\x01 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12@\n\x1etschchartseries1_0numberformat\x18\x02 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12(\n tschchartseries2_3labelexplosion\x18\x03 \x01(\x02\x12&\n\x1etschchartseriesadjustmentscale\x18\x04 \x01(\x02\x12\x41\n$tschchartseriescalloutlineendlineend\x18\x05 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12\x43\n&tschchartseriescalloutlinestartlineend\x18\x06 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12\x41\n%tschchartseriescalloutlinestrokestyle\x18\x07 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12;\n\x19tschchartseriesdateformat\x18\x08 \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12?\n\x1dtschchartseriesdurationformat\x18\t \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12(\n tschchartseriesenablecalloutline\x18\n \x01(\x05\x12]\n)tschchartserieserrorbarcustomnegativedata\x18\x0b \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12\x65\n1tschchartserieserrorbarcustomnegativedatascatterx\x18\x0c \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12]\n)tschchartserieserrorbarcustompositivedata\x18\r \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12\x65\n1tschchartserieserrorbarcustompositivedatascatterx\x18\x0e \x01(\x0b\x32*.TSCH.ChartsNSArrayOfNSNumberDoubleArchive\x12)\n!tschchartserieserrorbarfixedvalue\x18\x0f \x01(\x02\x12\x31\n)tschchartserieserrorbarfixedvaluescatterx\x18\x10 \x01(\x02\x12;\n\x1etschchartserieserrorbarlineend\x18\x11 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12\x43\n&tschchartserieserrorbarlineendscatterx\x18\x12 \x01(\x0b\x32\x13.TSD.LineEndArchive\x12+\n#tschchartserieserrorbarpercentvalue\x18\x13 \x01(\x02\x12\x33\n+tschchartserieserrorbarpercentvaluescatterx\x18\x14 \x01(\x02\x12&\n\x1etschchartserieserrorbarsetting\x18\x15 \x01(\x05\x12.\n&tschchartserieserrorbarsettingscatterx\x18\x16 \x01(\x05\x12\x39\n\x1dtschchartserieserrorbarshadow\x18\x17 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12&\n\x1etschchartserieserrorbarspacing\x18\x18 \x01(\x05\x12.\n&tschchartserieserrorbarspacingscatterx\x18\x19 \x01(\x05\x12*\n\"tschchartserieserrorbarstddevvalue\x18\x1a \x01(\x02\x12\x32\n*tschchartserieserrorbarstddevvaluescatterx\x18\x1b \x01(\x02\x12\x39\n\x1dtschchartserieserrorbarstroke\x18\x1c \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x41\n%tschchartserieserrorbarstrokescatterx\x18\x1d \x01(\x0b\x32\x12.TSD.StrokeArchive\x12#\n\x1btschchartserieserrorbartype\x18\x1e \x01(\x05\x12+\n#tschchartserieserrorbartypescatterx\x18\x1f \x01(\x05\x12-\n\x13tschchartseriesfill\x18 \x01(\x0b\x32\x10.TSD.FillArchive\x12\x39\n1tschchartseriesfilluseseriesstrokealphamultiplier\x18! \x01(\x02\x12*\n\"tschchartseriesfilluseseriesstroke\x18\" \x01(\x08\x12%\n\x1dtschchartserieslabelexplosion\x18# \x01(\x02\x12/\n\'tschchartserieslabelparagraphstyleindex\x18$ \x01(\x05\x12\x1f\n\x17tschchartserieslinetype\x18% \x01(\x05\x12=\n\x1btschchartseriesnumberformat\x18& \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12\'\n\x1ftschchartseriesnumberformattype\x18\' \x01(\x05\x12\x1e\n\x16tschchartseriesopacity\x18( \x01(\x02\x12\x36\n.tschchartseriesoutsidelabelparagraphstyleindex\x18) \x01(\x05\x12\x44\n\"tschchartseriespercentnumberformat\x18* \x01(\x0b\x32\x18.TSK.FormatStructArchive\x12!\n\x19tschchartseriesseriestype\x18+ \x01(\x05\x12\x31\n\x15tschchartseriesshadow\x18, \x01(\x0b\x32\x12.TSD.ShadowArchive\x12#\n\x1btschchartseriesshowerrorbar\x18- \x01(\x08\x12+\n#tschchartseriesshowerrorbarscatterx\x18. \x01(\x08\x12(\n tschchartseriesshowlabelsinfront\x18/ \x01(\x08\x12\x1f\n\x17tschchartseriesshowline\x18\x30 \x01(\x08\x12\'\n\x1ftschchartseriesshownegativedata\x18\x31 \x01(\x08\x12\'\n\x1ftschchartseriesshowserieslabels\x18\x32 \x01(\x08\x12!\n\x19tschchartseriesshowsymbol\x18\x33 \x01(\x08\x12$\n\x1ctschchartseriesshowtrendline\x18\x34 \x01(\x08\x12&\n\x1etschchartseriesshowvaluelabels\x18\x35 \x01(\x08\x12$\n\x1ctschchartseriessizedimension\x18\x36 \x01(\x05\x12\"\n\x1atschchartseriesstacklabels\x18\x37 \x01(\x08\x12\x31\n\x15tschchartseriesstroke\x18\x38 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x33\n\x19tschchartseriessymbolfill\x18\x39 \x01(\x0b\x32\x10.TSD.FillArchive\x12.\n&tschchartseriessymbolfilluseseriesfill\x18: \x01(\x08\x12\x30\n(tschchartseriessymbolfilluseseriesstroke\x18; \x01(\x08\x12!\n\x19tschchartseriessymbolsize\x18< \x01(\x02\x12\x37\n\x1btschchartseriessymbolstroke\x18= \x01(\x0b\x32\x12.TSD.StrokeArchive\x12!\n\x19tschchartseriessymboltype\x18> \x01(\x05\x12/\n\'tschchartseriestrendlineequationoffsetx\x18? \x01(\x02\x12/\n\'tschchartseriestrendlineequationoffsety\x18@ \x01(\x02\x12+\n#tschchartseriestrendlinelabelstring\x18\x41 \x01(\t\x12%\n\x1dtschchartseriestrendlineorder\x18\x42 \x01(\x05\x12&\n\x1etschchartseriestrendlineperiod\x18\x43 \x01(\x05\x12/\n\'tschchartseriestrendlinersquaredoffsetx\x18\x44 \x01(\x02\x12/\n\'tschchartseriestrendlinersquaredoffsety\x18\x45 \x01(\x02\x12:\n\x1etschchartseriestrendlineshadow\x18\x46 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12,\n$tschchartseriestrendlineshowequation\x18G \x01(\x08\x12)\n!tschchartseriestrendlineshowlabel\x18H \x01(\x08\x12+\n#tschchartseriestrendlineshowr2value\x18I \x01(\x08\x12:\n\x1etschchartseriestrendlinestroke\x18J \x01(\x0b\x32\x12.TSD.StrokeArchive\x12$\n\x1ctschchartseriestrendlinetype\x18K \x01(\x05\x12/\n\'tschchartseriestrendlineequationopacity\x18L \x01(\x02\x12;\n3tschchartseriestrendlineequationparagraphstyleindex\x18M \x01(\x05\x12/\n\'tschchartseriestrendlinersquaredopacity\x18N \x01(\x02\x12;\n3tschchartseriestrendlinersquaredparagraphstyleindex\x18O \x01(\x05\x12)\n!tschchartseriesvaluelabelposition\x18P \x01(\x05\x12(\n tschchartseriesvaluelabelspacing\x18Q \x01(\x05\x12&\n\x1etschchartseriesvaluelabelsaxis\x18R \x01(\x05\x12%\n\x1dtschchartserieswedgeexplosion\x18S \x01(\x02\x12#\n\x1btschchartseriesyaxisordinal\x18T \x01(\x05\"\xf5\x03\n&ReferenceLineGenericPropertyMapArchive\x12G\n\x1ctschreferencelinecustomvalue\x18\x01 \x01(\x0b\x32!.TSCH.ChartsNSNumberDoubleArchive\x12\x1e\n\x16tschreferencelinelabel\x18\x02 \x01(\t\x12\x31\n)tschreferencelinelabelparagraphstyleindex\x18\x03 \x01(\x05\x12\x33\n\x17tschreferencelineshadow\x18\x04 \x01(\x0b\x32\x12.TSD.ShadowArchive\x12\"\n\x1atschreferencelineshowlabel\x18\x05 \x01(\x08\x12!\n\x19tschreferencelineshowline\x18\x06 \x01(\x08\x12\'\n\x1ftschreferencelineshowvaluelabel\x18\x07 \x01(\x08\x12\x33\n\x17tschreferencelinestroke\x18\x08 \x01(\x0b\x32\x12.TSD.StrokeArchive\x12\x1d\n\x15tschreferencelinetype\x18\t \x01(\x05\x12\x36\n.tschreferencelinevaluelabelparagraphstyleindex\x18\n \x01(\x05')
23
+
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'TSCHArchives_GEN_pb2', globals())
26
+ if _descriptor._USE_C_DESCRIPTORS == False:
27
+ TSCHArchives__Common__pb2.ChartStyleArchive.RegisterExtension(_CHARTSTYLEARCHIVE.extensions_by_name['current'])
28
+ TSCHArchives__Common__pb2.ChartNonStyleArchive.RegisterExtension(_CHARTNONSTYLEARCHIVE.extensions_by_name['current'])
29
+ TSCHArchives__Common__pb2.LegendStyleArchive.RegisterExtension(_LEGENDSTYLEARCHIVE.extensions_by_name['current'])
30
+ TSCHArchives__Common__pb2.LegendNonStyleArchive.RegisterExtension(_LEGENDNONSTYLEARCHIVE.extensions_by_name['current'])
31
+ TSCHArchives__Common__pb2.ChartAxisStyleArchive.RegisterExtension(_CHARTAXISSTYLEARCHIVE.extensions_by_name['current'])
32
+ TSCHArchives__Common__pb2.ChartAxisNonStyleArchive.RegisterExtension(_CHARTAXISNONSTYLEARCHIVE.extensions_by_name['current'])
33
+ TSCHArchives__Common__pb2.ChartSeriesStyleArchive.RegisterExtension(_CHARTSERIESSTYLEARCHIVE.extensions_by_name['current'])
34
+ TSCHArchives__Common__pb2.ChartSeriesNonStyleArchive.RegisterExtension(_CHARTSERIESNONSTYLEARCHIVE.extensions_by_name['current'])
35
+ TSCHArchives__Common__pb2.ReferenceLineStyleArchive.RegisterExtension(_REFERENCELINESTYLEARCHIVE.extensions_by_name['current'])
36
+ TSCHArchives__Common__pb2.ReferenceLineNonStyleArchive.RegisterExtension(_REFERENCELINENONSTYLEARCHIVE.extensions_by_name['current'])
37
+
38
+ DESCRIPTOR._options = None
39
+ _CHARTSTYLEARCHIVE._serialized_start=168
40
+ _CHARTSTYLEARCHIVE._serialized_end=1750
41
+ _CHARTNONSTYLEARCHIVE._serialized_start=1753
42
+ _CHARTNONSTYLEARCHIVE._serialized_end=3460
43
+ _LEGENDSTYLEARCHIVE._serialized_start=3463
44
+ _LEGENDSTYLEARCHIVE._serialized_end=3828
45
+ _LEGENDNONSTYLEARCHIVE._serialized_start=3830
46
+ _LEGENDNONSTYLEARCHIVE._serialized_end=3939
47
+ _CHARTAXISSTYLEARCHIVE._serialized_start=3942
48
+ _CHARTAXISSTYLEARCHIVE._serialized_end=6471
49
+ _CHARTAXISNONSTYLEARCHIVE._serialized_start=6474
50
+ _CHARTAXISNONSTYLEARCHIVE._serialized_end=7793
51
+ _CHARTSERIESSTYLEARCHIVE._serialized_start=7796
52
+ _CHARTSERIESSTYLEARCHIVE._serialized_end=14631
53
+ _CHARTSERIESNONSTYLEARCHIVE._serialized_start=14634
54
+ _CHARTSERIESNONSTYLEARCHIVE._serialized_end=19733
55
+ _REFERENCELINESTYLEARCHIVE._serialized_start=19736
56
+ _REFERENCELINESTYLEARCHIVE._serialized_end=20098
57
+ _REFERENCELINENONSTYLEARCHIVE._serialized_start=20101
58
+ _REFERENCELINENONSTYLEARCHIVE._serialized_end=20521
59
+ _CHARTGENERICPROPERTYMAPARCHIVE._serialized_start=20524
60
+ _CHARTGENERICPROPERTYMAPARCHIVE._serialized_end=22302
61
+ _LEGENDGENERICPROPERTYMAPARCHIVE._serialized_start=22305
62
+ _LEGENDGENERICPROPERTYMAPARCHIVE._serialized_end=22568
63
+ _CHARTAXISGENERICPROPERTYMAPARCHIVE._serialized_start=22571
64
+ _CHARTAXISGENERICPROPERTYMAPARCHIVE._serialized_end=24571
65
+ _CHARTSERIESGENERICPROPERTYMAPARCHIVE._serialized_start=24574
66
+ _CHARTSERIESGENERICPROPERTYMAPARCHIVE._serialized_end=28859
67
+ _REFERENCELINEGENERICPROPERTYMAPARCHIVE._serialized_start=28862
68
+ _REFERENCELINEGENERICPROPERTYMAPARCHIVE._serialized_end=29363
69
+ # @@protoc_insertion_point(module_scope)