refigure 0.3.3__tar.gz → 0.3.4__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.
- {refigure-0.3.3 → refigure-0.3.4}/PKG-INFO +10 -4
- {refigure-0.3.3 → refigure-0.3.4}/README.md +9 -3
- {refigure-0.3.3 → refigure-0.3.4}/pyproject.toml +1 -1
- {refigure-0.3.3 → refigure-0.3.4}/.gitignore +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/ATTRIBUTION.md +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/LICENSE +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/NOTICE +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/__main__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/_io.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/api.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/cli.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/core/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/core/chart_data.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/core/chart_render.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/core/zipsafe.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/docx/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/docx_groups.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/_lru.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/auth.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/cli.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/exceptions.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/server.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/state.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/vlm_cache.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/py.typed +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/cache.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/client.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/xlsx/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/refigure/xlsx/charts.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/support.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_data.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render_missing_mermaidx.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render_visual.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/docx/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/docx/test_docx.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/conftest.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_auth.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_batch.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_bridge.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_cli.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_http.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_lru.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_prompts.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_resources.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_schema_pin.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_state.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_tools.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_vlm_cache.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_cli.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_concurrency.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_docx_chart_group_coexistence.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_docx_groups.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_io.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_optional_dependency_guards.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_property_based.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_robustness.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_vlm_max_markers.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_xml_security.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_soffice_profile_isolation.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm_cache.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm_client.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/xlsx/__init__.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/xlsx/test_xlsx.py +0 -0
- {refigure-0.3.3 → refigure-0.3.4}/tests/unit/xlsx/test_xlsx_charts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: refigure
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: DOCX/XLSX -> Markdown conversion with native OOXML chart-data extraction (no rasterize/OCR/VLM needed) + optional VLM interpretation for figures with no native chart data
|
|
5
5
|
Project-URL: Homepage, https://github.com/HelgDemidov/refigure
|
|
6
6
|
Project-URL: Repository, https://github.com/HelgDemidov/refigure
|
|
@@ -102,7 +102,8 @@ degraded summary for agents.
|
|
|
102
102
|
per-file isolation (see below).
|
|
103
103
|
- **Docker image** — `ghcr.io/helgdemidov/refigure`, both console commands
|
|
104
104
|
on `PATH`, `soffice`/LibreOffice baked in — the VLM composite-figure
|
|
105
|
-
path works turnkey, no manual LibreOffice install
|
|
105
|
+
path works turnkey, no manual LibreOffice install. Multi-arch —
|
|
106
|
+
`linux/amd64` + `linux/arm64`, native Apple Silicon (see below).
|
|
106
107
|
- **`.mcpb` bundle for Claude Desktop** — one-click install, no terminal
|
|
107
108
|
(`docx`+`xlsx` only, see below).
|
|
108
109
|
|
|
@@ -114,7 +115,10 @@ construct either (a dense radial sunburst — nothing in the 4 original
|
|
|
114
115
|
mermaid types could represent it), `--vlm` both recovers the real content
|
|
115
116
|
and produces a genuinely renderable diagram, not just recovered text:
|
|
116
117
|
|
|
117
|
-
<
|
|
118
|
+
<picture>
|
|
119
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/demo-vlm-dark.svg">
|
|
120
|
+
<img src="docs/assets/demo-vlm-light.svg" alt="A real docx image (a dense wireless-technology sunburst chart with no native chart data) converted by refigure.docx.convert(use_vlm=True) into a rich VLM-generated description and a real rendered mermaid mindmap diagram, laid out radially instead of the unreadable flat strip a generic flowchart construct would have produced">
|
|
121
|
+
</picture>
|
|
118
122
|
|
|
119
123
|
**Native chart-data extraction** — real OOXML `numCache`, not a screenshot,
|
|
120
124
|
not OCR:
|
|
@@ -286,7 +290,9 @@ One image, both surfaces — `refigure` and `refigure-mcp` are already on
|
|
|
286
290
|
`PATH`, no separate CLI/MCP builds to choose between. The one thing this
|
|
287
291
|
format buys over `pip`/`uvx` that neither can: the system `soffice`/
|
|
288
292
|
LibreOffice binary the VLM composite-figure path needs is baked in, not a
|
|
289
|
-
manual install.
|
|
293
|
+
manual install. Multi-arch manifest (`linux/amd64` + `linux/arm64`) —
|
|
294
|
+
`docker pull` resolves the right layer automatically, including on
|
|
295
|
+
Apple Silicon.
|
|
290
296
|
|
|
291
297
|
```bash
|
|
292
298
|
docker pull ghcr.io/helgdemidov/refigure:latest
|
|
@@ -62,7 +62,8 @@ degraded summary for agents.
|
|
|
62
62
|
per-file isolation (see below).
|
|
63
63
|
- **Docker image** — `ghcr.io/helgdemidov/refigure`, both console commands
|
|
64
64
|
on `PATH`, `soffice`/LibreOffice baked in — the VLM composite-figure
|
|
65
|
-
path works turnkey, no manual LibreOffice install
|
|
65
|
+
path works turnkey, no manual LibreOffice install. Multi-arch —
|
|
66
|
+
`linux/amd64` + `linux/arm64`, native Apple Silicon (see below).
|
|
66
67
|
- **`.mcpb` bundle for Claude Desktop** — one-click install, no terminal
|
|
67
68
|
(`docx`+`xlsx` only, see below).
|
|
68
69
|
|
|
@@ -74,7 +75,10 @@ construct either (a dense radial sunburst — nothing in the 4 original
|
|
|
74
75
|
mermaid types could represent it), `--vlm` both recovers the real content
|
|
75
76
|
and produces a genuinely renderable diagram, not just recovered text:
|
|
76
77
|
|
|
77
|
-
<
|
|
78
|
+
<picture>
|
|
79
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/demo-vlm-dark.svg">
|
|
80
|
+
<img src="docs/assets/demo-vlm-light.svg" alt="A real docx image (a dense wireless-technology sunburst chart with no native chart data) converted by refigure.docx.convert(use_vlm=True) into a rich VLM-generated description and a real rendered mermaid mindmap diagram, laid out radially instead of the unreadable flat strip a generic flowchart construct would have produced">
|
|
81
|
+
</picture>
|
|
78
82
|
|
|
79
83
|
**Native chart-data extraction** — real OOXML `numCache`, not a screenshot,
|
|
80
84
|
not OCR:
|
|
@@ -246,7 +250,9 @@ One image, both surfaces — `refigure` and `refigure-mcp` are already on
|
|
|
246
250
|
`PATH`, no separate CLI/MCP builds to choose between. The one thing this
|
|
247
251
|
format buys over `pip`/`uvx` that neither can: the system `soffice`/
|
|
248
252
|
LibreOffice binary the VLM composite-figure path needs is baked in, not a
|
|
249
|
-
manual install.
|
|
253
|
+
manual install. Multi-arch manifest (`linux/amd64` + `linux/arm64`) —
|
|
254
|
+
`docker pull` resolves the right layer automatically, including on
|
|
255
|
+
Apple Silicon.
|
|
250
256
|
|
|
251
257
|
```bash
|
|
252
258
|
docker pull ghcr.io/helgdemidov/refigure:latest
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "refigure"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.4"
|
|
8
8
|
description = "DOCX/XLSX -> Markdown conversion with native OOXML chart-data extraction (no rasterize/OCR/VLM needed) + optional VLM interpretation for figures with no native chart data"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|