exstruct 0.5.0__tar.gz → 0.5.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.
- {exstruct-0.5.0 → exstruct-0.5.2}/PKG-INFO +10 -2
- {exstruct-0.5.0 → exstruct-0.5.2}/README.md +9 -1
- {exstruct-0.5.0 → exstruct-0.5.2}/pyproject.toml +4 -4
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/op_schema.py +444 -405
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/__init__.py +13 -13
- exstruct-0.5.2/src/exstruct/mcp/patch/chart_types.py +63 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/engine/__init__.py +6 -6
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/engine/base.py +34 -34
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/engine/openpyxl_engine.py +18 -18
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/engine/xlwings_engine.py +19 -19
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/internal.py +1018 -33
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/models.py +230 -41
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/ops/__init__.py +6 -6
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/ops/common.py +7 -7
- exstruct-0.5.2/src/exstruct/mcp/patch/ops/openpyxl_ops.py +69 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/ops/xlwings_ops.py +26 -26
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/runtime.py +159 -153
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/service.py +352 -325
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/specs.py +58 -57
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/types.py +53 -52
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch_runner.py +74 -74
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/server.py +3 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/shared/__init__.py +23 -23
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/shared/a1.py +82 -82
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/shared/output_path.py +8 -1
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/tools.py +783 -783
- exstruct-0.5.0/src/exstruct/mcp/patch/ops/openpyxl_ops.py +0 -29
- {exstruct-0.5.0 → exstruct-0.5.2}/LICENSE +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/cli/availability.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/cli/main.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/backends/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/backends/base.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/backends/com_backend.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/backends/openpyxl_backend.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/cells.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/charts.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/integrate.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/logging_utils.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/modeling.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/pipeline.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/ranges.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/shapes.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/core/workbook.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/engine.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/errors.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/io/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/io/serialize.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/chunk_reader.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/extract_runner.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/io.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/patch/normalize.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/sheet_reader.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/mcp/validate_input.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/models/__init__.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/models/maps.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/models/types.py +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/py.typed +0 -0
- {exstruct-0.5.0 → exstruct-0.5.2}/src/exstruct/render/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: exstruct
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines
|
|
5
5
|
Keywords: excel,structure,data,exstruct
|
|
6
6
|
Author: harumiWeb
|
|
@@ -175,7 +175,15 @@ Notes:
|
|
|
175
175
|
- `auto` (default): prefer COM when available, otherwise openpyxl
|
|
176
176
|
- `com`: force COM (rejects `dry_run` / `return_inverse_ops` / `preflight_formula_check`)
|
|
177
177
|
- `openpyxl`: force openpyxl (`.xls` is not supported)
|
|
178
|
-
- `
|
|
178
|
+
- `create_chart` is COM-only (`backend="openpyxl"` is not allowed for requests that include it), and it also rejects `dry_run` / `return_inverse_ops` / `preflight_formula_check`.
|
|
179
|
+
- `create_chart` `chart_type` supports: `line`, `column`, `bar`, `area`, `pie`, `doughnut`, `scatter`, `radar` (aliases: `column_clustered`, `bar_clustered`, `xy_scatter`, `donut`).
|
|
180
|
+
- `create_chart` `data_range` accepts either one range string or `list[str]` (multi-series), and `data_range` / `category_range` both support sheet-qualified ranges (`Sheet2!A1:B10`, `'Sales Data'!A1:B10`).
|
|
181
|
+
- `create_chart` supports optional explicit labels: `chart_title`, `x_axis_title`, `y_axis_title`.
|
|
182
|
+
- `create_chart` and `apply_table_style` can be combined in one request when the backend resolves to COM (`backend="com"` or `backend="auto"` with COM available).
|
|
183
|
+
- For stable `apply_table_style` COM runs on Windows, ensure desktop Excel is installed/runnable and the target `range` is a contiguous header-included A1 range.
|
|
184
|
+
- `exstruct_patch` error detail may include `error_code` / `failed_field` / `raw_com_message`; table-related codes include `table_style_invalid`, `list_object_add_failed`, and `com_api_missing`.
|
|
185
|
+
- `exstruct_patch` response includes `engine` (`com` or `openpyxl`) to show the actual backend used. `restore_design_snapshot` remains openpyxl-only.
|
|
186
|
+
- Use `exstruct_make` for new workbook creation and `exstruct_patch` for editing existing workbooks.
|
|
179
187
|
- `exstruct_make` creates a new workbook and applies `ops` in one call (`out_path` required, `ops` optional).
|
|
180
188
|
- Supports `.xlsx` / `.xlsm` / `.xls`
|
|
181
189
|
- Initial sheet is normalized to `Sheet1`
|
|
@@ -110,7 +110,15 @@ Notes:
|
|
|
110
110
|
- `auto` (default): prefer COM when available, otherwise openpyxl
|
|
111
111
|
- `com`: force COM (rejects `dry_run` / `return_inverse_ops` / `preflight_formula_check`)
|
|
112
112
|
- `openpyxl`: force openpyxl (`.xls` is not supported)
|
|
113
|
-
- `
|
|
113
|
+
- `create_chart` is COM-only (`backend="openpyxl"` is not allowed for requests that include it), and it also rejects `dry_run` / `return_inverse_ops` / `preflight_formula_check`.
|
|
114
|
+
- `create_chart` `chart_type` supports: `line`, `column`, `bar`, `area`, `pie`, `doughnut`, `scatter`, `radar` (aliases: `column_clustered`, `bar_clustered`, `xy_scatter`, `donut`).
|
|
115
|
+
- `create_chart` `data_range` accepts either one range string or `list[str]` (multi-series), and `data_range` / `category_range` both support sheet-qualified ranges (`Sheet2!A1:B10`, `'Sales Data'!A1:B10`).
|
|
116
|
+
- `create_chart` supports optional explicit labels: `chart_title`, `x_axis_title`, `y_axis_title`.
|
|
117
|
+
- `create_chart` and `apply_table_style` can be combined in one request when the backend resolves to COM (`backend="com"` or `backend="auto"` with COM available).
|
|
118
|
+
- For stable `apply_table_style` COM runs on Windows, ensure desktop Excel is installed/runnable and the target `range` is a contiguous header-included A1 range.
|
|
119
|
+
- `exstruct_patch` error detail may include `error_code` / `failed_field` / `raw_com_message`; table-related codes include `table_style_invalid`, `list_object_add_failed`, and `com_api_missing`.
|
|
120
|
+
- `exstruct_patch` response includes `engine` (`com` or `openpyxl`) to show the actual backend used. `restore_design_snapshot` remains openpyxl-only.
|
|
121
|
+
- Use `exstruct_make` for new workbook creation and `exstruct_patch` for editing existing workbooks.
|
|
114
122
|
- `exstruct_make` creates a new workbook and applies `ops` in one call (`out_path` required, `ops` optional).
|
|
115
123
|
- Supports `.xlsx` / `.xlsm` / `.xls`
|
|
116
124
|
- Initial sheet is normalized to `Sheet1`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "exstruct"
|
|
3
|
-
version = "0.5.
|
|
4
|
-
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
|
|
1
|
+
[project]
|
|
2
|
+
name = "exstruct"
|
|
3
|
+
version = "0.5.2"
|
|
4
|
+
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
7
7
|
keywords = ["excel", "structure", "data", "exstruct"]
|