Питонические атаки
Відкрити в Telegram
Всяческие заметки про программирование на Python и другие весёлые истории.
Показати більше1 299
Підписники
Немає даних24 години
-37 днів
-1130 день
Архів дописів
1 299
Вот тут молодой человек издевается над структурным паттерн-матчингом в 3.10 при помощи ABC. Создаёт разные странные типы, а паттерн-матчинг с удовольствием их матчит. В продакшн такое точно затаскивать нельзя, потому что уж слишком неожиданно получается, но для понимания работы механизмов — весьма интересно.
Кстати, насколько я вижу, пока что большинство людей используют паттерн-матчинг как обычный
switch-case по набору констант, чтобы сэкономить символы на цепочке if-elif-else. У вас так же? Нашли ли вы способ применить распаковки (destructuring) в паттерн-матчинге?1 299
Repost 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.11 299
Тут для PyCon в Москве ребята из Positive Technologies сделали квиз с интересными вопросиками. С первой попытки у меня получилось набрать 7/10. Узнал кое-что новое. Кто-то смог 8/10. Людей, набравших больше, я пока не встречал. Попробуйте, сколько сможете?
@Positive_QuizBot
После конференции, то есть уже в понедельник, бота скорее всего отключат. Сразу предупрежу, что бот соберёт с вас номер телефона, чтобы мировое правительство могло за вами следить.
1 299
Сейчас происходит серьёзное развесистое обсуждение инициативы по запрету удаления пакетов из PyPI.
Это, как вы понимаете, после недавнего инцидента, когда разработчик удалил свой популярный пакет в попытках сбросить счётчик скачиваний, чтобы обойти требование по настройке 2FA. Это, конечно, была проблема не масштабов left-pad из NPM, когда полыхало на весь интернет, но агония длилась около 10 часов и тоже много кого затронула. Получилось неприятно.
Кстати, PyPI находится в меньшинстве — в числе индексов, которые позволяют удаление пакетов и файлов. Вероятно, для этого нет каких-то веских причин, а скорее это из-за того, что PyPI появился ещё во времена, когда люди не думали о том, что подобные проблемы с зависимостями в принципе возможны (2003 год).
Кажется, что все более продвинутые индексы пакетов либо уже пришли к этому решению, либо изначально не давали такой возможности. И PyPI тоже рано или поздно придёт.
1 299
Ого, консольный Git становится чуть более человечным. Сколько же раз я копипастил команду, которую он выдаёт в ошибке.
#git
1 299
GitHub в своём блоге выпустил пост про то, как Python и его либы используются для обработки данных с телескопа Джеймса Уэбба: https://github.com/readme/featured/webb-telescope-astropy
🔭👽🛰
1 299
Сегодня я узнал, что из
finally лучше никогда не возвращать значения. Это работает, но лучше не надо. Судя по результатам опроса, узнал новое сегодня не только лишь я.
А пример этот вот из этой статьи, тут ещё много разной дичи: https://habr.com/ru/company/oleg-bunin/blog/485960/
Кстати, кто-нибудь пользуется wemake-python-styleguide? Расскажите, как оно вам?1 299
Новость про обязательность MFA для критически важных проектов на PyPI вызвала некоторое смятение.
Автор проекта
atomicwrites (зависимость пайтеста, например) попытался удалить и восстановить проект на PyPI, чтобы избавиться от этого требования. Удалить-то получилось, а вот восстановить уже нельзя. Короче, старые версии оказались потеряны и были недоступны примерно 10 часов. Всё это время, видимо, где-то падали сборки. Пришлось призывать админов PyPI, и они всё починили.
От необходимости включать MFA это всё равно не избавило 😅
Странно, что PyPI позволяет удалять пакеты.
https://github.com/untitaker/python-atomicwrites/issues/611 299
PyPI продолжает раскатывать многофакторную аутентификацию, и теперь для некоторых проектов она становится обязательных требованием. Топ 1% проектов по количеству скачиваний за последние полгода считаются «критически важными», и для владельцев и мейнтейнеров таких проектов MFA включат насильно.
Для таких юзеров сейчас как раз происходит раздача физических USB ключей безопасности. Отправляете заявочку и вам пришлют две штуки бесплатно.
Как понимаете, это всё ради того, чтобы аккаунты с правами на публикацию популярных проектов было сложнее угонять. Именно такие случаи потом зачастую приводят к громким заголовкам в новостях.
https://pypi.org/security-key-giveaway/
1 299
Ещё в тему Flask. Зафиксировано невероятное: в большом популярном (75 млн установок в месяц) проекте нет открытых подвисших PR и issue. Ну не чудо ли?
#flask
1 299
Веб-фреймворк Quart, который создавался как асинхронный Flask, присоединился к проекту Pallets.
Теперь у Pallets есть и WSGI, и ASGI микрофреймворк, а в итоге они в какой-то момент хотят слить их вместе. Думают над созданием универсальных плагинов, которые будут подходить к обоим фреймворкам.
https://palletsprojects.com/blog/quart-pallets/
1 299
Среди питонячьих веб-фреймворков Django и Flask, понятное дело, лидируют, но идут они прям ноздря в ноздрю.
1 299
StackOverflow опубликовали результаты своего ежегодного опроса среди разработчиков.
Вот моя диванная аналитика:
* JS всё ещё самый популярный язык — его используют две трети всех разработчиков. TS продолжает набирать популярность.
* Если исключить HTML и SQL, то вторым языком по популярности все ещё идёт Python.
* Go, Kotlin и Rust потихонечку растут, а Java и PHP потихонечку сдуваются. Популярность C# пока находится в относительном равновесии.
* Люди всё ещё в восторге от Rust.
* PostgreSQL продолжает откусывать от MySQL по чуть-чуть популярности год за годом.
* FastAPI стал в два раза популярнее, чем в прошлом году (3% и 6%).
В целом, всё вполне ожидаемо. Тенденции предыдущих лет сохраняются.
https://survey.stackoverflow.co/2022/
1 299
Вот ещё статья в тему
mypyc. Товарищ Glyph настойчиво предлагает всем начать пользоваться этим инструментом, показывая как он ускоряет FizzBuzz в два с лишним раза.
https://glyph.twistedmatrix.com/2022/04/you-should-compile-your-python-and-heres-why.html
#mypy