ox opened a new pull request, #2375:
URL: https://github.com/apache/iceberg-python/pull/2375

   Closes #2342
   
   # Rationale for this change
   
   The last attempt at fixing this (#2343) did not actually end up serializing 
None values to `null`. This was b/c the `AssertRefSnapshotId` requirement was 
often a child object of some other `Request` object, which was actually getting 
the  `model_dump_json()` call. This meant that the `exclude_none=True` override 
would remove any `None`s _before_ any of the `Field`-specific configurations 
would be considered (like `exclude=False` or the model's own `model_dump_json` 
method).
   
   I then investigated setting some `ConfigDict` settings on the model, but 
that also did not have any useful configurations.
   
   I looked into setting `exclude_none=True` at all of the `model_json_dump()` 
callsites but there were too many and it would be easy to forget to set that 
value every time. The issue is that many values are _supposed to be absent_ to 
instruct the REST Catalog about what the client wants (things like filtering, 
for instance).
   
   The solution I ended up with was allowing `snapshot_id` to be a required 
`int` with a default value of `-1`, and adding a json-specific field serializer 
to write out `null` when dumping to json. This seems to work.
   
   ## Are these changes tested?
   
   Yes
   
   ## Are there any user-facing changes?
   
   Actually allow `snapshot-id` to be null for `assert-ref-snapshot-id` 
requirements
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to