Использование 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
Когда мы анонсировали конференцию #aic25, то среди активностей говорили о записи подкаста прямо на ней. В канун Нового года дарим вам новый, особенный выпуск xyic+! 💝
Катя Герт поговорила с настоящими профи агентского бизнеса: об агентствах в эпоху продуктового дизайна рассказали Сергей Прокофьев, директор по развитию Creative People, Саша Гладких, арт-директор и сооснователь студии Charmer, и Аида Пачева, арт-директор ONY.
В этом выпуске вы узнаете:
- почему работать в агентстве — это круто, какие вызовы стоят перед студиями в условиях продуктовой эры, и как сделать работу в дизайн-агентстве по-настоящему захватывающей.
- как формировалась дизайн-культура в студиях, в чем она заключается и почему она играет важную роль в успехе.
- как сохранить драйв и вдохновение, когда команда работает на удаленке.
слушать на Яндексе
слушать и смотреть на Ютубе
ApplePodcasts
Приятного прослушивания!
Что важно и для начинающего дизайнера, и для масштабного агентства с громкими кейсами? Не останавливаться — качать насмотренность, общаться с коллегами и узнавать новое.
Мы присоединились к комьюнити DSGNERS! — площадке, созданной дизайнерами для дизайнеров. Подписывайтесь на блог aic — будем делиться опытом и рассказывать о тонкостях нашей работы. Например, там уже лежит лонгрид о том, как мы организовали конференцию #aic25 небольшой маркетинговой командой.
А еще на DSGNERS! есть живой форум, подборки полезных статей и авторские обучающие ролики.
Ждем вас! https://dsgners.ru/user/aicxyic
Друзья, как вы помните, на конференции #aic25 мы будем рассматривать портфолио наших гостей, давать прикладные советы и подсказывать полезные фишки.
Рады сообщить, что мы сможем ответить и на ваши вопросы! Мы запускаем четыре Q&A-сессии по следующим темам:
1️⃣ про карьеру и развитие дизайнера;
2️⃣ про хард-скиллы дизайнера ;
3️⃣ про софт-скиллы дизайнера;
4️⃣ про коммуникацию внутри проекта и с клиентом.
Профессиональные советы о работе в дизайн-индустрии дадут Андрей Абрамов, арт-директор aic, и HR-директор Юля Компаниец.
Скорее пишите нам: https://www.survio.com/survey/d/K6V5F7N5S1J8M7R2A
3 ноября встречаемся на праздничной конференции #aic25 — успейте купить билет со скидкой 50% 🎉 И отдельная хорошая новость для тех, кто хочет фидбек на свое портфолио — мы принимаем заявки на портфолио ревью! Бесплатно, без регистрации и СМС (хотя какими-то данными поделиться придется, нажмите "Участвовать" в секции "Portfolio review").
Приглашаем вас присоединиться к конференции, ведь в программе — целый день, который мы проведем вместе за лекциями от топовых специалистов индустрии, мастер-классами, нетворкингом, и, конечно, угощениями! 🖤
Переходите по ссылке, читайте полную программу и регистрируйтесь — будем счастливы поделиться драйвом и вдохновением! Ждем всех и дарим скидку 50% на билеты:
http://25.aic.ru
Присоединяйтесь к нам на конференции в честь дня рождения aic! 🎉
Вас ждут встречи с ведущими экспертами в сфере дизайна, лекции, творческие мастер-классы и portfolio review для всех, кто хочет прокачать свои профессиональные навыки.
Ждем вас 3 ноября в 11:00 в холле «Красный Октябрь» по адресу: Москва, Берсеневская набережная, 6.
🔥 Торопитесь! До конца недели действует скидка 10% при использовании промокода "week25". Подробности программы и покупка билетов доступны по ссылке: https://25.aic.ru
Поделитесь этой новостью с друзьями и приходите на конференцию #aic25!
25 лет через 25 дней 🎊
Мы запускаем обратный отсчет до #aic25 — нашего дня рождения, который мы так ждем. Мы хотим отпраздновать это событие с вами — ведь чем больше единомышленников соберется, тем интереснее будет!
Чтобы вам было проще решиться на участие, мы дарим вам скидку 10% на билеты по промокоду week25.
Приходите и зовите друзей — будем знакомиться, веселиться и учиться новому вместе!
http://25.aic.ru/
Иногда для взлета карьеры нужен профессиональный взгляд на ваши скиллы и самопрезентацию. И тут мы подготовили для вас кое-что интересное!
Присоединяйтесь к #aic25 — на празднике вас ждет секция portfolio review, которая поможет вам использовать карьерные возможности по максимуму.
📝 Что нужно сделать:
- зарегистрируйтесь как гость на наш день рождения;
- заполните форму для заявки на сайте aic, прикрепите своё резюме и портфолио.
Мы отберем пять участников, которые получат возможность поработать над своими резюме с нашими экспертами — Андреем Абрамовым, арт-директором aic, и HR-директором Юлей Компаниец. Они посмотрят ваши работы, дадут полезные советы и расскажут, в каком направлении вам стоит двигаться, чтобы достичь успеха.
Это классная возможность получить фидбэк для всех, кто стремится к росту в своей работе. Не упустите этот шанс — подавайте заявку и сделайте свою карьеру еще ярче с нашей помощью 🚀
Мы подключили все кассовые платформы — покупайте билет прямо сейчас в удобном для вас формате!
💥http://25.aic.ru/💥
В преддверии дня рождения #aic25 захотели рассказать, как компанию видят ее сотрудники. Получилось 10 карточек о красоте, дизайне, нашем подкасте и даже 1 сентября.
Листайте карусель!
3 ноября мы празднуем юбилей #aic25 — а какой праздник без гостей?
Приглашаем вас присоединиться! В программе — целый день, которые мы проведем вместе за лекциями, мастер-классами, приятными встречами, и, конечно, угощениями 🎉
Переходите по ссылке, читайте полную программу и регистрируйтесь — будем счастливы поделиться драйвом и вдохновением!
Праздничный аукцион #aic25 завершается сегодня — и вы еще успеете принять участие!
Мы собрали большинство заявок и уже начали созваниваться с клиентами, чтобы узнать как можно больше пожеланий к будущим концепциям. Сколько интересных проектов нас ждет! Наши дизайнеры на низком старте и с нетерпением ждут начала работы над ними 🚀
Оставляйте заявку до 23:59:59, чтобы принять участие и получить дизайн от aic по самой выгодной цене. Напоминаем, что цену за лот предлагаете вы: она должна быть кратна 25 тысячам рублей.
🚂 Запрыгнуть в последний вагон: https://go.aic.ru/p/cdfc2e/
Осенью aic исполняется 25 лет!
Под неизменным тегом #aic25 запускаем праздничный аукцион 💚 У нас есть 25 дизайнерских решений от нашей команды, которые мы готовы воплотить для вашего бизнеса.
Условия просты:
❇️ У нас 25 лотов. Один лот — это разработка дизайн-концепции для вашего бизнеса.
❇️ Вы предлагаете цену за лот, оставляя заявку на сайте. Она должна быть кратна 25 тысячам рублей. Чем выше цена, тем выше ваш шанс выиграть!
❇️ Когда определяется победитель, мы связываемся с ним, чтобы обсудить детали.
❇️ После — никаких правок: только красота 🚀
Аукцион продлится 2 недели, до 9.08.23 — спешите оставить заявку на сайте!
Присоединяйтесь — давайте воплощать ваши идеи вместе!