Вышла первая бета Django 5.0, а значит значимого изменения состава релиза уже не будет и можно смотреть, что завезли:
1. Много поддержки асинхронности - в
2. На первом месте довольно спорная фича - возможность показывать количество фильтруемых объектов в боковом фильтре в админке. Там под капотом
3. Упрощенная шаблонизация для форм из коробки, для тех кто работает с html-формами код станет читабельнее (хотя думается мне, что те кто работает с большими формами уже давно что-то подобное у себя реализовали)
4. Возможность задавать дефолты на уровне базы данных
5. `GENERATED`-поля в моделях, значение которых рассчитывается на уровне БД
6. В Choice-полях теперь можно использовать словарь, вместо кортежей
В общим никаких революций https://docs.djangoproject.com/en/5.0/releases/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/
👍23
Новости 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
Пока нет уверенности, что выпиливание 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
Discussions on Python.org
PEP 703 (Making the Global Interpreter Lock Optional in CPython) acceptance
(Posted for the whole Steering Council.) As we’ve announced before, the Steering Council has decided to accept PEP 703 (Making the Global Interpreter Lock Optional in CPython) . We want to make it clear why, and under what expectations we’re doing so. It…
🔥20👍6
Многие начинающие разработчики и даже мидлы иногда не осознают всей пользы, которую может принести использование модуля functools в Python. Если вы еще не используете functools то мы идем к вам, почитайте эту статью. В ней описано несколько практических примеров, демонстрирующих, как functools может сделать ваш код и вашу жизнь чуть лучше: https://pybit.es/articles/6-cool-things-you-can-do-with-the-functools-module/
Pybites
6 Cool Things You Can Do With The Functools Module - Pybites
In this article let's look at the functools Standard Library module and 6 cool things you can do with it (be warned, a lot of decorators are coming your way!
🔥28👍8👎1
В эту пятницу поговорим про новости из мира Python. Темы для обсуждения:
🟡 вышла первая бета Django 5.0;
🟡 наконец принят PEP 703 про опциональный GIL из коробки;
🟡 Рассел КейтМакги сделал PEP 730 где предлагается добавить iOS в полноценно поддерживаемые платформы;
🟡 отчет Security Developer-in-Residence за 3 квартал.
➡️ Когда: 3 ноября в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости мира Python за октябрь
Спонсор подкаста — https://learn.python.ru
Ведущие — Михаил Корнеев и Григорий Петров
00:00 — интро
00:50 — релиз беты Django 5.0
21:23 — можно ли реализовать теоретически в базе данных асинхронность для транзакций?
23:54 — PEP 703 — опциональный GIL…
Ведущие — Михаил Корнеев и Григорий Петров
00:00 — интро
00:50 — релиз беты Django 5.0
21:23 — можно ли реализовать теоретически в базе данных асинхронность для транзакций?
23:54 — PEP 703 — опциональный GIL…
🔥14👍2
Kenneth Reitz (автор `requests`) официально прекратил работать асинхронный requests3. Некоторое время назад он даже собирал под это дело донаты, но потом от него долго не было коммитов и статус проекта был непонятен. По его словам, асинхронка в питоне не оправдала его ожиданий и requests останутся синхронными.
На редите в комментах народ бурлит и обсуждает его в негативном ключе. Но я могу понять Кеннета - сам был в ситуациях, когда вроде обещал и понимаешь, что надо сделать, но просто не можешь заставить себя взяться за задачу (код) потому-то с души воротит. Тем более Кеннет давно писал, что у него биполярка.
В общем, если вы ждете асинхронный requests3 - имеет смысл посмотреть на альтернативы. Я лично в любом случае благодарен Кеннету за отличный requests.
https://kennethreitz.org/essays/why-im-not-collaborating-with-kenneth-reitz
На редите в комментах народ бурлит и обсуждает его в негативном ключе. Но я могу понять Кеннета - сам был в ситуациях, когда вроде обещал и понимаешь, что надо сделать, но просто не можешь заставить себя взяться за задачу (код) потому-то с души воротит. Тем более Кеннет давно писал, что у него биполярка.
В общем, если вы ждете асинхронный requests3 - имеет смысл посмотреть на альтернативы. Я лично в любом случае благодарен Кеннету за отличный requests.
https://kennethreitz.org/essays/why-im-not-collaborating-with-kenneth-reitz
👍32
23 ноября в Нижнем пройдет оффлайн-митап про python в Astra Linux, подробнее https://t.me/gkastrateam/272
Telegram
Astra Team
На улице rain, а на душе pain?☔️
Мы здесь, чтобы разогнать вашу осеннюю хандру! Говорят, что лучше всего в этом помогает непринужденная атмосфера среди единомышленников и кружка хорошего пива. Все это можно найти на нашем IT-meetup для Python-разработчиков!🍻…
Мы здесь, чтобы разогнать вашу осеннюю хандру! Говорят, что лучше всего в этом помогает непринужденная атмосфера среди единомышленников и кружка хорошего пива. Все это можно найти на нашем IT-meetup для Python-разработчиков!🍻…
👍6🔥6👎1
Вышла Django Ninja 1.0 - это такой аналог Django Rest Framework, но несколько более быстрый из-за использования pydantic и лучшей работой с асинхронностью. Что нового:
1. Перешли на pydantic 2 (поддержку v1 дропнули)
2. Поддержка async в аутентификации
3. Много всяких других улучшений, которые мне сложно оценить так как я сам django ninja трогал совсем чуть-чуть и на реальных проектах не сталкивался
Но всех, кто пользуется, поздравляю с мажорным релизом https://django-ninja.dev/whatsnew_v1/
1. Перешли на pydantic 2 (поддержку v1 дропнули)
2. Поддержка async в аутентификации
3. Много всяких других улучшений, которые мне сложно оценить так как я сам django ninja трогал совсем чуть-чуть и на реальных проектах не сталкивался
Но всех, кто пользуется, поздравляю с мажорным релизом https://django-ninja.dev/whatsnew_v1/
django-ninja.dev
What's new in V1 - Django Ninja
Django Ninja - Django REST framework with high performance, easy to learn, fast to code.
🔥21👍6👎1
В последнее время монорепозитории становятся модными, по крайней мере я все чаще вижу обсуждения вроде "давайте все переходить на монорепы". Вероятно для больших компания (таких как Google и Facebook) это имеет смысл, но вот мой личный опыт работы с монорепами говорит, что они требуют сильно больше усилий по настройке и написанию тулов, чтобы можно было нормально работать.
В этой статье авторы продвигают идею монорепозиториев, постоянно ссылаясь на Google и Facebook. Несмотря на то, что они явно влюблены в идею монореп и из-за этого несколько необъективны, я все-таки рекомендую потратить время на статью:
1. Если просто интересно, что такое монорепа и как с ней работать
2. Там показана действительно интересная работа со сложными github actions и я для себя узнал много полезного
https://monadical.com/posts/from-chaos-to-cohesion.html
В этой статье авторы продвигают идею монорепозиториев, постоянно ссылаясь на Google и Facebook. Несмотря на то, что они явно влюблены в идею монореп и из-за этого несколько необъективны, я все-таки рекомендую потратить время на статью:
1. Если просто интересно, что такое монорепа и как с ней работать
2. Там показана действительно интересная работа со сложными github actions и я для себя узнал много полезного
https://monadical.com/posts/from-chaos-to-cohesion.html
Monadical Consulting
From Chaos to Cohesion: Architecting Your Own Monorepo
Build a simple monorepo using GitHub Actions as a CI/CD tool.
👍13👎1
Разработка REST Api кажется простым делом - перекладывай json-чики с места на место и все дела. Но когда ты сталкиваешься с плохо спроектированными Api-шками и начинаешь задумываться о том, как спроектировать хорошо, тут то и открывается бездна. Особенно интересно то, что каждый знает "как правильно проектировать Api" и часто даже в небольшой команде начинаются жаркие споры и каждый тянет одеяло на себя.
Вот еще одна из миллиона статей на тему "как делать правильно", которая мне понравилась взвешенным подходом и подробной аргументацией к каждому пункту. Если вы работаете на проектах, где нет внутреннего стандарта на Api, то рекомендую почитать https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs
Вот еще одна из миллиона статей на тему "как делать правильно", которая мне понравилась взвешенным подходом и подробной аргументацией к каждому пункту. Если вы работаете на проектах, где нет внутреннего стандарта на Api, то рекомендую почитать https://github.com/stickfigure/blog/wiki/How-to-(and-how-not-to)-design-REST-APIs
GitHub
How to (and how not to) design REST APIs
Jeff Schnitzer's Blog. Contribute to stickfigure/blog development by creating an account on GitHub.
🔥28👍11👎1
Сегодня будет традиционный ежемесячный эфир про новости из мира Python, к сожалению я сегодня не смогу прийти на эфир, но зато у нас будет гость - Сергей Васечко, член программного комитета Podlodka Python. Темы выпуска:
🟡 Релиз Django Ninja 1.0
🟡 PEP 734 — сабинтерпретаторы в stdlib
🟡 Nvidia показала cudf.pandas (GPU)
🟡 Опрос Python-разработчиков от JetBrains
🟡 PyPi прошел первый аудит безопасности
и другие новости за последний месяц.
➡️ Когда: 1 декабря в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
и другие новости за последний месяц.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости мира Python за ноябрь: PEP 734 / Django Ninja/аудит безопасности PyPI
Спонсор подкаста — https://learn.python.ru
Podlodka Python Crew — https://podlodka.io/pythoncrew
Ведущие – Григорий Петров и Сергей Васечко
00:00 — интро и Миша не мог прийти
1:38 — Сергей Высечко о себе и конференции Podlodka Python Crew
4:05 — Релиз…
Podlodka Python Crew — https://podlodka.io/pythoncrew
Ведущие – Григорий Петров и Сергей Васечко
00:00 — интро и Миша не мог прийти
1:38 — Сергей Высечко о себе и конференции Podlodka Python Crew
4:05 — Релиз…
🔥17👍5👎1
Вышел Django 5.0. Из более-менее интересных изменений - поддержка database defaults для полей моделей, в целом выглядит как "технический" релиз https://www.djangoproject.com/weblog/2023/dec/04/django-50-released/
Django Project
Django 5.0 released
Posted by Natalia Bidart on Dec. 4, 2023
👍20👎1
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Андреем Столбовским и обсудим:
🟡 лучшие практики в мониторинге;
🟡 архитектуру мониторинга на примере Yandex Cloud Monitoring;
🟡 как устроены системы мониторинга под капотом.
➡️ Когда: 15 декабря в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
observability / как сжать int в один бит / мониторинг в Яндексе
Спонсор подкаста — https://learn.python.ru
Ведущие — Михаил Корнеев и Григорий Петров
00:00 — интро
1:00 — что такое SDM?
1:25 — Андрей о себе и чем занимается сейчас
3:10 — как в больших компаниях строится мониторинг
8:10 —почему большие компании вкладываются…
Ведущие — Михаил Корнеев и Григорий Петров
00:00 — интро
1:00 — что такое SDM?
1:25 — Андрей о себе и чем занимается сейчас
3:10 — как в больших компаниях строится мониторинг
8:10 —почему большие компании вкладываются…
👍17🔥4👎1
Я в последнее время активно играюсь с FastStream — это такой приятный фреймворк для работы с очередями и наследник FastKafka. Сейчас уже поддерживает Kafka, Rabbit и NATS и вот в последнем релизе они добавили поддержку redis. Если вам нужен фреймворк для написания продюсеров/консьюмеров то прямо рекомендую посмотреть https://github.com/airtai/faststream
GitHub
GitHub - ag2ai/faststream: FastStream is a powerful and easy-to-use Python framework for building asynchronous services interacting…
FastStream is a powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ, NATS and Redis. - ag2ai/faststream
👍41🔥10👎1
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Михаилом Вознесенским, руководителем группы разработки почтовых решений RuPost. В этот раз зарубимся про комментарии в коде и надо ли их писать.
➡️ Когда: 22 декабря в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Культура комментариев в коде
Спонсор подкаста — https://learn.python.ru
Ведущие – Григорий Петров и Михаил Корнеев
Гость выпуска — Михаил Вознесенский, руководитель группы разработки почтовых решений RuPost (входит в «Группу Астра»)
00:00 — интро
5:06 — начинаем разгонять про комментарии…
Ведущие – Григорий Петров и Михаил Корнеев
Гость выпуска — Михаил Вознесенский, руководитель группы разработки почтовых решений RuPost (входит в «Группу Астра»)
00:00 — интро
5:06 — начинаем разгонять про комментарии…
👍14🔥7👎1
Привет, сегодня будем записывать финальный выпуск Moscow Python Podcast за 2023 год:
в 14:00 по МСК как обычно в прямом эфире обсудим самые интересные новости года. Пишите в комментарии, что вам больше всего запомнилось за этот год? И какой выпуск больше всего понравился.
➡️ Когда: 29 декабря в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
в 14:00 по МСК как обычно в прямом эфире обсудим самые интересные новости года. Пишите в комментарии, что вам больше всего запомнилось за этот год? И какой выпуск больше всего понравился.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Что произошло в мире Python за 2023 год
Спонсор подкаста — https://learn.python.ru
Ведущие – Григорий Петров и Михаил Корнеев
Ссылки выпуска:
Курс Learn Python — https://learn.python.ru/
Канал Миши в Telegram — https://t.me/tricky_python
Канал Moscow Python в Telegram — https://t.me/moscow_python…
Ведущие – Григорий Петров и Михаил Корнеев
Ссылки выпуска:
Курс Learn Python — https://learn.python.ru/
Канал Миши в Telegram — https://t.me/tricky_python
Канал Moscow Python в Telegram — https://t.me/moscow_python…
🔥19👍1
Любопытное исследование вопроса - как побыстрее прочитать много данных из Excel в питоне. Я открыл для себя много нового - например я раньше не слышал про
python-calamine
и не знал что DuckDb можно использовать для чтения экселя. Идеального универсального решения как обычно не завезли - например, calamine супер-быстрый, но при этом там нет возможности читать построчно итератором - все загружается сразу в память. В общем если вам приходится работать с экселем - рекомендую почитать https://hakibenita.com/fast-excel-pythonHakibenita
Fastest Way to Read Excel in Python
Reading 500K rows in less than 4 seconds
🔥33👍4
Привет! Как вы возможно заметили, в январе мы с коллегами решили немного отдохнуть от записи подкаста. Январь закончился, мы немного отдохнули и очередной новостной Moscow Python Podcast пройдет завтра, в 14:00 по МСК. Темы:
🟡 JIT-компиляция в Python 3.13;
🟡 релиз Django 5.0;
🟡 Jetbrains выпустили отчет State of Developer Ecosystem 2023;
🟡 cамые популярные библиотеки 2023;
🟡 2FA для публикаций PyPI.
➡️ Когда: 2 февраля в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости из мира Python за декабря и январь
Спонсор подкаста — https://learn.python.ru
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — Интро
1:20 — JIT-компиляция в Python 3.13
13:05 — State of Developer Ecosystem 2023 by Jetbrains
23:22 — A Look Back at 2023 in Python Packaging
33:45 — Самые…
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — Интро
1:20 — JIT-компиляция в Python 3.13
13:05 — State of Developer Ecosystem 2023 by Jetbrains
23:22 — A Look Back at 2023 in Python Packaging
33:45 — Самые…
🔥22👍8
Ребята, которые сделали
Также они взяли на себя дальнейшую поддержку
Выглядит вкусно, попробую поиграться с
Анонс: https://astral.sh/blog/uv
Репозиторий проекта: https://github.com/astral-sh/uv
ruff
, выпустили свой тул для работы с зависимостями для python - uv
. Они позиционируют его как замену pip
, pip-tools
и virtualenv
. Написан на расте, поэтому работает быстро.Также они взяли на себя дальнейшую поддержку
rye
(который изначально сделал Армин Ронахер, автор flask) и судя по всем планируют постепенно эти проекты объединить в один.Выглядит вкусно, попробую поиграться с
uv
на пет-проектах.Анонс: https://astral.sh/blog/uv
Репозиторий проекта: https://github.com/astral-sh/uv
astral.sh
uv: Python packaging in Rust
uv is an extremely fast Python package installer and resolver, designed as a drop-in alternative to pip and pip-tools.
🔥35👍12
Легкое чтение на выходные: автор напоминает, что прежде, чем делать pip install klevaya_liba желательно сначала посмотреть, насколько эта либа живая.
В качестве примера приводит Flask-Mail, у которого последний коммит был в 2014 году, но при этом почти полмиллиона скачиваний в месяц.
Это значит, что найденные проблемы в безопасности не исправляются, а совместимость с новой версией питона может отвалиться в любой момент (например, как это случилось с python-kafka и 3.12).
Статья https://freelancefootprints.substack.com/p/abandoned-code-the-hidden-risks-of
В качестве примера приводит Flask-Mail, у которого последний коммит был в 2014 году, но при этом почти полмиллиона скачиваний в месяц.
Это значит, что найденные проблемы в безопасности не исправляются, а совместимость с новой версией питона может отвалиться в любой момент (например, как это случилось с python-kafka и 3.12).
Статья https://freelancefootprints.substack.com/p/abandoned-code-the-hidden-risks-of
Freelance Footprints
Abandoned Code: The Hidden Risks of Using Unmaintained Software
Once upon a time, I was working on implementing sending emails in a Flask application. I went to Google to check out how others do it. I couldn't believe it: everyone was using a package that hadn't been maintained for 9 years!
👍27
На этой неделе проведём выпуск подскаста с Никитой Соболевым, и обсудим, как стать core-разработчиком CPython и в что интересного в мире разработки языка программирования. Этот выпуск будет сегодня, в четверг, а не в пятницу как обычно
➡️ Когда: 22 февраля в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как стать core-разработчиком CPython?
Спонсор подкаста — https://learn.python.ru
Ведущие – Григорий Петров и Михаил Корнеев
Ссылки Никиты:
GitHub — github.com/sobolevn
Youtube — @sobolevn
Ведущие – Григорий Петров и Михаил Корнеев
Ссылки Никиты:
GitHub — github.com/sobolevn
Youtube — @sobolevn
🔥36