Привет!
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast и обсудим:
🟡 релиз ruff 0.3.0
🟡 style czar или попытка привести языки к одному стилю
🟡 Gemini Pro объявила кеширование «риском безопасности»
🟡 Cloudflare запустили поддержку python в cloud-workers
🟡 как за год изменилось состояние Web Assembly в Python
➡️ Когда: 4 апреля в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Сегодня в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast и обсудим:
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости мира Python за март 2024
Спонсор подкаста: Курсы Python для новичков и продвинутые курсы — https://learn.python.ru
Python Day на Positive Hack Days: https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
Новости выпуска:
релиз ruff 0.3.0 — https://astral.sh/blog/ruff…
Python Day на Positive Hack Days: https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
Новости выпуска:
релиз ruff 0.3.0 — https://astral.sh/blog/ruff…
🔥12👍8
Frost Ming, автор менеджера пакетов
- для чего нужен lock-файл, как он устроен у pdm и почему именно так https://frostming.com/en/2024/pdm-lockfile/
- как pdm разрешает зависимости и какие есть стратегии формирования lock-файла https://frostming.com/en/2024/pdm-lock-strategy/
В статье довольно много pdm-специфичных вещей, но думаю почитать будет интересно и тем, кто использует другие менеджеры пакетов, чтобы лучше понять как все устроено "под капотом".
P.S. Автор честно предупреждает, что обе статьи — это автоматический перевод с китайского, но тем не менее читается легко и понятно.
pdm
выложил несколько постов про его внутреннее устройство:- для чего нужен lock-файл, как он устроен у pdm и почему именно так https://frostming.com/en/2024/pdm-lockfile/
- как pdm разрешает зависимости и какие есть стратегии формирования lock-файла https://frostming.com/en/2024/pdm-lock-strategy/
В статье довольно много pdm-специфичных вещей, но думаю почитать будет интересно и тем, кто использует другие менеджеры пакетов, чтобы лучше понять как все устроено "под капотом".
P.S. Автор честно предупреждает, что обе статьи — это автоматический перевод с китайского, но тем не менее читается легко и понятно.
Frostming
PDM Internals(1)
Lock file
👍5🔥4
Forwarded from Никита Соболев
всем привет! я очень долго обещал сделать бесплатный курс на ютюбе для всех желающих. и вот я, наконец, начал его делать!
встречайте: https://www.youtube.com/@sobolevn
уникальность формата в том, что я рассматриваю одну узкую тему с трех уровней сложности: junior, middle, senior. так что, контент должен быть интересным для всех уровней Python разработчиков!
обратите внимание, что курс не для тех, кто идет учить питон с нуля. он для тех, кто уже хоть немного знает, как погромировать на питоне.
важные ссылки:
- все материалы курса: https://github.com/sobolevn/the-best-python-course
- мой гитхаб: https://github.com/sobolevn
- поддержать мою работу: https://boosty.to/sobolevn
- вступить в наше новое глобальное сообщество: https://discord.python.ru
пишите в комментах к видео, если узнали что-то новое!
мета информация: https://www.youtube.com/watch?v=SVBPkrs9UFg
первый выпуск: https://www.youtube.com/watch?v=WBKf2Cw_9Pc
буду рад обратной связи!
в ближайших планах:
- починить звук и свет
- избавиться от слова "интересный" в описании примерно всего
- сделать много новых видео по разным темам
встречайте: https://www.youtube.com/@sobolevn
уникальность формата в том, что я рассматриваю одну узкую тему с трех уровней сложности: junior, middle, senior. так что, контент должен быть интересным для всех уровней Python разработчиков!
обратите внимание, что курс не для тех, кто идет учить питон с нуля. он для тех, кто уже хоть немного знает, как погромировать на питоне.
важные ссылки:
- все материалы курса: https://github.com/sobolevn/the-best-python-course
- мой гитхаб: https://github.com/sobolevn
- поддержать мою работу: https://boosty.to/sobolevn
- вступить в наше новое глобальное сообщество: https://discord.python.ru
пишите в комментах к видео, если узнали что-то новое!
мета информация: https://www.youtube.com/watch?v=SVBPkrs9UFg
первый выпуск: https://www.youtube.com/watch?v=WBKf2Cw_9Pc
буду рад обратной связи!
в ближайших планах:
- починить звук и свет
- избавиться от слова "интересный" в описании примерно всего
- сделать много новых видео по разным темам
👍46🔥33
Я всегда был сторонником обучения на практических задачах и сам не люблю при изучении новых языков/фреймворков/библиотек решать синтетические задачки. Поэтому мне понравился подход ребят из https://codecrafters.io/ - "напишите Redis, Git или Docker своими руками". Я некоторое время мариновал этот сайт в закладках, но тут во время отпуска решил попробовать.
Как это работает:
- Они разбивают большой проект на небольшие задачки по принципу "давай запустим сервис на порту", "теперь давай напишем простой ping/pong" и так далее
- Каждую небольшую задачку ты коммитишь, и они прогоняют по ней автоматические тесты - если тесты зеленые, то ты молодец 🙂
- Там есть очень базовые объяснения как что работает - типа туториалов "как устроен tcp" или "как работает пакет net в go", но их явно недостаточно, чтобы выполнить задание
- Самое интересное — это возможность посмотреть чужой код, прошедший тесты на каждом шаге - они просто показывают тебе покрашенные дифы и по ним можно разобраться, как именно человек переписал код чтобы решить эту задачу
У меня не было много времени, чтобы с этой штукой поиграться, но я написал базовый redis на python (который я знаю хорошо) и go (который я знаю так себе) и вот какие выводы сделал:
- Мне подход показался очень интересным, я точно буду дальше пользоваться. Пока я не платил им денег, но кажется даже без денег на тех бесплатных проектах, что у них есть, можно себя занять на некоторое время
- Это хорошая игрушка для мидлов и выше. Возможно упорный джуниор сможет разобраться, но в этом случае должен очень классно быть прокачан скилл "у меня ничего не работает, но я буду разбираться до победного"
- Мне очень понравилась фича просмотра чужих диффов - особенно для
- Важно не копировать код у других. Я для себя нашел такой вариант - там, где я разбираюсь (python) - пишу сам и смотрю чужие интересные находки. Там, где я разбираюсь не очень (go) - компилирую свой вариант из разных вариантов переписывая под свое чувство прекрасного
В общем выглядит как годный инструмент для тех, кто не хочет застаиваться и особенно прикольно для того, чтобы поразбираться с чем-то новым.
Как это работает:
- Они разбивают большой проект на небольшие задачки по принципу "давай запустим сервис на порту", "теперь давай напишем простой ping/pong" и так далее
- Каждую небольшую задачку ты коммитишь, и они прогоняют по ней автоматические тесты - если тесты зеленые, то ты молодец 🙂
- Там есть очень базовые объяснения как что работает - типа туториалов "как устроен tcp" или "как работает пакет net в go", но их явно недостаточно, чтобы выполнить задание
- Самое интересное — это возможность посмотреть чужой код, прошедший тесты на каждом шаге - они просто показывают тебе покрашенные дифы и по ним можно разобраться, как именно человек переписал код чтобы решить эту задачу
У меня не было много времени, чтобы с этой штукой поиграться, но я написал базовый redis на python (который я знаю хорошо) и go (который я знаю так себе) и вот какие выводы сделал:
- Мне подход показался очень интересным, я точно буду дальше пользоваться. Пока я не платил им денег, но кажется даже без денег на тех бесплатных проектах, что у них есть, можно себя занять на некоторое время
- Это хорошая игрушка для мидлов и выше. Возможно упорный джуниор сможет разобраться, но в этом случае должен очень классно быть прокачан скилл "у меня ничего не работает, но я буду разбираться до победного"
- Мне очень понравилась фича просмотра чужих диффов - особенно для
go
, с которым я знаком поверхностно - мне было очень интересно посмотреть на разные подходы к решению одной и той-же задачи и что-то утащить себе в копилочку- Важно не копировать код у других. Я для себя нашел такой вариант - там, где я разбираюсь (python) - пишу сам и смотрю чужие интересные находки. Там, где я разбираюсь не очень (go) - компилирую свой вариант из разных вариантов переписывая под свое чувство прекрасного
В общем выглядит как годный инструмент для тех, кто не хочет застаиваться и особенно прикольно для того, чтобы поразбираться с чем-то новым.
CodeCrafters
The Software Pro's Best Kept Secret.
Real-world proficiency projects designed for experienced engineers. Develop software craftsmanship by recreating popular devtools from scratch.
🔥61👍33
Вышел
Также они добавили свой language server, написанный на rust для интеграции с редакторами кода, которые поддерживают language server protocol (LSP). Предыдущий lang server у них был написан на питоне.
Ну и как обычно много всяких улучшений/исправлений меньшего размера.
Ссылка на анонс https://astral.sh/blog/ruff-v0.4.0
Ссылка на ченджлог https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md#040
ruff 0.4.0
. Из интересного - они переписали парсер, который преобразует код в ast
(abstract syntax trees). Это увеличит скорость работы ruff дополнительно на 20-40% что звучит здорово. Также новый парсер позволяет улучшить обработку ошибок парсинга, нарпимер сделав ошибки более читаемыми.Также они добавили свой language server, написанный на rust для интеграции с редакторами кода, которые поддерживают language server protocol (LSP). Предыдущий lang server у них был написан на питоне.
Ну и как обычно много всяких улучшений/исправлений меньшего размера.
Ссылка на анонс https://astral.sh/blog/ruff-v0.4.0
Ссылка на ченджлог https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md#040
astral.sh
Ruff v0.4.0: a hand-written recursive descent parser for Python
Ruff migrates to a hand-written recursive descent parser: >2x faster, with error recovery capabilities.
🔥55👍1
Хорошая статья про то, как устроены списки в питоне. Начинается с примера, который выглядит простым и понятным, и потом довольно быстро ныряет в зубодробительные детали сишной реализации list-ов.
Если интересно, как python устроен "под капотом" - очень рекомендую, так как автор явно заморочился, нарисовал много картинок и вообще расписал все очень детально, думаю даже для людей, никогда не писавших на C будет в целом понятно https://codeconfessions.substack.com/p/why-do-python-lists-multiply-oddly
Если интересно, как python устроен "под капотом" - очень рекомендую, так как автор явно заморочился, нарисовал много картинок и вообще расписал все очень детально, думаю даже для людей, никогда не писавших на C будет в целом понятно https://codeconfessions.substack.com/p/why-do-python-lists-multiply-oddly
Codingconfessions
Why Do Python Lists Multiply Oddly? Exploring the CPython Source Code
A look at the internals of list implementation in CPython to understand this weird quirk about them
🔥33👍10
И вдогонку чуть более простой и практически применимый материал. Наверное, большинство сейчас для форматирования строк используют f-строки, и чаще всего это просто
И сегодня наткнулся на pybites хороший гайд по тому, что f-строки умеют. Если вы всем этим богатством не пользовались - очень рекомендую https://pybit.es/articles/python-f-string-codes-i-use-every-day/
f"string {variable}"
, но на самом деле f-строки позволяют удобно форматировать переменную. Например, мне недавно надо было выводить целое число как трехпозиционную строку, т.е. если в числе меньше трех цифр - подставлять в начало нолики (5 -> "005", 10 -> "010", 123 -> 123).И сегодня наткнулся на pybites хороший гайд по тому, что f-строки умеют. Если вы всем этим богатством не пользовались - очень рекомендую https://pybit.es/articles/python-f-string-codes-i-use-every-day/
Pybites
Python F-String Codes I Use Every Day - Pybites
I use f-strings every day. The irony is I also every day end up searching the Web to find the correct format to use. Until one day I thought a
🔥32👍11👎1
Всем привет! На этой неделе у нас будет 2 выпуска Moscow Python Podcast подряд.
🟢 Сегодня, 2 мая в 14:00 МСК, поговорим про новости Python за последний месяц - релиз ruff 0.4.0, сборку CPyhon из исходников, PEP-744 Jit Compilation, студенческие задания в open source и что с ними не так, Ubuntu 24.04 LTS онлайн и в записи по ссылке.
🟢 Завтра, 3 мая встретимся с Александром Гончаровым, автором телеграм-канала Блог погромиста. В следующем анонсе расскажу подробности выпуска.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости мира Python за апрель 2024
Спонсор подкаста: Курсы Python для новичков и продвинутые курсы — https://learn.python.ru
Positive Hacks Days —https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — Интро
1:00 — Pydantic запустили бета-версию Longfire
10:27 — Łukasz…
Positive Hacks Days —https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — Интро
1:00 — Pydantic запустили бета-версию Longfire
10:27 — Łukasz…
🔥24
Привет, в четверг, 16 мая в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast с Иваном Кривошеевым, ведущим разработчиком Positive Technologies и обсудим:
🟡 идеальную ORM;
🟡 проблемы asyncio;
🟡 опыт перехода на Rust.
➡️ Когда: 16 мая в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Python Day Special с Иваном Кривошеевым
Спонсор подкаста: Курсы Python для новичков и продвинутые курсы — https://learn.python.ru
Python Day на Positive Hack Days — https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
2:15 — о sendbox в Positive Technologies
6:07…
Python Day на Positive Hack Days — https://bit.ly/phd-mpp
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
2:15 — о sendbox в Positive Technologies
6:07…
👍24🔥9
Я почти весь май проболел и почти не постил в канал и пропустил запись послдених выпусков подкаста, буду исправляться.
В пятницу 7 июня в прямом эфире Moscow Python Podcast в 14:00 (по мск) обсудим новости за май, а именно:
🟡 Релиз беты Python 3.13
🟡 Django Developers Survey 2023
🟡 В Django предложили затащить бекграунд-воркеры
🟡 Разработчики ставят себе бекдоры на тестовых собеседованиях
➡️ Когда: 7 июня в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
В пятницу 7 июня в прямом эфире Moscow Python Podcast в 14:00 (по мск) обсудим новости за май, а именно:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4
В эту пятницу, 12 июля в прямом эфире Moscow Python Podcast в 14:00 (по мск) обсудим новости за июнь:
🟡 Должен ли Python использовать календарную нумерацию версий
🟡 Релиз NumPy 2.0
🟡 Как устроена инфраструктура работы с уязвимостями в Python
🟡 Современные практики для разработки на Python
➡️ Когда: 12 июля в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости Python за июнь 2024 года
Спонсор подкаста: Learn Python Advanced — курсы по Python-разработке для тех, кто уже знаком с веб-разработкой — https://learn.python.ru/advanced
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
1:40 — пора ли Python переходить на календарную…
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
1:40 — пора ли Python переходить на календарную…
🔥15👍2
Сегодня традиционно в первую пятинцу месяца, в 14:00 по МСК встретимся в прямом эфире Moscow Python Podcast и обсудим новости за июль:
🟡 утечку токена для полного доступа к GitHub-репозиториям проекта Python
🟡 python без GIL можно попробовать теперь и локально
🟡 почему Apple начал заворачивать приложения на Python 3.12 в App Store
🟡 релиз Polars 1.0
🟡 PEP 751 — общий формат для lock-файлов зависимостей
➡️ Когда: 2 августа в 14:00 по Москве.
➡️ Где: онлайн и в записи по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Новости мира Python за июль 2024
Спонсор подкаста: Learn Python Advanced — курсы по Python-разработке для тех, кто уже знаком с веб-разработкой — https://learn.python.ru/advanced
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
1:15 — Гриша про PyCon
9:50 — утечка токена для…
Ведущие – Григорий Петров и Михаил Корнеев
00:00 — интро
1:15 — Гриша про PyCon
9:50 — утечка токена для…
🔥19
Последние три месяца я был сначала занят на работе и не успевал писать новости, а потом поехал в отпуск и вообще старался не подходить к компу. Я немного отдохнул, выдохнул и попробую вернуться к регулярному постингу и начну с того, что разберу отложенные интересные статьи 🙂
Начну с короткой заметки, которая хорошо рассказывает о том, какие UUID бывают и для чего их использовать. Если вы всегда просто используете
Я последнее время с интересом смотрю в сторону uuid7 - по нему можно делать сортировку и поэтому он выглядит интересно в качестве id-шника. Из коробки модуль
Начну с короткой заметки, которая хорошо рассказывает о том, какие UUID бывают и для чего их использовать. Если вы всегда просто используете
uuid4
то думаю будет полезно расширить кругозор https://www.ntietz.com/blog/til-uses-for-the-different-uuid-versions/Я последнее время с интересом смотрю в сторону uuid7 - по нему можно делать сортировку и поэтому он выглядит интересно в качестве id-шника. Из коробки модуль
uuid
в питоне не поддерживает uuid6
, uuid7
и uuid8
(потому что пока они по факту не приняты как часть RFC), но есть либа uuid-utils
которая реализует все варианты https://github.com/aminalaee/uuid-utilsGitHub
GitHub - aminalaee/uuid-utils: Python bindings to Rust UUID
Python bindings to Rust UUID. Contribute to aminalaee/uuid-utils development by creating an account on GitHub.
🔥34👍4
Вышла Django 5.1, изменений не сильно много, но из интересного:
- поддержка connection pool-ов для psycopg 3
- миддлварь, которая делает аутентификацию обязательной для всех эндпоинтов (полагаю многие писали подобную миддлварьку для своих проектов)
- новый template tag
- для работы с сессиями пользователя теперь доступно асинхронные методы
- дропнули совместимость с Postgres 12, MariaDB 10.4 и SQLite ниже 3.31.0
ну и много всего по мелочи, почитать release notes можно здесь https://docs.djangoproject.com/en/5.1/releases/5.1/
- поддержка connection pool-ов для psycopg 3
- миддлварь, которая делает аутентификацию обязательной для всех эндпоинтов (полагаю многие писали подобную миддлварьку для своих проектов)
- новый template tag
querystring
, который позволяет в шаблоне легко добавить новый/заменить значение существующего параметра url-а, сохранив все остальные параметры- для работы с сессиями пользователя теперь доступно асинхронные методы
- дропнули совместимость с Postgres 12, MariaDB 10.4 и SQLite ниже 3.31.0
ну и много всего по мелочи, почитать release notes можно здесь https://docs.djangoproject.com/en/5.1/releases/5.1/
Django Project
Django 5.1 release notes | Django documentation
The web framework for perfectionists with deadlines.
👍33
Вышел новый большой релиз менеджера пакетов
- теперь
- появилась возможность ставить нужную версию питона с помощью
- появилась возможность запускать с помощью
- возможность запускать скрипты содержащие в файле зависимости (inline script metadata https://packaging.python.org/en/latest/specifications/inline-script-metadata/#inline-script-metadata). При этом он автоматически создаст виртуальное окружение и поставит зависимости туда, а если указанной в зависимостях версии питона нет в система - сам установит ее
В общем выглядит как еще один большой шаг к тому, чтобы заменить другие тулы - https://astral.sh/blog/uv-unified-python-packaging
uv
в котором добавили много нового:- теперь
uv
может создавать более сложные файлы зависимостей и самое главное - они теперь кроссплатформенные. Например, если файл создавался, скажем, на маке он будет содержать также хеши для версий пакетов для Linux и Windows и также пакеты, которые нужны только доя конкретной платформы буду указаны и установлены только для нее. Они говорят, что формат файла standart complient но я не совсем понял на какой именно стандарт они тут ссылаются- появилась возможность ставить нужную версию питона с помощью
uv
- появилась возможность запускать с помощью
uv
другие консольные команды по аналогии с pipx
, например uvx ruff check
- возможность запускать скрипты содержащие в файле зависимости (inline script metadata https://packaging.python.org/en/latest/specifications/inline-script-metadata/#inline-script-metadata). При этом он автоматически создаст виртуальное окружение и поставит зависимости туда, а если указанной в зависимостях версии питона нет в система - сам установит ее
В общем выглядит как еще один большой шаг к тому, чтобы заменить другие тулы - https://astral.sh/blog/uv-unified-python-packaging
astral.sh
uv: Unified Python packaging
Manage entire Python projects and even Python itself with a single unified tool.
👍32🔥29
Хорошая статья про то, как устроена в питоне сборка/установка пакетов и почему именно так. Для тех, кому любопытно чуть больше погрузиться в историю - самое то. Выводы у статьи простые - используйте
Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy
pyproject.toml
везде, где это возможно. Я с автором в этом согласен, например у меня на работе как минимум во всех новых проектах pyproject.toml
используется по умолчанию.Ссылка - https://www.bitecode.dev/p/whats-the-deal-with-setuptools-setuppy
www.bitecode.dev
What's the deal with setuptools, setup.py, pyproject.toml and wheels?
Why? Why? Why? Oh, that's why.
🔥20👍5
Следующий выпуск Moscow Python Podcast записываем в эту пятницу, 13 сентября - обсудим новости августа:
🟤 релиз Django 5.1;
🟤 большое обновление uv;
🟤 PyPI улучшила время реагирования на malware до 24 часов;
🟤 Лучшие языки программирования 2024 года по версии IEEE.
Когда: 13 сентября в 14:00 (по мск)
Где: онлайн и в записи по ссылке
Когда: 13 сентября в 14:00 (по мск)
Где: онлайн и в записи по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Django 5.1 / Релиз uv / PyPI реагируют на Malware в течение суток / Рейтинг популярности ЯП от IEEE
Спонсор подкаста: курсы по Python-разработке для тех, кто уже знаком с веб-разработкой — https://learn.python.ru/advanced
Ведущие – Григорий Петров и Михаил Корнеев
Таймкоды:
00:00 — интро
1:08 — релиз Django 5.1 и её развитие
20:25 — релиз uv
37:24…
Ведущие – Григорий Петров и Михаил Корнеев
Таймкоды:
00:00 — интро
1:08 — релиз Django 5.1 и её развитие
20:25 — релиз uv
37:24…
🔥24👍11
Один из частых вопросов в комментариях к подкасту - где взять идеи для учебных Dajngo-проектов. Хотя я сам считаю, что лучший учебный проект — это тот который ты придумал сам и который тебя драйвит, я понимаю, что многим было бы удобнее взять какую-то плюс-минус готовую идею и сосредоточиться на разработке.
JetBrains у себя в блоге опубликовали список идей для проектов на Django. Хотя там в основном высокоуровневое описание проекта без деталей и всего пара ссылок на туториалы, если вам такое актуально - посмотрите https://blog.jetbrains.com/pycharm/2024/09/django-project-ideas/
JetBrains у себя в блоге опубликовали список идей для проектов на Django. Хотя там в основном высокоуровневое описание проекта без деталей и всего пара ссылок на туториалы, если вам такое актуально - посмотрите https://blog.jetbrains.com/pycharm/2024/09/django-project-ideas/
The JetBrains Blog
Django Project Ideas | The PyCharm Blog
Looking to experiment or build your portfolio? Discover creative Django project ideas for all skill levels, from beginner apps to advanced full-stack projects.
👍8🔥6
Привет! Напоминаем, что сегодня, 4 октября в 14:00 по мск обсудим новости сентября:
🟤 перенос релиза 3.13 или настало время перестать использовать 3.8;
🟤 Python Developers Survey 2023;
🟤 большая дискуссия про uv в хвиторе.
Когда: 4 октября в 14:00 (по мск).
Где: онлайн и в записи на YouTube и RuTube.
И да, у нас теперь есть канал и на RuTube, подписывайтесь — https://rutube.ru/channel/45885590/
Когда: 4 октября в 14:00 (по мск).
Где: онлайн и в записи на YouTube и RuTube.
И да, у нас теперь есть канал и на RuTube, подписывайтесь — https://rutube.ru/channel/45885590/
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Релиз 3.13 и когда перестать использовать 3.8 / Python Developers Survey 2023 / Дискуссия про uv
Спонсор подкаста: курсы по Python-разработке для тех, кто уже знаком с веб-разработкой — https://learn.python.ru/advanced
Ведущие – Никита Соболев и Михаил Корнеев
00:00 — интро
02:48 — отложенный релиз Python 3.13
03:47 — поддержка версий и тестирование…
Ведущие – Никита Соболев и Михаил Корнеев
00:00 — интро
02:48 — отложенный релиз Python 3.13
03:47 — поддержка версий и тестирование…
🔥16👍1
Зарелизился python 3.13, кратенько перечислю самое интересное, а подробно обсудим на подкасте в первых числах ноября.
Сначала самые интересные штуки, которые пока недоступны конечным пользователям:
- Первый релиз с nogil (который теперь официально называется free-threaded). Доступен только если собрать интерпретатор со специальным ключом
- Новый copy-and-patch JIT-компилятор, который (сюрприз!) тоже по умолчанию выключен и требует сборки с ключом
Это все выглядит очень интересно, но давайте перейдем к изменениям, которые можно пощупать и которые реально полезны:
- Эксепшены в питоне, итак, были довольно дружелюбны (по сравнению с другими языками), но в последних версиях идет планомерная работа по их улучшению. В этот раз добавили выделение цветом в терминале и более понятное сообщение об ошибке в случае, когда в проекте есть файл, совпадающий по названию с модулем, который ты хочешь импортировать (пример - у меня в проекте есть файл
- Новый клевый repl с подсветкой, возможностью редактировать не только текущую строку, автоотступами, режимами просмотра истории (F2) и вставки (F3) и самое главное – с возможностью писать
- Новые улучшения системы типов - дефолты (теперь не надо писать
-
Ну и еще всякое по мелочи. Релиз получился без каких-то больших изменений для тех, кто пишет на python, но с очень большим и интересным заделом на будущее.
Сначала самые интересные штуки, которые пока недоступны конечным пользователям:
- Первый релиз с nogil (который теперь официально называется free-threaded). Доступен только если собрать интерпретатор со специальным ключом
--disable-gil
, но если очень хочется поиграться, то можно поставить 3.13.0rc3t
с помощью pyenv. Производительность пока замерять рановато, потому что сам по себе питон в free-threaded режиме на 20% медленнее обычного из-за проблем с garbage collector-ом, мы с Никитой Соболевым довольно подробно в подкасте про это говорили, в 3.14 должны поправить, а для тестирования совместимости с библиотеками это пока не важно.- Новый copy-and-patch JIT-компилятор, который (сюрприз!) тоже по умолчанию выключен и требует сборки с ключом
--enable-experimental-jit
. На самом деле если его включить, то какой-то пользы для себя вы не увидите, так как для работы ему требуются "шаблоны", которые будут заменять куски байт-кода на машинный код, а их еще требуется написать. Собственно, его, как и nogil включили в релиз для того, чтобы можно было экспериментироватьЭто все выглядит очень интересно, но давайте перейдем к изменениям, которые можно пощупать и которые реально полезны:
- Эксепшены в питоне, итак, были довольно дружелюбны (по сравнению с другими языками), но в последних версиях идет планомерная работа по их улучшению. В этот раз добавили выделение цветом в терминале и более понятное сообщение об ошибке в случае, когда в проекте есть файл, совпадающий по названию с модулем, который ты хочешь импортировать (пример - у меня в проекте есть файл
django.py
и я в другом файле пробую импортировать что-то из реальной джанги `from django import forms`)- Новый клевый repl с подсветкой, возможностью редактировать не только текущую строку, автоотступами, режимами просмотра истории (F2) и вставки (F3) и самое главное – с возможностью писать
exit
без скобочек 🙂- Новые улучшения системы типов - дефолты (теперь не надо писать
Generator[int, None, None]
- можно просто Generator[int]`), возможность объявить атрибут TypedDict-а как `ReadOnly
и TypeIs
для более строгой проверки типов-
glob("**")
из pathlib теперь показывает файлы и папки рекурсивно (раньше показывал только папки), привели в соответствие с тем, как это реализовано в большинстве других инструментов, например ls **
Ну и еще всякое по мелочи. Релиз получился без каких-то больших изменений для тех, кто пишет на python, но с очень большим и интересным заделом на будущее.
Proceedings of the ACM on Programming Languages
Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode | Proceedings of the ACM on Programming…
Fast compilation is important when compilation occurs at runtime, such as query compilers
in modern database systems and WebAssembly virtual machines in modern browsers. We
present copy-and-patch, an extremely fast compilation technique that also ...
in modern database systems and WebAssembly virtual machines in modern browsers. We
present copy-and-patch, an extremely fast compilation technique that also ...
🔥48👍16