В комментах к предыдущему посту скинули ссылку на крутой инструмент specialist, который умеет визуально показывать оптимизации, применённые к коду интерпретатором Python 3.11.
Напомню, что в 3.11 появится нечто под названием "Specializing Adaptive Interpreter". Это такая штука, которая будет выявлять в коде часто выполняющиеся операции (hot regions) и оптимизировать их, подменяя универсальные, медленные инструкции на более специфичные, быстрые. Например, если интерпретатор поймёт, что в определенной строчке кода часто происходит сложение целых чисел (а не конкатенация строк, например), то он подменит операцию на более быструю, которая специально заточена под целые числа. Если вдруг в какой-то момент в этом же самом месте кода окажутся строки, а не числа, то оптимизированную операцию придётся заменить обратно на обычную.
Вот,
Напомню, что в 3.11 появится нечто под названием "Specializing Adaptive Interpreter". Это такая штука, которая будет выявлять в коде часто выполняющиеся операции (hot regions) и оптимизировать их, подменяя универсальные, медленные инструкции на более специфичные, быстрые. Например, если интерпретатор поймёт, что в определенной строчке кода часто происходит сложение целых чисел (а не конкатенация строк, например), то он подменит операцию на более быструю, которая специально заточена под целые числа. Если вдруг в какой-то момент в этом же самом месте кода окажутся строки, а не числа, то оптимизированную операцию придётся заменить обратно на обычную.
Вот,
specialist
как раз умеет понимать все эти трюки и раскрашивать код в разные цвета, в зависимости от степени примененных оптимизаций. На гитхабе проекта есть туториал с объяснением.👍16
Узнал:
• что регулярные выражения можно удобно разбивать на кусочки, а затем собирать вместе через f-строки;
• что внутри регулярок можно использовать комментарии.
И это в сумме превращает запутанное месиво из бэкслешей и скобок во вполне понятный текст. Полезно, хоть даже я и не так часто пишу большие регулярки.
https://death.andgravity.com/f-re
• что регулярные выражения можно удобно разбивать на кусочки, а затем собирать вместе через f-строки;
• что внутри регулярок можно использовать комментарии.
И это в сумме превращает запутанное месиво из бэкслешей и скобок во вполне понятный текст. Полезно, хоть даже я и не так часто пишу большие регулярки.
https://death.andgravity.com/f-re
death and gravity
The unreasonable effectiveness of f-strings and re.VERBOSE
... in which we look at one or two ways to make life easier when working with Python regular expressions.
👍13🔥2
В JetBrains решили переработать UI своих IDE, сделать его более современным и простым — больше иконок, меньше панелек.
Пока что это доступно только в превью (по запросу), но в какой-то момент новый UI станет дефолтным. Переход будет итеративным и постепенным. Обещают, что ещё пару лет будут держать возможность вернуться к старому UI, чтобы все успели переучиться.
Что скажете? Уже пробовали? Пользоваться можно?
Пост 1 | Пост 2
#jetbrains
Пока что это доступно только в превью (по запросу), но в какой-то момент новый UI станет дефолтным. Переход будет итеративным и постепенным. Обещают, что ещё пару лет будут держать возможность вернуться к старому UI, чтобы все успели переучиться.
Что скажете? Уже пробовали? Пользоваться можно?
Пост 1 | Пост 2
#jetbrains
❤15🤮4🤔3
Оказывается, крайний релиз форматтера
Получается такое через компилятор
В итоге после компиляции и некоторых оптимизаций получилось ускорить работу форматтера в два раза. Время запуска тоже слегка сократилось. Из-за особенностей компилятора тайп-аннотации тоже стали строже.
Автор этой инициативы написал серию постов (раз, два, три) про возникшие по пути сложности. Любопытно.
#black #formatter #mypy #mypyc
black
22.1.0 (он же первый не-бета релиз) для всех основных платформ распространяется в виде колёс со скомпилированным нативным кодом. То есть там уже не обычный интерпретируемый питон, а именно нативный код, использующий Python API. На фоне долгожданной стабилизации форматтера эта новость осталась практически незамеченной.Получается такое через компилятор
mypyc
, идущий в комплекте с тайп-чекером mypy
. Он умеет транспилировать обычный код на питоне с тайп-аннотациями в исходники на C, а их уже можно скомпилировать в библиотеки для большинства платформ.В итоге после компиляции и некоторых оптимизаций получилось ускорить работу форматтера в два раза. Время запуска тоже слегка сократилось. Из-за особенностей компилятора тайп-аннотации тоже стали строже.
Автор этой инициативы написал серию постов (раз, два, три) про возникшие по пути сложности. Любопытно.
#black #formatter #mypy #mypyc
ichard26.github.io
Compiling Black with mypyc, Pt. 1 - Initial Steps
I spent a COVID summer (and then some) integrating mypyc into Black to double performance. How was it?
👍9🔥1🤯1
Вот ещё статья в тему
https://glyph.twistedmatrix.com/2022/04/you-should-compile-your-python-and-heres-why.html
#mypy #mypyc
mypyc
. Товарищ Glyph настойчиво предлагает всем начать пользоваться этим инструментом, показывая как он ускоряет FizzBuzz в два с лишним раза.https://glyph.twistedmatrix.com/2022/04/you-should-compile-your-python-and-heres-why.html
#mypy #mypyc
Twistedmatrix
You Should Compile Your Python And Here’s Why
write Python that’s faster than C by optimizing your code, adding standard type annotations, and using Mypyc.
👍3🥰1
StackOverflow опубликовали результаты своего ежегодного опроса среди разработчиков.
Вот моя диванная аналитика:
* JS всё ещё самый популярный язык — его используют две трети всех разработчиков. TS продолжает набирать популярность.
* Если не брать в расчёт HTML и SQL (которые не совсем языки программирования), то следующим языком по популярности все ещё идёт Python.
* Go, Kotlin и Rust потихонечку растут, а Java и PHP потихонечку сдуваются. Популярность C# пока находится в относительном равновесии.
* Люди всё ещё в восторге от Rust.
* PostgreSQL продолжает откусывать от MySQL по чуть-чуть популярности год за годом.
* FastAPI стал в два раза популярнее, чем в прошлом году (3% и 6%).
В целом, всё вполне ожидаемо. Тенденции предыдущих лет сохраняются.
https://survey.stackoverflow.co/2022/
Вот моя диванная аналитика:
* JS всё ещё самый популярный язык — его используют две трети всех разработчиков. TS продолжает набирать популярность.
* Если не брать в расчёт HTML и SQL (которые не совсем языки программирования), то следующим языком по популярности все ещё идёт Python.
* Go, Kotlin и Rust потихонечку растут, а Java и PHP потихонечку сдуваются. Популярность C# пока находится в относительном равновесии.
* Люди всё ещё в восторге от Rust.
* PostgreSQL продолжает откусывать от MySQL по чуть-чуть популярности год за годом.
* FastAPI стал в два раза популярнее, чем в прошлом году (3% и 6%).
В целом, всё вполне ожидаемо. Тенденции предыдущих лет сохраняются.
https://survey.stackoverflow.co/2022/
Stack Overflow
Stack Overflow Developer Survey 2022
In May 2022 over 70,000 developers told us how they learn and level up, which tools they’re using, and what they want.
🔥4❤3👍2❤🔥1
Веб-фреймворк Quart, который создавался как асинхронный Flask, присоединился к проекту Pallets.
Теперь у Pallets есть и WSGI, и ASGI микрофреймворк, а в итоге они в какой-то момент хотят слить их вместе. Думают над созданием универсальных плагинов, которые будут подходить к обоим фреймворкам.
https://palletsprojects.com/blog/quart-pallets/
#flask
Теперь у Pallets есть и WSGI, и ASGI микрофреймворк, а в итоге они в какой-то момент хотят слить их вместе. Думают над созданием универсальных плагинов, которые будут подходить к обоим фреймворкам.
https://palletsprojects.com/blog/quart-pallets/
#flask
👍12🔥2
Ещё в тему Flask. Зафиксировано невероятное: в большом популярном (75 млн установок в месяц) проекте нет открытых подвисших PR и issue. Ну не чудо ли?
#flask
#flask
🔥16❤🔥3
PyPI продолжает раскатывать многофакторную аутентификацию, и теперь для некоторых проектов она становится обязательных требованием. Топ 1% проектов по количеству скачиваний за последние полгода считаются «критически важными», и для владельцев и мейнтейнеров таких проектов MFA включат насильно.
Для таких юзеров сейчас как раз происходит раздача физических USB ключей безопасности. Отправляете заявочку и вам пришлют две штуки бесплатно.
Как понимаете, это всё ради того, чтобы аккаунты с правами на публикацию популярных проектов было сложнее угонять. Именно такие случаи потом зачастую приводят к громким заголовкам в новостях.
https://pypi.org/security-key-giveaway/
Для таких юзеров сейчас как раз происходит раздача физических USB ключей безопасности. Отправляете заявочку и вам пришлют две штуки бесплатно.
Как понимаете, это всё ради того, чтобы аккаунты с правами на публикацию популярных проектов было сложнее угонять. Именно такие случаи потом зачастую приводят к громким заголовкам в новостях.
https://pypi.org/security-key-giveaway/
PyPI
PyPI 2FA Security Key Giveaway
PyPI is implementing a 2FA requirement for critical projects, and distributing security keys to critical maintainers.
👍10
Новость про обязательность MFA для критически важных проектов на PyPI вызвала некоторое смятение.
Автор проекта
От необходимости включать MFA это всё равно не избавило 😅
Странно, что PyPI позволяет удалять пакеты. Странно, что на исключительно положительную по моему мнению для всего сообщества новость люди так по-разному реагируют 🤔
https://github.com/untitaker/python-atomicwrites/issues/61
Автор проекта
atomicwrites
(зависимость пайтеста, например) попытался удалить и восстановить проект на PyPI, чтобы избавиться от этого требования. Удалить-то получилось, а вот восстановить уже нельзя. Короче, старые версии оказались потеряны и были недоступны примерно 10 часов. Всё это время, видимо, где-то падали сборки. Пришлось призывать админов PyPI, и они всё починили.От необходимости включать MFA это всё равно не избавило 😅
Странно, что PyPI позволяет удалять пакеты. Странно, что на исключительно положительную по моему мнению для всего сообщества новость люди так по-разному реагируют 🤔
https://github.com/untitaker/python-atomicwrites/issues/61
GitHub
atomicwrites' old versions have been purged from pypi · Issue #61 · untitaker/python-atomicwrites
pypi just told me i had to enable 2fa to keep uploading this package. because I thought that was an annoying and entitled move in order to guarantee SOC2 compliance for a handful of companies (at t...
👍5
😁6🤩3👍2🤡1
Сегодня я узнал, что из
А пример этот вот из этой статьи, тут ещё много разной дичи: https://habr.com/ru/company/oleg-bunin/blog/485960/
Кстати, кто-нибудь пользуется
finally
лучше никогда не возвращать значения. Это работает, но лучше не надо. Судя по результатам опроса, узнал новое сегодня не только лишь я.А пример этот вот из этой статьи, тут ещё много разной дичи: https://habr.com/ru/company/oleg-bunin/blog/485960/
Кстати, кто-нибудь пользуется
wemake-python-styleguide
? Расскажите, как оно вам?Хабр
Чистое зло Python
Темные силы не дремлют. Они пробираются в дивное королевство Python и используют черную магию, чтобы осквернить главную реликвию — чистый код. Однако опасны не т...
😁5🤮1
GitHub в своём блоге выпустил пост про то, как Python и его либы (в частности,
🔭👽🛰
astropy
) используются для обработки данных с телескопа Джеймса Уэбба: https://github.com/readme/featured/webb-telescope-astropy🔭👽🛰
GitHub
Astronomy community shapes their own destiny with Astropy
Astropy is the open source software that astronomers will use to glean insights from the James Webb Space Telescope.
🔥11👍1👎1👏1
Ого, консольный Git становится чуть более человечным. Сколько же раз я копипастил команду, которую он выдаёт в ошибке.
#git
#git
❤23👍6🎉3
Сейчас происходит серьёзное развесистое обсуждение инициативы по запрету удаления пакетов из PyPI.
Это, как вы понимаете, после недавнего инцидента, когда разработчик удалил свой популярный пакет в попытках сбросить счётчик скачиваний, чтобы обойти требование по настройке 2FA. Это, конечно, была проблема не масштабов left-pad из NPM, когда полыхало на весь интернет, но агония длилась около 10 часов и тоже много кого затронула. Получилось неприятно.
Кстати, PyPI находится в меньшинстве — в числе индексов, которые позволяют удаление пакетов и файлов. Вероятно, для этого нет каких-то веских причин, а скорее это из-за того, что PyPI появился ещё во времена, когда люди не думали о том, что подобные проблемы с зависимостями в принципе возможны (2003 год).
Кажется, что все более продвинутые индексы пакетов либо уже пришли к этому решению, либо изначально не давали такой возможности. И PyPI тоже рано или поздно придёт.
Это, как вы понимаете, после недавнего инцидента, когда разработчик удалил свой популярный пакет в попытках сбросить счётчик скачиваний, чтобы обойти требование по настройке 2FA. Это, конечно, была проблема не масштабов left-pad из NPM, когда полыхало на весь интернет, но агония длилась около 10 часов и тоже много кого затронула. Получилось неприятно.
Кстати, PyPI находится в меньшинстве — в числе индексов, которые позволяют удаление пакетов и файлов. Вероятно, для этого нет каких-то веских причин, а скорее это из-за того, что PyPI появился ещё во времена, когда люди не думали о том, что подобные проблемы с зависимостями в принципе возможны (2003 год).
Кажется, что все более продвинутые индексы пакетов либо уже пришли к этому решению, либо изначально не давали такой возможности. И PyPI тоже рано или поздно придёт.
❤13👍1
Тут для PyCon в Москве ребята из Positive Technologies сделали квиз с интересными вопросиками. С первой попытки у меня получилось набрать 7/10. Узнал кое-что новое. Кто-то смог 8/10. Людей, набравших больше, я пока не встречал. Попробуйте, сколько сможете?
@Positive_QuizBot
После конференции, то есть уже в понедельник, бота скорее всего отключат. Сразу предупрежу, что бот соберёт с вас номер телефона, чтобы мировое правительство могло за вами следить.
@Positive_QuizBot
После конференции, то есть уже в понедельник, бота скорее всего отключат. Сразу предупрежу, что бот соберёт с вас номер телефона, чтобы мировое правительство могло за вами следить.
🤮18🥰1