numbers-parser 4.10.1__tar.gz → 4.10.3__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.
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/PKG-INFO +15 -12
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/README.md +13 -10
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/pyproject.toml +3 -3
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/__init__.py +8 -23
- numbers_parser-4.10.3/src/numbers_parser/cell.py +2217 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/constants.py +8 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/containers.py +1 -1
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/document.py +17 -15
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/model.py +89 -263
- numbers_parser-4.10.1/src/numbers_parser/cell.py +0 -1230
- numbers_parser-4.10.1/src/numbers_parser/cell_storage.py +0 -927
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/LICENSE.rst +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/_cat_numbers.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/_unpack_numbers.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/bullets.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/currencies.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/data/empty.numbers +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/exceptions.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/experimental.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/formula.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNCommandArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNCommandArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSAArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSAArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSACommandArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCEArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCH3DArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_Common_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHCommandArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHPreUFFArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDCommandArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSKArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSKArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPArchiveMessages_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPDatabaseMessages_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPMessages_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSSArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSSArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTCommandArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTStylePropertyArchiving_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPArchives_sos_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPCommandArchives_pb2.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/__init__.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/fontmap.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/functionmap.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/iwafile.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/iwork.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/mapping.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/numbers_cache.py +0 -0
- {numbers_parser-4.10.1 → numbers_parser-4.10.3}/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: 4.10.
|
|
3
|
+
Version: 4.10.3
|
|
4
4
|
Summary: Read and write Apple Numbers spreadsheets
|
|
5
5
|
Home-page: https://github.com/masaccio/numbers-parser
|
|
6
6
|
License: MIT
|
|
@@ -19,7 +19,7 @@ Requires-Dist: compact-json (>=1.1.3,<2.0.0)
|
|
|
19
19
|
Requires-Dist: enum-tools (>=0.11.0,<0.12.0)
|
|
20
20
|
Requires-Dist: importlib-resources (>=6.1.1,<7.0.0)
|
|
21
21
|
Requires-Dist: pendulum (>=3.0,<4.0)
|
|
22
|
-
Requires-Dist: protobuf
|
|
22
|
+
Requires-Dist: protobuf
|
|
23
23
|
Requires-Dist: python-snappy (>=0.6.1,<0.7.0)
|
|
24
24
|
Requires-Dist: regex (>=2022.9.13,<2023.0.0)
|
|
25
25
|
Requires-Dist: roman (>=3.3,<4.0)
|
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
37
37
|
generated by Numbers version 10.3, and up with the latest tested version being 13.2
|
|
38
38
|
(current as of September 2023).
|
|
39
39
|
|
|
40
|
-
It supports and is tested against Python versions from 3.
|
|
40
|
+
It supports and is tested against Python versions from 3.9 onwards. It is not compatible
|
|
41
41
|
with earlier versions of Python.
|
|
42
42
|
|
|
43
43
|
## Installation
|
|
@@ -376,24 +376,27 @@ cannot return lower-case versions of AM/PM.
|
|
|
376
376
|
|
|
377
377
|
## Limitations
|
|
378
378
|
|
|
379
|
-
Current known limitations of `numbers-parser` are:
|
|
379
|
+
Current known limitations of `numbers-parser` which may be implemented in the future are:
|
|
380
380
|
|
|
381
|
-
- Formulas cannot be written to a document
|
|
382
381
|
- Table styles that allow new tables to adopt a style across the whole
|
|
383
|
-
table are not
|
|
382
|
+
table are not suppported
|
|
384
383
|
- Creating cells of type `BulletedTextCell` is not supported
|
|
385
384
|
- New tables are inserted with a fixed offset below the last table in a
|
|
386
385
|
worksheet which does not take into account title or caption size
|
|
386
|
+
- Formulas cannot be written to a document
|
|
387
|
+
- Pivot tables are unsupported and saving a document with a pivot table issues
|
|
388
|
+
a UnsupportedWarning.
|
|
389
|
+
|
|
390
|
+
The following limitations are expected to always remain:
|
|
391
|
+
|
|
387
392
|
- New sheets insert tables with formats copied from the first table in
|
|
388
393
|
the previous sheet rather than default table formats
|
|
389
394
|
- Due to a limitation in Python’s
|
|
390
395
|
[ZipFile](https://docs.python.org/3/library/zipfile.html), Python
|
|
391
|
-
versions older than 3.11 do not support image filenames with UTF-8
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
[
|
|
395
|
-
returns `None` for such files and issues a `RuntimeWarning`.
|
|
396
|
-
- Pivot tables are unsupported, but re-saving a document is believed to work. Saving a document with a pivot table issues a UnsupportedWarning.
|
|
396
|
+
versions older than 3.11 do not support image filenames with UTF-8 characters
|
|
397
|
+
[Cell.add_style.bg_image()](https://masaccio.github.io/numbers-parser/api/sheet.html#numbers_parser.Style) returns
|
|
398
|
+
`None` for such files and issues a `RuntimeWarning`
|
|
399
|
+
(see [issue 69](https://github.com/masaccio/numbers-parser/ssues/69) for details).
|
|
397
400
|
|
|
398
401
|
## License
|
|
399
402
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
generated by Numbers version 10.3, and up with the latest tested version being 13.2
|
|
7
7
|
(current as of September 2023).
|
|
8
8
|
|
|
9
|
-
It supports and is tested against Python versions from 3.
|
|
9
|
+
It supports and is tested against Python versions from 3.9 onwards. It is not compatible
|
|
10
10
|
with earlier versions of Python.
|
|
11
11
|
|
|
12
12
|
## Installation
|
|
@@ -345,24 +345,27 @@ cannot return lower-case versions of AM/PM.
|
|
|
345
345
|
|
|
346
346
|
## Limitations
|
|
347
347
|
|
|
348
|
-
Current known limitations of `numbers-parser` are:
|
|
348
|
+
Current known limitations of `numbers-parser` which may be implemented in the future are:
|
|
349
349
|
|
|
350
|
-
- Formulas cannot be written to a document
|
|
351
350
|
- Table styles that allow new tables to adopt a style across the whole
|
|
352
|
-
table are not
|
|
351
|
+
table are not suppported
|
|
353
352
|
- Creating cells of type `BulletedTextCell` is not supported
|
|
354
353
|
- New tables are inserted with a fixed offset below the last table in a
|
|
355
354
|
worksheet which does not take into account title or caption size
|
|
355
|
+
- Formulas cannot be written to a document
|
|
356
|
+
- Pivot tables are unsupported and saving a document with a pivot table issues
|
|
357
|
+
a UnsupportedWarning.
|
|
358
|
+
|
|
359
|
+
The following limitations are expected to always remain:
|
|
360
|
+
|
|
356
361
|
- New sheets insert tables with formats copied from the first table in
|
|
357
362
|
the previous sheet rather than default table formats
|
|
358
363
|
- Due to a limitation in Python’s
|
|
359
364
|
[ZipFile](https://docs.python.org/3/library/zipfile.html), Python
|
|
360
|
-
versions older than 3.11 do not support image filenames with UTF-8
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
[
|
|
364
|
-
returns `None` for such files and issues a `RuntimeWarning`.
|
|
365
|
-
- Pivot tables are unsupported, but re-saving a document is believed to work. Saving a document with a pivot table issues a UnsupportedWarning.
|
|
365
|
+
versions older than 3.11 do not support image filenames with UTF-8 characters
|
|
366
|
+
[Cell.add_style.bg_image()](https://masaccio.github.io/numbers-parser/api/sheet.html#numbers_parser.Style) returns
|
|
367
|
+
`None` for such files and issues a `RuntimeWarning`
|
|
368
|
+
(see [issue 69](https://github.com/masaccio/numbers-parser/ssues/69) for details).
|
|
366
369
|
|
|
367
370
|
## License
|
|
368
371
|
|
|
@@ -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 = "4.10.
|
|
15
|
+
version = "4.10.3"
|
|
16
16
|
|
|
17
17
|
[tool.poetry.scripts]
|
|
18
18
|
cat-numbers = "numbers_parser._cat_numbers:main"
|
|
@@ -21,7 +21,7 @@ unpack-numbers = "numbers_parser._unpack_numbers:main"
|
|
|
21
21
|
[tool.poetry.dependencies]
|
|
22
22
|
compact-json = "^1.1.3"
|
|
23
23
|
pendulum = "^3.0"
|
|
24
|
-
protobuf = "
|
|
24
|
+
protobuf = "*"
|
|
25
25
|
python = ">=3.9,<4.0"
|
|
26
26
|
python-snappy = "^0.6.1"
|
|
27
27
|
regex = "^2022.9.13"
|
|
@@ -75,7 +75,7 @@ addopts = "--cov=src/numbers_parser --cov-report=html --cov-report=term-missing:
|
|
|
75
75
|
legacy_tox_ini = """
|
|
76
76
|
[tox]
|
|
77
77
|
isolated_build = true
|
|
78
|
-
envlist =
|
|
78
|
+
envlist = py39, py310, py311, py312
|
|
79
79
|
[testenv]
|
|
80
80
|
deps =
|
|
81
81
|
pytest
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
__doc__ = """Parse and extract data from Apple Numbers spreadsheets
|
|
2
|
-
|
|
3
|
-
numbers_parser is a Python module for parsing Apple Numbers .numbers files.
|
|
4
|
-
It supports Numbers files generated by Numbers version 10.3 and 11.0
|
|
5
|
-
(current as of May 2021).
|
|
6
|
-
|
|
7
|
-
It supports and is tested against Python versions from 3.5 onwards. It is
|
|
8
|
-
not compatible with earlier versions of Python.
|
|
9
|
-
|
|
10
|
-
Currently supported features of Numbers files are:
|
|
11
|
-
|
|
12
|
-
- Multiple sheets per document
|
|
13
|
-
- Multiple tables per sheet
|
|
14
|
-
- Text, numeric, date, currency, duration, percentage cell types
|
|
15
|
-
|
|
16
|
-
Formulas rely on Numbers storing current values which should usually be
|
|
17
|
-
the case. Formulas themselves rather than the computed values can optionally
|
|
18
|
-
be extracted. Styles are not supported.
|
|
19
|
-
"""
|
|
1
|
+
__doc__ = """Parse and extract data from Apple Numbers spreadsheets"""
|
|
20
2
|
|
|
21
3
|
import importlib.metadata
|
|
22
4
|
import os
|
|
@@ -24,10 +6,13 @@ import plistlib
|
|
|
24
6
|
import re
|
|
25
7
|
import warnings
|
|
26
8
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
from numbers_parser.
|
|
9
|
+
with warnings.catch_warnings():
|
|
10
|
+
# Protobuf
|
|
11
|
+
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
|
12
|
+
from numbers_parser.cell import * # noqa: F403
|
|
13
|
+
from numbers_parser.constants import * # noqa: F403
|
|
14
|
+
from numbers_parser.document import * # noqa: F403
|
|
15
|
+
from numbers_parser.exceptions import * # noqa: F403
|
|
31
16
|
|
|
32
17
|
__version__ = importlib.metadata.version("numbers-parser")
|
|
33
18
|
|