🐍 Вышли Python 3.14.3 и 3.13.12
Это уже третий технический релиз в ветке 3.14. Внутри — почти 300 исправлений багов и доработок.
Но если вы пропустили старт 3.14, напомню, почему эта серия — большой шаг вперед:
📌 Free-threaded Python: Теперь «многопоточность без GIL» (Global Interpreter Lock) официально поддерживается. Это историческое событие для производительности.
📌 t-strings (PEP 750): Помните f-строки? Теперь появились t-строки для кастомной обработки строк.
📌 Zstandard в «коробке»: В стандартную библиотеку добавили модуль
📌 Улучшенный C API и JIT: Официальные сборки для Windows и macOS теперь включают экспериментальный JIT-компилятор.
А что с 3.13.12?
Это двенадцатое (!) техническое обновление ветки 3.13. Около 250 исправлений. Эта ветка сейчас считается «рабочей лошадкой» для тех, кому важна стабильность, но хочется использовать современные фичи (например, улучшенный REPL или официальную поддержку Android-сборок).
⚠️ Важный нюанс для Windows
Команда Python постепенно меняет привычный инсталлятор на новый Install Manager (можно взять в Windows Store). Старый добрый
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#свежак
Это уже третий технический релиз в ветке 3.14. Внутри — почти 300 исправлений багов и доработок.
Но если вы пропустили старт 3.14, напомню, почему эта серия — большой шаг вперед:
📌 Free-threaded Python: Теперь «многопоточность без GIL» (Global Interpreter Lock) официально поддерживается. Это историческое событие для производительности.
📌 t-strings (PEP 750): Помните f-строки? Теперь появились t-строки для кастомной обработки строк.
📌 Zstandard в «коробке»: В стандартную библиотеку добавили модуль
compression.zstd. Больше никаких лишних зависимостей для быстрой компрессии.📌 Улучшенный C API и JIT: Официальные сборки для Windows и macOS теперь включают экспериментальный JIT-компилятор.
А что с 3.13.12?
Это двенадцатое (!) техническое обновление ветки 3.13. Около 250 исправлений. Эта ветка сейчас считается «рабочей лошадкой» для тех, кому важна стабильность, но хочется использовать современные фичи (например, улучшенный REPL или официальную поддержку Android-сборок).
⚠️ Важный нюанс для Windows
Команда Python постепенно меняет привычный инсталлятор на новый Install Manager (можно взять в Windows Store). Старый добрый
.exe пока останется с нами в версиях 3.14 и 3.15, но пора потихоньку привыкать к новому инструменту.📍 Навигация: Вакансии • Задачи • Собесы
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🎉2
🤖 7 библиотек Python для автоматизации
Вот ваш стартовый набор «ленивого» (читай: эффективного) разработчика:
🖱 Экран и ввод
PyAutoGUI — управление мышью и клавиатурой. Идеально для кликеров и заполнения форм в софте, где нет API.
Pyperclip — программная работа с буфером обмена. Можно встроить автозамену или парсинг текста прямо в Ctrl+C.
🌐 Веб и Сеть
Requests — база для работы с API. Скачать данные, проверить статус сервиса или отправить уведомление.
Selenium — полноценный контроль браузера. Поможет там, где нужно залогиниться, проскроллить страницу или нажать на хитрую кнопку.
📊 Таблицы и Файлы
Openpyxl — если нужно создавать или редактировать именно .xlsx файлы с формулами и стилями.
Shutil — ваш программный файловый менеджер. Копирование, перемещение и бэкап папок по расписанию.
⏱ Планирование
Schedule — простой и понятный планировщик. Превращает скрипт в мини-сервис, который сам запускает отчеты в 9:00 или чистит кэш каждый час.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Вот ваш стартовый набор «ленивого» (читай: эффективного) разработчика:
🖱 Экран и ввод
PyAutoGUI — управление мышью и клавиатурой. Идеально для кликеров и заполнения форм в софте, где нет API.
Pyperclip — программная работа с буфером обмена. Можно встроить автозамену или парсинг текста прямо в Ctrl+C.
🌐 Веб и Сеть
Requests — база для работы с API. Скачать данные, проверить статус сервиса или отправить уведомление.
Selenium — полноценный контроль браузера. Поможет там, где нужно залогиниться, проскроллить страницу или нажать на хитрую кнопку.
📊 Таблицы и Файлы
Openpyxl — если нужно создавать или редактировать именно .xlsx файлы с формулами и стилями.
Shutil — ваш программный файловый менеджер. Копирование, перемещение и бэкап папок по расписанию.
⏱ Планирование
Schedule — простой и понятный планировщик. Превращает скрипт в мини-сервис, который сам запускает отчеты в 9:00 или чистит кэш каждый час.
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1🤔1
Курс «Разработка ИИ-агентов»: группа стартовала
Набор ещё открыт. Если сомневаетесь, потянет ли ваш стек или насколько актуальна программа — посмотрите первое занятие. Оно в свободном доступе.
Это не обучение промпт-инжинирингу. Это полноценный технический трек для Python-разработчиков по созданию автономных систем.
Что внутри:
— работа с фреймворками
— реализация мультиагентных паттернов и протоколов
— настройка
—
Для прохождения нужны уверенные знания Python (классы, асинхронность), опыт работы с REST API и понимание того, как работают эмбеддинги.
Записаться на курс
Смотреть первую лекцию
Набор ещё открыт. Если сомневаетесь, потянет ли ваш стек или насколько актуальна программа — посмотрите первое занятие. Оно в свободном доступе.
Это не обучение промпт-инжинирингу. Это полноценный технический трек для Python-разработчиков по созданию автономных систем.
Что внутри:
— работа с фреймворками
LangFlow, LangGraph, AutoGen;— реализация мультиагентных паттернов и протоколов
MCP / A2A;— настройка
RAG и интеграция векторных баз данных;—
AgentOps: мониторинг, оптимизация и безопасность решений.Для прохождения нужны уверенные знания Python (классы, асинхронность), опыт работы с REST API и понимание того, как работают эмбеддинги.
Записаться на курс
Смотреть первую лекцию
😁2
На собеседованиях по Python любят давать задачу: реализовать класс, который ведет себя как встроенный
range. ❌ В чем ошибка?
Чаще всего реализуют класс, который является одновременно и итерируемым объектом (`Iterable`), и итератором (`Iterator`):
class RangeLike:
def __init__(self, start, stop):
self.start, self.stop = start, stop
self.current = start
def __iter__(self):
return self # Возвращаем сам объект
def __next__(self):
if self.current < self.stop:
val = self.current
self.current += 1
return val
raise StopIteration
Проблема: При первом проходе
list(r) состояние self.current доходит до максимума. Так как объект «хранит» свой прогресс внутри себя, второй вызов вернет пустой список. Итераторы в Python — одноразовые.✅ Как сделать правильно?
Нужно разделить контейнер (который хранит границы) и итератор (который хранит текущее состояние обхода). При каждом вызове
__iter__ контейнер должен создавать новый экземпляр итератора:
class RangeIterator:
def __init__(self, start, stop):
self.current, self.stop = start, stop
def __iter__(self): return self
def __next__(self):
if self.current < self.stop:
val = self.current
self.current += 1
return val
raise StopIteration
class RangeLike:
def __init__(self, start, stop):
self.start, self.stop = start, stop
def __iter__(self):
# Каждый раз создаем свежий итератор
return RangeIterator(self.start, self.stop)
В Python существует четкое разделение ролей:
1. Iterable (Итерируемый объект): Это «записная книжка». В ней есть данные, но она не знает, на какой странице вы сейчас читаете. Пример:
list, dict, range.2. Iterator (Итератор): Это «палец», который указывает на текущую строку. У него есть состояние, и он движется только вперед.
Встроенный
range — это именно Iterable. Когда вы запускаете цикл for, Python вызывает iter(range_obj), который генерирует новый «палец»-итератор. Именно поэтому по range можно проходить бесконечное количество раз.💡 Лайфхак: Самый простой способ сделать объект ре-итерируемым в современном Python — использовать генератор внутри
__iter__:
def __iter__(self):
curr = self.start
while curr < self.stop:
yield curr
curr += 1
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4
Python — нативный язык для AI-агентов
Писать скрипты на Python — хорошо. Но писать на Python системы, которые сами принимают решения и исправляют свои ошибки — это стандарт рынка 2026 года.
На вебинаре мы отошли от примитивных примеров. Студенты принесли сложные задачи: от автоматизации рефакторинга легаси-кода до умных ассистентов первой линии поддержки. Преподаватель помогал разбираться с графами в
Мы не просто учим библиотекам, мы помогаем внедрить их в ваш проект.
Что в программе:
👉 глубокое погружение в экосистему
👉 интеграция Python-бэкенда с SOTA-моделями;
👉 работа с API и локальными LLM;
👉 создание кастомных инструментов (Tools) для агентов.
Стать разработчиком AI-агентов
Писать скрипты на Python — хорошо. Но писать на Python системы, которые сами принимают решения и исправляют свои ошибки — это стандарт рынка 2026 года.
На вебинаре мы отошли от примитивных примеров. Студенты принесли сложные задачи: от автоматизации рефакторинга легаси-кода до умных ассистентов первой линии поддержки. Преподаватель помогал разбираться с графами в
LangGraph и настраивать стейт-машины.Мы не просто учим библиотекам, мы помогаем внедрить их в ваш проект.
Что в программе:
👉 глубокое погружение в экосистему
LangChain;👉 интеграция Python-бэкенда с SOTA-моделями;
👉 работа с API и локальными LLM;
👉 создание кастомных инструментов (Tools) для агентов.
Стать разработчиком AI-агентов
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
👍7❤🔥2🔥1
Python 3.14.3 и 3.13.12
Минорные релизы.
Как Python управляет памятью под капотом
Разбор того, что на самом деле происходит с объектами, ссылками и GC.
unihttp — библиотека для работы с API
Попытка упростить жизнь там, где у сервиса нет нормального SDK. Хорошо заходит в микросервисной реальности, где API больше, чем документации.
Plotly для визуализации данных
База по интерактивным графикам на Python. Отличный инструмент для дашбордов и отчётов.
sys.settrace и внутренняя кухня инструментов
Как работают дебаггеры, coverage и профайлеры на уровне интерпретатора.
🚧 Вакансии
Middle+ / Senior Backend Developer (Python + SQL)
от 250 000 до 350 000 ₽
Удалёнка
ML Engineer (LLM)
от 300 000 до 450 000 ₽
Удалёнка
Python-разработчик
200 000 — 300 000 ₽/мес на руки
Офис/Гибрид (Москва)
📍 Навигация: Вакансии • Задачи • Собесы
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
⚙️ CPython Internals: как всё устроено на самом деле
Если вам надоело гадать, как работают объекты, потоки и сборщик мусора, то этот репозиторий — настоящий клад.
CPython Internals — это подробнейший гид по исходному коду Python. Автор буквально препарирует C-код интерпретатора и объясняет, как абстрактные конструкции превращаются в реальные байты.
🔗 Репозиторий здесь: https://clc.to/DO4Ldw
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вам надоело гадать, как работают объекты, потоки и сборщик мусора, то этот репозиторий — настоящий клад.
CPython Internals — это подробнейший гид по исходному коду Python. Автор буквально препарирует C-код интерпретатора и объясняет, как абстрактные конструкции превращаются в реальные байты.
🔗 Репозиторий здесь: https://clc.to/DO4Ldw
📍 Навигация: Вакансии • Задачи • Собесы
#буст
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2❤1
🧐 Функция или класс: почему в Python это часто одно и то же
Вы когда-нибудь задумывались, чем на самом деле являются привычные нам print, str или enumerate? Мы привыкли называть их «функциями», потому что мы их вызываем через круглые скобки.
Но в Python всё немного интереснее.
Попробуйте угадать, что из этого функция, а что — класс:
1. print()
2. str()
3. list()
4. sum()
Проверяем:
1. print —(Функция)
2. str — (Класс!)
3. list —(Тоже класс)
4. sum —(Функция)
В Python и функции, и классы являются callable (вызываемыми) объектами.
Когда мы вызываем функцию, мы запускаем её код, чтобы она что-то сделала или вернула результат.
Когда мы вызываем класс, мы создаем его новый экземпляр (instance).
Например, вызывая str(4), мы технически создаем новый объект класса str. Но в повседневной речи мы почти всегда говорим «функция str». И это абсолютно нормально!
🦆 Утиная типизация в деле
То, что мы называем классы функциями — это классический пример duck typing:
Для нас как для разработчиков часто неважно, как реализован инструмент «под капотом». Если мы можем его вызвать через (), значит для нас это функция.
Даже сама функция type() — это на самом деле класс!
Но согласитесь, фраза «я вызвал класс type, чтобы узнать тип объекта» звучит максимально странно.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Вы когда-нибудь задумывались, чем на самом деле являются привычные нам print, str или enumerate? Мы привыкли называть их «функциями», потому что мы их вызываем через круглые скобки.
Но в Python всё немного интереснее.
Попробуйте угадать, что из этого функция, а что — класс:
1. print()
2. str()
3. list()
4. sum()
Проверяем:
1. print —
2. str — (
3. list —
4. sum —
В Python и функции, и классы являются callable (вызываемыми) объектами.
Когда мы вызываем функцию, мы запускаем её код, чтобы она что-то сделала или вернула результат.
Когда мы вызываем класс, мы создаем его новый экземпляр (instance).
Например, вызывая str(4), мы технически создаем новый объект класса str. Но в повседневной речи мы почти всегда говорим «функция str». И это абсолютно нормально!
🦆 Утиная типизация в деле
То, что мы называем классы функциями — это классический пример duck typing:
«Если это выглядит как утка и крякает как утка, то это утка».
Для нас как для разработчиков часто неважно, как реализован инструмент «под капотом». Если мы можем его вызвать через (), значит для нас это функция.
Даже сама функция type() — это на самом деле класс!
>>> type
<class 'type'>
Но согласитесь, фраза «я вызвал класс type, чтобы узнать тип объекта» звучит максимально странно.
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤8
Шпаргалка_BigO.jpeg
305.2 KB
🔥Компактная шпаргалка по Big-O нотации
Незаменимый инструмент для оценки эффективности алгоритмов
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Незаменимый инструмент для оценки эффективности алгоритмов
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
🛡️ Django (Anti)patterns: как не выстрелить себе в ногу
Руководство Django Antipatterns — это концентрат опыта сообщества о том, как писать чистый и производительный код, избегая типичных ловушек.
В гайде также разобраны ключевые отличия, на которых часто валятся новички: ForeignKey vs OneToOneField и reverse vs redirect.
🔗 Весь список паттернов с примерами: https://clc.to/Fg21Tg
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Руководство Django Antipatterns — это концентрат опыта сообщества о том, как писать чистый и производительный код, избегая типичных ловушек.
В гайде также разобраны ключевые отличия, на которых часто валятся новички: ForeignKey vs OneToOneField и reverse vs redirect.
🔗 Весь список паттернов с примерами: https://clc.to/Fg21Tg
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14👍6❤2🎉2
📸 inline-snapshot: хватит писать тесты вручную
Если вы хоть раз тратили полдня на то, чтобы вручную переписывать огромные JSON-словари в тестах после мелкого изменения в API — этот инструмент для вас.
Команда Pydantic вовсю использует inline-snapshot, чтобы навсегда забыть о ручном обновлении ассертов.
Вместо того чтобы придумывать «ожидаемый результат», вы просто пишете:
Теперь запустите:
Библиотека сама вставит актуальные данные прямо в ваш .py файл! Теперь ваш тест выглядит так:
😎 Продвинутые хаки для профи
1. Динамические данные (dirty-equals)
Если в ответе есть поля, которые меняются при каждом запуске (ID, таймстампы), используйте
2. Нормализация данных
Чтобы тесты не падали из-за того, что объект — это не словарь, а инстанс класса, используйте Pydantic для конвертации:
🔗 Попробовать: https://clc.to/RHb6SA
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вы хоть раз тратили полдня на то, чтобы вручную переписывать огромные JSON-словари в тестах после мелкого изменения в API — этот инструмент для вас.
Команда Pydantic вовсю использует inline-snapshot, чтобы навсегда забыть о ручном обновлении ассертов.
Вместо того чтобы придумывать «ожидаемый результат», вы просто пишете:
from inline_snapshot import snapshot
def test_api():
data = fetch_data()
assert data == snapshot({}) # Сначала оставляем пустым
Теперь запустите:
pytest --inline-snapshot=fix.Библиотека сама вставит актуальные данные прямо в ваш .py файл! Теперь ваш тест выглядит так:
def test_api():
data = fetch_data()
assert data == snapshot({
"id": 123,
"status": "active",
"name": "Pydantic Fan"
})
😎 Продвинутые хаки для профи
1. Динамические данные (dirty-equals)
Если в ответе есть поля, которые меняются при каждом запуске (ID, таймстампы), используйте
dirty-equals. Они идеально работают в связке с инлайн-снимками:
from dirty_equals import IsInt, IsNow
assert user_data == snapshot({
"id": IsInt(), # Снепшот запомнит условие, а не число
"created_at": IsNow(), # Проверит время, близкое к текущему
"status": "active"
})
2. Нормализация данных
Чтобы тесты не падали из-за того, что объект — это не словарь, а инстанс класса, используйте Pydantic для конвертации:
from pydantic import TypeAdapter
_adapter = TypeAdapter(object)
# Конвертируем всё в обычные dict/list перед сравнением
assert _adapter.dump_python(user_model) == snapshot(...)
🔗 Попробовать: https://clc.to/RHb6SA
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
🏗 Что под капотом у Python List
Многие думают, что
1. Как он хранится в памяти
В структуре
—
—
—
2. Магия Append и «переезд» памяти
Python не выделяет память под каждый новый элемент. Он делает это «на вырост» (over-allocation). Если вы создаете пустой список и делаете
Почему
Что такое Resize? Когда лимит (`allocated`) исчерпан, Python ищет в памяти новый кусок побольше и копирует туда все указатели. Это , но из-за редких «переездов» амортизированная сложность остается .
3. Почему в списке может лежать «всё что угодно»
Размер самого списка не зависит от того, лежат там строки или другие списки. Массив
Благодаря этому Python мгновенно находит любой элемент по индексу. Адрес -го элемента вычисляется по простой формуле:
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Многие думают, что
list — это связный список. На самом деле это динамический массив указателей. 1. Как он хранится в памяти
В структуре
PyListObject на языке C список состоит из трех ключевых полей:—
ob_item — указатель на массив, где лежат адреса объектов.—
ob_size — текущее количество элементов (то, что выдает `len()`).—
allocated — сколько ячеек памяти зарезервировано на самом деле.2. Магия Append и «переезд» памяти
Python не выделяет память под каждый новый элемент. Он делает это «на вырост» (over-allocation). Если вы создаете пустой список и делаете
append, Python выделит сразу 4 ячейки. Когда они закончатся — 8, потом 16, 24 и так далее.Почему
append быстрый? В 99% случаев вы просто записываете адрес в уже готовую ячейку ().Что такое Resize? Когда лимит (`allocated`) исчерпан, Python ищет в памяти новый кусок побольше и копирует туда все указатели. Это , но из-за редких «переездов» амортизированная сложность остается .
3. Почему в списке может лежать «всё что угодно»
Размер самого списка не зависит от того, лежат там строки или другие списки. Массив
ob_item хранит только указатели (адреса в памяти), а они всегда фиксированного размера — 8 байт на 64-битной системе.Благодаря этому Python мгновенно находит любой элемент по индексу. Адрес -го элемента вычисляется по простой формуле:
адрес = начало_массива + i * 8 байт.📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5😁1
This media is not supported in your browser
VIEW IN TELEGRAM
🏎 Pyrefly v0.52.0: проверка типов
Если вы когда-нибудь ждали по несколько секунд, пока Mypy или Pyright соизволят подсветить ошибку после сохранения файла, у меня для вас отличные новости. Вышел Pyrefly v0.52.0, и он чертовски быстрый.
Разработчики вдохновлялись скоростью лыжника на зимней Олимпиаде.
Что изменилось:
➡️ Обновление ошибок в 18 раз быстрее: Благодаря умному стримингу диагностики, ошибки в редакторе обновляются почти мгновенно. То, что раньше занимало секунды в больших проектах, теперь укладывается в 200 мс.
➡️ Холодный старт в 3 раза быстрее: Индексация проекта при открытии IDE теперь пролетает незаметно.
➡️ Экономия памяти на 40-60%: Языковой сервер (LSP) стал гораздо меньше «отъедать» оперативки. На тяжелых репозиториях типа PyTorch это буквально спасение для ноутбуков.
🔗 GitHub: https://clc.to/Qc8KBQ
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вы когда-нибудь ждали по несколько секунд, пока Mypy или Pyright соизволят подсветить ошибку после сохранения файла, у меня для вас отличные новости. Вышел Pyrefly v0.52.0, и он чертовски быстрый.
Разработчики вдохновлялись скоростью лыжника на зимней Олимпиаде.
Что изменилось:
🔗 GitHub: https://clc.to/Qc8KBQ
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🤩1
⚡️ t-строки в Python: юзаем PEP 750, не дожидаясь релиза
Пока все только привыкли (или нет) к f-строкам, в Python 3.14 (который выйдет еще не скоро) готовят революцию — Template Strings (t-строки).
Но зачем ждать?
Пакет tstrings позволяет использовать этот синтаксис на версиях Python < 3.14 уже сейчас.
В отличие от f-строк, которые сразу превращаются в готовую строку, t-строки возвращают объект шаблона. Это позволяет «лениво» обрабатывать данные, защищаться от SQL-инъекций или генерировать HTML без риска XSS.
Как это выглядит сейчас (бэкпорт)
Вместо нативного синтаксиса
Что умеет tstrings-backport:
— String interpolation: Полная поддержка выражений внутри
— Debug-режим: Старый добрый
— Спецификаторы: Поддержка форматов вроде
— Многострочность: Можно писать сложные выражения внутри шаблона.
⚠️ Ограничения
Поскольку это бэкпорт, мы не можем добавить новый литерал в синтаксис языка (нельзя написать просто
🔗 Попробовать:
Как думаете, вытеснят ли t-строки привычные f-строки в будущем, или это инструмент только для узких задач типа SQL и HTML?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Пока все только привыкли (или нет) к f-строкам, в Python 3.14 (который выйдет еще не скоро) готовят революцию — Template Strings (t-строки).
Но зачем ждать?
Пакет tstrings позволяет использовать этот синтаксис на версиях Python < 3.14 уже сейчас.
В отличие от f-строк, которые сразу превращаются в готовую строку, t-строки возвращают объект шаблона. Это позволяет «лениво» обрабатывать данные, защищаться от SQL-инъекций или генерировать HTML без риска XSS.
Как это выглядит сейчас (бэкпорт)
Вместо нативного синтаксиса
t"..." мы используем функцию t():
from tstrings import t
name = "World"
tpl = t("Hello, {name}!")
print(tpl.strings) # ("Hello, ", "!") — статические части
print(tpl.interpolations) # (Interpolation(value="World", ...)) — данные
Что умеет tstrings-backport:
— String interpolation: Полная поддержка выражений внутри
{}.— Debug-режим: Старый добрый
{var=}, как в f-строках.— Спецификаторы: Поддержка форматов вроде
:.2f и конвертаций !r, !s.— Многострочность: Можно писать сложные выражения внутри шаблона.
⚠️ Ограничения
Поскольку это бэкпорт, мы не можем добавить новый литерал в синтаксис языка (нельзя написать просто
t"..."`). Приходится оборачивать в функцию `t("..."). Также ошибки проверяются в рантайме, а не при компиляции.🔗 Попробовать:
pip install tstrings-backportКак думаете, вытеснят ли t-строки привычные f-строки в будущем, или это инструмент только для узких задач типа SQL и HTML?
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Собираем фулл-хаус: 3 курса по цене 1
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Даже если вы уже пишете, обновлённый курс по Python поможет систематизировать базу и собрать портфолио. В дополнение — алгоритмы и структуры данных (чтобы проходить собесы в BigTech) и архитектура и шаблоны (чтобы писать поддерживаемый код).
Естественное развитие для питониста — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
Собрать свой пак
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Даже если вы уже пишете, обновлённый курс по Python поможет систематизировать базу и собрать портфолио. В дополнение — алгоритмы и структуры данных (чтобы проходить собесы в BigTech) и архитектура и шаблоны (чтобы писать поддерживаемый код).
Естественное развитие для питониста — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
Собрать свой пак
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Свой Android на ESP32: Обзор MicroPythonOS
На FOSDEM 2026 тут показали проект, который заставил меня по-другому взглянуть на разработку под микроконтроллеры.
Ребята выкатили MicroPythonOS.
Теперь на обычном ESP32 можно запустить систему с интерфейсом, который не стыдно показать людям.
Самое дикое — она целиком написана на MicroPython. Внутри стоит «тонкое» ядро для работы с железом, а всё остальное — это просто приложения.
Из интересного:
⏺️ Тачскрин как на смартфоне: Плавные жесты, виджеты и анимации через LVGL. Это реально ощущается как мини-iOS.
⏺️ Свой App Store: Не надо перепрошивать девайс каждый раз. Зашел в стор, скачал «приложение» (например, камеру или плеер), и оно работает.
⏺️ Обновления по воздуху (OTA): Система сама обновляется через Wi-Fi. Больше никаких проводов и мучений с драйверами.
⏺️ Разработка на компе: Можно запустить симулятор на Windows или Linux, отладить интерфейс и только потом закинуть на железку.
Проект идеально бегает на ESP32-S3 (особенно на платах с готовыми LCD-панелями) и на новом Raspberry Pi RP2350.
Можно придумать кучу применений: от крутых DIY-часов и пультов для умного дома до терминалов оплаты или обучающих гаджетов для детей.
🔗 Потыкать исходники: https://clc.to/SODsfQ
Как вам идея? Стали бы использовать Python для «серьезных» интерфейсов на железках, или всё-таки старый добрый C++ и ручные страдания — наше всё?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
На FOSDEM 2026 тут показали проект, который заставил меня по-другому взглянуть на разработку под микроконтроллеры.
Ребята выкатили MicroPythonOS.
Теперь на обычном ESP32 можно запустить систему с интерфейсом, который не стыдно показать людям.
Самое дикое — она целиком написана на MicroPython. Внутри стоит «тонкое» ядро для работы с железом, а всё остальное — это просто приложения.
Из интересного:
Проект идеально бегает на ESP32-S3 (особенно на платах с готовыми LCD-панелями) и на новом Raspberry Pi RP2350.
Можно придумать кучу применений: от крутых DIY-часов и пультов для умного дома до терминалов оплаты или обучающих гаджетов для детей.
🔗 Потыкать исходники: https://clc.to/SODsfQ
Как вам идея? Стали бы использовать Python для «серьезных» интерфейсов на железках, или всё-таки старый добрый C++ и ручные страдания — наше всё?
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24❤2😢2
🐍 Python 3.15.0 alpha 6: что нового в будущем релизе
Опубликована шестая из восьми запланированных альфа-версий Python 3.15.
Главные изменения и фичи (на текущий момент):
⚡️ Новый профайлер (PEP 799): Включает высокочастотный статистический профайлер с низкими накладными расходами и выделенный пакет для профилирования.
⚡️ Распаковка в генераторах (PEP 798): Теперь можно использовать * и ** для распаковки данных прямо внутри comprehensions.
⚡️ UTF-8 по умолчанию (PEP 686): Python официально переходит на UTF-8 как кодировку по умолчанию.
⚡️ Улучшенный JIT-компилятор: Значительный апгрейд производительности — ускорение на 3-4% на x86-64 Linux и на 7-8% на AArch64 macOS по сравнению со стандартным и tail-calling интерпретаторами соответственно.
⚡️ Типизация (PEP 728): Поддержка TypedDict с типизацией дополнительных (extra) элементов.
⚡️ C API (PEP 782): Новый API PyBytesWriter для создания объектов bytes в Python.
График релизов:
— 3.15.0a7: Следующий релиз ожидается уже 10 марта 2026 года.
— Бета-фаза: Начнется 5 мая 2026 года.
— Release Candidate: Запланирован на 28 июля 2026 года.
🔗 Скачать и почитать подробнее: https://clc.to/XhtfQw
Какая из фич кажется вам самой полезной? Лично я жду возможность распаковки в генераторах — код станет ещё лаконичнее.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Опубликована шестая из восьми запланированных альфа-версий Python 3.15.
Главные изменения и фичи (на текущий момент):
⚡️ Новый профайлер (PEP 799): Включает высокочастотный статистический профайлер с низкими накладными расходами и выделенный пакет для профилирования.
⚡️ Распаковка в генераторах (PEP 798): Теперь можно использовать * и ** для распаковки данных прямо внутри comprehensions.
⚡️ UTF-8 по умолчанию (PEP 686): Python официально переходит на UTF-8 как кодировку по умолчанию.
⚡️ Улучшенный JIT-компилятор: Значительный апгрейд производительности — ускорение на 3-4% на x86-64 Linux и на 7-8% на AArch64 macOS по сравнению со стандартным и tail-calling интерпретаторами соответственно.
⚡️ Типизация (PEP 728): Поддержка TypedDict с типизацией дополнительных (extra) элементов.
⚡️ C API (PEP 782): Новый API PyBytesWriter для создания объектов bytes в Python.
График релизов:
— 3.15.0a7: Следующий релиз ожидается уже 10 марта 2026 года.
— Бета-фаза: Начнется 5 мая 2026 года.
— Release Candidate: Запланирован на 28 июля 2026 года.
🔗 Скачать и почитать подробнее: https://clc.to/XhtfQw
Какая из фич кажется вам самой полезной? Лично я жду возможность распаковки в генераторах — код станет ещё лаконичнее.
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2