Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Вот ещё статья в тему mypyc. Товарищ Glyph настойчиво предлагает всем начать пользоваться этим инструментом, показывая как он ускоряет FizzBuzz в два с лишним раза.

https://glyph.twistedmatrix.com/2022/04/you-should-compile-your-python-and-heres-why.html

#mypy #mypyc
👍3🥰1
согласны?
😁20🤡8👎7🤯1💩1
StackOverflow опубликовали результаты своего ежегодного опроса среди разработчиков.

Вот моя диванная аналитика:

* JS всё ещё самый популярный язык — его используют две трети всех разработчиков. TS продолжает набирать популярность.
* Если не брать в расчёт HTML и SQL (которые не совсем языки программирования), то следующим языком по популярности все ещё идёт Python.
* Go, Kotlin и Rust потихонечку растут, а Java и PHP потихонечку сдуваются. Популярность C# пока находится в относительном равновесии.
* Люди всё ещё в восторге от Rust.
* PostgreSQL продолжает откусывать от MySQL по чуть-чуть популярности год за годом.
* FastAPI стал в два раза популярнее, чем в прошлом году (3% и 6%).

В целом, всё вполне ожидаемо. Тенденции предыдущих лет сохраняются.

https://survey.stackoverflow.co/2022/
🔥43👍2❤‍🔥1
Среди питонячьих веб-фреймворков Django и Flask, понятное дело, лидируют, но идут они прям ноздря в ноздрю.
13🥰3
Веб-фреймворк Quart, который создавался как асинхронный Flask, присоединился к проекту Pallets.

Теперь у Pallets есть и WSGI, и ASGI микрофреймворк, а в итоге они в какой-то момент хотят слить их вместе. Думают над созданием универсальных плагинов, которые будут подходить к обоим фреймворкам.

https://palletsprojects.com/blog/quart-pallets/

#flask
👍12🔥2
Ещё в тему Flask. Зафиксировано невероятное: в большом популярном (75 млн установок в месяц) проекте нет открытых подвисших PR и issue. Ну не чудо ли?

#flask
🔥16❤‍🔥3
PyPI продолжает раскатывать многофакторную аутентификацию, и теперь для некоторых проектов она становится обязательных требованием. Топ 1% проектов по количеству скачиваний за последние полгода считаются «критически важными», и для владельцев и мейнтейнеров таких проектов MFA включат насильно.

Для таких юзеров сейчас как раз происходит раздача физических USB ключей безопасности. Отправляете заявочку и вам пришлют две штуки бесплатно.

Как понимаете, это всё ради того, чтобы аккаунты с правами на публикацию популярных проектов было сложнее угонять. Именно такие случаи потом зачастую приводят к громким заголовкам в новостях.

https://pypi.org/security-key-giveaway/
👍10
Новость про обязательность MFA для критически важных проектов на PyPI вызвала некоторое смятение.

Автор проекта atomicwrites (зависимость пайтеста, например) попытался удалить и восстановить проект на PyPI, чтобы избавиться от этого требования. Удалить-то получилось, а вот восстановить уже нельзя. Короче, старые версии оказались потеряны и были недоступны примерно 10 часов. Всё это время, видимо, где-то падали сборки. Пришлось призывать админов PyPI, и они всё починили.

От необходимости включать MFA это всё равно не избавило 😅

Странно, что PyPI позволяет удалять пакеты. Странно, что на исключительно положительную по моему мнению для всего сообщества новость люди так по-разному реагируют 🤔

https://github.com/untitaker/python-atomicwrites/issues/61
👍5
Понедельничная разминка
🤮11🤔3💩2
Что вернется?
Anonymous Quiz
42%
from_try
47%
from_finally
12%
ошибка
😁6🤩3👍2🤡1
Сегодня я узнал, что из finally лучше никогда не возвращать значения. Это работает, но лучше не надо. Судя по результатам опроса, узнал новое сегодня не только лишь я.

А пример этот вот из этой статьи, тут ещё много разной дичи: https://habr.com/ru/company/oleg-bunin/blog/485960/

Кстати, кто-нибудь пользуется wemake-python-styleguide? Расскажите, как оно вам?
😁5🤮1
GitHub в своём блоге выпустил пост про то, как Python и его либы (в частности, astropy) используются для обработки данных с телескопа Джеймса Уэбба: https://github.com/readme/featured/webb-telescope-astropy

🔭👽🛰
🔥11👍1👎1👏1
Ого, консольный Git становится чуть более человечным. Сколько же раз я копипастил команду, которую он выдаёт в ошибке.

#git
23👍6🎉3
Сейчас происходит серьёзное развесистое обсуждение инициативы по запрету удаления пакетов из PyPI.

Это, как вы понимаете, после недавнего инцидента, когда разработчик удалил свой популярный пакет в попытках сбросить счётчик скачиваний, чтобы обойти требование по настройке 2FA. Это, конечно, была проблема не масштабов left-pad из NPM, когда полыхало на весь интернет, но агония длилась около 10 часов и тоже много кого затронула. Получилось неприятно.

Кстати, PyPI находится в меньшинстве — в числе индексов, которые позволяют удаление пакетов и файлов. Вероятно, для этого нет каких-то веских причин, а скорее это из-за того, что PyPI появился ещё во времена, когда люди не думали о том, что подобные проблемы с зависимостями в принципе возможны (2003 год).

Кажется, что все более продвинутые индексы пакетов либо уже пришли к этому решению, либо изначально не давали такой возможности. И PyPI тоже рано или поздно придёт.
13👍1
Тут для PyCon в Москве ребята из Positive Technologies сделали квиз с интересными вопросиками. С первой попытки у меня получилось набрать 7/10. Узнал кое-что новое. Кто-то смог 8/10. Людей, набравших больше, я пока не встречал. Попробуйте, сколько сможете?

@Positive_QuizBot

После конференции, то есть уже в понедельник, бота скорее всего отключат. Сразу предупрежу, что бот соберёт с вас номер телефона, чтобы мировое правительство могло за вами следить.
🤮18🥰1
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