Использование 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
Очередной раунд вложений: Акции, ETF, облигации и золото📈💰
Всем привет, настал очередной раунд вложений. Сегодня в выпуске:
🔹#Акции
Я продолжаю придерживаться консервативной стратегии инвестирования в #ETF на так называемый «широкий рынок». Однако, как и в прошлый раз, планирую часть вложений направить в экономику страны проживания. Тогда часть средств достались #DHL и #Lufthansa. Сегодня я планирую стать владельцем части акций Баварского Моторного Завода (или попросту Бэ Эм Зэ), который, несмотря на скепсис широкого круга инвесторов и неразбериху с зелёной повесткой, прочно стоит на ногах и планирует демонстрировать хорошие результаты дальше. Лично видел, NDA не подписывал.
▫️BMW.DE / Bayerische Motoren Werke — 88€
📊Инвестиции в ETF
В этом раунде вложения следующие:
▫️VUAA/ Vanguard S&P 500 UCIT ETF (Фонд состоит из 500 самых крупных американских компаний) — 572€
▫️SNAW/iShares MSCI World ESG Screened — 496€ (Этот фонд ориентирован на широкодиверсифицированные вложения в мировую экономику в целом)
▫️VGDW/Vanguard FTSE All-World High Dividend Yield UCITS ETF — 373€ (Фонд инвестирует в высокодивидендные компании во всём мире)
🔹#Облигации
▫️CBUE/iShares USD Treasury Bond 3-7yr (Бонды американского казначейства) — 87€
🔹#REIT (Real Estate Investment Trusts)
▫️10AJ / Amundi Index FTSE EPRA NAREIT Global UCITS ETF (Глобальный фонд инвестиций в недвижимость по всему миру, по версии западных стран, конечно же) — 106€
Верю, что мы всё ещё восстанавливаемся от пандемии и у арендной ренты светлое будущее.
🔹#Металлы
В этот раз отвлекусь от виртуальных сущностей и вкладываюсь в натуральное золото в лице, пожалуй, самой популярной инвестиционной монеты «Канадский кленовый лист», отчеканенной из 1/10 унции золота 9999 пробы в 2023 году.
▫️ 1/10 Unze Gold Maple Leaf — 245€
💸Итог
В этом инвестиционном раунде вложено: 1976€
Спасибо, что проходите со мной этот путь. На следующей, не менее загруженной для меня неделе, обсудим результаты портфеля. Ставьте реакции и делитесь постом!
#Результаты_schrittproschritt
Всем привет! Мне везёт периодически отчитываться во время всяческих мировых потрясений. Хотя, когда я собираю данные (полдень по CET), выглядит всё не так уж и жутко, как можно было бы предположить, исходя из новостного фона.
Важно: доходность активов я считаю без учёта новых вложений за последний период (февраль — начало марта), однако аллокация (общие суммы и проценты) указана уже с их учётом.
📊 Детализация портфеля на дату отчета
Формат: (Сумма) / (% от портфеля) 📈📉 (Прибыль за период) / (% доходности)
🔹#Акции
€14 844,01 / 69,15% 📉 −€71,55 / −0,61%
Война на Ближнем Востоке пугает инвесторов.
🔹#Облигации
€3 302,60 / 15,39% 📉 −€9,04 / −1,77% Бонды чуток припали. Рынок нервничает: потенциальный рост затрат в цепочках добавленной стоимости из-за неопределённости на энергорынках может сказаться на способности эмитентов обслуживать долги.
🔹#Металлы (#золото)
€156,69 / 0,73% 📈 +€9,69 / +6,59% Продолжаем расти, стоимостно выражая страхи масс. Считаю этот рост спекулятивным; а если я не прав, то пора начинать собирать крышки от колы, как в Fallout ☢️
🔹#Криптовалюта
€2 068,78 / 9,64% 📉 −€9,00 / −0,43% Падение предыдущих месяцев сгладилось на фоне попыток инвесторов найти «тихую гавань» в нестабильный период.
🔹#Альтернативные_инвестиции
€1 093,79 / 5,10% 📉 −€1,21 / −0,11% Первый месяц, когда этот класс активов оказался устойчивее всех остальных.
📉 Общие итоги портфеля
Общая стоимость: €21 465,87 (разместил дополнительные €6000+)
Убыток за период: −€81,11 / −0,52%
Пока весь мир «колбасит и трясёт» (с), аллокация активов в портфеле стала почти идеально отражать изначальную идею по диверсификации. Было бы неплохо добавить больше товарных активов и #REIT (фонды недвижимости), но морально я пока не готов заходить в них по текущим ценам.
Спасибо, что читаете! Интересно ваше мнение: как думаете, насколько долго продлится напряжение (де-юре) / война (де-факто) на Ближнем Востоке? 💬
Очередной раунд вложений: Акции, ETF, облигации, корпоративный долг и золото 📈💰
Привет всем! 🌟
Время нового раунда вложений. Если в прошлом месяце из-за глобальной неопределённости я не успел «припарковать» денежные средства, то сейчас уже есть ощущение, что нет смысла ждать негативного разрешения стратегического персидского цугцванга. Так как предыдущие инвестиции не были реализованы, в этом посте я несколько расширяю идеи, сохраняя пару прошлых позиций.
🔹#Акции
Продолжаю придерживаться консервативной стратегии инвестирования в #ETF на так называемый «широкий рынок». Однако, как и в прошлый раз, часть средств планирую направить в экономику страны проживания. В прошлый раз инвестиции достались #DHL и #Lufthansa. Сегодня в планах покупка акций Баварского Моторного Завода (или попросту Бэ Эм Зэ), который, несмотря на скепсис многих инвесторов и неразбериху с «зелёной повесткой», прочно стоит на ногах и, по моему мнению, продолжит показывать отличные результаты. Лично видел, NDA не подписывал.
📌BMW.DE / Bayerische Motoren Werke — 88€
📊Инвестиции в ETF
В этом раунде мои вложения следующие:
▫️ VUAA / Vanguard S&P 500 UCITS ETF (Фонд состоит из 500 крупнейших американских компаний) — 1150€
▫️ SNAW / iShares MSCI World ESG Screened (Ориентирован на широкую диверсификацию по мировой экономике) — 1000€
▫️ VGDW / Vanguard FTSE All-World High Dividend Yield UCITS ETF (Инвестиции в высокодивидендные компании по всему миру) — 750€
🔹#Облигации
▫️ CBUE / iShares USD Treasury Bond 3-7yr (Облигации американского казначейства) — 180€
▫️ IBCD / iShares Corporate Bond (Корпоративные долги развитых стран с доходностью около 5%) — 125€
🔹#REIT (Real Estate Investment Trusts)
▫️ 10AJ / Amundi Index FTSE EPRA NAREIT Global UCITS ETF (Глобальный фонд инвестиций в недвижимость) — 212€
Верю, что мы всё ещё восстанавливаемся после пандемии, и у арендной ренты светлое будущее 🏢.
🔹#Металлы
На этот раз вкладываюсь в натуральное золото, а именно в одну из самых популярных инвестиционных монет — «Канадский кленовый лист». Она отчеканена из 1/10 унции золота 9999 пробы в 2023 году.
▫️1/10 Unze Gold Maple Leaf — 255€
Конечно, не обойдётся и без виртуальных металлов:
▫️XAU (Gold) / Золото — 245€
💸Итог
Общая сумма вложений в этом раунде — 4000€.
Это достаточно большое единовременное вложение, которое должно неплохо диверсифицировать портфель и сместить фокус с криптовалют, особенно после недавнего Airdrop. За 4 минуты участия я получил самую рекордную прибыль в своей жизни по соотношению «время / доход» 😎. Но об этом расскажу в середине недели.
📆 В среду постараюсь подвести итоги прошлого месяца, который подарил нам увлекательные американские горки на рынках. Спасибо, что читаете! Последние несколько недель были напряжёнными, но я полон сил писать больше 💪.
Как всегда, лайкайте, делитесь и обсуждайте в комментариях!