numbers-parser 4.16.2__py3-none-any.whl → 4.17.0__py3-none-any.whl

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 (46) hide show
  1. numbers_parser/constants.py +3 -0
  2. numbers_parser/formula.py +1 -1
  3. numbers_parser/generated/TNArchives_pb2.py +103 -92
  4. numbers_parser/generated/TNArchives_sos_pb2.py +19 -8
  5. numbers_parser/generated/TNCommandArchives_pb2.py +99 -88
  6. numbers_parser/generated/TNCommandArchives_sos_pb2.py +21 -10
  7. numbers_parser/generated/TSAArchives_pb2.py +103 -97
  8. numbers_parser/generated/TSAArchives_sos_pb2.py +21 -10
  9. numbers_parser/generated/TSACommandArchives_sos_pb2.py +33 -22
  10. numbers_parser/generated/TSCEArchives_pb2.py +355 -344
  11. numbers_parser/generated/TSCH3DArchives_pb2.py +75 -65
  12. numbers_parser/generated/TSCHArchives_Common_pb2.py +63 -52
  13. numbers_parser/generated/TSCHArchives_GEN_pb2.py +47 -46
  14. numbers_parser/generated/TSCHArchives_pb2.py +99 -123
  15. numbers_parser/generated/TSCHArchives_sos_pb2.py +61 -50
  16. numbers_parser/generated/TSCHCommandArchives_pb2.py +131 -120
  17. numbers_parser/generated/TSCHPreUFFArchives_pb2.py +45 -34
  18. numbers_parser/generated/TSCKArchives_pb2.py +153 -143
  19. numbers_parser/generated/TSCKArchives_sos_pb2.py +23 -12
  20. numbers_parser/generated/TSDArchives_pb2.py +223 -217
  21. numbers_parser/generated/TSDArchives_sos_pb2.py +41 -30
  22. numbers_parser/generated/TSDCommandArchives_pb2.py +149 -138
  23. numbers_parser/generated/TSKArchives_pb2.py +139 -128
  24. numbers_parser/generated/TSPArchiveMessages_pb2.py +135 -124
  25. numbers_parser/generated/TSPDatabaseMessages_pb2.py +25 -14
  26. numbers_parser/generated/TSPMessages_pb2.py +119 -109
  27. numbers_parser/generated/TSSArchives_pb2.py +55 -45
  28. numbers_parser/generated/TSSArchives_sos_pb2.py +37 -26
  29. numbers_parser/generated/TSTArchives_pb2.py +417 -412
  30. numbers_parser/generated/TSTArchives_sos_pb2.py +25 -14
  31. numbers_parser/generated/TSTCommandArchives_pb2.py +241 -230
  32. numbers_parser/generated/TSTStylePropertyArchiving_pb2.py +41 -31
  33. numbers_parser/generated/TSWPArchives_pb2.py +271 -267
  34. numbers_parser/generated/TSWPArchives_sos_pb2.py +105 -94
  35. numbers_parser/generated/TSWPCommandArchives_pb2.py +119 -108
  36. numbers_parser/generated/fontmap.py +11 -18
  37. numbers_parser/generated/functionmap.py +34 -4
  38. numbers_parser/model.py +48 -20
  39. numbers_parser/xrefs.py +4 -1
  40. {numbers_parser-4.16.2.dist-info → numbers_parser-4.17.0.dist-info}/METADATA +7 -7
  41. numbers_parser-4.17.0.dist-info/RECORD +65 -0
  42. {numbers_parser-4.16.2.dist-info → numbers_parser-4.17.0.dist-info}/WHEEL +1 -1
  43. numbers_parser-4.16.2.dist-info/RECORD +0 -65
  44. {numbers_parser-4.16.2.dist-info → numbers_parser-4.17.0.dist-info}/entry_points.txt +0 -0
  45. {numbers_parser-4.16.2.dist-info → numbers_parser-4.17.0.dist-info}/licenses/LICENSE.rst +0 -0
  46. {numbers_parser-4.16.2.dist-info → numbers_parser-4.17.0.dist-info}/top_level.txt +0 -0
