|
| 1 | +# Phase 2 Kickoff: #1250 + #1252 Deletion Contracts |
| 2 | + |
| 3 | +Scope: start Phase 2 delivery for the remaining graphistrygpt helper deletions that depend on pygraphistry. |
| 4 | + |
| 5 | +Upstream issues: |
| 6 | +- #1250 Declarative encode_*_from_dict constructor parity with React-side shape |
| 7 | +- #1252 Plottable.from_dataset_id(id, token) helper to fetch existing dataset metadata + bindings |
| 8 | + |
| 9 | +## Deletion contracts (source of truth) |
| 10 | + |
| 11 | +### #1250 contract (react_encodings helper deletion) |
| 12 | +Required upstream API outcome: |
| 13 | +- A single pygraphistry entrypoint that accepts React-side declarative encoding payloads and applies equivalent encode_* calls. |
| 14 | +- At minimum parity for keys currently consumed downstream: |
| 15 | + - encodePointColor |
| 16 | + - encodePointIcons |
| 17 | + - encodePointSize |
| 18 | + - encodeAxis |
| 19 | + |
| 20 | +Success criteria: |
| 21 | +- Downstream can delete translation helpers and call one upstream method. |
| 22 | +- Roundtrip behavior matches existing per-method encode_* behavior. |
| 23 | +- Validation errors are actionable and point to exact invalid encoding key/value. |
| 24 | + |
| 25 | +### #1252 contract (dataset_metadata helper deletion) |
| 26 | +Required upstream API outcome: |
| 27 | +- A direct helper to hydrate an existing dataset into a plottable-like object without re-upload. |
| 28 | +- It must hydrate bindings/encodings/metadata/style/url_params from server metadata response shape. |
| 29 | + |
| 30 | +Success criteria: |
| 31 | +- Downstream can delete manual `/api/v2/upload/datasets/{id}` fetch/parsing code. |
| 32 | +- Returned object has enough metadata for axis/encoding-aware workflows. |
| 33 | +- URL generation works when dataset_id is present. |
| 34 | + |
| 35 | +## PR slicing plan |
| 36 | + |
| 37 | +1. Slice A (#1252 first): add `from_dataset_id` helper + tests for metadata hydration and response-shape tolerance. |
| 38 | +2. Slice B (#1250): add declarative encoding dispatcher + tests for supported React keys and strict error paths. |
| 39 | +3. Slice C: docs/changelog + explicit downstream deletion mapping. |
| 40 | + |
| 41 | +## Non-goals (this kickoff PR) |
| 42 | +- No graphistrygpt repo deletions in this PR. |
| 43 | +- No broad encode API redesign beyond parity/deletion requirements. |
| 44 | + |
| 45 | +## Validation checklist for implementation slices |
| 46 | +- Targeted tests for helper behavior and invalid payloads |
| 47 | +- ruff + mypy on touched modules |
| 48 | +- CI green before merge |
| 49 | + |
0 commit comments