Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно.
Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой.
import uuid
from datetime import datetime
from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel
class MyModel(BaseModel):
id: UUID
date: datetime
value: Decimal
obj = MyModel(
id=uuid.uuid4(),
date=datetime.now(),
value='1.23'
)
print(obj.model_dump())
# не подходит для json.dump
# {
# 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'),
# 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111),
# 'value': Decimal('1.23')
# }
# добавляем свой кастомный сериализатор
json.dumps(obj.model_dump(), cls=MySerializer)
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2025-12-12T12:12:12.111111',
# 'value': '1.23'
# }
В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так:
class MySerializer(json.JSONEncoder):
def default(self, o):
if isinstance(o, Decimal):
return str(o)
elif isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, UUID):
return str(o)
return super().default(o)
Специально для тех, кто всё еще так делает - в этом нет необходимости!
Pydantic может это сделать сам, просто нужно добавить параметр mode="json".
json.dumps(obj.model_dump(mode="json"))
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2012-12-12T12:12:12.111111',
# 'value': '1.23'
# }
#pydantic#libs
#release v12.6.4 a13c5e1229 r1128
Added:
- Marquee in Momo settings for long option texts
- Optionally confirm secret chat when there's a new incoming request
Fixed:
- Some real "GIF" being not playable
- Spoilers not applied on blocked users
Note. This will be the last build using the package name nekox.messenger.broken
#release v12.6.4 006a5be2b4 r1127
Added:
- Extend original force old topic view to default, force classic view and force tab view
- Switch between accounts from chat list menu
Fixed:
- Follow server behavior for vote count preview (no more count before actual vote, you can thank Durov's pets for that)
- [COT] thinking process in TranslateAlert3 not trimmed
- zh_cn strings used when zh_tw is selected
#release v12.5.1 adb88e8006 r1123
- Fixed a minor UI issue
- Switch to MapLibre for map views
- Update Cloudflare token length check to support new token (Thanks MrKristofere@GitHub)
#release v12.4.1 a3fd6d67a5 r1121
Added:
- Partial support for preserve link entities for translated messages (results may vary between languages and translate services used)
Fixed:
- Bottom padding for undo view in chat list
PS. I recently lost my job, so any financial support is appreciated. If you can't donate, starring the repository or contributing improvements is also greatly appreciated.
🎧Погружение в историю Башкирии через джаз-рок
Исполнитель
«Фирма Мелодия» переиздает пластинку, впервые вышедшую во времена позднего СССР, в 1990-м году. Альбом «Ансамбль “Орлан”» стал дебютной и самой известной записью уфимского коллектива под управлением Олега Киреева.
История «Орлана» связана с разными периодами в жизни страны. После ограничений для джазовых музыкантов в середине XX века последовали осторожные разрешения на исполнения и фестивали. По словам историка джаза Алексея Баташёва, коллективы почти принуждали работать с народными мелодиями и вплетать их в произведения. Как только контроль ослаб, многие ансамбли избавились от этого приема, а джаз, смешанный с народными мотивами, двинулся из центральных городов на восток. Где, например, в Уфе и появился ансамбль «Орлан».
Музыка
Олег Киреев, не чувствовал давления и свободно экспериментировал: «Джаз – ближайший родственник фольклора, а потому нас интересуют народные традиции, то, что живо вокруг нас, хотя и от джазовой классики мы ни в коем случае не отрекаемся». Свой основной инструмент, саксофон, Киреев обрел почти случайно: в предперестроечные годы в музыкальном училище был высокий конкурс на все специальности, кроме саксофона. Первый собственный коллектив Киреев собрал в 1984-м, а сделавший его известным в СССР и за его пределами «Орлан» – в 1986-м.
Мысль остановиться на джаз-фьюжне, пропитанном национальными мелодиями, пришла сама собой. «На праздниках была традиция, которой сейчас уже нет: родственники […] начинали петь – башкирские, татарские, русские песни, всё вперемешку. Народная музыка окружала нас повсюду», – позже говорил музыкант.
Мнение
«Башкирские легенды», родившиеся из одноименной концертной программы, не только звучат непривычно – тут есть, например, микс горлового пения и саксофона, – но и имеют небанальную историю. «Легенды» ездили по фестивалям, и в Днепропетровске ансамбль познакомился с Алексеем Баташёвым, историком и популяризатором джаза. Тот позвал музыкантов в Москву, где они записали весь материал всего за два дня в студии «Мелодии». Киреев называл процесс «мини-спектаклем, погружением в историю Башкирии через джаз-рок» и считал, что на записи им «каким-то чудом удалось воссоздать атмосферу, которая была на концертах». Эта запись стала их единственной студийной работой.
Денис Бояринов
Спустя почти 35 лет «Мелодия» вновь издает «Башкирские легенды» на виниле.
→ Слушать
#release
#release v12.3.1 3abc7c7194 r1117
- Force padding for unrounded floating button in chat
- View message history from member list of chats with admin privileges