@@ -262,10 +262,6 @@ FUNCTION_MAP = {
262
262
  277: "DUR2MILLISECONDS",
263
263
  278: "STRIPDURATION",
264
264
  280: "INTERSECT.RANGES",
265
- 281: "LATITUDE",
266
- 282: "LONGITUDE",
267
- 283: "BEARING",
268
- 284: "ALTITUDE",
269
265
  285: "UNION.RANGES",
270
266
  286: "SERIESSUM",
271
267
  287: "POLYNOMIAL",
@@ -314,4 +310,38 @@ FUNCTION_MAP = {
314
310
  334: "BITRSHIFT",
315
311
  335: "ISOWEEKNUM",
316
312
  336: "SWITCH",
313
+ 338: "SEQUENCE",
314
+ 341: "ARRAYTOTEXT",
315
+ 342: "FILTER",
316
+ 343: "SORT",
317
+ 344: "SORTBY",
318
+ 345: "UNIQUE",
319
+ 346: "RANDARRAY",
320
+ 347: "TEXTSPLIT",
321
+ 348: "TOCOL",
322
+ 349: "TOROW",
323
+ 350: "TAKE",
324
+ 351: "DROP",
325
+ 352: "EXPAND",
326
+ 353: "CHOOSEROWS",
327
+ 354: "CHOOSECOLS",
328
+ 355: "HSTACK",
329
+ 356: "VSTACK",
330
+ 357: "WRAPCOLS",
331
+ 358: "WRAPROWS",
332
+ 359: "MDETERM",
333
+ 360: "MINVERSE",
334
+ 361: "MMULT",
335
+ 362: "MUNIT",
336
+ 363: "LET",
337
+ 364: "LAMBDA",
338
+ 365: "MAKEARRAY",
339
+ 366: "MAP",
340
+ 367: "REDUCE",
341
+ 368: "SCAN",
342
+ 369: "BYROW",
343
+ 370: "BYCOL",
344
+ 371: "ISOMITTED",
345
+ 372: "LAMBDA.APPLY",
346
+ 373: "ISNUMBERORDATE",
317
347
  }
numbers_parser/model.py CHANGED
@@ -790,9 +790,11 @@ class _NumbersModel(Cacheable):
790
790
  # Map table IDs to the base_owner_uids of the formula owners that match
791
791
  # the table model's haunted owner
792
792
  self._table_id_to_base_id = {
793
- table_id: formula_owner_to_base_owner_map[
794
- uuid_to_hex(self.objects[table_id].haunted_owner.owner_uid)
795
- ]
793
+ table_id: formula_owner_to_base_owner_map.get(
794
+ uuid_to_hex(self.objects[table_id].haunted_owner.owner_uid),
795
+ # Some older documents do not have this mapping
796
+ None,
797
+ )
796
798
  for table_id in self.table_ids()
797
799
  }
798
800
  self._table_base_id_to_formula_owner_id = {
@@ -853,6 +855,37 @@ class _NumbersModel(Cacheable):
853
855
  return None
854
856
  return self.objects[ce_id]
855
857
 
858
+ def add_merge_range(self, table_id, row_start, row_end, col_start, col_end) -> None:
859
+ size = (row_end - row_start + 1, col_end - col_start + 1)
860
+ for row in range(row_start, row_end + 1):
861
+ for col in range(col_start, col_end + 1):
862
+ self._merge_cells[table_id].add_reference(
863
+ row,
864
+ col,
865
+ (row_start, col_start, row_end, col_end),
866
+ )
867
+ self._merge_cells[table_id].add_anchor(row_start, col_start, size)
868
+
869
+ @cache()
870
+ def calculate_new_merge_cell_ranges(self, table_id) -> None:
871
+ table_model = self.objects[table_id]
872
+ formulas = table_model.merge_owner.formula_store.formulas
873
+ if len(formulas) == 0:
874
+ return
875
+
876
+ for formula in formulas:
877
+ node = formula.formula.AST_node_array.AST_node[0]
878
+ # COLON_TRACT_NODE=67
879
+ if node.AST_node_type != 67:
880
+ continue
881
+ self.add_merge_range(
882
+ table_id,
883
+ node.AST_colon_tract.absolute_row[0].range_begin,
884
+ node.AST_colon_tract.absolute_row[0].range_end,
885
+ node.AST_colon_tract.absolute_column[0].range_begin,
886
+ node.AST_colon_tract.absolute_column[0].range_end,
887
+ )
888
+
856
889
  @cache()
857
890
  def calculate_merge_cell_ranges(self, table_id) -> None:
858
891
  """Extract all the merge cell ranges for the Table."""
@@ -869,20 +902,13 @@ class _NumbersModel(Cacheable):
869
902
  to_owner_id = record.internal_range_reference.owner_id
870
903
  if owner_id_map[to_owner_id] == table_base_id:
871
904
  record_range = record.internal_range_reference.range
872
- row_start = record_range.top_left_row
873
- row_end = record_range.bottom_right_row
874
- col_start = record_range.top_left_column
875
- col_end = record_range.bottom_right_column
876
-
877
- size = (row_end - row_start + 1, col_end - col_start + 1)
878
- for row in range(row_start, row_end + 1):
879
- for col in range(col_start, col_end + 1):
880
- self._merge_cells[table_id].add_reference(
881
- row,
882
- col,
883
- (row_start, col_start, row_end, col_end),
884
- )
885
- self._merge_cells[table_id].add_anchor(row_start, col_start, size)
905
+ self.add_merge_range(
906
+ table_id,
907
+ record_range.top_left_row,
908
+ record_range.bottom_right_row,
909
+ record_range.top_left_column,
910
+ record_range.bottom_right_column,
911
+ )
886
912
 
887
913
  base_data_store = self.objects[table_id].base_data_store
888
914
  if base_data_store.merge_region_map.identifier == 0:
@@ -910,6 +936,7 @@ class _NumbersModel(Cacheable):
910
936
  self._merge_cells[table_id].add_anchor(row_start, col_start, (num_rows, num_columns))
911
937
 
912
938
  def merge_cells(self, table_id):
939
+ self.calculate_new_merge_cell_ranges(table_id)
913
940
  self.calculate_merge_cell_ranges(table_id)
914
941
  return self._merge_cells[table_id]
915
942
 
@@ -932,12 +959,12 @@ class _NumbersModel(Cacheable):
932
959
 
933
960
  @cache()
934
961
  def table_uuids_to_id(self, table_uuid) -> int | None:
935
- for sheet_id in self.sheet_ids(): # pragma: no branch # noqa: RET503
962
+ for sheet_id in self.sheet_ids(): # pragma: no branch
936
963
  for table_id in self.table_ids(sheet_id):
937
964
  if table_uuid == self.table_base_id(table_id):
938
965
  return table_id
939
966
 
940
- def node_to_ref(self, table_id: int, row: int, col: int, node):
967
+ def node_to_ref(self, table_id: int, row: int, col: int, node, merge_mode: bool = False):
941
968
  def resolve_range(is_absolute, absolute_list, relative_list, offset, max_val):
942
969
  if is_absolute:
943
970
  return absolute_list[0].range_begin
@@ -1003,6 +1030,7 @@ class _NumbersModel(Cacheable):
1003
1030
  col_end_is_abs=node.AST_sticky_bits.end_column_is_absolute,
1004
1031
  from_table_id=table_id,
1005
1032
  to_table_id=to_table_id,
1033
+ _do_init=not merge_mode,
1006
1034
  )
1007
1035
 
1008
1036
  row = node.AST_row.row if node.AST_row.absolute else row + node.AST_row.row
@@ -2114,7 +2142,7 @@ class _NumbersModel(Cacheable):
2114
2142
  # a string with a new bullet character
2115
2143
  bds = self.objects[table_id].base_data_store
2116
2144
  rich_text_table = self.objects[bds.rich_text_table.identifier]
2117
- for entry in rich_text_table.entries: # pragma: no branch # noqa: RET503
2145
+ for entry in rich_text_table.entries: # pragma: no branch
2118
2146
  if string_key == entry.key:
2119
2147
  payload = self.objects[entry.rich_text_payload.identifier]
2120
2148
  payload_storage = self.objects[payload.storage.identifier]
numbers_parser/xrefs.py CHANGED
@@ -63,9 +63,12 @@ class CellRange:
63
63
  from_table_id: int = None
64
64
  to_table_id: int = None
65
65
  range_type: CellRangeType = None
66
+ _do_init: bool = True
66
67
  _table_names: list[str] = field(init=False, default=None, repr=False)
67
68
 
68
69
  def __post_init__(self):
70
+ if not self._do_init:
71
+ return
69
72
  if self._table_names is None:
70
73
  self._initialize_table_data()
71
74
  self.model.name_ref_cache.refresh()
@@ -292,7 +295,7 @@ class ScopedNameRefCache:
292
295
  if (axis == TableAxis.ROW and num_header_cols == 0) or (
293
296
  axis == TableAxis.COLUMN and num_header_rows == 0
294
297
  ):
295
- return {idx: None for idx in range(range_end)}
298
+ return dict.fromkeys(range(range_end))
296
299
 
297
300
  scopes = {}
298
301
  names = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: numbers-parser
3
- Version: 4.16.2
3
+ Version: 4.17.0
4
4
  Summary: Read and write Apple Numbers spreadsheets
5
5
  Author-email: Jon Connell <python@figsandfudge.com>
6
6
  License-Expression: MIT
@@ -9,17 +9,17 @@ Project-URL: documentation, https://github.com/masaccio/numbers-parser/blob/main
9
9
  Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Operating System :: OS Independent
12
- Requires-Python: <4.0,>=3.9
12
+ Requires-Python: >=3.10
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE.rst
15
- Requires-Dist: compact-json<2.0.0,>=1.1.3
16
- Requires-Dist: protobuf<6.0,>=4.0
17
- Requires-Dist: python-snappy<1.0,>=0.7
18
- Requires-Dist: sigfig<2.0.0,>=1.3.3
15
+ Requires-Dist: compact-json>=1.1.3
16
+ Requires-Dist: protobuf>=6.32.0
17
+ Requires-Dist: python-snappy>=0.7
18
+ Requires-Dist: sigfig>=1.3.3
19
19
  Requires-Dist: setuptools>=70.0.0
20
20
  Requires-Dist: importlib-resources>=6.1
21
21
  Requires-Dist: enum-tools>=0.11
22
- Requires-Dist: python-dateutil<3.0.0.0,>=2.9.0.post0
22
+ Requires-Dist: python-dateutil>=2.9.0.post0
23
23
  Dynamic: license-file
24
24
 
25
25
  # numbers-parser
@@ -0,0 +1,65 @@
1
+ numbers_parser/__init__.py,sha256=fKvZmUi_UsY3DMwt54s7G20DCwUTuG28B7kGsQRw3wU,1481
2
+ numbers_parser/_cat_numbers.py,sha256=LQDBHLdVP8JIk0heV50T0Xz1oOMVNGILaX2mk8pVhCg,4846
3
+ numbers_parser/_csv2numbers.py,sha256=R_13gVe_RfLWLOv-DzVJ60xkqhdOA-RKna-Ce5ud4V8,14624
4
+ numbers_parser/_unpack_numbers.py,sha256=x4Od4qEruPpzkoOq_i_zOFiNbNonlSRHBT3WGwZGYo8,6685
5
+ numbers_parser/bullets.py,sha256=CKMjSYRzLM123wQNDG8B5vfodRLjW5UOc2HDPlvfNr4,2637
6
+ numbers_parser/cell.py,sha256=RSjzkYWTUN753Q6V5xIQZ0GC2gkZDmnpB6uz4GJGZ0U,72311
7
+ numbers_parser/constants.py,sha256=FPkKRrkPtiV_KX9SWjR6DLlkDw644lmMw8GOBEG6Gsc,10658
8
+ numbers_parser/containers.py,sha256=SBD99t0ABHraGA8729jPXy5VcRHT21U_WM3ijOIiwd4,4886
9
+ numbers_parser/currencies.py,sha256=8k4a3WKmDoHeurkDICymHX13N7ManHSTaka_JNXCZYA,3767
10
+ numbers_parser/document.py,sha256=6eCNbLRUmNoNEim8Wbk9DkhuhWHAtTmbexKDvld8Bp4,60866
11
+ numbers_parser/exceptions.py,sha256=51yJTYm0X2am4YK-F6sVYOHmlYrBex_e4lYtbmiQX3I,611
12
+ numbers_parser/experimental.py,sha256=WARjTa-2ePb8Ga8Q6oDP6EJCs12ofLRF2YpwzUu66ZI,374
13
+ numbers_parser/formula.py,sha256=XC6maWkkQ-LKByiBQDIhzHOwvQIu-df6MN-vh4EETH8,26459
14
+ numbers_parser/iwafile.py,sha256=nVwCcXvx8TgX-DkYqSbcJQzKyXR1Z8_y547XeY7Y-fs,11948
15
+ numbers_parser/iwork.py,sha256=Qx1Izf9cfQKnLTDiJyeCOsmL9PSsfV-XOf0Kkb2oPMo,9396
16
+ numbers_parser/model.py,sha256=VFD9CR33jKVCbsXFUrKV2elACQEnq8Ykhi5cqKvchlo,116600
17
+ numbers_parser/numbers_cache.py,sha256=uGngtJmP_AEDGZphyJpOMJ1dq8VGEeDyPdyrVy1E7lU,1100
18
+ numbers_parser/numbers_uuid.py,sha256=vVTgXgmtGx6PdbHfwyi82oRsZccmP7IW_o2q-6PGUNg,2880
19
+ numbers_parser/roman.py,sha256=CErv1uRp8eE9Bsuh_QsrBAzKFsfHSEs8CHpfFW0Gd70,725
20
+ numbers_parser/tokenizer.py,sha256=4pGdzX9zoxSYzaP7ywLwq8lOpVAm8hk96tMg9em7S6o,19804
21
+ numbers_parser/xrefs.py,sha256=Oq-EL5bSSmXvJGSX-MPtXDcX-EROX859knm9y_Zz568,30043
22
+ numbers_parser/data/empty.numbers,sha256=zQjVqcNGN-xNZh51_eAxD8Zxmxh88Sd7kpf4JygUA_E,90601
23
+ numbers_parser/generated/TNArchives_pb2.py,sha256=ACEMFxxhu7QpKJT9bhx6k2WZMs_qBin-csiAiUi0YNc,17387
24
+ numbers_parser/generated/TNArchives_sos_pb2.py,sha256=kBurQK0i7wFZ6nIh3we0n7xHbOTLJ6IYx2yZzF336G4,1534
25
+ numbers_parser/generated/TNCommandArchives_pb2.py,sha256=0ylr2KLkKmnxU3kHzm6q59ZnKG_VKtkoscyopa2KIxo,19660
26
+ numbers_parser/generated/TNCommandArchives_sos_pb2.py,sha256=15yG9C8VNi3bmiycb9d9vTPVdyjs1XRzLL6fLdUkNW0,2207
27
+ numbers_parser/generated/TSAArchives_pb2.py,sha256=kIMs2ru2VlM85lkm1Lv9DGoUDrNTfuzR67v-79JiZOQ,20686
28
+ numbers_parser/generated/TSAArchives_sos_pb2.py,sha256=nZWkvk0nDJFUIlDhIt3Cg4y69GGe6cjXTHQ9GWt63ks,2377
29
+ numbers_parser/generated/TSACommandArchives_sos_pb2.py,sha256=HMFlahr2QyqW0Ot4G_1nNTo3laILrDeMXCpxwx7QwYs,4402
30
+ numbers_parser/generated/TSCEArchives_pb2.py,sha256=jw79amf1SDKWGhASD-4CN2TvgHPperaSBTAyyoiy--o,72099
31
+ numbers_parser/generated/TSCH3DArchives_pb2.py,sha256=3pv77IRwW5kS15XYnZYCByviHZLq46c7F2NGThUaHxI,12096
32
+ numbers_parser/generated/TSCHArchives_Common_pb2.py,sha256=ZbBJ4IT1Pg6s5rsLzjPZKgeHnij1UhlsUoA6BQtq2yg,9507
33
+ numbers_parser/generated/TSCHArchives_GEN_pb2.py,sha256=cBj9tv2DTK8V04Xbd4RYBUUak-2IU5QCYguJfD7r87I,45027
34
+ numbers_parser/generated/TSCHArchives_pb2.py,sha256=X2UC8xV9MNO5j7nNcmNsngWLN7xMAZnRA_mchL58KxU,21307
35
+ numbers_parser/generated/TSCHArchives_sos_pb2.py,sha256=nJF3nzs3mtHaWac0Wc9rBDUoVjYx0o5-DRUgszjnuWk,64555
36
+ numbers_parser/generated/TSCHCommandArchives_pb2.py,sha256=fz8aZA5Ncu2sb7786u631ViD34af_viDrCuP8qG5H5A,29114
37
+ numbers_parser/generated/TSCHPreUFFArchives_pb2.py,sha256=FWRKn3QVEurR8Nc7bF6WxYIRKiNNCcITVwP5jtd1Mrg,30686
38
+ numbers_parser/generated/TSCKArchives_pb2.py,sha256=3TaNI1NjCGgPm7FCGbie3HsDZpPNFXBR8ZZ6FXMbDek,29921
39
+ numbers_parser/generated/TSCKArchives_sos_pb2.py,sha256=6gAWLBN00BeBhIAATaPJ1YxwaxokzZrg8-g9RrbXo4w,2314
40
+ numbers_parser/generated/TSDArchives_pb2.py,sha256=XEVsjWss_lcmi2C24IZ6U1VV_riJF23vVpUo5t0wDr0,41449
41
+ numbers_parser/generated/TSDArchives_sos_pb2.py,sha256=Y02Jm9nHzB9fhj-k2WyE9SplxhZ6l52LBpfYeKu0Zfs,6606
42
+ numbers_parser/generated/TSDCommandArchives_pb2.py,sha256=q5deSMdCDiYQ-O9ZM8WHXAGj6kWBqp5udbD4uCchGOA,31174
43
+ numbers_parser/generated/TSKArchives_pb2.py,sha256=d8Dz2cNgoPxxzEnvEro3GftlWUH5K22wLgTRT962tt8,28183
44
+ numbers_parser/generated/TSPArchiveMessages_pb2.py,sha256=re5hDZx-FRZV-XA7D4k3uncU_DSVRn4Ql0V0r3YgDMc,19847
45
+ numbers_parser/generated/TSPDatabaseMessages_pb2.py,sha256=Zrp6ooGRqG1ZBO_CmtuUBdlt9RVte9Ozd7FVH6GiRjM,2420
46
+ numbers_parser/generated/TSPMessages_pb2.py,sha256=w7aKB_wou5grd0JVN8wCO2AG0WBZRhAfnQd41pLH6jM,14460
47
+ numbers_parser/generated/TSSArchives_pb2.py,sha256=7EKKU3GWqA7RNEQei-l84hm06JZpqpl6PT9CRCt7OEk,10845
48
+ numbers_parser/generated/TSSArchives_sos_pb2.py,sha256=A8uj8ULXSj5gumX9UIn3WOKftu_6MBy4GVhI9IAey2Y,3378
49
+ numbers_parser/generated/TSTArchives_pb2.py,sha256=O1BZjSHfAzzXded_6ZVyBrbNIyIm6OL1H137xT02wGY,92863
50
+ numbers_parser/generated/TSTArchives_sos_pb2.py,sha256=-xCj-FmCX0IAzKJK-TTqXrqYXOoBf2b_c8Sdtewavo4,12989
51
+ numbers_parser/generated/TSTCommandArchives_pb2.py,sha256=c55CqyqNCXloytYdPBpKcOmwB8IA1g77aR_-OVw2LeI,62510
52
+ numbers_parser/generated/TSTStylePropertyArchiving_pb2.py,sha256=k5CGB_a6YOeebEWjB9p7zrAZk1iwrVyKSgP3xfzIyvE,12926
53
+ numbers_parser/generated/TSWPArchives_pb2.py,sha256=8dYjH2JvtSsKFbUTvShhO6yl7waHfoewWSAP4yNRpTc,58004
54
+ numbers_parser/generated/TSWPArchives_sos_pb2.py,sha256=BMHrkjFVFNY5Q8mWQceSXyMapmEClO_3VZYFQe3lHtw,30467
55
+ numbers_parser/generated/TSWPCommandArchives_pb2.py,sha256=6QvugAFL7HWUBDuxtJ2cW2SCYZD-Ir-tN9tRZGQx2CU,27119
56
+ numbers_parser/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
+ numbers_parser/generated/fontmap.py,sha256=N7RelrdanYW9mK7mcl42THasVcw0uQ9XeZ3wn4rOfKo,23586
58
+ numbers_parser/generated/functionmap.py,sha256=7GzgkZfONzhI35pnByINiIGCbhMxhNz6EWiJEBX4s1g,6672
59
+ numbers_parser/generated/mapping.py,sha256=W6fEWqar3TFvx2wyWgK4NutIz9EYKtjChhSfho2FGQQ,32266
60
+ numbers_parser-4.17.0.dist-info/licenses/LICENSE.rst,sha256=8vTa1-5KSdHrTpU9rlheO5005EWReEPMpjV7BjSaMc4,1050
61
+ numbers_parser-4.17.0.dist-info/METADATA,sha256=28uxR-Y-ACYQn4V6PcYbxFPewt2yLbRhtErmmb0WVI4,23092
62
+ numbers_parser-4.17.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
63
+ numbers_parser-4.17.0.dist-info/entry_points.txt,sha256=_5biENfY3S-XG8BZL2AuE7Gvrw0zBwGjF6Un52u7FAk,165
64
+ numbers_parser-4.17.0.dist-info/top_level.txt,sha256=EOag5_Q4xjG7gstnrNVeAF_CLUAJBR_HDvciqMQ9RQo,15
65
+ numbers_parser-4.17.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,65 +0,0 @@
1
- numbers_parser/__init__.py,sha256=fKvZmUi_UsY3DMwt54s7G20DCwUTuG28B7kGsQRw3wU,1481
2
- numbers_parser/_cat_numbers.py,sha256=LQDBHLdVP8JIk0heV50T0Xz1oOMVNGILaX2mk8pVhCg,4846
3
- numbers_parser/_csv2numbers.py,sha256=R_13gVe_RfLWLOv-DzVJ60xkqhdOA-RKna-Ce5ud4V8,14624
4
- numbers_parser/_unpack_numbers.py,sha256=x4Od4qEruPpzkoOq_i_zOFiNbNonlSRHBT3WGwZGYo8,6685
5
- numbers_parser/bullets.py,sha256=CKMjSYRzLM123wQNDG8B5vfodRLjW5UOc2HDPlvfNr4,2637
6
- numbers_parser/cell.py,sha256=RSjzkYWTUN753Q6V5xIQZ0GC2gkZDmnpB6uz4GJGZ0U,72311
7
- numbers_parser/constants.py,sha256=X6fPq6hQrvRRGp4X6fbHb15UvgLLlo-gLogdhMVQYhw,10605
8
- numbers_parser/containers.py,sha256=SBD99t0ABHraGA8729jPXy5VcRHT21U_WM3ijOIiwd4,4886
9
- numbers_parser/currencies.py,sha256=8k4a3WKmDoHeurkDICymHX13N7ManHSTaka_JNXCZYA,3767
10
- numbers_parser/document.py,sha256=6eCNbLRUmNoNEim8Wbk9DkhuhWHAtTmbexKDvld8Bp4,60866
11
- numbers_parser/exceptions.py,sha256=51yJTYm0X2am4YK-F6sVYOHmlYrBex_e4lYtbmiQX3I,611
12
- numbers_parser/experimental.py,sha256=WARjTa-2ePb8Ga8Q6oDP6EJCs12ofLRF2YpwzUu66ZI,374
13
- numbers_parser/formula.py,sha256=-OLT2D6uQF-JncXiHHm3jCVz7Y5keavTjZsGhQWuOjM,26466
14
- numbers_parser/iwafile.py,sha256=nVwCcXvx8TgX-DkYqSbcJQzKyXR1Z8_y547XeY7Y-fs,11948
15
- numbers_parser/iwork.py,sha256=Qx1Izf9cfQKnLTDiJyeCOsmL9PSsfV-XOf0Kkb2oPMo,9396
16
- numbers_parser/model.py,sha256=0FDT51SVk1CaKsRyCka-SHbVFMvDdATJ0YtJgBGUqRA,115589
17
- numbers_parser/numbers_cache.py,sha256=uGngtJmP_AEDGZphyJpOMJ1dq8VGEeDyPdyrVy1E7lU,1100
18
- numbers_parser/numbers_uuid.py,sha256=vVTgXgmtGx6PdbHfwyi82oRsZccmP7IW_o2q-6PGUNg,2880
19
- numbers_parser/roman.py,sha256=CErv1uRp8eE9Bsuh_QsrBAzKFsfHSEs8CHpfFW0Gd70,725
20
- numbers_parser/tokenizer.py,sha256=4pGdzX9zoxSYzaP7ywLwq8lOpVAm8hk96tMg9em7S6o,19804
21
- numbers_parser/xrefs.py,sha256=1krwlX64k_DqW0vn_CQ3WJE2-DpzsslNoYor9mBjSGs,29976
22
- numbers_parser/data/empty.numbers,sha256=zQjVqcNGN-xNZh51_eAxD8Zxmxh88Sd7kpf4JygUA_E,90601
23
- numbers_parser/generated/TNArchives_pb2.py,sha256=Tq1UC2Ml1dzAQFIrz3Om-sGI903FBZmlN3GgYQNt4a8,15931
24
- numbers_parser/generated/TNArchives_sos_pb2.py,sha256=AYI1X5t5Gb4l941jXlHEY0v97ToIze0bSYBR7KQmS0A,1215
25
- numbers_parser/generated/TNCommandArchives_pb2.py,sha256=my5CgnWmqHa5p0NFf-aUC8aqEPz3-pXXlyz4UJmZKZE,18378
26
- numbers_parser/generated/TNCommandArchives_sos_pb2.py,sha256=MhIENEtVylmebThyhglAwO6dhu23UuF2DvdxtUoEvf0,1857
27
- numbers_parser/generated/TSAArchives_pb2.py,sha256=FqNAQf5ul602CJS0tvA5p-gEbuUUw3msI4WfkRrVg5k,19907
28
- numbers_parser/generated/TSAArchives_sos_pb2.py,sha256=UlEScYhun_N-Cbr2v5RcgvJuwkloUuPJbrWxnQTOAfo,2033
29
- numbers_parser/generated/TSACommandArchives_sos_pb2.py,sha256=dyjRN08Ly1qp5m3jcOE5yClARAzg5KyOYNMWyplRq8w,3907
30
- numbers_parser/generated/TSCEArchives_pb2.py,sha256=WtHsNP4ogcoT3q6e-rT68FUU5CjvQzjCBzyBEtd0lAs,67687
31
- numbers_parser/generated/TSCH3DArchives_pb2.py,sha256=eV4GahEGv_3nGNgnN6xc3kfJ07UT3oALlLeJdh0GcQ4,11162
32
- numbers_parser/generated/TSCHArchives_Common_pb2.py,sha256=dqgymAVSSQmjp3XuuXFRfXoSXhbQqaQXWbd-JUJs7Nc,8655
33
- numbers_parser/generated/TSCHArchives_GEN_pb2.py,sha256=_v3oN76ohi0uDlzoIg6AZnGWyirjLzhBSRLunsFkSco,45616
34
- numbers_parser/generated/TSCHArchives_pb2.py,sha256=_Mu_VMDWeS7cEUNeta0UOm6v2oHYqXE-s5qT304t_Jg,23907
35
- numbers_parser/generated/TSCHArchives_sos_pb2.py,sha256=xyzFKVpIc_SriTn-z_Y7-HkDSRwVfjwE_bl5WwHd0p0,63730
36
- numbers_parser/generated/TSCHCommandArchives_pb2.py,sha256=DkJUuBn-LXiY3a5rXipzFxb2mvOthHOKXdjaxYgt0as,27446
37
- numbers_parser/generated/TSCHPreUFFArchives_pb2.py,sha256=EWhd5HcquCEYeFac1hwlHJuWu1glbTicfa2MaKK-XPY,30051
38
- numbers_parser/generated/TSCKArchives_pb2.py,sha256=VH7I8dHDyDxGdr3EefK7gp2ewHxwVW_U6xCxzJ1x_Ik,28105
39
- numbers_parser/generated/TSCKArchives_sos_pb2.py,sha256=2zK3-z-pe1xrY1qut28VQjHRtSbq63SxrO0b_bfBj24,1945
40
- numbers_parser/generated/TSDArchives_pb2.py,sha256=G5vUxZbx66eTdNgxbagUQmo6N7pvfoXwU07jBgv90cU,39093
41
- numbers_parser/generated/TSDArchives_sos_pb2.py,sha256=Q2MYAXjAW-PGE3FY8kFH89rry9PPUQv7DS956wymFwo,6022
42
- numbers_parser/generated/TSDCommandArchives_pb2.py,sha256=zMHr3_Koa9vGmkl2PMTnMptUCY2iOe1zJOWN6re2jQs,29291
43
- numbers_parser/generated/TSKArchives_pb2.py,sha256=D5EaP8aTC2VstJo7XfsGQ1VNzPPDRe34FXknSR5yUb8,26357
44
- numbers_parser/generated/TSPArchiveMessages_pb2.py,sha256=5Th08Q19AOsMEMggvM9fda1StJjV8LTDDI5x7pY6aM8,17950
45
- numbers_parser/generated/TSPDatabaseMessages_pb2.py,sha256=_jvq890xBQpSDcYOKgII30XlxukPBRZBu0kkRpbJ-z0,2024
46
- numbers_parser/generated/TSPMessages_pb2.py,sha256=LBHRhNnQdDu226sh3gK_AOjbO3LDkGCWpVi1wzf7emA,13032
47
- numbers_parser/generated/TSSArchives_pb2.py,sha256=JBW8ZncRBfT2CyL4A2yh7ZpDRPBO_o_H94AAIgEiN4s,10152
48
- numbers_parser/generated/TSSArchives_sos_pb2.py,sha256=FAhtvQ9TBg18AcIk4HwGCreNWlEu3k_kK_9jRVsh7FM,2842
49
- numbers_parser/generated/TSTArchives_pb2.py,sha256=lScldcH_bUfL0JSRFwpyhhu4bFMO404Vjm4TxKKNr1E,88185
50
- numbers_parser/generated/TSTArchives_sos_pb2.py,sha256=JxiMXSdTH5VJo-c5zDdD_tzGQCTrUDE2K0YP_x-zh84,12597
51
- numbers_parser/generated/TSTCommandArchives_pb2.py,sha256=LEyGJBOLdhxVarepxGfHprNs8vIAmSCO-iNnl3Afdkk,59523
52
- numbers_parser/generated/TSTStylePropertyArchiving_pb2.py,sha256=0ADsIwTk4GcTeQJRhYxEEjsD_SuLEOSUaGYdHnsO9CA,12415
53
- numbers_parser/generated/TSWPArchives_pb2.py,sha256=6bGFEo-lABOA8l1PbDG96GVd1vmB9PMaYFiqAiDsHdk,55432
54
- numbers_parser/generated/TSWPArchives_sos_pb2.py,sha256=poJ49WA4JjZsHpmROyv4jFl2xGpJy6pTRCaJQZ5ZGr0,29114
55
- numbers_parser/generated/TSWPCommandArchives_pb2.py,sha256=-wQpDqveA64l_V-0jXyMkycrE_L7e9zXYzw9JfirsbE,25595
56
- numbers_parser/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- numbers_parser/generated/fontmap.py,sha256=ORrf3PtxG_gfT1t8R77yXjXBlIefRjvUCBUuG5RCTh8,23806
58
- numbers_parser/generated/functionmap.py,sha256=9OLSNlOVWxRO9xS8QZmK1HURpc11c1B5nIAAecUwA98,6082
59
- numbers_parser/generated/mapping.py,sha256=W6fEWqar3TFvx2wyWgK4NutIz9EYKtjChhSfho2FGQQ,32266
60
- numbers_parser-4.16.2.dist-info/licenses/LICENSE.rst,sha256=8vTa1-5KSdHrTpU9rlheO5005EWReEPMpjV7BjSaMc4,1050
61
- numbers_parser-4.16.2.dist-info/METADATA,sha256=UIt1TQSTXv52V4y5N-f81NBjcf3n575l726vNlXuzeI,23126
62
- numbers_parser-4.16.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
- numbers_parser-4.16.2.dist-info/entry_points.txt,sha256=_5biENfY3S-XG8BZL2AuE7Gvrw0zBwGjF6Un52u7FAk,165
64
- numbers_parser-4.16.2.dist-info/top_level.txt,sha256=EOag5_Q4xjG7gstnrNVeAF_CLUAJBR_HDvciqMQ9RQo,15
65
- numbers_parser-4.16.2.dist-info/RECORD,,