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.
Files changed (74) hide show
  1. {refigure-0.3.3 → refigure-0.3.4}/PKG-INFO +10 -4
  2. {refigure-0.3.3 → refigure-0.3.4}/README.md +9 -3
  3. {refigure-0.3.3 → refigure-0.3.4}/pyproject.toml +1 -1
  4. {refigure-0.3.3 → refigure-0.3.4}/.gitignore +0 -0
  5. {refigure-0.3.3 → refigure-0.3.4}/ATTRIBUTION.md +0 -0
  6. {refigure-0.3.3 → refigure-0.3.4}/LICENSE +0 -0
  7. {refigure-0.3.3 → refigure-0.3.4}/NOTICE +0 -0
  8. {refigure-0.3.3 → refigure-0.3.4}/refigure/__init__.py +0 -0
  9. {refigure-0.3.3 → refigure-0.3.4}/refigure/__main__.py +0 -0
  10. {refigure-0.3.3 → refigure-0.3.4}/refigure/_io.py +0 -0
  11. {refigure-0.3.3 → refigure-0.3.4}/refigure/api.py +0 -0
  12. {refigure-0.3.3 → refigure-0.3.4}/refigure/cli.py +0 -0
  13. {refigure-0.3.3 → refigure-0.3.4}/refigure/core/__init__.py +0 -0
  14. {refigure-0.3.3 → refigure-0.3.4}/refigure/core/chart_data.py +0 -0
  15. {refigure-0.3.3 → refigure-0.3.4}/refigure/core/chart_render.py +0 -0
  16. {refigure-0.3.3 → refigure-0.3.4}/refigure/core/zipsafe.py +0 -0
  17. {refigure-0.3.3 → refigure-0.3.4}/refigure/docx/__init__.py +0 -0
  18. {refigure-0.3.3 → refigure-0.3.4}/refigure/docx_groups.py +0 -0
  19. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/__init__.py +0 -0
  20. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/_lru.py +0 -0
  21. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/auth.py +0 -0
  22. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/cli.py +0 -0
  23. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/exceptions.py +0 -0
  24. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/server.py +0 -0
  25. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/state.py +0 -0
  26. {refigure-0.3.3 → refigure-0.3.4}/refigure/mcp/vlm_cache.py +0 -0
  27. {refigure-0.3.3 → refigure-0.3.4}/refigure/py.typed +0 -0
  28. {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/__init__.py +0 -0
  29. {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/cache.py +0 -0
  30. {refigure-0.3.3 → refigure-0.3.4}/refigure/vlm/client.py +0 -0
  31. {refigure-0.3.3 → refigure-0.3.4}/refigure/xlsx/__init__.py +0 -0
  32. {refigure-0.3.3 → refigure-0.3.4}/refigure/xlsx/charts.py +0 -0
  33. {refigure-0.3.3 → refigure-0.3.4}/tests/__init__.py +0 -0
  34. {refigure-0.3.3 → refigure-0.3.4}/tests/support.py +0 -0
  35. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/__init__.py +0 -0
  36. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/__init__.py +0 -0
  37. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_data.py +0 -0
  38. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render.py +0 -0
  39. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render_missing_mermaidx.py +0 -0
  40. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/core/test_chart_render_visual.py +0 -0
  41. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/docx/__init__.py +0 -0
  42. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/docx/test_docx.py +0 -0
  43. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/__init__.py +0 -0
  44. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/conftest.py +0 -0
  45. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_auth.py +0 -0
  46. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_batch.py +0 -0
  47. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_bridge.py +0 -0
  48. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_cli.py +0 -0
  49. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_http.py +0 -0
  50. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_lru.py +0 -0
  51. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_prompts.py +0 -0
  52. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_resources.py +0 -0
  53. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_schema_pin.py +0 -0
  54. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_state.py +0 -0
  55. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_tools.py +0 -0
  56. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/mcp/test_vlm_cache.py +0 -0
  57. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_cli.py +0 -0
  58. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_concurrency.py +0 -0
  59. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_docx_chart_group_coexistence.py +0 -0
  60. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_docx_groups.py +0 -0
  61. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_io.py +0 -0
  62. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_optional_dependency_guards.py +0 -0
  63. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_property_based.py +0 -0
  64. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_robustness.py +0 -0
  65. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_vlm_max_markers.py +0 -0
  66. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/test_xml_security.py +0 -0
  67. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/__init__.py +0 -0
  68. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_soffice_profile_isolation.py +0 -0
  69. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm.py +0 -0
  70. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm_cache.py +0 -0
  71. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/vlm/test_vlm_client.py +0 -0
  72. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/xlsx/__init__.py +0 -0
  73. {refigure-0.3.3 → refigure-0.3.4}/tests/unit/xlsx/test_xlsx.py +0 -0
  74. {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
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 (see below).
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
- <img src="docs/assets/demo-vlm-dark.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">
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 (see below).
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
- <img src="docs/assets/demo-vlm-dark.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">
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.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