TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4682 3.86K
Команда urllib3 столкнулась с неприятным открытием: механизм DeprecationWarning в Python фактически не работает. Библиотека три года предупреждала об устаревших API — через документацию, changelog и встроенные предупреждения. В версии 2.6.0 эти методы удалили. И всё сломалось.

Что произошло: после релиза посыпались баг-репорты от Kubernetes-клиента, Fastly, Airflow и других крупных проектов. Разработчики были в шоке — никто не видел предупреждений и не знал, что API исчезнет. Команде urllib3 пришлось срочно откатывать изменения и возвращать удалённые методы.

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

Какие есть варианты:

🔘Использовать UserWarning вместо DeprecationWarning — он не игнорируется по умолчанию

🔘Делать более частые мажорные релизы по SemVer, как в криптографических библиотеках

🔘Менять культуру работы с предупреждениями в экосистеме — но это долгий путь

Вывод для авторов библиотек: если полагаетесь только на стандартные предупреждения — велика вероятность, что их никто не увидит до момента, пока код не сломается.

@zen_of_python
  • ❤ 4
  • 🗿 4
  • 👍 1
  • 😱 1
More from @zen_of_python
  1. Sep 23, 2026Что меняет re.prefixmatch() в Python 3.15 re.match() проверяет совпадение только в начале…
  2. Sep 23, 2026Pyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая пуб…
  3. Sep 22, 2026Как применять структурное сопоставление с образцом к деревьям в Python Структурное сопоста…
  4. Sep 22, 2026Почему в Python стоит подменять свой интерфейс, а не httpx Если бизнес-тест напрямую подме…
  5. Sep 22, 2026Как точно типизировать *args и **kwargs в Python Запись *args: tuple[int, str] выглядит ка…
  6. Sep 21, 2026Как точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медлен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →