You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Perhaps I don't understand the intended use of the to_dict method but, at least for my use case, I would prefer it to return the actual enum instead of it's name as a string.
For example:
class EnumResultGeneric(betterproto.Enum):
RESULT_UNKNOWN = 0
RESULT_SUCCESS = 1
@dataclass
class ResponseGeneric(betterproto.Message):
result: "EnumResultGeneric" = betterproto.enum_field(1)
status = ResponseGeneric.FromString(bytes(bytearray([0x08, 0x01]))).to_dict()['result']
print(f"{status}: {type(status)}")
gives RESULT_SUCCESS: <class 'str'> instead of the actual EnumResultGeneric.
It is a simple change to get this desired behavior in the to_dict method:
elif meta.proto_type == TYPE_ENUM:
enum_values = list(
self._betterproto.cls_by_field[field.name]
) # type: ignore
if isinstance(v, list):
output[cased_name] = [enum_values[e] for e in v]
else:
output[cased_name] = enum_values[v]
Is this desirable for other people? Maybe allow this as a parameter to to_dict?
The text was updated successfully, but these errors were encountered:
Perhaps I don't understand the intended use of the
to_dict
method but, at least for my use case, I would prefer it to return the actual enum instead of it's name as a string.For example:
gives
RESULT_SUCCESS: <class 'str'>
instead of the actualEnumResultGeneric
.It is a simple change to get this desired behavior in the
to_dict
method:Is this desirable for other people? Maybe allow this as a parameter to
to_dict
?The text was updated successfully, but these errors were encountered: