Improve callback data serialization (#1163)

* Improve callback data serialization

* Added tests and changelog
This commit is contained in:
Alex Root Junior 2023-04-21 00:17:28 +03:00 committed by GitHub
parent fb3076d40f
commit aad2de4324
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 25 deletions

View file

@ -67,7 +67,11 @@ class CallbackData(BaseModel):
return ""
if isinstance(value, Enum):
return str(value.value)
if isinstance(value, (int, str, float, Decimal, Fraction, UUID)):
if isinstance(value, UUID):
return value.hex
if isinstance(value, bool):
return str(int(value))
if isinstance(value, (int, str, float, Decimal, Fraction)):
return str(value)
raise ValueError(
f"Attribute {key}={value!r} of type {type(value).__name__!r}"