Использование 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
Завтрак утром, бар вечером? В Питере другие правила...
⠀
Наша студия реализовала уникальный проект для нового ресторана в центре Санкт-Петербурга.
⠀
Prosa Breakfast Bar – атмосферное место напротив Спаса на Крови, где вы можете окунуться в атмосферу викторианского стиля, созданного Андреем и КсениейКарельскими.
⠀
🪟 Разработанный нами логотип повторяет формы оконных рам и обрамления картин, подчеркивая детали интерьера.
⠀
В рамках проекта был создан уникальный паттерн, отсылающий к интерьерам европейской культуры, где зачастую можно увидеть живые деревья во дворах уютных ресторанов.
⠀
Все это органично отобразилось на всех носителях, таких как: меню, стаканы, стикеры или даже барная стойка.
⠀
Рекомендуем к посещению!
📍 Санкт-Петербург, наб. канала Грибоедова, 5
#lupo#lupodesign
Надо бы ребрендинг сделать. Но и сайт тогда придётся обновлять.
Ребята из Eleon справились с первой задачей, а мы помогли реализовать вторую.
Одностраничный сайт производителя со всем необходимым функционалом уже вышел в свет. Удобный и яркий – что ещё нужно для современного бренда?
На сайте можно ознакомиться со всей подробной информацией: список вкусов и их описание, позиционирование бренда, контакты и прочее.
+600к к продажам обеспечено!
#lupo#lupodesign
🎸 По настоящему роковой логотип.
Сотворили умопомрачительное лого для Трёхи, блогера в кальянной индустрии, который ведёт популярный YouTube-канал Rock Love Hookah.
Дима один из немногих тру поклонников данного жанра музыки, поэтому логотип напрямую отражает его любовь к этой культуре.
⠀
Буква «ё», в красном цвете, под видом всеми известного жеста идеально вписалась в нашу идею с использованием медиатора вокруг лого.
Логотип сразу же начал использоваться не только в онлайн жизни, но и в офлайн. Например, они изготовили крутой мерч совместно с компанией Tongs Wear.
⠀
#lupo#lupodesign
🧁 Приготовили действительно вкусное лого!
Разработали логотип для кондитерской в Казани La Retta
Нежный, сливочный, аппетитный логотип с сахарными палочками, чтобы вот совсем сладко было.
Логотип ужа вовсю используется в реальной жизни (если ты ещё не выпал из неё, как мы).
Визитки, наклейки, воздушные шарики, упаковка для замечательных тортов, и даже на выставку сделали крутую вывеску, которая светится, вау, короче.
Также, сделали несколько внутренних заданий для бренда, например, тематические открытки, приуроченные к священному месяцу Рамадан.
#lupo#lupodesign
Бог есть? Ну кто-то же создал этот логотип…
⠀
С божественными усилиями мы разработали логотип и фирменный стиль для российского производителя чаш с внушающим названием – Тор.
⠀
Исторический. Сильный. Божественный.
⠀
Логотип заключает в себе силу и крепость Мьёльнера, молота скандинавского бога Тора, в свою очередь напоминающего силуэт чаши.
⠀
Неповторимый, как каждый удар молнии, патерн заключает в себе всю мощь богов.
⠀
Мы считаем, что у каждого бренда должна быть такая же мощная история за спиной. Это определенно путь к успеху.
⠀
Чаши уже в продаже. Подробнее ознакомиться с условиями можно у них в Инстаграме.
⠀
#КрепкиеКакМолотТора
#lupo#lupodesign