Для тех, кто чувствует, что может больше в IT
Когда начинаешь щёлкать старые рабочие задачи как орешки, приходит время прокачиваться до мидла или сеньора.
Усилить экспертизу поможет новое направление курсов Яндекс Практикум PRO. Оно создано специально для практикующих специалистов в IT-профессиях: программировании, анализе данных, работе с нейронками, продакт- и проджект- менеджменте.
Здесь обучают на реальных кейсах и помогают углубить знания в выбранной сфере. И эти навыки точно понадобятся каждому, кто задумывается о переходе с позиции джуна.
Вся информация о курсах собрана здесь.
Это #партнёрский пост
Когда начинаешь щёлкать старые рабочие задачи как орешки, приходит время прокачиваться до мидла или сеньора.
Усилить экспертизу поможет новое направление курсов Яндекс Практикум PRO. Оно создано специально для практикующих специалистов в IT-профессиях: программировании, анализе данных, работе с нейронками, продакт- и проджект- менеджменте.
Здесь обучают на реальных кейсах и помогают углубить знания в выбранной сфере. И эти навыки точно понадобятся каждому, кто задумывается о переходе с позиции джуна.
Вся информация о курсах собрана здесь.
Это #партнёрский пост
Python Software Foundation отвергла грант США на $1,5 млн из-за запрета на инициативы по инклюзивности
PSF неожиданно отказалась от гранта на 1,5 млн долларов, предложенного Национальным научным фондом США (NSF), из-за условий, запрещающих организациям-получателям продвигать программы, направленные на разнообразие, равенство и инклюзивность. Несмотря на финансовую поддержку в рамках проекта по безопасности opensource-экосистем, PSF сочла, что такие ограничения противоречат её ценностям и миссии. Совет директоров единодушно отверг предложение, указав, что запрет на инициативы DEI (diversity, equity, inclusion) может повредить всей её деятельности. Решение принято в условиях сохраняющейся потребности фонда в ресурсах и растущего внимания к безопасности экосистемы Python.
#факт
@zen_of_python
PSF неожиданно отказалась от гранта на 1,5 млн долларов, предложенного Национальным научным фондом США (NSF), из-за условий, запрещающих организациям-получателям продвигать программы, направленные на разнообразие, равенство и инклюзивность. Несмотря на финансовую поддержку в рамках проекта по безопасности opensource-экосистем, PSF сочла, что такие ограничения противоречат её ценностям и миссии. Совет директоров единодушно отверг предложение, указав, что запрет на инициативы DEI (diversity, equity, inclusion) может повредить всей её деятельности. Решение принято в условиях сохраняющейся потребности фонда в ресурсах и растущего внимания к безопасности экосистемы Python.
#факт
@zen_of_python
🌚10❤6😁5👎2
air | Веб-фреймворк на базе FastAPI, Starlette и Pydantic
Новый минималистичный веб-тул от авторов книги 'Two Scoops of Django'. Крутая особенность — Air Tags, теги-компоненты по аналогии с React. С Air проще писатьвеб-приложения с подкапотным API. Хорошая попытка исправить то, что не нравится в Django.
#инструмент
@zen_of_python
Новый минималистичный веб-тул от авторов книги 'Two Scoops of Django'. Крутая особенность — Air Tags, теги-компоненты по аналогии с React. С Air проще писатьвеб-приложения с подкапотным API. Хорошая попытка исправить то, что не нравится в Django.
#инструмент
@zen_of_python
🤔2
Media is too big
VIEW IN TELEGRAM
Не пропусти МТС True Tech Champ — масштабный фестиваль 21 ноября для тех, кто живет технологиями
Тебя ждут:
• Захватывающая сюжетная линия: уникальная кибервселенная с возможностью влиять на ход происходящего;
• Конференция с международными спикерами: эксперты расскажут о трендах в ИИ и инновациях в индустрии;
• ИТ-качалка — наращивай экспертизу на воркшопах;
• Шоу-финал ИТ-чемпионата, где более 250 талантов со всей России сразятся в лайв-кодинге и программировании роботов на скоростное прохождение лабиринтов со спецэффектами. Поболей за своих фаворитов;
• Активности: бои роботов, кодерские челленджи, пайка плат и не только. Заработай True Coins и обменяй их на стильный мерч;
• HR-Hub, где команда МТС расскажет о возможностях для развития в компании и поможет перезагрузить карьерный трек;
• Афтепати со звездными хэдлайнерами — зажги под популярные хиты!
Когда: 21 ноября, МТС Live Холл в Москве и онлайн.
Регистрируйся на сайте.
Бесплатное участие, количество мест ограничено.
Это #партнёрский пост
Тебя ждут:
• Захватывающая сюжетная линия: уникальная кибервселенная с возможностью влиять на ход происходящего;
• Конференция с международными спикерами: эксперты расскажут о трендах в ИИ и инновациях в индустрии;
• ИТ-качалка — наращивай экспертизу на воркшопах;
• Шоу-финал ИТ-чемпионата, где более 250 талантов со всей России сразятся в лайв-кодинге и программировании роботов на скоростное прохождение лабиринтов со спецэффектами. Поболей за своих фаворитов;
• Активности: бои роботов, кодерские челленджи, пайка плат и не только. Заработай True Coins и обменяй их на стильный мерч;
• HR-Hub, где команда МТС расскажет о возможностях для развития в компании и поможет перезагрузить карьерный трек;
• Афтепати со звездными хэдлайнерами — зажги под популярные хиты!
Когда: 21 ноября, МТС Live Холл в Москве и онлайн.
Регистрируйся на сайте.
Бесплатное участие, количество мест ограничено.
Это #партнёрский пост
Юн Цуй «Рецепты Python. Коллекция лучших техник программирования»
Если вам уже попадалась постепенно усложняющаяся книга по языку, которую труднее читать к концу, то в этот раз будет по-другому. В книге Юн Цуй собрал 63 самых полезных, по его мнению, навыков Python-разработчика, К примеру, в одной из глав задача ««Как найти элементы в последовательности?» получает сначала базовое решение, а потом дополняется еще двумя.
#обучение
@zen_of_python
Если вам уже попадалась постепенно усложняющаяся книга по языку, которую труднее читать к концу, то в этот раз будет по-другому. В книге Юн Цуй собрал 63 самых полезных, по его мнению, навыков Python-разработчика, К примеру, в одной из глав задача ««Как найти элементы в последовательности?» получает сначала базовое решение, а потом дополняется еще двумя.
#обучение
@zen_of_python
🔥2❤1
Python for Everyone | Короткие видеотуториалы
Англоязычный YouTube-канал, прекрасно «грокающий» различные концепции языка, будь то декораторы, миксины или полиморфизм. Каждый ролик — кустарный мультфильм с демонстрацией предельно понятного кода.
#обучение
@zen_of_python
Англоязычный YouTube-канал, прекрасно «грокающий» различные концепции языка, будь то декораторы, миксины или полиморфизм. Каждый ролик — кустарный мультфильм с демонстрацией предельно понятного кода.
#обучение
@zen_of_python
✍1
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте.
#обсуждение
@zen_of_python
Пользователь Reddit поделился Python-библиотекой для быстрых запросов к файловой системе и выполнения действий над найденными файлами.
Основная идея: вместо кучи строк кода,
Т.е. найти логи старше 7 дней и больше 10 МБ.
Выглядит удобно, но как-то не очень pythonic, вам не кажется? Как будто если делаешь что-то SQL-like, то лучше напрямую SQL и взять, а не изобретать мини-язык внутри Python. И это как раз самое интересное — в комментах начали предлагать как можно сделать лучше.
Например, вот так:
Добавить обёртку, которая будет вычислять необходимые свойства по запросу с использованием
Или использовать модуль
А может вообще что-то lisp-подобное:
Или добавить callable-объекты, которые можно передавать в фильтры, получится куда более нативно:
Лично мне, админу канала @zen_of_python, последний вариант кажется самым удобным. Не самый привычный синтаксис, но читается однозначно. И возможность задавать время и размер файлов в привычных единицах — тоже плюс.
Если для ускорения добавить конкурентность и кэширование, как сделал автор исходной библиотеки, то получится прекрасный инструмент.
А какой стиль вам больше понравился? Как бы вы реализовали?
Основная идея: вместо кучи строк кода,
os.stat и datetime писать так:query = Query(
where_expr=(AgeDays() > 7) & (Size() > "10 mb") & Suffix(".log"),
from_paths="C:/logs",
threaded=True
)
result_set = query.select()
Т.е. найти логи старше 7 дней и больше 10 МБ.
Выглядит удобно, но как-то не очень pythonic, вам не кажется? Как будто если делаешь что-то SQL-like, то лучше напрямую SQL и взять, а не изобретать мини-язык внутри Python. И это как раз самое интересное — в комментах начали предлагать как можно сделать лучше.
Например, вот так:
query(lambda p: p.age_days < 7 and p.size > 10_000_000 and p.suffix == ".log")
Добавить обёртку, которая будет вычислять необходимые свойства по запросу с использованием
cached_property и получим по сути то же самое, но проще.Или использовать модуль
ast и такой синтаксис:query("age_days < 7 and size > 10_000_000 and suffix == '.log'")А может вообще что-то lisp-подобное:
query(("and", ("age_days", ">", 7),
("size", ">", 10_000_000),
("suffix", "==", ".log")))Или добавить callable-объекты, которые можно передавать в фильтры, получится куда более нативно:
dir = pathlib.Path('/var')
for file in filter(OlderThan(days=7) & LargerThan(MB=10),dir.rglob("*")):
print(file.as_posix())Лично мне, админу канала @zen_of_python, последний вариант кажется самым удобным. Не самый привычный синтаксис, но читается однозначно. И возможность задавать время и размер файлов в привычных единицах — тоже плюс.
Если для ускорения добавить конкурентность и кэширование, как сделал автор исходной библиотеки, то получится прекрасный инструмент.
А какой стиль вам больше понравился? Как бы вы реализовали?
🔥6
Какую версию Python взять, чтобы всё работало без лишних проблем?
С одной стороны, хочется более свежую: в 3.14 завезли free-threading и вообще много чего улучшили по производительности. Но не все библиотеки ещё подтянулись. Например, Numba ещё 3.14 не поддерживает.
Хороший совет — вооружитесь uv и последовательно пробуйте все версии начиная с самой свежей. Первая, которая заработает, и будет вашей. По сути самая свежая из тех, которую поддерживают все зависимости у вас в проекте.
Также полезно посмотреть на релизный цикл (на картинке к посту). Очевидно не стоит брать версии, которые уже не поддерживаются. Спускаться ниже 3.10 будет не самым безопасным вариантом. Ровно как и пробовать то, что ещё не выпущено официально — на 3.15 заглядываться рановато.
По состоянию на ноябрь 2025 версия 3.13 выглядит хорошей золотой серединой. Почти все уже успели добавить поддержку, а от ведущей 3.14 отставание всего на один шаг.
А какие версии вы используете у себя в проектах?
#обсуждение
@zen_of_python
С одной стороны, хочется более свежую: в 3.14 завезли free-threading и вообще много чего улучшили по производительности. Но не все библиотеки ещё подтянулись. Например, Numba ещё 3.14 не поддерживает.
Хороший совет — вооружитесь uv и последовательно пробуйте все версии начиная с самой свежей. Первая, которая заработает, и будет вашей. По сути самая свежая из тех, которую поддерживают все зависимости у вас в проекте.
Также полезно посмотреть на релизный цикл (на картинке к посту). Очевидно не стоит брать версии, которые уже не поддерживаются. Спускаться ниже 3.10 будет не самым безопасным вариантом. Ровно как и пробовать то, что ещё не выпущено официально — на 3.15 заглядываться рановато.
По состоянию на ноябрь 2025 версия 3.13 выглядит хорошей золотой серединой. Почти все уже успели добавить поддержку, а от ведущей 3.14 отставание всего на один шаг.
А какие версии вы используете у себя в проектах?
#обсуждение
@zen_of_python
❤4👻3
Свежий пет-проект от (видимо) скучающего на досуге питониста — терминальный Git‑клиент на чистом Python, вдохновлённый LazyGit; ставится через pip и работает без внешнего git CLI. Попробовать:
Что даёт: навигация по коммитам, просмотр diff, панель статусов файлов в стиле VSCode, ветко‑зависимая история и индикаторы «пушнуто/локально» без вызова системного git.
Зачем: когда в окружении нельзя ставить ничего кроме Python‑пакетов, нужен «чисто Python» инструмент для Git с удобной навигацией и минимумом интеграций.
Автор просит фидбек по недостающим функциям и удобству UI, так что можете отписаться в репозитории. Вам плюсик в карму, автор порадуется.
Проект, послуживший вдохновением: https://github.com/jesseduffield/lazygit
Ну и, конечно, кто-то написал аналог на Rust, чтобы было ультра-быстро, а скорее просто потому что может: https://github.com/gitui-org/gitui
Как вам такие поделки? Как минимум романтично же, консольные клиенты как будто пахнут старыми добрыми временами, вы не находите?
@zen_of_python
pip install pygitzen.Что даёт: навигация по коммитам, просмотр diff, панель статусов файлов в стиле VSCode, ветко‑зависимая история и индикаторы «пушнуто/локально» без вызова системного git.
Зачем: когда в окружении нельзя ставить ничего кроме Python‑пакетов, нужен «чисто Python» инструмент для Git с удобной навигацией и минимумом интеграций.
Автор просит фидбек по недостающим функциям и удобству UI, так что можете отписаться в репозитории. Вам плюсик в карму, автор порадуется.
Проект, послуживший вдохновением: https://github.com/jesseduffield/lazygit
Ну и, конечно, кто-то написал аналог на Rust, чтобы было ультра-быстро, а скорее просто потому что может: https://github.com/gitui-org/gitui
Как вам такие поделки? Как минимум романтично же, консольные клиенты как будто пахнут старыми добрыми временами, вы не находите?
@zen_of_python
🔥11❤2
Media is too big
VIEW IN TELEGRAM
Как провести проверку типов в 1,8 миллионах строчек Python-кода за секунду? Нил Митчел рассказывает как новый тайп-чекер Pyrefly достигает такой скорости (дубляж на русский).
Аннотации типов появились ещё в 2014 году и с тех пор стали значительно сложнее: дженерики, подтипы, flow types, field refinement и другие не всем даже известные слова. Pyrefly моделирует и проверяет эту сложную систему и делает это быстро.
В принципе тем же самым занимается uv ty, но у ребят из Astral немного другой подход: дать пользу программисту аккуратно, не ошибиться случайно в коде, который хоть и без типов, но теоретически может быть валидным. Можно сказать, что Pyrefly более агрессивный и стабильный, хотя оба проекта ещё в альфе.
Попробовать можно прям на сайте проекта: pyrefly.org/sandbox
Что ж, наконец-то кто-то сможет угнаться за скоростью написания вайб-кода и проверить хотя бы типы.
@zen_of_python
Аннотации типов появились ещё в 2014 году и с тех пор стали значительно сложнее: дженерики, подтипы, flow types, field refinement и другие не всем даже известные слова. Pyrefly моделирует и проверяет эту сложную систему и делает это быстро.
В принципе тем же самым занимается uv ty, но у ребят из Astral немного другой подход: дать пользу программисту аккуратно, не ошибиться случайно в коде, который хоть и без типов, но теоретически может быть валидным. Можно сказать, что Pyrefly более агрессивный и стабильный, хотя оба проекта ещё в альфе.
Попробовать можно прям на сайте проекта: pyrefly.org/sandbox
Что ж, наконец-то кто-то сможет угнаться за скоростью написания вайб-кода и проверить хотя бы типы.
@zen_of_python
❤1👍1
Совет управляющих Python одобрил два PEP — 798 про распаковку в comprehensions и 810 про явные ленивые импорты, оба целятся в Python 3.15.
PEP 798 добавляет возможность применять распаковку прямо в comprehensions и генераторах: можно использовать символы звездочки для объединения и слияния, например
PEP 810 вводит явный синтаксис ленивых импортов:
P.S. Кто такие эти ваши «совет управляющих»? После ухода Гвидо с роли BDFL в 2018 сообщество приняло модель управления PEP 8016 — стратегию языка и финальные решения по PEP принимает избираемый из core-разработчиков Совет из пяти человек. Этот Совет переизбирается после каждого мажорного релиза голосованием среди core-dev’ов и выступает финальным арбитром по спорным вопросам развития языка.
PEP 798 добавляет возможность применять распаковку прямо в comprehensions и генераторах: можно использовать символы звездочки для объединения и слияния, например
[*it for it in its] или {**d for d in dicts}. Приняли с оговоркой: и синхронные, и асинхронные генераторные выражения должны использовать явные циклы, без yield from, чтобы сохранить простой и единый стиль, ближе к поведению itertools.chain.from_iterable.PEP 810 вводит явный синтаксис ленивых импортов:
lazy import json и lazy from json import dumps, когда модуль реально загрузится только при первом обращении к имени — полезно для ускорения старта и экономии памяти. Совет уточнил детали: .pth не поддерживают ленивые импорты, появится sys.get_lazy_imports(), и будет зафиксирован приоритет между переменной окружения, флагом -X и вызовами sys.set_lazy_imports(), при этом стилистические правила сортировки оставят линтерам и форматтерам.P.S. Кто такие эти ваши «совет управляющих»? После ухода Гвидо с роли BDFL в 2018 сообщество приняло модель управления PEP 8016 — стратегию языка и финальные решения по PEP принимает избираемый из core-разработчиков Совет из пяти человек. Этот Совет переизбирается после каждого мажорного релиза голосованием среди core-dev’ов и выступает финальным арбитром по спорным вопросам развития языка.
🔥7❤4
В Python 3.14 появилось фишка, которая реально меняет дебаг live-процессов: безопасный внешний интерфейс отладки по PEP 768, который позволяет подключаться к уже запущенному питоновскому процессу по PID — без перезапуска и без ломания рантайма на ровном месте. В практическом виде это значит, что теперь можно сделать обычный attach встроенным pdb:
Главная фишка — все происходит в «безопасных точках» интерпретатора, без хака с инъекцией машинного кода через ptrace/LLDB и без риска словить краш, гонки за GIL или порчу памяти при сборке мусора. Интерфейс кооперируется с eval loop CPython и просто просит интерпретатор выполнить небольшой скрипт, когда это безопасно; под капотом для этого добавили пару полей в PyThreadState и используют существующий eval_breaker, поэтому накладных расходов в обычном режиме нет.
Для инструментов завезли
Если хотите детали и хороший разбор, у surister вышел пост после выступления Пабло Галиндо (соавтора PEP): там с примерами, почему старые подходы были хрупкими, и как новый протокол делает attach нормальным инструментом, а не рулеткой с падениями.
Ещё раз супер-кратко: теперь attach к живому Python — это стандартная возможность CPython 3.14, с нулевой ценой в рантайме и без трюков уровня «инжектим код в произвольной точке», что сильно упрощает жизнь при отладке долгоживущих сервисов и edge/IoT кейсов.
А вы знали, что так можно?
python -m pdb -p <PID>, залезть внутрь, посмотреть состояние, выполнить код — как будто запускал под отладчиком с самого начала.Главная фишка — все происходит в «безопасных точках» интерпретатора, без хака с инъекцией машинного кода через ptrace/LLDB и без риска словить краш, гонки за GIL или порчу памяти при сборке мусора. Интерфейс кооперируется с eval loop CPython и просто просит интерпретатор выполнить небольшой скрипт, когда это безопасно; под капотом для этого добавили пару полей в PyThreadState и используют существующий eval_breaker, поэтому накладных расходов в обычном режиме нет.
Для инструментов завезли
sys.remote_exec(pid, path_to_script): можно подложить .py-файл и он выполнится в целевом процессе при первой возможности, что удобно для быстрых диагностик: распечатать стек, проверить состояние, собрать метрики, даже если это прод и процесс нельзя трогать. Момент важный для продакшена и безопасности: механизм можно отключить через переменные/флаги (PYTHON_DISABLE_REMOTE_DEBUG, -X disable-remote-debug, сборка без поддержки), а любые вызовы проходят через audit hooks, так что всё прозрачно и контролируемо для админов.Если хотите детали и хороший разбор, у surister вышел пост после выступления Пабло Галиндо (соавтора PEP): там с примерами, почему старые подходы были хрупкими, и как новый протокол делает attach нормальным инструментом, а не рулеткой с падениями.
Ещё раз супер-кратко: теперь attach к живому Python — это стандартная возможность CPython 3.14, с нулевой ценой в рантайме и без трюков уровня «инжектим код в произвольной точке», что сильно упрощает жизнь при отладке долгоживущих сервисов и edge/IoT кейсов.
А вы знали, что так можно?
This media is not supported in your browser
VIEW IN TELEGRAM
🔥4