numbers-parser 4.9.0__tar.gz → 4.9.2__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.9.0 → numbers_parser-4.9.2}/PKG-INFO +2 -1
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/pyproject.toml +2 -1
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/document.py +16 -1
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/model.py +3 -1
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/LICENSE.rst +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/README.md +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/__init__.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/_cat_numbers.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/_unpack_numbers.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/bullets.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/cell.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/cell_storage.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/constants.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/containers.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/currencies.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/data/empty.numbers +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/exceptions.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/experimental.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/file.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/formula.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNCommandArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNCommandArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSAArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSAArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSACommandArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCEArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCH3DArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_Common_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHCommandArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHPreUFFArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDCommandArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSKArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSKArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSPArchiveMessages_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSPDatabaseMessages_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSPMessages_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSSArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSSArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTCommandArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTStylePropertyArchiving_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSWPArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSWPArchives_sos_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSWPCommandArchives_pb2.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/__init__.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/fontmap.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/functionmap.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/iwafile.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/mapping.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/numbers_cache.py +0 -0
- {numbers_parser-4.9.0 → numbers_parser-4.9.2}/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.9.
|
|
3
|
+
Version: 4.9.2
|
|
4
4
|
Summary: Read and write Apple Numbers spreadsheets
|
|
5
5
|
Home-page: https://github.com/masaccio/numbers-parser
|
|
6
6
|
License: MIT
|
|
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
18
18
|
Requires-Dist: compact-json (>=1.1.3,<2.0.0)
|
|
19
|
+
Requires-Dist: enum-tools (>=0.11.0,<0.12.0)
|
|
19
20
|
Requires-Dist: importlib-resources (>=6.1.1,<7.0.0)
|
|
20
21
|
Requires-Dist: pendulum (>=3.0,<4.0)
|
|
21
22
|
Requires-Dist: protobuf (>=4.21.1,<5.0.0)
|
|
@@ -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.9.
|
|
15
|
+
version = "4.9.2"
|
|
16
16
|
|
|
17
17
|
[tool.poetry.scripts]
|
|
18
18
|
cat-numbers = "numbers_parser._cat_numbers:main"
|
|
@@ -29,6 +29,7 @@ roman = "^3.3"
|
|
|
29
29
|
sigfig = "^1.3.2"
|
|
30
30
|
setuptools = "^69.0.3"
|
|
31
31
|
importlib-resources = "^6.1.1"
|
|
32
|
+
enum-tools = "^0.11.0"
|
|
32
33
|
|
|
33
34
|
[tool.poetry.group.dev.dependencies]
|
|
34
35
|
black = "*"
|
|
@@ -1226,6 +1226,13 @@ class Table(Cacheable): # noqa: F811
|
|
|
1226
1226
|
decimal_places=3,
|
|
1227
1227
|
negative_style=NegativeNumberStyle.RED
|
|
1228
1228
|
)
|
|
1229
|
+
table.set_cell_formatting(
|
|
1230
|
+
3,
|
|
1231
|
+
0,
|
|
1232
|
+
"popup",
|
|
1233
|
+
popup_values=["Cat", "Dog", "Rabbit"],
|
|
1234
|
+
allow_none=True
|
|
1235
|
+
)
|
|
1229
1236
|
|
|
1230
1237
|
:Parameters:
|
|
1231
1238
|
* **args** (*list*, *optional*) – Positional arguments for cell reference and data format type (see below)
|
|
@@ -1243,6 +1250,8 @@ class Table(Cacheable): # noqa: F811
|
|
|
1243
1250
|
:Raises:
|
|
1244
1251
|
* **TypeError** -
|
|
1245
1252
|
If a tickbox is chosen for anything other than ``bool`` values.
|
|
1253
|
+
* **IndexError** -
|
|
1254
|
+
If the current cell value does not match a list of popup items.
|
|
1246
1255
|
|
|
1247
1256
|
:Warns:
|
|
1248
1257
|
* **RuntimeWarning** -
|
|
@@ -1421,13 +1430,19 @@ class Table(Cacheable): # noqa: F811
|
|
|
1421
1430
|
else False
|
|
1422
1431
|
)
|
|
1423
1432
|
except (KeyError, AttributeError):
|
|
1433
|
+
control_format = kwargs["control_format"]
|
|
1424
1434
|
raise TypeError(
|
|
1425
|
-
"unsupported number format '{control_format}' for format_type_name"
|
|
1435
|
+
f"unsupported number format '{control_format}' for {format_type_name}"
|
|
1426
1436
|
) from None
|
|
1427
1437
|
else:
|
|
1428
1438
|
number_format_type = FormattingType.NUMBER
|
|
1429
1439
|
format_id = self._model.format_archive(self._table_id, number_format_type, format)
|
|
1430
1440
|
elif format_type_name == "popup":
|
|
1441
|
+
if cell.value not in format.popup_values:
|
|
1442
|
+
raise IndexError(
|
|
1443
|
+
f"current cell value '{cell.value}' does not match any popup values"
|
|
1444
|
+
)
|
|
1445
|
+
|
|
1431
1446
|
popup_format_type = FormattingType.TEXT if isinstance(cell, TextCell) else True
|
|
1432
1447
|
format_id = self._model.format_archive(self._table_id, popup_format_type, format)
|
|
1433
1448
|
else:
|
|
@@ -1739,7 +1739,9 @@ class _NumbersModel(Cacheable):
|
|
|
1739
1739
|
cell_type = TSTArchives.durationCellType
|
|
1740
1740
|
value = value = pack("<d", float(cell.value.total_seconds()))
|
|
1741
1741
|
elif isinstance(cell, EmptyCell):
|
|
1742
|
-
if cell._style is not None
|
|
1742
|
+
if cell._style is not None or (
|
|
1743
|
+
cell._storage is not None and cell._storage.control_id is not None
|
|
1744
|
+
):
|
|
1743
1745
|
flags = 0
|
|
1744
1746
|
cell_type = TSTArchives.emptyCellValueType
|
|
1745
1747
|
value = b""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNArchives_sos_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TNCommandArchives_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSAArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSAArchives_sos_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCEArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCH3DArchives_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_GEN_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHArchives_sos_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSCHPreUFFArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDArchives_sos_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSDCommandArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSKArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSKArchives_sos_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSPArchiveMessages_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSPMessages_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSSArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSSArchives_sos_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTArchives_sos_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSTCommandArchives_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSWPArchives_pb2.py
RENAMED
|
File without changes
|
{numbers_parser-4.9.0 → numbers_parser-4.9.2}/src/numbers_parser/generated/TSWPArchives_sos_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|