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.
Files changed (60) hide show
  1. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/PKG-INFO +15 -12
  2. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/README.md +13 -10
  3. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/pyproject.toml +3 -3
  4. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/__init__.py +8 -23
  5. numbers_parser-4.10.3/src/numbers_parser/cell.py +2217 -0
  6. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/constants.py +8 -0
  7. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/containers.py +1 -1
  8. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/document.py +17 -15
  9. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/model.py +89 -263
  10. numbers_parser-4.10.1/src/numbers_parser/cell.py +0 -1230
  11. numbers_parser-4.10.1/src/numbers_parser/cell_storage.py +0 -927
  12. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/LICENSE.rst +0 -0
  13. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/_cat_numbers.py +0 -0
  14. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/_unpack_numbers.py +0 -0
  15. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/bullets.py +0 -0
  16. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/currencies.py +0 -0
  17. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/data/empty.numbers +0 -0
  18. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/exceptions.py +0 -0
  19. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/experimental.py +0 -0
  20. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/formula.py +0 -0
  21. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNArchives_pb2.py +0 -0
  22. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNArchives_sos_pb2.py +0 -0
  23. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNCommandArchives_pb2.py +0 -0
  24. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TNCommandArchives_sos_pb2.py +0 -0
  25. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSAArchives_pb2.py +0 -0
  26. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSAArchives_sos_pb2.py +0 -0
  27. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSACommandArchives_sos_pb2.py +0 -0
  28. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCEArchives_pb2.py +0 -0
  29. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCH3DArchives_pb2.py +0 -0
  30. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_Common_pb2.py +0 -0
  31. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py +0 -0
  32. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_pb2.py +0 -0
  33. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHArchives_sos_pb2.py +0 -0
  34. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHCommandArchives_pb2.py +0 -0
  35. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSCHPreUFFArchives_pb2.py +0 -0
  36. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDArchives_pb2.py +0 -0
  37. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDArchives_sos_pb2.py +0 -0
  38. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSDCommandArchives_pb2.py +0 -0
  39. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSKArchives_pb2.py +0 -0
  40. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSKArchives_sos_pb2.py +0 -0
  41. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPArchiveMessages_pb2.py +0 -0
  42. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPDatabaseMessages_pb2.py +0 -0
  43. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSPMessages_pb2.py +0 -0
  44. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSSArchives_pb2.py +0 -0
  45. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSSArchives_sos_pb2.py +0 -0
  46. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTArchives_pb2.py +0 -0
  47. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTArchives_sos_pb2.py +0 -0
  48. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTCommandArchives_pb2.py +0 -0
  49. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSTStylePropertyArchiving_pb2.py +0 -0
  50. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPArchives_pb2.py +0 -0
  51. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPArchives_sos_pb2.py +0 -0
  52. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/TSWPCommandArchives_pb2.py +0 -0
  53. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/__init__.py +0 -0
  54. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/fontmap.py +0 -0
  55. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/generated/functionmap.py +0 -0
  56. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/iwafile.py +0 -0
  57. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/iwork.py +0 -0
  58. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/mapping.py +0 -0
  59. {numbers_parser-4.10.1 → numbers_parser-4.10.3}/src/numbers_parser/numbers_cache.py +0 -0
  60. {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.1
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 (>=4.21.1,<5.0.0)
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.8 onwards. It is not compatible
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 planned.
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
- characters (see [issue
393
- 69](https://github.com/masaccio/numbers-parser/issues/69)).
394
- [Cell.style.bg_image](https://masaccio.github.io/numbers-parser/#numbers_parser.Style)
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.8 onwards. It is not compatible
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 planned.
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
- characters (see [issue
362
- 69](https://github.com/masaccio/numbers-parser/issues/69)).
363
- [Cell.style.bg_image](https://masaccio.github.io/numbers-parser/#numbers_parser.Style)
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.1"
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 = "^4.21.1"
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 = py38, py39, py310, py311, py312
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
- from numbers_parser.cell import * # noqa: F403
28
- from numbers_parser.constants import * # noqa: F403
29
- from numbers_parser.document import * # noqa: F403
30
- from numbers_parser.exceptions import * # noqa: F403
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