novo post no blog: dataclass, NamedTuple, attrs ou pydantic — qual usar de verdade?

quatro formas sérias de estruturar dados em Python, cada uma com trade-offs que a documentação oficial não deixa claro. quando cada uma faz sentido, quando atrapalha, e o padrão borda/domínio que evita coerção silenciosa no lugar errado.

🔗 https://www.riverfount.dev.br/posts/cover-dataclass_namedtuple_attrs_pydantic./

#python #pydantic #dataclasses #boas-práticas

dataclass, NamedTuple, attrs ou pydantic: qual usar de verdade?

Existe um ponto no crescimento de qualquer projeto Python em que os dicionários começam a doer. Não de vez — vai acontecendo aos poucos. Você passa um dict para uma função, a função passa para outra, e em algum momento ninguém mais sabe ao certo quais chaves estão garantidas, qual é o tipo de cada valor, ou o que acontece se uma chave estiver faltando. 1 2 3 4 def calcular_desconto(pedido: dict) -> float: # pedido tem "valor"? "valor_bruto"? "subtotal"? # "cliente" é um dict também? tem "nivel"? return pedido["valor"] * _fator(pedido["cliente"]["nivel"]) Funciona. Ninguém vai questionar em code review. O problema aparece três meses depois, quando alguém passa um pedido sem a chave "nivel" — ou quando você tenta debugar e o repr do dicionário tem quarenta chaves misturadas.

Blog do Riverfount

unihttp – пишем декларативные API-клиенты на Python

Привет! Хочу представить вам свою библиотеку – unihttp . Уверен, что все сталкивались с необходимостью работы с какими-либо API, но что делать, если у этого сервиса (внешнего или внутреннего) отсутствует библиотека, позволяющая лаконично вызывать нужные методы?

https://habr.com/ru/articles/992844/

#python #opensource #api #rest #pydantic #adaptix #dataclasses

unihttp – пишем декларативные API-клиенты на Python

Привет! Хочу представить вам свою библиотеку – unihttp . Уверен, что все сталкивались с необходимостью работы с какими-либо API, но что делать, если у этого сервиса (внешнего или внутреннего)...

Хабр

🚀 Atenção, devs Python! 🚀

Você já ouviu falar em *Primitive Obsession*? É aquele code smell que vira pesadelo quando usamos só *primitivos* (strings, dicts, listas) para modelar dados complexos num sistema. A boa notícia: existe uma saída poderosa e elegante! 💥

No artigo fresquinho *"Primitive Obsession no Python: Refatorando com Dataclasses para Value Objects Robustos"*, inspirado na incrível Live de Python #150 do Eduardo Mendes, você vai descobrir como as **dataclasses** podem revolucionar seu código!

✨ Imagine ter:
- Abstrações de domínio ricas, tipadas e imutáveis
- Código mais seguro e testável, sem KeyError ou lógica espalhada
- Menos boilerplate e alta legibilidade
- Validações incorporadas e comportamento encapsulado
- Facilidade para escalar e evoluir sistemas com menos bugs

Este é o caminho para sair da armadilha dos primitivos e dominar Value Objects com Python moderno! 🚀👩‍💻👨‍💻

🙌 Não perca tempo! Leia o artigo completo e transforme sua maneira de pensar software:

👉 https://bolha.blog/riverfount/primitive-obsession-no-python-refatorando-com-dataclasses-para-value-objects

#Python #Dev #Dataclasses #CleanCode #TechDebt #DDD #PrimitiveObsession #EduardoMendes #LivePython #SoftwareEngineering

Primitive Obsession no Python: Refatorando com Dataclasses para Value Objects Robustos

Baseado na Live de Python #150 do canal Eduardo Mendes no YouTube, este artigo explora de maneira prática e direta a "primitive obsession...

Riverfount

Pydantic V2: Почему dataclasses вам больше не нужны

Вы пишите age: int, а Python спокойно пропускает туда строку. Программа падает, но не сразу, а в самый неподходящий момент. Я расскажу, почему пора переходить на Pydantic V2. Он теперь работает на Rust (очень быстро), сам исправляет типы и спасает от глупых ошибок. Внутри: сравнение кода, работа с .env и немного практики.

https://habr.com/ru/articles/970338/

#pydantic #pydantic_v2 #python3 #python_для_начинающих #dataclasses

Pydantic V2: Почему dataclasses вам больше не нужны

Введение: Иллюзия надежности данных Появление dataclasses значительно упростило жизнь Python-разработчикам: меньше шаблонного кода, выше читаемость. Однако есть критический нюанс, который часто...

Хабр

Полезные конструкции Python, которые упростят работу с данными

Даже без сторонних библиотек в языке есть много встроенных инструментов, которые помогают лаконично обрабатывать данные, писать читаемый код и избегать лишних проверок и циклов. В этой статье мы собрали конструкции, которые пригодятся как начинающим, так и более опытным разработчикам.

https://habr.com/ru/companies/netologyru/articles/940890/

#python #enumerate #генерация_списков #фильтрация_данных #тернарный_оператор #lambda #yield #множества #kwargs #dataclasses

Полезные конструкции Python, которые упростят работу с данными

Даже без сторонних библиотек в языке есть много встроенных инструментов, которые помогают лаконично обрабатывать данные, писать читаемый код и избегать лишних проверок и циклов.  В этой статье мы...

Хабр

Msgspec vs DataClasses: битва инструментов в мире Python-сериализации

Хабрчане, привет! Это Леша Жиряков из МТС Диджитал. Недавно я писал про FastAPI vs Litestar и Polars vs Pandas , а сегодня разберем два популярных инструмента — Msgspec и DataClasses. Оба помогают структурировать данные, добавить энтерпрайзности в проект, но подходы у них разные. Какой из них быстрее и удобнее, где их лучше применять? Давайте разбираться.

https://habr.com/ru/companies/ru_mts/articles/881514/

#программирование #python #Msgspec #dataclasses #работа_с_данными #сериализация

Msgspec vs DataClasses: битва инструментов в мире Python-сериализации

Хабрчане, привет! Это Леша Жиряков из МТС Диджитал. Недавно я писал про FastAPI vs Litestar и  Polars vs Pandas , а сегодня разберем два популярных инструмента — Msgspec и DataClasses. Оба...

Хабр

#python question for the experts out there - why shouldn't I almost always use #dataclasses , along with `__post__init__`?

Details:
python dataclasses: https://docs.python.org/3/library/dataclasses.html seem very convenient.

Most classes I use in my personal projects have the pattern: `self.blah = blah` where blah is each parameter passed in `__init__`.

Having a `__post_init__` option makes post member assignment very natural.

I'm very tempted to use the `@dataclass` decorator for almost every class I write.

dataclasses — Data Classes

Source code: Lib/dataclasses.py This module provides a decorator and functions for automatically adding generated special methods such as__init__() and__repr__() to user-defined classes. It was ori...

Python documentation
Sarfraaz Ahmed's Trainings - My Voyage of Discovery

MyVoD ( My Voyage of Discovery ) is a newsletter where I plan to share my discoveries with you while I tread on the path of self development and life itself. I hope this will encourage you to

sad that #python #dataclasses are to be avoided if one wants to have good cold start time for tools
Dataclasses simplify the creation of classes for storing data by reducing boilerplate code. They provide automatic generation of __init__, __repr__ and other useful methods. #python #dataclasses #dataclass