numbers-parser 4.14.4__py3-none-any.whl → 4.16.1__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.
- numbers_parser/__init__.py +1 -0
- numbers_parser/_unpack_numbers.py +1 -7
- numbers_parser/cell.py +28 -202
- numbers_parser/constants.py +19 -6
- numbers_parser/document.py +54 -11
- numbers_parser/formula.py +423 -56
- numbers_parser/generated/TSCEArchives_pb2.py +209 -193
- numbers_parser/generated/TSSArchives_pb2.py +36 -36
- numbers_parser/generated/TSTArchives_pb2.py +328 -332
- numbers_parser/generated/mapping.py +1 -2
- numbers_parser/model.py +399 -188
- numbers_parser/numbers_cache.py +1 -1
- numbers_parser/numbers_uuid.py +6 -0
- numbers_parser/tokenizer.py +548 -0
- numbers_parser/xrefs.py +850 -0
- {numbers_parser-4.14.4.dist-info → numbers_parser-4.16.1.dist-info}/METADATA +26 -28
- {numbers_parser-4.14.4.dist-info → numbers_parser-4.16.1.dist-info}/RECORD +24 -22
- {numbers_parser-4.14.4.dist-info → numbers_parser-4.16.1.dist-info}/WHEEL +2 -1
- numbers_parser-4.16.1.dist-info/entry_points.txt +4 -0
- numbers_parser-4.16.1.dist-info/top_level.txt +1 -0
- numbers_parser/data/empty.numbers +0 -0
- numbers_parser-4.14.4.dist-info/entry_points.txt +0 -5
- {numbers_parser-4.14.4.dist-info → numbers_parser-4.16.1.dist-info/licenses}/LICENSE.rst +0 -0
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: numbers-parser
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.16.1
|
|
4
4
|
Summary: Read and write Apple Numbers spreadsheets
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
5
|
+
Author-email: Jon Connell <python@figsandfudge.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: repository, https://github.com/masaccio/numbers-parser
|
|
8
|
+
Project-URL: documentation, https://github.com/masaccio/numbers-parser/blob/main/README.md
|
|
17
9
|
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Requires-
|
|
21
|
-
Requires-Dist: protobuf
|
|
22
|
-
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
|
23
|
-
Requires-Dist: python-snappy (>=0.7,<0.8)
|
|
24
|
-
Requires-Dist: setuptools (>=70.0.0)
|
|
25
|
-
Requires-Dist: sigfig (>=1.3.3,<2.0.0)
|
|
26
|
-
Project-URL: Documentation, https://github.com/masaccio/numbers-parser/blob/main/README.md
|
|
27
|
-
Project-URL: Repository, https://github.com/masaccio/numbers-parser
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: <4.0,>=3.9
|
|
28
13
|
Description-Content-Type: text/markdown
|
|
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
|
|
19
|
+
Requires-Dist: setuptools>=70.0.0
|
|
20
|
+
Requires-Dist: importlib-resources>=6.1
|
|
21
|
+
Requires-Dist: enum-tools>=0.11
|
|
22
|
+
Requires-Dist: python-dateutil<3.0.0.0,>=2.9.0.post0
|
|
23
|
+
Dynamic: license-file
|
|
29
24
|
|
|
30
25
|
# numbers-parser
|
|
31
26
|
|
|
@@ -42,7 +37,9 @@ with earlier versions of Python.
|
|
|
42
37
|
|
|
43
38
|
A pre-requisite for this package is [python-snappy](https://pypi.org/project/python-snappy/) which will be installed by Python automatically, but python-snappy also requires binary libraries for snappy compression.
|
|
44
39
|
|
|
45
|
-
The most straightforward way to install the binary dependencies is to use
|
|
40
|
+
The most straightforward way to install the binary dependencies is to use
|
|
41
|
+
[Homebrew](https://brew.sh) and source Python from Homebrew rather than from macOS as described
|
|
42
|
+
in the [python-snappy github](https://github.com/andrix/python-snappy). Using [pipx](https://pipx.pypa.io/stable/installation/) for package management is also strongly recommended:
|
|
46
43
|
|
|
47
44
|
```bash
|
|
48
45
|
brew install snappy python3 pipx
|
|
@@ -53,7 +50,6 @@ For Linux (your package manager may be different):
|
|
|
53
50
|
|
|
54
51
|
```bash
|
|
55
52
|
sudo apt-get -y install libsnappy-dev
|
|
56
|
-
python3 -m pip install numbers-parser
|
|
57
53
|
```
|
|
58
54
|
|
|
59
55
|
On Windows, you will need to either arrange for snappy to be found for VSC++ or you can install python
|
|
@@ -62,7 +58,6 @@ for Windows on Arm. There appear to be no x86 pre-compiled packages for Windows.
|
|
|
62
58
|
|
|
63
59
|
```text
|
|
64
60
|
pip install python_snappy-0.6.1-cp312-cp312-win_arm64.whl
|
|
65
|
-
python3 -m pip install numbers-parser
|
|
66
61
|
```
|
|
67
62
|
|
|
68
63
|
## Quick Start
|
|
@@ -485,8 +480,11 @@ The following limitations are expected to always remain:
|
|
|
485
480
|
- Password-encrypted documents cannot be opened. You must first re-save without
|
|
486
481
|
a password to read (see [issue 88](https://github.com/masaccio/numbers-parser/issues/88) for details).
|
|
487
482
|
A UnsupportedError exception is raised when such documents are opened.
|
|
483
|
+
- Due to changes in the format of Numbers documents, decoding of category groups
|
|
484
|
+
(introduced in `numbers-parser` version 4.16) is supported only for documents
|
|
485
|
+
created by Numbers 12.0 and later. No warnings are issued for earlier
|
|
486
|
+
Numbers documents.
|
|
488
487
|
|
|
489
488
|
## License
|
|
490
489
|
|
|
491
490
|
All code in this repository is licensed under the [MIT License](https://github.com/masaccio/numbers-parser/blob/master/LICENSE.rst).
|
|
492
|
-
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
numbers_parser/__init__.py,sha256=
|
|
1
|
+
numbers_parser/__init__.py,sha256=fKvZmUi_UsY3DMwt54s7G20DCwUTuG28B7kGsQRw3wU,1481
|
|
2
2
|
numbers_parser/_cat_numbers.py,sha256=LQDBHLdVP8JIk0heV50T0Xz1oOMVNGILaX2mk8pVhCg,4846
|
|
3
3
|
numbers_parser/_csv2numbers.py,sha256=R_13gVe_RfLWLOv-DzVJ60xkqhdOA-RKna-Ce5ud4V8,14624
|
|
4
|
-
numbers_parser/_unpack_numbers.py,sha256=
|
|
4
|
+
numbers_parser/_unpack_numbers.py,sha256=x4Od4qEruPpzkoOq_i_zOFiNbNonlSRHBT3WGwZGYo8,6685
|
|
5
5
|
numbers_parser/bullets.py,sha256=CKMjSYRzLM123wQNDG8B5vfodRLjW5UOc2HDPlvfNr4,2637
|
|
6
|
-
numbers_parser/cell.py,sha256=
|
|
7
|
-
numbers_parser/constants.py,sha256=
|
|
6
|
+
numbers_parser/cell.py,sha256=RSjzkYWTUN753Q6V5xIQZ0GC2gkZDmnpB6uz4GJGZ0U,72311
|
|
7
|
+
numbers_parser/constants.py,sha256=X6fPq6hQrvRRGp4X6fbHb15UvgLLlo-gLogdhMVQYhw,10605
|
|
8
8
|
numbers_parser/containers.py,sha256=SBD99t0ABHraGA8729jPXy5VcRHT21U_WM3ijOIiwd4,4886
|
|
9
9
|
numbers_parser/currencies.py,sha256=8k4a3WKmDoHeurkDICymHX13N7ManHSTaka_JNXCZYA,3767
|
|
10
|
-
numbers_parser/
|
|
11
|
-
numbers_parser/document.py,sha256=oOw8Gag6z_lJyAhI3WcYi-RZb2k7N4I0Nj4wi1aLMFM,59114
|
|
10
|
+
numbers_parser/document.py,sha256=6eCNbLRUmNoNEim8Wbk9DkhuhWHAtTmbexKDvld8Bp4,60866
|
|
12
11
|
numbers_parser/exceptions.py,sha256=51yJTYm0X2am4YK-F6sVYOHmlYrBex_e4lYtbmiQX3I,611
|
|
13
12
|
numbers_parser/experimental.py,sha256=WARjTa-2ePb8Ga8Q6oDP6EJCs12ofLRF2YpwzUu66ZI,374
|
|
14
|
-
numbers_parser/formula.py,sha256
|
|
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
|
|
15
22
|
numbers_parser/generated/TNArchives_pb2.py,sha256=Tq1UC2Ml1dzAQFIrz3Om-sGI903FBZmlN3GgYQNt4a8,15931
|
|
16
23
|
numbers_parser/generated/TNArchives_sos_pb2.py,sha256=AYI1X5t5Gb4l941jXlHEY0v97ToIze0bSYBR7KQmS0A,1215
|
|
17
24
|
numbers_parser/generated/TNCommandArchives_pb2.py,sha256=my5CgnWmqHa5p0NFf-aUC8aqEPz3-pXXlyz4UJmZKZE,18378
|
|
@@ -19,7 +26,7 @@ numbers_parser/generated/TNCommandArchives_sos_pb2.py,sha256=MhIENEtVylmebThyhgl
|
|
|
19
26
|
numbers_parser/generated/TSAArchives_pb2.py,sha256=FqNAQf5ul602CJS0tvA5p-gEbuUUw3msI4WfkRrVg5k,19907
|
|
20
27
|
numbers_parser/generated/TSAArchives_sos_pb2.py,sha256=UlEScYhun_N-Cbr2v5RcgvJuwkloUuPJbrWxnQTOAfo,2033
|
|
21
28
|
numbers_parser/generated/TSACommandArchives_sos_pb2.py,sha256=dyjRN08Ly1qp5m3jcOE5yClARAzg5KyOYNMWyplRq8w,3907
|
|
22
|
-
numbers_parser/generated/TSCEArchives_pb2.py,sha256=
|
|
29
|
+
numbers_parser/generated/TSCEArchives_pb2.py,sha256=WtHsNP4ogcoT3q6e-rT68FUU5CjvQzjCBzyBEtd0lAs,67687
|
|
23
30
|
numbers_parser/generated/TSCH3DArchives_pb2.py,sha256=eV4GahEGv_3nGNgnN6xc3kfJ07UT3oALlLeJdh0GcQ4,11162
|
|
24
31
|
numbers_parser/generated/TSCHArchives_Common_pb2.py,sha256=dqgymAVSSQmjp3XuuXFRfXoSXhbQqaQXWbd-JUJs7Nc,8655
|
|
25
32
|
numbers_parser/generated/TSCHArchives_GEN_pb2.py,sha256=_v3oN76ohi0uDlzoIg6AZnGWyirjLzhBSRLunsFkSco,45616
|
|
@@ -36,9 +43,9 @@ numbers_parser/generated/TSKArchives_pb2.py,sha256=D5EaP8aTC2VstJo7XfsGQ1VNzPPDR
|
|
|
36
43
|
numbers_parser/generated/TSPArchiveMessages_pb2.py,sha256=5Th08Q19AOsMEMggvM9fda1StJjV8LTDDI5x7pY6aM8,17950
|
|
37
44
|
numbers_parser/generated/TSPDatabaseMessages_pb2.py,sha256=_jvq890xBQpSDcYOKgII30XlxukPBRZBu0kkRpbJ-z0,2024
|
|
38
45
|
numbers_parser/generated/TSPMessages_pb2.py,sha256=LBHRhNnQdDu226sh3gK_AOjbO3LDkGCWpVi1wzf7emA,13032
|
|
39
|
-
numbers_parser/generated/TSSArchives_pb2.py,sha256=
|
|
46
|
+
numbers_parser/generated/TSSArchives_pb2.py,sha256=JBW8ZncRBfT2CyL4A2yh7ZpDRPBO_o_H94AAIgEiN4s,10152
|
|
40
47
|
numbers_parser/generated/TSSArchives_sos_pb2.py,sha256=FAhtvQ9TBg18AcIk4HwGCreNWlEu3k_kK_9jRVsh7FM,2842
|
|
41
|
-
numbers_parser/generated/TSTArchives_pb2.py,sha256=
|
|
48
|
+
numbers_parser/generated/TSTArchives_pb2.py,sha256=lScldcH_bUfL0JSRFwpyhhu4bFMO404Vjm4TxKKNr1E,88185
|
|
42
49
|
numbers_parser/generated/TSTArchives_sos_pb2.py,sha256=JxiMXSdTH5VJo-c5zDdD_tzGQCTrUDE2K0YP_x-zh84,12597
|
|
43
50
|
numbers_parser/generated/TSTCommandArchives_pb2.py,sha256=LEyGJBOLdhxVarepxGfHprNs8vIAmSCO-iNnl3Afdkk,59523
|
|
44
51
|
numbers_parser/generated/TSTStylePropertyArchiving_pb2.py,sha256=0ADsIwTk4GcTeQJRhYxEEjsD_SuLEOSUaGYdHnsO9CA,12415
|
|
@@ -48,15 +55,10 @@ numbers_parser/generated/TSWPCommandArchives_pb2.py,sha256=-wQpDqveA64l_V-0jXyMk
|
|
|
48
55
|
numbers_parser/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
56
|
numbers_parser/generated/fontmap.py,sha256=ORrf3PtxG_gfT1t8R77yXjXBlIefRjvUCBUuG5RCTh8,23806
|
|
50
57
|
numbers_parser/generated/functionmap.py,sha256=9OLSNlOVWxRO9xS8QZmK1HURpc11c1B5nIAAecUwA98,6082
|
|
51
|
-
numbers_parser/generated/mapping.py,sha256=
|
|
52
|
-
numbers_parser/
|
|
53
|
-
numbers_parser/
|
|
54
|
-
numbers_parser/
|
|
55
|
-
numbers_parser/
|
|
56
|
-
numbers_parser/
|
|
57
|
-
numbers_parser/
|
|
58
|
-
numbers_parser-4.14.4.dist-info/LICENSE.rst,sha256=8vTa1-5KSdHrTpU9rlheO5005EWReEPMpjV7BjSaMc4,1050
|
|
59
|
-
numbers_parser-4.14.4.dist-info/METADATA,sha256=9NuTYRjqnWEMdiVFU0xWstijfsNzidvOsk1FD9yDzO8,22889
|
|
60
|
-
numbers_parser-4.14.4.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
|
61
|
-
numbers_parser-4.14.4.dist-info/entry_points.txt,sha256=8VSxWAamOAvVcKS6iza4BQtYe03nga552HMLcVY-MBc,160
|
|
62
|
-
numbers_parser-4.14.4.dist-info/RECORD,,
|
|
58
|
+
numbers_parser/generated/mapping.py,sha256=W6fEWqar3TFvx2wyWgK4NutIz9EYKtjChhSfho2FGQQ,32266
|
|
59
|
+
numbers_parser-4.16.1.dist-info/licenses/LICENSE.rst,sha256=8vTa1-5KSdHrTpU9rlheO5005EWReEPMpjV7BjSaMc4,1050
|
|
60
|
+
numbers_parser-4.16.1.dist-info/METADATA,sha256=xWxQs-7-3dVsXpfvQ0qAxGiZDehbesu1OQSsQDwR2FQ,22805
|
|
61
|
+
numbers_parser-4.16.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
62
|
+
numbers_parser-4.16.1.dist-info/entry_points.txt,sha256=_5biENfY3S-XG8BZL2AuE7Gvrw0zBwGjF6Un52u7FAk,165
|
|
63
|
+
numbers_parser-4.16.1.dist-info/top_level.txt,sha256=EOag5_Q4xjG7gstnrNVeAF_CLUAJBR_HDvciqMQ9RQo,15
|
|
64
|
+
numbers_parser-4.16.1.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
numbers_parser
|
|
Binary file
|
|
File without changes
|