ch
Feedback
Хитрый Питон

Хитрый Питон

前往频道在 Telegram

Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm

显示更多
2 505
订阅者
-224 小时
+27
+130
帖子存档
Привет, сегодня будем записывать финальный выпуск Moscow Python Podcast за 2023 год: в 14:00 по МСК как обычно в прямом эфире обсудим самые интересные новости года. Пишите в комментарии, что вам больше всего запомнилось за этот год? И какой выпуск больше всего понравился. ➡️Когда: 29 декабря в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Михаилом Вознесенским, руководителем группы разработки почтовых решений RuPost. В этот раз зарубимся про комментарии в коде и надо ли их писать. ➡️Когда: 22 декабря в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Я в последнее время активно играюсь с FastStream — это такой приятный фреймворк для работы с очередями и наследник FastKafka. Сейчас уже поддерживает Kafka, Rabbit и NATS и вот в последнем релизе они добавили поддержку redis. Если вам нужен фреймворк для написания продюсеров/консьюмеров то прямо рекомендую посмотреть https://github.com/airtai/faststream

Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Андреем Столбовским и обсудим: 🟡лучшие практики в мониторинге; 🟡архитектуру мониторинга на примере Yandex Cloud Monitoring; 🟡как устроены системы мониторинга под капотом. ➡️Когда: 15 декабря в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Вышел Django 5.0. Из более-менее интересных изменений - поддержка database defaults для полей моделей, в целом выглядит как "технический" релиз https://www.djangoproject.com/weblog/2023/dec/04/django-50-released/

Сегодня будет традиционный ежемесячный эфир про новости из мира Python, к сожалению я сегодня не смогу прийти на эфир, но зато у нас будет гость - Сергей Васечко, член программного комитета Podlodka Python. Темы выпуска: 🟡Релиз Django Ninja 1.0 🟡PEP 734 — сабинтерпретаторы в stdlib 🟡Nvidia показала cudf.pandas (GPU) 🟡Опрос Python-разработчиков от JetBrains 🟡PyPi прошел первый аудит безопасности и другие новости за последний месяц. ➡️Когда: 1 декабря в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Разработка REST Api кажется простым делом - перекладывай json-чики с места на место и все дела. Но когда ты сталкиваешься с плохо спроектированными Api-шками и начинаешь задумываться о том, как спроектировать хорошо, тут то и открывается бездна. Особенно интересно то, что каждый знает "как правильно проектировать Api" и часто даже в небольшой команде начинаются жаркие споры и каждый тянет одеяло на себя. Вот еще одна из миллиона статей на тему "как делать правильно", которая мне понравилась взвешенным подходом и подробной аргументацией к каждому пункту. Если вы работаете на проектах, где нет внутреннего стандарта на Api, то рекомендую почитать https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs

Последнее время монорепозитории становятся модными, по крайней мере я все чаще вижу обсуждения вроде "давайте все переходить на монорепы". Вероятно для больших компания (таких как Google и Facebook) это имеет смысл, но вот мой личный опыт работы с монорепами говорит, что они требуют сильно больше усилий по настройке и написанию тулов, чтобы можно было нормально работать. В этой статье авторы продвигают идею монорепозиториев, постоянно ссылаясь на Google и Facebook. Несмотря на то, что они явно влюблены в идею монореп и из-за этого несколько необъективны, я все-таки рекомендую потратить время на статью: 1. Если просто интересно, что такое монорепа и как с ней работать 2. Там показана действительно интересная работа со сложными github actions и я для себя узнал много полезного https://monadical.com/posts/from-chaos-to-cohesion.html

Вышла Django Ninja 1.0 - это такой аналог Django Rest Framework, но несколько более быстрый из-за использования pydantic и лучшей работой с асинхронностью. Что нового: 1. Перешли на pydantic 2 (поддержку v1 дропнули) 2. Поддержка async в аутентификации 3. Много всяких других улучшений, которые мне сложно оценить так как я сам django ninja трогал совсем чуть-чуть и на реальных проектах не сталкивался Но всех, кто пользуется, поздравляю с мажорным релизом https://django-ninja.dev/whatsnew_v1/

23 ноября в Нижнем пройдет оффлайн-митап про python в Astra Linux, подробнее https://t.me/gkastrateam/272

Kenneth Reitz (автор `requests`) официально прекратил работать асинхронный requests3. Некоторое время назад он даже собирал под это дело донаты, но потом от него долго не было коммитов и статус проекта был непонятен. По его словам, асинхронка в питоне не оправдала его ожиданий и requests останутся синхронными. На редите в комментах народ бурлит и обсуждает его в негативном ключе. Но я могу понять Кеннета - сам был в ситуациях, когда вроде обещал и понимаешь, что надо сделать, но просто не можешь заставить себя взяться за задачу (код) потому-то с души воротит. Тем более Кеннет давно писал, что у него биполярка. В общем, если вы ждете асинхронный requests3 - имеет смысл посмотреть на альтернативы. Я лично в любом случае благодарен Кеннету за отличный requests. https://kennethreitz.org/essays/why-im-not-collaborating-with-kenneth-reitz

