athena-python-pptx 0.1.56__tar.gz → 0.1.59__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.
- athena_python_pptx-0.1.59/CHANGELOG.md +48 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/PKG-INFO +1 -1
- athena_python_pptx-0.1.59/parity-tests/.gitignore +4 -0
- athena_python_pptx-0.1.59/parity-tests/GAP_REPORT.md +618 -0
- athena_python_pptx-0.1.59/parity-tests/README.md +56 -0
- athena_python_pptx-0.1.59/parity-tests/_harness.py +252 -0
- athena_python_pptx-0.1.59/parity-tests/runner.py +131 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/__init__.py +2 -1
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/chart/data.py +47 -8
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/client.py +99 -5
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/commands.py +99 -3
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/dml/color.py +39 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/shapes.py +4 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/presentation.py +47 -4
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/shapes.py +875 -97
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/slides.py +308 -29
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/text.py +73 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/typing.py +29 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pyproject.toml +1 -1
- athena_python_pptx-0.1.56/CHANGELOG.md +0 -29
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/.gitignore +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/API_PARITY_REPORT.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/CLAUDE.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/DEV-GUIDE.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/PUBLISHING.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/README.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/docs/API_PARITY_EXCEPTIONS.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/docs/athena-api.json +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/docs/athena-api.md +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/batching.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/chart/__init__.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/decorators.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/dml/__init__.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/docgen.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/__init__.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/action.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/chart.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/dml.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/enum/text.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/errors.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/units.py +0 -0
- {athena_python_pptx-0.1.56 → athena_python_pptx-0.1.59}/pptx/util.py +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `athena-python-pptx` are documented in this file.
|
|
4
|
+
|
|
5
|
+
## 0.1.58
|
|
6
|
+
|
|
7
|
+
- **Gap 18 (scatter / bubble chart authoring):** `slide.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER, ..., XyChartData(...))` and `BUBBLE` with `BubbleChartData(...)` now author end-to-end. Server-side: chart-ooxml emits `<c:scatterChart>` / `<c:bubbleChart>` with `<c:xVal>` / `<c:yVal>` (and `<c:bubbleSize>` for bubble), pairs of value axes (no category axis), and an embedded workbook with x/y/(size) columns per series. SDK: `_split_chart_type` accepts all five `XY_SCATTER*` variants plus `BUBBLE`; `add_chart` and `insert_chart` validate the chart_data shape against the chart-type family. `replace_data` for XY/bubble is still gated (needs new patch ops; see GAP_REPORT.md Gap 18).
|
|
8
|
+
- **Gap 9 (notesMaster export):** export-worker now bootstraps a `ppt/notesMasters/notesMaster1.xml` + companion `ppt/theme/themeN.xml` whenever speaker notes are added to a deck without a notesMaster. Generators are extracted into `apps/export-worker/src/notes-master.ts`. Bootstrap path also registers the `notesMaster` relationship in `presentation.xml.rels` and adds content-type overrides for the new parts. Matches python-pptx's behavior for the same flow.
|
|
9
|
+
|
|
10
|
+
## 0.1.57
|
|
11
|
+
|
|
12
|
+
- **Gap 13 (line.dash_style export):** SDK shapes / textboxes with `line.dash_style = MSO_LINE_DASH_STYLE.DASH` (or any preset) now emit `<a:prstDash val=...>` inside `<a:ln>` on export. Schema, ooxml-patch shape-creator, and export-worker plumbing all updated.
|
|
13
|
+
- **Gap 14 (table column widths / row heights):** `table.columns[i].width` and `table.rows[i].height` on SDK-created tables now emit explicit `<a:gridCol w=...>` and `<a:tr h=...>` instead of dividing evenly.
|
|
14
|
+
- **Gap 15 (cell.merge export):** `cell.merge(other)` on SDK-created tables now emits `gridSpan="..."` / `rowSpan="..."` on the merge origin and `hMerge="1"` / `vMerge="1"` on consumed cells.
|
|
15
|
+
- **Gap 11 (run.hyperlink export):** `run.hyperlink.address = "https://..."` on SDK-created textboxes now writes `<a:hlinkClick r:id="rId..."/>` plus a corresponding External hyperlink relationship in the slide's `.rels`. Hyperlinked runs auto-underline to match python-pptx visual default.
|
|
16
|
+
- **Gap 10 (group_shapes/.ungroup id mapping):** In immediate (non-batched) mode `slide.shapes.group_shapes(...)` now flushes the buffer and stamps the real server-assigned id onto the returned `Shape`, so `group.ungroup()` works in the same statement chain.
|
|
17
|
+
- **Presentation.slide_width / slide_height setters:** `prs.slide_width = Inches(13.333)` and `prs.slide_height = Inches(7.5)` now work for python-pptx parity (route through `set_slide_size`).
|
|
18
|
+
- **Font.strike / Font.subscript / Font.superscript:** new properties on `Run.font` for python-pptx parity. Persist via the existing run-style emission pipeline.
|
|
19
|
+
- **Picture crop (`Shape.crop_top` / `crop_bottom` / `crop_left` / `crop_right`):** image shapes now expose python-pptx-compatible crop fractions (0.0–1.0). Setters emit a new `SetPictureCrop` command that writes to the Y.Doc element via `updateElementCrop`.
|
|
20
|
+
- **Connector geometry (`Shape.begin_x` / `begin_y` / `end_x` / `end_y`):** connector shapes expose the python-pptx endpoint API. Setters update the bounding box + `flipH/flipV` accordingly.
|
|
21
|
+
- **GroupShape.shapes children traversal:** for `is_group` shapes, `shape.shapes` returns the slide-level Shape objects whose ids match the group's `childIds`, mirroring `python-pptx GroupShape.shapes`.
|
|
22
|
+
- New `SetPictureCrop` command on the SDK→server protocol; applier wired through `updateElementCrop`.
|
|
23
|
+
|
|
24
|
+
## 0.1.56
|
|
25
|
+
|
|
26
|
+
- **Charts: end-to-end author + edit support** for column / bar / line / area / pie / doughnut (including all stacked variants).
|
|
27
|
+
- `slide.shapes.add_chart(chart_type, left, top, width, height, chart_data)` now authors a fresh chart from scratch — previously raised `UnsupportedFeatureError`. Returns a `GraphicFrame` whose `.chart` property exposes the resulting `Chart` object. Supported types: `XL_CHART_TYPE.COLUMN_CLUSTERED`, `COLUMN_STACKED`, `COLUMN_STACKED_100`, `BAR_CLUSTERED`, `BAR_STACKED`, `BAR_STACKED_100`, `LINE`, `LINE_MARKERS`, `LINE_STACKED`, `LINE_STACKED_100`, `AREA`, `AREA_STACKED`, `AREA_STACKED_100`, `PIE`, `DOUGHNUT`. 3-D / scatter / bubble / radar / stock / surface / combo still raise `UnsupportedFeatureError` with a clearer message listing the supported set.
|
|
28
|
+
- `placeholder.insert_chart(chart_type, chart_data)` now wires up the same path — previously raised `NotImplementedError`.
|
|
29
|
+
- `Chart.replace_data(chart_data)` now emits `UpdateChartData` patches against an existing chart (ingested or just-authored) — previously raised `UnsupportedFeatureError`. Rewrites series values, series names, and category labels in place; embedded `.xlsx` workbook stays in sync.
|
|
30
|
+
- New `Chart.chart_title` setter and `Chart.has_legend` setter emit `SetChartTitle` and `SetLegendVisible` patches respectively.
|
|
31
|
+
- `CategoryChartData.add_series()` and `XyChartData` / `BubbleChartData` now capture data client-side instead of raising eagerly. (Authoring scatter / bubble charts still raises at `add_chart()` time.)
|
|
32
|
+
- `GraphicFrame` extended to host a `Chart` (in addition to `Table`), so `gf.chart` and `gf.has_chart` work.
|
|
33
|
+
|
|
34
|
+
## 0.1.55
|
|
35
|
+
|
|
36
|
+
- Internal: bumped version coordinated with the `Presentation.create()` server-side fix (#19270). No SDK API change.
|
|
37
|
+
|
|
38
|
+
## 0.1.54
|
|
39
|
+
|
|
40
|
+
- `RemoteError.__str__` now includes the HTTP status code (e.g., `[HTTP 400] Invalid request body: ...`) so the status is visible in tracebacks without unpacking `exc.status_code`.
|
|
41
|
+
|
|
42
|
+
## 0.1.39
|
|
43
|
+
|
|
44
|
+
- Added SDK support for `slide.shapes.add_table(...)` and table creation command wiring.
|
|
45
|
+
- Added `slide.notes_slide.notes_text_frame.text` compatibility adapter for python-pptx style notes access.
|
|
46
|
+
- Added support for auto-shape text frame access (`shape.text_frame`) to match python-pptx behavior.
|
|
47
|
+
- Added smoke/integration tests for table creation/cell updates, notes slide adapter, and shape text-frame regression.
|
|
48
|
+
- Updated README examples for notes slide adapter and auto-shape text support.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: athena-python-pptx
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.59
|
|
4
4
|
Summary: Drop-in replacement for python-pptx that connects to PPTX Studio for real-time collaboration
|
|
5
5
|
Project-URL: Homepage, https://github.com/pptx-studio/python-sdk
|
|
6
6
|
Project-URL: Documentation, https://docs.pptx-studio.com/sdk/python
|