Forwarded from Хитрый Питон
Вышла джанга 4.1 https://www.djangoproject.com/weblog/2022/aug/03/django-41-released/ из интересного:
1. Поддержка асинхронных запросов в ORM, но магическим образом запросы асинхронными не станут, надо в явном виде вызывать начинающиеся с
2. В class-based views можно делать асинхронные методы
3. Meta.constraints теперь проверяются во время валидации модели. Я не успел посмотреть как это работает, но если модель сама начнет неявно лазить в базу для проверки
Еще всякие мелочи, которые показались интересными:
-
- новая команда
- поддержка пеерименования индексов в миграциях
-
-
- добавили механизм ротирования SEKRET_KEY-а https://docs.djangoproject.com/en/4.1/ref/settings/#secret-key-fallbacks
- много всякого removed/deprecated но ничего для себя интересного в списке я не нашел https://docs.djangoproject.com/en/4.1/releases/4.1/#backwards-incompatible-changes-in-4-1
Попробую на выходных один пет-проджект перевести на 4.1
1. Поддержка асинхронных запросов в ORM, но магическим образом запросы асинхронными не станут, надо в явном виде вызывать начинающиеся с
a
методы типа .afirst()
вместо .first()
2. В class-based views можно делать асинхронные методы
3. Meta.constraints теперь проверяются во время валидации модели. Я не успел посмотреть как это работает, но если модель сама начнет неявно лазить в базу для проверки
unique
то это скорее минусЕще всякие мелочи, которые показались интересными:
-
makemigrations --scriptable
выглядит как удобная для использования в CI штука- новая команда
optimizemigration
обещает некие оптимизации для миграций, интеерсно будет посмотреть как это работает- поддержка пеерименования индексов в миграциях
-
bulk_create()
теперь кажется умеет делать update если такая строка уже есть в базе-
iterator()
научили делать prefetch_related
- добавили механизм ротирования SEKRET_KEY-а https://docs.djangoproject.com/en/4.1/ref/settings/#secret-key-fallbacks
- много всякого removed/deprecated но ничего для себя интересного в списке я не нашел https://docs.djangoproject.com/en/4.1/releases/4.1/#backwards-incompatible-changes-in-4-1
Попробую на выходных один пет-проджект перевести на 4.1
🔥10👍1👎1
Вот тут молодой человек издевается над структурным паттерн-матчингом в 3.10 при помощи ABC. Создаёт разные странные типы, а паттерн-матчинг с удовольствием их матчит. В продакшн такое точно затаскивать нельзя, потому что уж слишком неожиданно получается, но для понимания работы механизмов — весьма интересно.
Кстати, насколько я вижу, пока что большинство людей используют паттерн-матчинг как обычный
Кстати, насколько я вижу, пока что большинство людей используют паттерн-матчинг как обычный
switch-case
по набору констант, чтобы сэкономить символы на цепочке if-elif-else
. У вас так же? Нашли ли вы способ применить распаковки (destructuring) в паттерн-матчинге?Hillel Wayne
Crimes with Python's Pattern Matching
Let's make the CPython team regret adding pattern matching to Python!
🔥2😁2
Первый релиз кандидат для 3.11 только что созрел. Оно приближается!
Python.org
Python Release Python 3.11.0rc1
The official home of the Python Programming Language
🥰8🔥4❤🔥2❤1👍1
Питонические атаки
Django Software Foundation и JetBrains проводят опрос про экосистему вокруг этого популярного веб-фреймворка. Практикующих и сочувствующих призываю принять участие. https://www.djangoproject.com/weblog/2021/aug/04/2021-django-developers-survey/ #jetbrains
Наткнулся на результаты опроса среди Django-разработчиков за 2021 год, который проводили год назад. Так как я не слишком глубоко погружен в мир вокруг джанги, то глаз цепляется в основном за всякие смежные детали. Выпишу некоторые тезисы.
* Джангисты всё ещё образцовая каста разработчиков в плане перехода на новые версии интерпретатора. Некоторые (между прочим 13% опрошенных) обновляются настолько хорошо, что использовали Python 3.10 ещё за три месяца до финального релиза😕
* Большинство разработчиков чем-то форматирует свой код. 35% используют black, чуть менее популярен autopep8 (30%). Вопреки моим ощущениям, YAPF почти никто не пользуется (2%).
* Оказывается, есть какая-то зависимость между годами опыта и предпочтениями к линтерам. Новички любят pylint, а ветераны склоняются к flake8.
#django
* Джангисты всё ещё образцовая каста разработчиков в плане перехода на новые версии интерпретатора. Некоторые (между прочим 13% опрошенных) обновляются настолько хорошо, что использовали Python 3.10 ещё за три месяца до финального релиза
* Большинство разработчиков чем-то форматирует свой код. 35% используют black, чуть менее популярен autopep8 (30%). Вопреки моим ощущениям, YAPF почти никто не пользуется (2%).
* Оказывается, есть какая-то зависимость между годами опыта и предпочтениями к линтерам. Новички любят pylint, а ветераны склоняются к flake8.
#django
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥰1
Ну и чтобы два раза не вставать, давайте сразу посмотрим на результаты Python Developers Survey 2021, который проводили PSF и JetBrains в конце прошлого года. Опять же, выпишу некоторые пункты, за которые зацепился глаз.
* Переход на Python 3 продолжается. В 2020 году было 94% перешедших, а в 2021 уже 95%. Видимо, все кто мог, уже обновились, а дальше ещё долго будет тянуться хвост из тех, кому обновляться слишком сложно и дорого.
* На конец 2021 года самой популярной версией интерпретатора была 3.9. Тогда только-только вышла 3.10, но на неё уже успело перейти 16% пользователей. Остальные версии постепенно убывают.
* FastAPI стабильно закрепился в тройке популярных веб-фреймворков со значительным отрывом от четвёртого места, которое занял Tornado. При этом FastAPI самый молодой фреймворк в рейтинге. Первое и второе место рейтинга, думаю, называть не нужно.
* В этом году в опрос добавили вопросы про packaging. Похоже, сообщество почти поровну разделилось на пользователей poetry, pipenv и pip-tools. Большинство разработчиков продолжают пользоваться ванильным pip.
* Переход на Python 3 продолжается. В 2020 году было 94% перешедших, а в 2021 уже 95%. Видимо, все кто мог, уже обновились, а дальше ещё долго будет тянуться хвост из тех, кому обновляться слишком сложно и дорого.
* На конец 2021 года самой популярной версией интерпретатора была 3.9. Тогда только-только вышла 3.10, но на неё уже успело перейти 16% пользователей. Остальные версии постепенно убывают.
* FastAPI стабильно закрепился в тройке популярных веб-фреймворков со значительным отрывом от четвёртого места, которое занял Tornado. При этом FastAPI самый молодой фреймворк в рейтинге. Первое и второе место рейтинга, думаю, называть не нужно.
* В этом году в опрос добавили вопросы про packaging. Похоже, сообщество почти поровну разделилось на пользователей poetry, pipenv и pip-tools. Большинство разработчиков продолжают пользоваться ванильным pip.
👍11🥰1
А теперь про действительно важное. В каких кавычках вы пишете строковые литералы в коде? А расскажете почему?
Anonymous Poll
49%
В "двойных"
46%
В 'одинарных'
5%
Использую «ёлочки», пишу код в ворде 🤷♂️
👍3🥰1😁1😱1
Forwarded from ITGram
🐍 debuglater is a Python library that saves stacktrace into a file when your app crashes with an exception. Not just a traceback, but the whole stack, including all variables. It's all is saved using dill, so if you have the same code, you can load the saved stacktrace into a pdb session and debug the crash, as if you could if you had put an actual breakpoint into the place of failure. Pretty cool, huh?
❤17
Forwarded from Code Mining
Energy Efficiency across Programming Languages
Увлекательное и довольно очевидное по выводам исследование опубликовали коллеги из Португалии в 2017 году.
Рецепт прост: взяли 27 языков, взяли приличный список программ для замера эффективности исполнения (потребление энергии, время, ресурсы памяти), свели результаты в таблички.
Конечно не без выводов, но таблица как бы намекает ;)
Насладиться научным подходом можно здесь.
ЗЫ: только тссс, зелёным не говорите, а то ещё с забастовками против Python будут выходить.
Увлекательное и довольно очевидное по выводам исследование опубликовали коллеги из Португалии в 2017 году.
Рецепт прост: взяли 27 языков, взяли приличный список программ для замера эффективности исполнения (потребление энергии, время, ресурсы памяти), свели результаты в таблички.
Конечно не без выводов, но таблица как бы намекает ;)
Насладиться научным подходом можно здесь.
ЗЫ: только тссс, зелёным не говорите, а то ещё с забастовками против Python будут выходить.
❤7👍1👎1
Там проект Faster CPython (это где Гвидо ускоряет питон) опубликовал цели, над которыми собираются работать в рамках релиза 3.12.
* Вероятно, наконец станет можно запускать саб-интерпретаторы прямо из кода на питоне. Это позволит занять интерпретаторами все ядра в нескольких потоках (не процессах!), потому что у каждого будет свой собственный GIL.
* Зачатки JIT будут развиваться — добавят больше специализированных оп-кодов, интерпретатор научится заменять оп-коды на более эффективные целыми пачками, а не по одному.
* Сделают структуры в пямяти более компактными. Хотят уменьшить служебную информацию, которая приделывается к каждому объекту, с 5 до 2 машинных слов. Ожидается, что от этого не только уменьшится количество потребляемой памяти для всех программ на питоне, но и кэши процессора будут использоваться эффективнее.
https://github.com/faster-cpython/ideas/wiki/Python-3.12-Goals
* Вероятно, наконец станет можно запускать саб-интерпретаторы прямо из кода на питоне. Это позволит занять интерпретаторами все ядра в нескольких потоках (не процессах!), потому что у каждого будет свой собственный GIL.
* Зачатки JIT будут развиваться — добавят больше специализированных оп-кодов, интерпретатор научится заменять оп-коды на более эффективные целыми пачками, а не по одному.
* Сделают структуры в пямяти более компактными. Хотят уменьшить служебную информацию, которая приделывается к каждому объекту, с 5 до 2 машинных слов. Ожидается, что от этого не только уменьшится количество потребляемой памяти для всех программ на питоне, но и кэши процессора будут использоваться эффективнее.
https://github.com/faster-cpython/ideas/wiki/Python-3.12-Goals
GitHub
Python 3.12 Goals
Contribute to faster-cpython/ideas development by creating an account on GitHub.
👍25⚡3❤1
Forwarded from FEDOR BORSHEV
Типы в Python
Я познакомился с типизацией в Python ещё в 2018 году. Вернее не совсем познакомился — просто мы начали писать какие-то аннотации, без правил: кто хотел, тот и писал. С виду довольно бесполезное занятие — автодополнения не было, по рукам, если накосячил, никто не бил. Дальше такой опциональной типизации мы тогда не пошли — нормального инструментария не было.
Даже в такой типизации была польза: когда пишешь код с типами, начинаешь гораздо больше думать об API и данных, чем об алгоритмах и синтаксисе языка. Сдвиг мышления похож на то, что происходит с TDD — с ходу не видишь пользы, но если вкуришь, то мышление траснформируется и больше не возвращается обратно.
В 2021 году я наконец-то смог сделать проект по фен-шую: с django-stubs и mypy. На мой взгляд, стало гораздо лучше: помимо автодополнения и стандартизации кодовой базы, радикально улучшилась читаемость. Последний пункт особенно важен сейчас, когда я захожу в проекты пару раз в месяц, и с ходу должен понять, над чем работает команда.
С типизацией согласны далеко не все: и в нашей команде и в питоньем мире в целом есть чуваки, которые думают, что типы в коде забирают больше времени, чем экономят. Я этих ребят понимаю — сам несколько лет не мог определиться. До сих пор отдаю решение об обязательности типов в команду проекта: если хотят писать с нестрогими типами или вообще без них — пожалуйста.
В общем для согласных, несогласных и тех, кто хочет радикально улучшить знания по типизации, мы с Марьяной позвали в Школу Никиту Соболева. Если вдруг не знаете Никиту — он один из авторов django-stubs, член Django Software Foundation, коммитит в mypy, typeshed и CPython. Никита прочитает цикл из трёх вебинаров — об устройстве типов, о тайпчекерах и о практическом применении всего этого.
Курс — бесплатный: времена располагают, да и сообществу надо помогать. Для желающих получить обратную связь есть тариф с домашкой и сертификатами, 30% выручки от которого пойдёт на развитие системы типов в Python.
Стартует 11 октября, читаем по одному вебинару в неделю, заканчиваем 31 октября.
Зарегистрироваться →
Я познакомился с типизацией в Python ещё в 2018 году. Вернее не совсем познакомился — просто мы начали писать какие-то аннотации, без правил: кто хотел, тот и писал. С виду довольно бесполезное занятие — автодополнения не было, по рукам, если накосячил, никто не бил. Дальше такой опциональной типизации мы тогда не пошли — нормального инструментария не было.
Даже в такой типизации была польза: когда пишешь код с типами, начинаешь гораздо больше думать об API и данных, чем об алгоритмах и синтаксисе языка. Сдвиг мышления похож на то, что происходит с TDD — с ходу не видишь пользы, но если вкуришь, то мышление траснформируется и больше не возвращается обратно.
В 2021 году я наконец-то смог сделать проект по фен-шую: с django-stubs и mypy. На мой взгляд, стало гораздо лучше: помимо автодополнения и стандартизации кодовой базы, радикально улучшилась читаемость. Последний пункт особенно важен сейчас, когда я захожу в проекты пару раз в месяц, и с ходу должен понять, над чем работает команда.
С типизацией согласны далеко не все: и в нашей команде и в питоньем мире в целом есть чуваки, которые думают, что типы в коде забирают больше времени, чем экономят. Я этих ребят понимаю — сам несколько лет не мог определиться. До сих пор отдаю решение об обязательности типов в команду проекта: если хотят писать с нестрогими типами или вообще без них — пожалуйста.
В общем для согласных, несогласных и тех, кто хочет радикально улучшить знания по типизации, мы с Марьяной позвали в Школу Никиту Соболева. Если вдруг не знаете Никиту — он один из авторов django-stubs, член Django Software Foundation, коммитит в mypy, typeshed и CPython. Никита прочитает цикл из трёх вебинаров — об устройстве типов, о тайпчекерах и о практическом применении всего этого.
Курс — бесплатный: времена располагают, да и сообществу надо помогать. Для желающих получить обратную связь есть тариф с домашкой и сертификатами, 30% выручки от которого пойдёт на развитие системы типов в Python.
Стартует 11 октября, читаем по одному вебинару в неделю, заканчиваем 31 октября.
Зарегистрироваться →
🔥9👎6💩2👍1
FEDOR BORSHEV
Типы в Python Я познакомился с типизацией в Python ещё в 2018 году. Вернее не совсем познакомился — просто мы начали писать какие-то аннотации, без правил: кто хотел, тот и писал. С виду довольно бесполезное занятие — автодополнения не было, по рукам, если…
Бесплатный курс про тайп-хинты от Никиты Соболева. Ну это надо брать, я считаю.
💩15👍8❤🔥2
Уже примерно через сутки произойдёт релиз Python 3.11! Как и год назад, весь процесс будет проходить в прямом эфире, будут разные гости с торжественными речами. Смотреть вот тут.
Вы как, готовы уже обновлять все свои программки?
Вы как, готовы уже обновлять все свои программки?
🔥22🎉5💩2
Запустился уже шестой по счету ежегодный опрос Python Developers Survey от PSF и JetBrains. Как обычно, вопросы про версии языка, используемые фреймворки, библиотеки, инструменты и так далее. Надо проходить!
https://surveys.jetbrains.com/s3/c1-python-developers-survey-2022
https://surveys.jetbrains.com/s3/c1-python-developers-survey-2022
Jetbrains
Python Developers Survey 2022
The official Python Developers Survey 2022. Join and contribute to the community knowledge!
🤯1👌1
Сегодня с утра меня пайчарм встретил вот такой плашечкой. Умный, чертяга. Чует приближающийся релиз!
#jetbrains
#jetbrains
👍15
Питонические атаки
Уже примерно через сутки произойдёт релиз Python 3.11! Как и год назад, весь процесс будет проходить в прямом эфире, будут разные гости с торжественными речами. Смотреть вот тут. Вы как, готовы уже обновлять все свои программки?
⏰ Напоминаю, через 30 минут начало стрима с релизом Python 3.11: https://youtube.com/watch?v=PGZPSWZSkJI
YouTube
Python 3.11 Release
Timestamps
00:00 - Introduction
24:30 - Brandt Bucher, Specializing Adaptive Interpreter
50:40 - Mark Shannon, Other Speedups
1:07:42 - Irit Katriel, Exception Improvements and Features
1:42:13 - Pablo Galindo, Better Tracebacks
1:58:46 - Pablo Galindo, tomllib…
00:00 - Introduction
24:30 - Brandt Bucher, Specializing Adaptive Interpreter
50:40 - Mark Shannon, Other Speedups
1:07:42 - Irit Katriel, Exception Improvements and Features
1:42:13 - Pablo Galindo, Better Tracebacks
1:58:46 - Pablo Galindo, tomllib…
🥰6