SIGN IN SIGN UP

Protocol Buffers - Google's data interchange format

0 0 27 C++

Nextgen Proto Pythonic API: Add 'in' operator

(Second attempt. The first attempt missed ListValue)

The “in” operator will be consistent with HasField but a little different with Proto Plus.

The detail behavior of “in” operator in Nextgen

* For WKT Struct (to be consist with old Struct behavior):
    -Raise TypeError if not pass a string
    -Check if the key is in the struct.fields

* For WKT ListValue (to be consist with old behavior):
    -Check if the key is in the list_value.values

* For other messages:
    -Raise ValueError if not pass a string
    -Raise ValueError if the string is not a field
    -For Oneof: Check any field under the oneof is set
    -For has-presence field: check if set
    -For non-has-presence field (include repeated fields): raise ValueError

PiperOrigin-RevId: 631143378
J
Jie Luo committed
24f27c3b88708a735968688d34aa02a28f403866
Parent: e949bba
Committed by Copybara-Service <copybara-worker@google.com> on 5/6/2024, 7:13:09 PM