В эту пятницу поговорим про новости из мира Python. Темы для обсуждения: 🟡вышла первая бета Django 5.0; 🟡наконец принят PEP 703 про опциональный GIL из коробки; 🟡Рассел КейтМакги сделал PEP 730 где предлагается добавить iOS в полноценно поддерживаемые платформы; 🟡отчет Security Developer-in-Residence за 3 квартал. ➡️Когда: 3 ноября в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Многие начинающие разработчики и даже мидлы иногда не осознают всей пользы, которую может принести использование модуля functools в Python. Если вы еще не используете functools то мы идем к вам, почитайте эту статью. В ней описано несколько практических примеров, демонстрирующих, как functools может сделать ваш код и вашу жизнь чуть лучше: https://pybit.es/articles/6-cool-things-you-can-do-with-the-functools-module/

Новости nogil. Steering Council принял PEP 703 - опциональный gil из коробки. На discuss.python.org большой пост про это, я приведу только заинтересовавшие меня моменты: Пока нет уверенности, что выпиливание gil не поломает совместимость со сторонними либами, не сделает интерпретатор медленнее на 10–15% и не усложнит его поддержку. Выбрали вполне ожидаемый подход - реализуем и посмотрим, как пойдет, потому что на прототипах и теоретических выкладках далеко не уедешь. Как и предполагали раньше, все будет происходить в несколько этапов: 1. Возможность отключить gil на этапе сборки — это точно не продакшен решение, а инструмент для авторов библиотек и экспериментаторов 2. Финализация изменений API и ABI, после чего nogil-сборка будет уже считаться не экспериментальной но все еще не включаться по дефолту 3. Отключенный gil по умолчанию с возможностью включить при сборке В общем планируют переходить очень постепенно и не загонять людей в светлое будущее палкой вплоть до того, что готовы отозвать PEP 703 если переход окажется слишком калечащим. https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional-in-cpython-acceptance/37075

Вышла первая бета Django 5.0, а значит значимого изменения состава релиза уже не будет и можно смотреть, что завезли: 1. Много поддержки асинхронности - в contrib.auth, возможность получить и обработать asyncio.CancelledError внутри вьюхи, если клиент разорвал соединение до того, как мы закончили обрабатывать запрос, поддержка асинхронки в куче декораторов, асинхронная отправка сигналов, новые асинхронные методы у моделек 2. На первом месте довольно спорная фича - возможность показывать количество фильтруемых объектов в боковом фильтре в админке. Там под капотом COUNT и естественно на более-менее приличных объемах данных тормозить будет нечеловечески. Благо можно глобально отключить 3. Упрощенная шаблонизация для форм из коробки, для тех кто работает с html-формами код станет читабельнее (хотя думается мне, что те кто работает с большими формами уже давно что-то подобное у себя реализовали) 4. Возможность задавать дефолты на уровне базы данных 5. `GENERATED`-поля в моделях, значение которых рассчитывается на уровне БД 6. В Choice-полях теперь можно использовать словарь, вместо кортежей В общим никаких революций https://docs.djangoproject.com/en/5.0/releases/5.0/

Сегодня будет прямой эфир Moscow Python Podcast со Станиславом Змиевым из Monite. Обсудим: 🟡как делался pathlib.Path.walk в 3.12; 🟡как работает большой Open Source на примере CPython. ➡️Когда: сегодня, 20 октября в 14:00 по Москве. ➡️Где: онлайн и в записи по ссылке.

Для FastApi выпустили документацию к коду. Какие доступны классы, какие у них методы, что принимают/отдают — вот это вот все. Поиск по коду дело хорошее, но тут удобно то, что поиск по документации на сайте сразу будет показывать спецификацию. https://fastapi.tiangolo.com/reference/

Привет! Сегодня будет традиционный ежемесячный эфир про новости Python, темы: 🟡релиз Python 3.12; 🟡релиз Flask 3.0; 🟡результаты Python Developers Survey 2022; 🟡Python-редактор в Excel. ➡️ Когда: сегодня, 13 сентября в 14:00 по Москве. ➡️ Где: онлайн и в записи по ссылке

JetBrains выпустили результата Python Developers Survey 2022. Вот несколько моментов, которые показались мне любопытными: - Python 2 до сих пор используют около 7% опрошенных - Flask и Django занимаю 1 и 2 место по популярности, FastAPI на 3-м месте - Из фреймворков для тестирования самый популярный pytest, который используют более 50% опрошенных - На 5% больше, чем в прошлом году стали использовать облачные платформы - Самая популярная платформа для разработки - Linux, Windows на втором месте - Github Actions стали самым популярным CI-решением - Из инструментов автоматизации работы с зависимостями Poetry на первом месте, 2 и 3 по популярности ним pipenv и pip-tools - 34% опрошенных участвовали в разработке библиотек Ссылка на отчет https://lp.jetbrains.com/python-developers-survey-2022/

Вышел python 3.12, из самых интересных новинок: - Новое api для профайлинга/дебага - должно позвонить сильно сократить накладные расходы на профилирование python-кода - Переработали парсер f-строк, теперь в f-строки можно запихивать сложные синтаксические конструкции (например 'str'.join()) - Улучшили читаемость exception-ов, чтобы было понятнее что именно поломалось в коде - List comprehensions теперь будут отрабатывать быстрее, ну и в целом обещают до 5% улучшения производительности - Ускрили asyncio и обещают прирост производительности до 75% - У субинтерпритаторов теперь отдельный GIL, правда пока как и раньше они доступны только из C-api - Несколько изменений в типизации, самое на мой взгляд интересное - теперь можно использовать ключевое слово type для объявления своих type alias - Выпилили distutils Подробнее вот тут https://docs.python.org/dev/whatsnew/3.12.html