Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Forwarded from Хитрый Питон
Вышла джанга 4.1 https://www.djangoproject.com/weblog/2022/aug/03/django-41-released/ из интересного:

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) в паттерн-матчинге?
🔥2😁2
Питонические атаки
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
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.
👍11🥰1
Говорят, numpy протестился под 3.11 и даже выложил колёса, так что теперь можно (нужно?) тестировать всё, что зависит от numpy.
🔥51🥰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 будут выходить.
7👍1👎1
Там проект Faster CPython (это где Гвидо ускоряет питон) опубликовал цели, над которыми собираются работать в рамках релиза 3.12.

* Вероятно, наконец станет можно запускать саб-интерпретаторы прямо из кода на питоне. Это позволит занять интерпретаторами все ядра в нескольких потоках (не процессах!), потому что у каждого будет свой собственный GIL.
* Зачатки JIT будут развиваться — добавят больше специализированных оп-кодов, интерпретатор научится заменять оп-коды на более эффективные целыми пачками, а не по одному.
* Сделают структуры в пямяти более компактными. Хотят уменьшить служебную информацию, которая приделывается к каждому объекту, с 5 до 2 машинных слов. Ожидается, что от этого не только уменьшится количество потребляемой памяти для всех программ на питоне, но и кэши процессора будут использоваться эффективнее.

https://github.com/faster-cpython/ideas/wiki/Python-3.12-Goals
👍2531
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 октября.

Зарегистрироваться →
🔥9👎6💩2👍1
Уже примерно через сутки произойдёт релиз Python 3.11! Как и год назад, весь процесс будет проходить в прямом эфире, будут разные гости с торжественными речами. Смотреть вот тут.

Вы как, готовы уже обновлять все свои программки?
🔥22🎉5💩2
Запустился уже шестой по счету ежегодный опрос Python Developers Survey от PSF и JetBrains. Как обычно, вопросы про версии языка, используемые фреймворки, библиотеки, инструменты и так далее. Надо проходить!

https://surveys.jetbrains.com/s3/c1-python-developers-survey-2022
🤯1👌1
Сегодня с утра меня пайчарм встретил вот такой плашечкой. Умный, чертяга. Чует приближающийся релиз!

#jetbrains
👍15
А вы заценили красивую картинку, которую Pablo подготовил для этого релиза? Уже второй релиз с красивой картинкой. Прям хоть на футболку печатай.

Есть уже первые обновившиеся до 3.11? Делитесь впечатлениями!
👍23