weiqingy opened a new pull request, #840:
URL: https://github.com/apache/flink-agents/pull/840

   Linked issue: #723
   
   ### Purpose of change
   
   Document the Python memory value contract and why it diverges from Java. The 
docs previously told Python users they could store Java POJOs and Kryo "general 
class types" and showed an example storing a Pydantic model — but Python memory 
values cross the Pemja boundary into Flink state, so only recursively 
checkpoint-stable values survive checkpoint/restore.
   
   This splits the "Supported Value Types" section into a Java contract (broad: 
primitives, collections, POJOs, Kryo, `MemoryObject`) and a Python contract 
(`None`, `bool`, `int`, `float`, `str`, `list`, `dict` with `str` keys, and 
nested `MemoryObject`), names the rejected Python types, notes that `bytes` is 
not yet supported, and shows the materialize-on-write / reconstruct-on-read 
pattern (`model.model_dump(mode="json")` ↔ `Model.model_validate(...)`). The 
Java tab and examples are unchanged.
   
   This follows up #839, which added the `set()`-time validator that enforces 
this Python contract. It should merge after #839.
   
   ### Tests
   
   Documentation only; no code change.
   
   ### API
   
   No API change.
   
   ### Documentation
   
   - [ ] `doc-needed`
   - [ ] `doc-not-needed`
   - [x] `doc-included`
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to