Forwarded from Коробка с питоном
Тут часть ядра pydantic переписали на Rust и он стал в 17 раз быстрее (код бенчмарка тут) чем обычный Pydantic.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
Пока что WIP, выглядит многообещающее, но нет самой интеграции с pydantic, поэтому схемы могут делаться только через словари. Целью стоит увеличение скорости работы в ДЕСЯТЬ раз.
GitHub
GitHub - pydantic/pydantic-core: Core validation logic for pydantic written in rust
Core validation logic for pydantic written in rust - pydantic/pydantic-core
🔥12🤔2👎1🥰1
GitPod — напомню: это сервис, предоставляющий эфемерные облачные окружения для разработки — объявил о партнёрстве с JetBrains. Раньше в их облачные окружения можно было подключаться через VSCode, vim и emacs, а теперь добавляется возможность ходить туда ещё и из пайчарма, голэнда или чем вы там пользуетесь.
Только представьте какой это кайф — подключаешь свою IDE к облачной среде разработки, а там уже интерпретатор правильный выбран, зависимости установлены (включая все дурацкие нативные либы, которые компилируются только в определенных условиях, и то полтора часа) и проиндексированы. Всё сделано заранее, можно начинать работать СРАЗУ ЖЕ! Подключился, поработал, запушил работу, выкинул грязное окружение. Для следующей таски возьмёшь новое, чистое.
Раньше для меня GitPod был «альтернативой GitHub Codespaces», но теперь они явно превзошли оригинал.
https://www.gitpod.io/blog/gitpod-jetbrains
Дисклеймер: единственный минус для россиян, что сервис хочет денег в иностранной валюте и работает на иностранных облаках и в европейской юрисдикции, поэтому снова применяются все эти уже ныне ставшие обыденностью сложности и опасения. Со всеми иностранными ништяками теперь всё не просто.
Только представьте какой это кайф — подключаешь свою IDE к облачной среде разработки, а там уже интерпретатор правильный выбран, зависимости установлены (включая все дурацкие нативные либы, которые компилируются только в определенных условиях, и то полтора часа) и проиндексированы. Всё сделано заранее, можно начинать работать СРАЗУ ЖЕ! Подключился, поработал, запушил работу, выкинул грязное окружение. Для следующей таски возьмёшь новое, чистое.
Раньше для меня GitPod был «альтернативой GitHub Codespaces», но теперь они явно превзошли оригинал.
https://www.gitpod.io/blog/gitpod-jetbrains
Дисклеймер: единственный минус для россиян, что сервис хочет денег в иностранной валюте и работает на иностранных облаках и в европейской юрисдикции, поэтому снова применяются все эти уже ныне ставшие обыденностью сложности и опасения. Со всеми иностранными ништяками теперь всё не просто.
www.gitpod.io
Gitpod x JetBrains join forces to solve 'works on my machine' problem - Blog
Gitpod and JetBrains announce partnership and deep product integration to bring remote development to developers around the world
🔥3👎1
Forwarded from opennet.ru
Проект PyScript развивает платформу для выполнения Python-скриптов в web-браузере https://opennet.ru/57125/
www.opennet.ru
Проект PyScript развивает платформу для выполнения Python-скриптов в web-браузере
Представлен проект PyScript, позволяющий интегрировать в web-страницы обработчики, написанные на языке Python, и создавать на Python интерактивные web-приложения. Приложениям предоставляется доступ к DOM и интерфейс для двунаправленного взаимодействия с объектами…
👍5
Forwarded from DevBrain
Вышла первая бета python 3.11: https://www.python.org/downloads/release/python-3110b1/
Версия 3.11 несёт в себе большое количество новых фич. Скоро выпущу подробный пост с разбором каждой фичи. Помимо этого в рамках инициативы Faster Python заявляется, что версия 3.11 в среднем на 22% быстрее чем 3.10 😲😲
Версия 3.11 несёт в себе большое количество новых фич. Скоро выпущу подробный пост с разбором каждой фичи. Помимо этого в рамках инициативы Faster Python заявляется, что версия 3.11 в среднем на 22% быстрее чем 3.10 😲😲
Python.org
Python Release Python 3.11.0b1
The official home of the Python Programming Language
🤯3👍2
У Stack Overflow запустился очередной ежегодный опрос среди разработчиков. Уже 12 год подряд.
Пожалуй, это самое интересное исследование про программистов, каждый год получаются какие-то любопытные результаты и открытия. Поэтому, чтобы картинка сложилась максимально полная, обязательно его пройдите! У меня это заняло минут десять.
Take the survey
Пожалуй, это самое интересное исследование про программистов, каждый год получаются какие-то любопытные результаты и открытия. Поэтому, чтобы картинка сложилась максимально полная, обязательно его пройдите! У меня это заняло минут десять.
Take the survey
Qualtrics
2022 Stack Overflow Developer Survey
Stack Overflow is the largest, most trusted online community for developers to learn, share their programming knowledge, and build their careers.
👍6
Небольшая подборка flake8 плагинов для тех, кто уже использует 3.10 и хочет писать тайп-хинты красиво:
1. flake8-new-union-types — заставляет переписывать
2. flake8-pep585 — заставляет использовать встроенные классы, например,
Знаете ещё полезное? Делитесь в комментариях!
#flake8
1. flake8-new-union-types — заставляет переписывать
Union[X, Y]
на X | Y
;2. flake8-pep585 — заставляет использовать встроенные классы, например,
list[dict[str, int]]
, без импортов из typing
.Знаете ещё полезное? Делитесь в комментариях!
#flake8
GitHub
GitHub - xome4ok/flake8-new-union-types: Flake8 plugin to enforce the new Union and Optional annotation syntax defined in PEP 604
Flake8 plugin to enforce the new Union and Optional annotation syntax defined in PEP 604 - GitHub - xome4ok/flake8-new-union-types: Flake8 plugin to enforce the new Union and Optional annotation sy...
❤12👏1
Из комментов. А помните был такой проект
Это обёртка над
#flake8
flakehell
? В какой-то момент он окончательно загнулся, но затем воскрес под новым именем flakeheaven. Вознёсся на небушко, так сказать.Это обёртка над
flake8
, которая добавляет в него больше конфигурабельности и разных фич. Я им пользовался, потому что он поддерживает baseline (может запомнить существующие ошибки и перестать их показывать каждый раз, но зато не даст добавлять новые ошибки), что очень полезно для старых больших проектов. А ещё он под капотом запускает ещё и pylint
.#flake8
GitHub
GitHub - flakeheaven/flakeheaven: flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.
flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration. - flakeheaven/flakeheaven
👍7
Внезапно, паттерн-матчинг в 3.10 работает сильно быстрее, чем аналогичные ему if-выражения. В некоторых случаях. Видимо, соль в том, что паттерн-матчинг компилируется в специальные опкоды, которые отрабатывают быстрее ифов общего назначения.
https://twitter.com/anthonypjshaw/status/1526034155448184832?s=21&t=tCoZUko6djSmv4NN3RKDPw
UPD: Оказалось, что дело в медленной проверке
https://twitter.com/anthonypjshaw/status/1526034155448184832?s=21&t=tCoZUko6djSmv4NN3RKDPw
UPD: Оказалось, что дело в медленной проверке
isinstance(seq, Sequence)
. Паттерн-матчинг тоже делает аналогичную проверку, но видимо каким-то другим образом. Так что подождите, не выпиливайте пока if-ы из своего кода.👍5👎4🤔3
Forwarded from Chernov sharit
Прекрасно, когда TL;DR есть от автора статьи (:
———
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
https://maxnagy.com/posts/pigeons/
#python #fun
———
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
https://maxnagy.com/posts/pigeons/
#python #fun
Max Nagy
The overengineered Solution to my Pigeon Problem
TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlled over the internet by a python script running openCV reading the camera image of my old iPhone.
Introduction The pigeons in my backyard find particular pleasures in voiding…
Introduction The pigeons in my backyard find particular pleasures in voiding…
🔥7😁1
Оказывается, механизм разрешения зависимостей из Poetry можно использовать для решения судоку. И судоку, и разрешение зависимостей — это задачи удовлетворения ограничений (constraint satisfaction problem), поэтому достаточно лишь записать правила судоку в виде пакетов с зависимостями и заставить Poetry это установить. А если добавить флажки для подробного вывода, то Poetry еще по пути будет объяснять, почему он решает судоку именно так. Офигенно!
Статья | Тред на реддите
Статья | Тред на реддите
🤯21👍2🔥2
Недавно начали публиковать бета-релизы Python 3.11, который выйдет примерно через 4 месяца. Если начался этап бет, то значит, что новые фичи в релиз добавлять больше не будут, а сконцентрируются на стабилизации того, что уже добавили. Можно в принципе уже идти читать What’s New.
Есть и новые фичи, и изменения в стандартной библиотеке, но, пожалуй, релиз 3.11 — это в основном про скорость. С этой версией языка выходят первые наработки проекта Faster CPython. Обещают ускорение 10-60% по сравнению с предыдущими версиями, при этом переписывать для этого ничего не придётся.
Почитайте секцию про оптимизации, это интересно.
Есть и новые фичи, и изменения в стандартной библиотеке, но, пожалуй, релиз 3.11 — это в основном про скорость. С этой версией языка выходят первые наработки проекта Faster CPython. Обещают ускорение 10-60% по сравнению с предыдущими версиями, при этом переписывать для этого ничего не придётся.
Почитайте секцию про оптимизации, это интересно.
❤14🔥5
В комментах к предыдущему посту скинули ссылку на крутой инструмент 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