numbers-parser 4.4.6__py3-none-any.whl → 4.4.8__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 +7 -5
- numbers_parser/_cat_numbers.py +1 -2
- numbers_parser/_unpack_numbers.py +14 -16
- numbers_parser/bullets.py +1 -1
- numbers_parser/cell.py +33 -29
- numbers_parser/cell_storage.py +36 -29
- numbers_parser/constants.py +2 -2
- numbers_parser/containers.py +12 -14
- numbers_parser/document.py +54 -45
- numbers_parser/exceptions.py +7 -7
- numbers_parser/file.py +18 -8
- numbers_parser/formula.py +7 -3
- numbers_parser/iwafile.py +23 -27
- numbers_parser/mapping.py +24 -24
- numbers_parser/model.py +112 -131
- numbers_parser/numbers_cache.py +3 -2
- {numbers_parser-4.4.6.dist-info → numbers_parser-4.4.8.dist-info}/METADATA +8 -5
- {numbers_parser-4.4.6.dist-info → numbers_parser-4.4.8.dist-info}/RECORD +21 -21
- {numbers_parser-4.4.6.dist-info → numbers_parser-4.4.8.dist-info}/LICENSE.rst +0 -0
- {numbers_parser-4.4.6.dist-info → numbers_parser-4.4.8.dist-info}/WHEEL +0 -0
- {numbers_parser-4.4.6.dist-info → numbers_parser-4.4.8.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: numbers-parser
|
|
3
|
-
Version: 4.4.
|
|
3
|
+
Version: 4.4.8
|
|
4
4
|
Summary: Read and write Apple Numbers spreadsheets
|
|
5
5
|
Home-page: https://github.com/masaccio/numbers-parser
|
|
6
6
|
License: MIT
|
|
@@ -17,11 +17,12 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
18
|
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
19
19
|
Requires-Dist: compact-json (>=1.1.3,<2.0.0)
|
|
20
|
-
Requires-Dist: pendulum (>=
|
|
20
|
+
Requires-Dist: pendulum (>=3.0,<4.0)
|
|
21
21
|
Requires-Dist: protobuf (>=4.21.1,<5.0.0)
|
|
22
22
|
Requires-Dist: python-snappy (>=0.6.1,<0.7.0)
|
|
23
23
|
Requires-Dist: regex (>=2022.9.13,<2023.0.0)
|
|
24
24
|
Requires-Dist: roman (>=3.3,<4.0)
|
|
25
|
+
Requires-Dist: setuptools (>=69.0.3,<70.0.0)
|
|
25
26
|
Requires-Dist: sigfig (>=1.3.2,<2.0.0)
|
|
26
27
|
Project-URL: Documentation, https://github.com/masaccio/numbers-parser/blob/main/README.md
|
|
27
28
|
Project-URL: Repository, https://github.com/masaccio/numbers-parser
|
|
@@ -34,9 +35,9 @@ Description-Content-Type: text/markdown
|
|
|
34
35
|
[](https://codecov.io/gh/masaccio/numbers-parser)
|
|
35
36
|
[](https://badge.fury.io/py/numbers-parser)
|
|
36
37
|
|
|
37
|
-
`numbers-parser` is a Python module for parsing [Apple Numbers](https://www.apple.com/numbers/)`.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 13.
|
|
38
|
+
`numbers-parser` is a Python module for parsing [Apple Numbers](https://www.apple.com/numbers/)`.numbers` files. It supports Numbers files generated by Numbers version 10.3, and up with the latest tested version being 13.2 (current as of September 2023).
|
|
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
|
+
It supports and is tested against Python versions from 3.8 onwards. It is not compatible with earlier versions of Python. Python 3.12 is not supported because of dependencies that do not currently work with 3.12. This is expected to be resolved by November 2023.
|
|
40
41
|
|
|
41
42
|
## Installation
|
|
42
43
|
|
|
@@ -78,7 +79,7 @@ C:\Users\Jon>pip install C:\Users\Jon\Downloads\python_snappy-0.6.1-cp311-cp311-
|
|
|
78
79
|
|
|
79
80
|
To better partition cell styles, background image data which was supported in earlier versions through the methods `image_data` and `image_filename` is now part of the new `cell_style` property. Using the deprecated methods `image_data` and `image_filename` will issue a `DeprecationWarning` if used.The legacy methods will be removed in a future version of numbers-parser.
|
|
80
81
|
|
|
81
|
-
`NumberCell` cell values are now limited to 15 significant figures to match the implementation of floating point numbers in Apple Numbers. For example, the value `1234567890123456` is rounded to `1234567890123460` in the same
|
|
82
|
+
`NumberCell` cell values are now limited to 15 significant figures to match the implementation of floating point numbers in Apple Numbers. For example, the value `1234567890123456` is rounded to `1234567890123460` in the same way as in Numbers. Previously, using native `float` with no checking resulted in rounding errors in unpacking internal numbers. Attempting to write a number with too many significant digits results in a `RuntimeWarning`.
|
|
82
83
|
|
|
83
84
|
The previously deprecated methods `Document.sheets()` and `Sheet.tables()` are now only available using the properties of the same name (see examples in this README).
|
|
84
85
|
|
|
@@ -282,6 +283,8 @@ with open (cell.style.bg_image.filename, "wb") as f:
|
|
|
282
283
|
f.write(cell.style.bg_image.data)
|
|
283
284
|
```
|
|
284
285
|
|
|
286
|
+
Due to a limitation in Python's [ZipFile](https://docs.python.org/3/library/zipfile.html), Python versions older than 3.11 do not support image filenames with UTF-8 characters (see [issue 69](https://github.com/masaccio/numbers-parser/issues/69)). `cell.style.bg_image` returns `None` for such files and issues a `RuntimeWarning`.
|
|
287
|
+
|
|
285
288
|
### Borders
|
|
286
289
|
|
|
287
290
|
`numbers-parser` supports reading and writing cell borders, though the interface for each differs. Individual cells can have each of their four borders tested, but when drawing new borders, these are set for the table to allow for drawing borders across multiple cells. Setting the border of merged cells is not possible unless the edge of the cells is at the end of the merged region.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
numbers_parser/__init__.py,sha256
|
|
2
|
-
numbers_parser/_cat_numbers.py,sha256
|
|
3
|
-
numbers_parser/_unpack_numbers.py,sha256=
|
|
4
|
-
numbers_parser/bullets.py,sha256=
|
|
5
|
-
numbers_parser/cell.py,sha256=
|
|
6
|
-
numbers_parser/cell_storage.py,sha256=
|
|
7
|
-
numbers_parser/constants.py,sha256=
|
|
8
|
-
numbers_parser/containers.py,sha256=
|
|
1
|
+
numbers_parser/__init__.py,sha256=-CSdUv56gD19Pg4n-vjEelb1-9_nR7wDy2z5kGCKhf0,1862
|
|
2
|
+
numbers_parser/_cat_numbers.py,sha256=-HboBJT11Vjcr8sjLZl7Z6qAapnPEc_kFYq6PTqON20,4619
|
|
3
|
+
numbers_parser/_unpack_numbers.py,sha256=zfpBOfM92rMHSRQVR4tExf0fWI2Lbbb6WrwQPoq4gMo,5689
|
|
4
|
+
numbers_parser/bullets.py,sha256=OnVVMPjhTDrC-ncw52Gb00UEXNmn2Rvd3xi7lfqW3hk,2616
|
|
5
|
+
numbers_parser/cell.py,sha256=lWa0irSPfZqoTose-MrNiSe0WAl5kVlFKg4g3HFK_EU,26054
|
|
6
|
+
numbers_parser/cell_storage.py,sha256=CK_QpmjjCIIBmcj0Acq3pnNsHSO7y3j09HI8GRV39RM,29450
|
|
7
|
+
numbers_parser/constants.py,sha256=0xOqyrp7-T9hggKOf44OQA9TphlBEE3zrSy1hJriKmo,1893
|
|
8
|
+
numbers_parser/containers.py,sha256=b9sOCBd60YjMxJ-s9u-erWusA3guHU-c1RAUqM8CyKs,4191
|
|
9
9
|
numbers_parser/data/empty.numbers,sha256=8JOp035V-p2ff9_Wao7mLcYvb6_if6O2cus_esjVA9k,90316
|
|
10
|
-
numbers_parser/document.py,sha256=
|
|
11
|
-
numbers_parser/exceptions.py,sha256=
|
|
10
|
+
numbers_parser/document.py,sha256=ac0Pa33ZEqR9FhijMn-TKBPUl0KF9kI0EjuYvGhHK4I,20865
|
|
11
|
+
numbers_parser/exceptions.py,sha256=G8dASUQZI8ksHYRVfdGWJzgsJD5CBpcZvmDJUZTqT-c,670
|
|
12
12
|
numbers_parser/experimental.py,sha256=WARjTa-2ePb8Ga8Q6oDP6EJCs12ofLRF2YpwzUu66ZI,374
|
|
13
|
-
numbers_parser/file.py,sha256=
|
|
14
|
-
numbers_parser/formula.py,sha256=
|
|
13
|
+
numbers_parser/file.py,sha256=ivcl5326TQXwj1GP9FCh-WiM_oXZumgQdByehAEw1f8,3966
|
|
14
|
+
numbers_parser/formula.py,sha256=nTgK1RolKCWD-xvspKjWthKKdWXFYbULiMjljSkLDpc,10644
|
|
15
15
|
numbers_parser/generated/TNArchives_pb2.py,sha256=txkTtPHvdXVvv7zO1dHCxxnixaFulK7hJVLQrH3cIJc,16007
|
|
16
16
|
numbers_parser/generated/TNArchives_sos_pb2.py,sha256=AYI1X5t5Gb4l941jXlHEY0v97ToIze0bSYBR7KQmS0A,1215
|
|
17
17
|
numbers_parser/generated/TNCommandArchives_pb2.py,sha256=AtDBJ_r-slDRVzHxJdXXZPAhpf-jpHj27ujIa2-aPtg,18271
|
|
@@ -47,13 +47,13 @@ numbers_parser/generated/TSWPCommandArchives_pb2.py,sha256=CIb___7pyWeRF4x-HVzzg
|
|
|
47
47
|
numbers_parser/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
48
|
numbers_parser/generated/fontmap.py,sha256=pqc1HwwTr3UbFMmhUaHJg1dX5-3pXbyhfS2bkdZHKnI,22748
|
|
49
49
|
numbers_parser/generated/functionmap.py,sha256=VdZo0ERMYONcrnJFwABcSCHb8pjA4wY2ogt8Janz57M,6082
|
|
50
|
-
numbers_parser/iwafile.py,sha256=
|
|
51
|
-
numbers_parser/mapping.py,sha256=
|
|
52
|
-
numbers_parser/model.py,sha256=
|
|
53
|
-
numbers_parser/numbers_cache.py,sha256=
|
|
50
|
+
numbers_parser/iwafile.py,sha256=MuFIlB_hdXTTZflxoX_ZvA_68OaJkmRQ4eJ2UAiCKXQ,11833
|
|
51
|
+
numbers_parser/mapping.py,sha256=in8W3S8DmTcPefFaxnATLw0FQ4YnFsnAE-cl5dljzJE,32215
|
|
52
|
+
numbers_parser/model.py,sha256=f4jdR8-RwNvCcHFNbc1XBkfvDy0KFBmpuHpG1giVyeU,91217
|
|
53
|
+
numbers_parser/numbers_cache.py,sha256=1ghEBghQAYFpPiEeOtb74i016mXc039v1pOubbqvaLs,1141
|
|
54
54
|
numbers_parser/numbers_uuid.py,sha256=-LeAj_ULC0va57pEmyegGY0xXqkNNjyuLukCaiQJhOk,2642
|
|
55
|
-
numbers_parser-4.4.
|
|
56
|
-
numbers_parser-4.4.
|
|
57
|
-
numbers_parser-4.4.
|
|
58
|
-
numbers_parser-4.4.
|
|
59
|
-
numbers_parser-4.4.
|
|
55
|
+
numbers_parser-4.4.8.dist-info/LICENSE.rst,sha256=8vTa1-5KSdHrTpU9rlheO5005EWReEPMpjV7BjSaMc4,1050
|
|
56
|
+
numbers_parser-4.4.8.dist-info/METADATA,sha256=3nXzAhvFbk4FyvS5W_HMoWbAQwk1fgsCIiJpKfgR3GA,26797
|
|
57
|
+
numbers_parser-4.4.8.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
|
58
|
+
numbers_parser-4.4.8.dist-info/entry_points.txt,sha256=V91uB9vBPxf3eCY1h-0syv21imYCT0MJfMxf87DmwIk,115
|
|
59
|
+
numbers_parser-4.4.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|