⏱️ Справочник по Big-O в Python
Для тех, кто хочет писать не просто работающий, а эффективный код, обновился ультимативный справочник — Python Time & Space Complexity Reference.
Это детальная база данных по сложности операций для версий Python от 3.9 до 3.14.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Для тех, кто хочет писать не просто работающий, а эффективный код, обновился ультимативный справочник — Python Time & Space Complexity Reference.
Это детальная база данных по сложности операций для версий Python от 3.9 до 3.14.
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14💯4🥰1
Пишешь на Python? Пора становиться AI-инженером
Python — родной язык для AI, но одного знания синтаксиса уже мало. Рынок 2026 года требует умения строить отказоустойчивые агентные системы. Мы обновили курс «Разработка AI-агентов», добавив жёсткий инженерный трек.
Твой новый стек:
🔹 LangGraph & Orchestration. Внедряем
🔹 Advanced RAG. Промышленные пайплайны на Python: парсинг, эмбеддинги, векторные БД и улучшение поисковых запросов.
🔹 Backend-инжиниринг. Управление токенами, кэширование, роутинг запросов и предотвращение регрессий.
🔹 Production Ready. Модуль по управлению браузером, интеграция с legacy и юридические аспекты (152-ФЗ).
Стартуй сейчас! Покупаешь курс — сразу получаешь материалы для пре-подготовки.
🎟 ПромокодAgent — скидка 10 000 ₽ (до 28 февраля).
👉 Перейти к инжинирингу
Python — родной язык для AI, но одного знания синтаксиса уже мало. Рынок 2026 года требует умения строить отказоустойчивые агентные системы. Мы обновили курс «Разработка AI-агентов», добавив жёсткий инженерный трек.
Твой новый стек:
🔹 LangGraph & Orchestration. Внедряем
Human-in-the-loop, time-travel для отладки и сложные графы состояний вместо лапши из if-else.
🔹 Advanced RAG. Промышленные пайплайны на Python: парсинг, эмбеддинги, векторные БД и улучшение поисковых запросов.
🔹 Backend-инжиниринг. Управление токенами, кэширование, роутинг запросов и предотвращение регрессий.
🔹 Production Ready. Модуль по управлению браузером, интеграция с legacy и юридические аспекты (152-ФЗ).
Стартуй сейчас! Покупаешь курс — сразу получаешь материалы для пре-подготовки.
🎟 Промокод
👉 Перейти к инжинирингу
👍2🥱1
💡 Библиотека algorithms: реализация классических алгоритмов на Python
Если вы занимаетесь подготовкой к техническим интервью или просто хотите глубже разобраться в структурах данных, этот репозиторий — отличная находка.
Автор собрал ключевые алгоритмы и оформил их максимально чисто: с аннотациями типов, подробными docstrings и оценкой сложности прямо в коде.
Примеры того, что есть «под капотом»:
1. Графы и поиск путей:
Реализованы основные алгоритмы: от поиска в ширину (BFS) до алгоритмов Дейкстры и Беллмана-Форда.
2. Динамическое программирование:
Например, классическая задача о размене монет или нахождении подпоследовательностей.
3. Структуры данных:
Binary Heap (двоичная куча), Trie (префиксное дерево), BST (бинарное дерево поиска).
Как попробовать:
Устанавливается стандартно через pip:
pip install algorithms
🔗 Github
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вы занимаетесь подготовкой к техническим интервью или просто хотите глубже разобраться в структурах данных, этот репозиторий — отличная находка.
Автор собрал ключевые алгоритмы и оформил их максимально чисто: с аннотациями типов, подробными docstrings и оценкой сложности прямо в коде.
Примеры того, что есть «под капотом»:
1. Графы и поиск путей:
Реализованы основные алгоритмы: от поиска в ширину (BFS) до алгоритмов Дейкстры и Беллмана-Форда.
from algorithms.graph import dijkstra
graph = {
"s": {"a": 2, "b": 1},
"a": {"c": 8},
"b": {"d": 2},
"c": {"t": 4},
"d": {"c": 11, "t": 5},
"t": {},
}
print(dijkstra(graph, "s", "t")) # (8, ['s', 'b', 'd', 't'])
2. Динамическое программирование:
Например, классическая задача о размене монет или нахождении подпоследовательностей.
3. Структуры данных:
Binary Heap (двоичная куча), Trie (префиксное дерево), BST (бинарное дерево поиска).
Как попробовать:
Устанавливается стандартно через pip:
pip install algorithms
🔗 Github
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🛡️ pip install = взлом: почему 56% малвари не ждут импорта
Мы привыкли думать, что вредоносный код активируется в момент
Это значит, что простого
Запускать каждый
Чтобы закрыть эту дыру в безопасности цепочки поставок, появился проект KEIP. Это инструмент на базе eBPF, который встраивается в ядро Linux (LSM hooks) и контролирует процесс установки в реальном времени.
Например:
🛠 KEIP отслеживает всё дерево процессов
🛠 Если
🔗 Посмотреть код на GitHub: https://clc.to/DlD3Gg
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Мы привыкли думать, что вредоносный код активируется в момент
import malicious_lib. Но свежие данные по датасету QUT-DV25 (14 тысяч образцов) говорят об обратном: 56% пакетов исполняют полезную нагрузку прямо во время установки.Это значит, что простого
pip install достаточно, чтобы лишиться переменных окружения или получить reverse shell через скрипты setup.py или post-install.Запускать каждый
install в отдельной песочнице — ресурсозатратно. Статические сканеры (вроде Snyk или Safety) часто пасуют перед обфускацией, а агенты рантайма (Falco) обычно следят за приложением уже после деплоя, пропуская фазу сборки.Чтобы закрыть эту дыру в безопасности цепочки поставок, появился проект KEIP. Это инструмент на базе eBPF, который встраивается в ядро Linux (LSM hooks) и контролирует процесс установки в реальном времени.
Например:
🛠 KEIP отслеживает всё дерево процессов
pip.🛠 Если
setup.py или любой его дочерний процесс пытается достучаться до сервера, которого нет в белом списке (читай: любого сервера, кроме PyPI), инструмент мгновенно «убивает» всю группу процессов.🔗 Посмотреть код на GitHub: https://clc.to/DlD3Gg
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
Отличная шпаргалка по Python. Она наглядно показывает, как превратить громоздкие циклы в элегантные однострочники.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍9
От скриптов на коленке — к enterprise-агентам на Python
Накидать бота на
Мы пересобрали курс по AI-агентам для Python-разработчиков под реалии 2026 года. Это глубокий инженерный гайд, где мы учим превращать нестабильные скрипты в надёжные бэкенд-решения с жёстким контролем ресурсов.
Что мы разберём на практике:
— хардкорный RAG: обработка сырых PDF, тюнинг эмбеддингов под промышленные объёмы;
— продвинутый
— профилирование LLM: трассировка ошибок, логирование и динамическое переключение моделей;
— автоматизация: пишем агентов, которые сами управляют браузером и legacy-системами;
— безопасный деплой: как развернуть архитектуру без нарушения 152-ФЗ.
До 28 февраля по промокоду
Плюс работает акция «3 курса по цене 1» — забирайте два дополнительных направления бесплатно.
Стать AI-инженером
Накидать бота на
LangChain за вечер может каждый. Но когда выкатываешь это в продакшн, начинаются проблемы: система зацикливается, память течёт, а API-ключи сжигают бюджет.Мы пересобрали курс по AI-агентам для Python-разработчиков под реалии 2026 года. Это глубокий инженерный гайд, где мы учим превращать нестабильные скрипты в надёжные бэкенд-решения с жёстким контролем ресурсов.
Что мы разберём на практике:
— хардкорный RAG: обработка сырых PDF, тюнинг эмбеддингов под промышленные объёмы;
— продвинутый
LangGraph: маршрутизаторы, time-travel, прерывания и human-in-the-loop;— профилирование LLM: трассировка ошибок, логирование и динамическое переключение моделей;
— автоматизация: пишем агентов, которые сами управляют браузером и legacy-системами;
— безопасный деплой: как развернуть архитектуру без нарушения 152-ФЗ.
До 28 февраля по промокоду
Agent доступна скидка 10 000 рублей.Плюс работает акция «3 курса по цене 1» — забирайте два дополнительных направления бесплатно.
Стать AI-инженером
❤1
🛠 Шпаргалка: как писать тесты, которые не бесят
Главная проблема тестов — хрупкость. Это когда вы просто переименовали функцию или разбили один метод на два (не меняя логику), а тесты упали. Значит, вы тестировали детали реализации, а не поведение.
Solitary (Одиночные): Изолируем юнит, заменяя всё вокруг моками.
❌ Минус: Тест намертво привязан к структуре кода. Изменили вызов — тест упал.
✅ Когда юзать: Только для экстремально сложных алгоритмов с кучей граничных кейсов.
Sociable (Общительные): Тестируем юнит вместе с его реальными зависимостями (если они не лезут в БД/сеть).
✅ Плюс: Высокая устойчивость к рефакторингу. Код внутри меняется — тест остается зеленым.
💡 Правило: Тестируй «что» делает код (результат), а не «как» (какие методы дергает).
Что и чем тестировать:
— Бизнес-логика (условия, расчеты, правила): Sociable Unit (минимум моков).
— Координация (код, который дергает БД, шлет письма, вызывает API): Интеграционный / Сервисный тест.
— Тривиальный код (простые геттеры, проброс параметров): Не тестировать отдельно. Он автоматически покроется интеграционными тестами.
Три правила «здорового» теста:
— Защита от багов: Находит ли тест реальную ошибку в логике?
— Устойчивость к рефакторингу: Могу ли я переписать код с нуля, сохранив результат, чтобы тест не упал?
— Простота поддержки: Насколько легко понять, что сломалось, без дебаггера?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Главная проблема тестов — хрупкость. Это когда вы просто переименовали функцию или разбили один метод на два (не меняя логику), а тесты упали. Значит, вы тестировали детали реализации, а не поведение.
Solitary (Одиночные): Изолируем юнит, заменяя всё вокруг моками.
❌ Минус: Тест намертво привязан к структуре кода. Изменили вызов — тест упал.
✅ Когда юзать: Только для экстремально сложных алгоритмов с кучей граничных кейсов.
Sociable (Общительные): Тестируем юнит вместе с его реальными зависимостями (если они не лезут в БД/сеть).
✅ Плюс: Высокая устойчивость к рефакторингу. Код внутри меняется — тест остается зеленым.
💡 Правило: Тестируй «что» делает код (результат), а не «как» (какие методы дергает).
Что и чем тестировать:
— Бизнес-логика (условия, расчеты, правила): Sociable Unit (минимум моков).
— Координация (код, который дергает БД, шлет письма, вызывает API): Интеграционный / Сервисный тест.
— Тривиальный код (простые геттеры, проброс параметров): Не тестировать отдельно. Он автоматически покроется интеграционными тестами.
Три правила «здорового» теста:
— Защита от багов: Находит ли тест реальную ошибку в логике?
— Устойчивость к рефакторингу: Могу ли я переписать код с нуля, сохранив результат, чтобы тест не упал?
— Простота поддержки: Насколько легко понять, что сломалось, без дебаггера?
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🤩1
🐍 Переходим с простых скриптов на Python к сложным AI-агентам промышленного уровня
В 2026 году мало просто вызвать
Мы полностью обновили курс по AI-агентам, превратив его в руководство по превращению
📚 В обновлённой программе:
— продвинутый
— промышленный
— экономика агентов: автоматическое переключение между
— инжиниринг: логирование, трассировка и работа в рамках
Начните подготовку сразу после оплаты — вы получите доступ к базе знаний для плавного старта.
⏳ Специальные условия до 28 февраля:
— введите промокод
— участвуйте в **акции «3 курса по цене 1» — выберите два любых курса в дополнение к основному.
👉 Получить доступ к курсу и подаркам
В 2026 году мало просто вызвать
openai.chat.completions. Настоящий продакшн требует управления состояниями через LangGraph и жёсткого контроля за token usage.Мы полностью обновили курс по AI-агентам, превратив его в руководство по превращению
Python-кода в стабильную бизнес-систему.📚 В обновлённой программе:
— продвинутый
LangGraph: реализация human-in-the-loop и механизмов отката состояний;— промышленный
RAG: обработка разнородных документов и оптимизация семантического поиска;— экономика агентов: автоматическое переключение между
LLM для оптимизации затрат;— инжиниринг: логирование, трассировка и работа в рамках
152-ФЗ.Начните подготовку сразу после оплаты — вы получите доступ к базе знаний для плавного старта.
⏳ Специальные условия до 28 февраля:
— введите промокод
Agent для получения скидки 10 000 рублей**; — участвуйте в **акции «3 курса по цене 1» — выберите два любых курса в дополнение к основному.
👉 Получить доступ к курсу и подаркам
❤2
В мире Python-типизации долгое время была «серая зона». Если вы хотели передать в функцию класс, вы писали
type[T]. Но как только дело доходило до сложных штук вроде int | str или list[int], тайп-чекеры начинали ругаться.⚡️ Принятый PEP 747 вводит `TypeForm[T]`, и это именно то, чего не хватало библиотекам вроде Pydantic и FastAPI.
Раньше
type[int] работал, потому что int — это класс. Но list[int] или int | str — это не классы, а специальные объекты типов.type[T] выдавала ошибку в Mypy или Pyright. Разработчикам приходилось лепить Any, убивая всю пользу от статической проверки.Теперь мы можем явно сказать: «Эта функция принимает форму типа»:
from typing import TypeForm
def trycast[T](target_type: TypeForm[T], value: object) -> T | None:
...
# Теперь это валидный код для тайп-чекера:
trycast(list[int], ["1", "2"]) # Вернет тип list[int] | None
trycast(int | str, 42) # Вернет тип int | str | None
Что это дает на практике:
Фишка появится в Python 3.15, но через
typing_extensions её можно будет использовать гораздо раньше.🔗 Подробности: https://clc.to/kX2xMg
А вы часто сталкивались с тем, что `type[T]` не хватало для ваших задач? Как выкручивались — через `Any` или просто игнорировали ошибки?
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
📚Напоминаем про наш полный курс «Самоучитель по 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
👍4👏1
PEP 747 принят — теперь можно типизировать сами аннотации
Типизация выходит на новый уровень: теперь можно описывать типы… для типов. Python всё увереннее движется в сторону статического анализа, и граница между «динамичным» и «строго типизированным» языком продолжает размываться.
Perl и R возвращаются, Python теряет 19% популярности?
Громкий заголовок, но паниковать рано. Рейтинги любят колебания, а экосистема Python по-прежнему гигантская. Хотя немного здоровой конкуренции языку точно не повредит.
LEGB и область видимости — неочевидные грабли
Local, Enclosing, Global, Built-in — правило простое, а баги из-за него иногда очень нет. Хороший разбор с примерами.
mmap в Python — быстрый I/O через отображение в память
Отличный инструмент для работы с большими файлами и бинарными форматами.
Шаблонные строки в Python 3.14
Больше контроля над интерполяцией данных — меньше сюрпризов в runtime.
ООП в Python за одну статью
Компактный, но системный разбор от базового класса до архитектурных принципов.
📍 Навигация: Вакансии • Задачи • Собесы
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27⚡1❤1😢1
⚡️ uv обошел Poetry по загрузкам
Это официально: согласно свежей статистике загрузок с PyPI, инструмент uv от команды Astral (авторов Ruff) обогнал Poetry.
Если вы всё еще используете Poetry, вот почему весь мир переходит на uv:
1️⃣ Безумная скорость: uv написан на Rust. Там, где Poetry тратит 10–15 секунд на разрешение зависимостей, uv справляется за 0.5 секунды. Разница не в процентах, а в десятки раз.
2️⃣ Всё в одном: uv заменяет собой целую пачку инструментов:
3️⃣ Глобальный кэш: uv не копирует пакеты в каждый проект. Он использует хардлинки, экономя гигабайты места на диске.
4️⃣ Нативность: uv максимально следует стандартам (PEP). Он не пытается «изобрести свой велосипед», а делает стандартные инструменты лучше.
Короткий чек-лист по переходу:
➕ Было:
➕ Было:
➕ Было:
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Это официально: согласно свежей статистике загрузок с PyPI, инструмент uv от команды Astral (авторов Ruff) обогнал Poetry.
Если вы всё еще используете Poetry, вот почему весь мир переходит на uv:
pip, poetry, pyenv, pipx и virtualenv. Один бинарник, который умеет всё — от установки версии Python до управления воркспейсами.Короткий чек-лист по переходу:
poetry install -> Стало: uv syncpoetry add requests -> Стало: uv add requestspoetry run python main.py -> Стало: uv run main.py📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26⚡4👾4🤔1😢1
🚀 Starlette наконец-то дозрел до версии 1.0
Если вы пишете на Python, то Starlette — это «серый кардинал» вашего стека. Вы можете не использовать его напрямую, но он крутится под капотом у FastAPI, Litestar и еще десятка фреймворков.
Том Кристи создал этот проект почти 8 лет назад (в 2018-м), и всё это время мы жили на версиях 0.x. И вот, наконец, вышел 1.0.0rc1.
Дело не только в красивой цифре. В 2026 году Starlette стал критической деталью в мире ИИ.
✔️ Он — база для Python MCP SDK (Model Context Protocol). Если вы строите агентов, которые должны общаться с внешним миром, вы скорее всего используете Starlette.
✔️ 10 миллионов скачиваний в день. Это буквально фундамент современного асинхронного веба.
В новой версии разработчики вырезали всё старое и неактуальное (deprecated), что копилось годами, и зафиксировали API.
👀 Если у вас FastAPI, просто подождите — обновление прилетит само как зависимость. Если же вы используете Starlette напрямую для своих микросервисов, самое время прогнать тесты на 1.0.0rc1.
🔗 Release Notes: https://clc.to/RevWVg
А вы когда-нибудь пробовали писать на чистом Starlette без FastAPI? Или считаете, что без Pydantic-валидации в вебе делать нечего?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вы пишете на Python, то Starlette — это «серый кардинал» вашего стека. Вы можете не использовать его напрямую, но он крутится под капотом у FastAPI, Litestar и еще десятка фреймворков.
Том Кристи создал этот проект почти 8 лет назад (в 2018-м), и всё это время мы жили на версиях 0.x. И вот, наконец, вышел 1.0.0rc1.
Дело не только в красивой цифре. В 2026 году Starlette стал критической деталью в мире ИИ.
В новой версии разработчики вырезали всё старое и неактуальное (deprecated), что копилось годами, и зафиксировали API.
🔗 Release Notes: https://clc.to/RevWVg
А вы когда-нибудь пробовали писать на чистом Starlette без FastAPI? Или считаете, что без Pydantic-валидации в вебе делать нечего?
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤1
Media is too big
VIEW IN TELEGRAM
🎨 Ast-visualizer превращает код в карту и графики
Проект Ast-visualizer предлагает перестать гадать, где в коде «тонкие места», и начать их видеть. Инструмент анализирует AST (абстрактное синтаксическое дерево) вашего проекта и строит на его основе наглядные отчеты.
Что умеет инструмент:
🔝 Интерактивные AST-деревья: Визуализация структуры отдельных файлов с цветовой подсветкой.
🔝 Radial View: Радиальный вид дерева. Позволяет одним взглядом понять, где в файле спрятаны самые «толстые» функции.
🔝 Тепловая карта сложности: Сложные участки кода (по Мейкейбу) подсвечиваются красным прямо в дереве.
🔝 Граф зависимостей: Показывает, как файлы связаны через импорты. Незаменимая вещь для поиска круговых зависимостей.
🔝 Dashboard поддержки: Рассчитывает индекс поддерживаемости (0–100) и выдает ТОП-5 кандидатов на рефакторинг.
Большинство AST-эксплореров просто рисуют дерево одного файла. Ast-visualizer идет дальше: он интерпретирует данные, объединяет их в масштабе всего репозитория и визуализирует в разных форматах — от радиальных схем до графиков сложности по строкам.
🔗 Попробовать на своем коде: https://clc.to/yV4wag
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Проект Ast-visualizer предлагает перестать гадать, где в коде «тонкие места», и начать их видеть. Инструмент анализирует AST (абстрактное синтаксическое дерево) вашего проекта и строит на его основе наглядные отчеты.
Что умеет инструмент:
🔝 Интерактивные AST-деревья: Визуализация структуры отдельных файлов с цветовой подсветкой.
🔝 Radial View: Радиальный вид дерева. Позволяет одним взглядом понять, где в файле спрятаны самые «толстые» функции.
🔝 Тепловая карта сложности: Сложные участки кода (по Мейкейбу) подсвечиваются красным прямо в дереве.
🔝 Граф зависимостей: Показывает, как файлы связаны через импорты. Незаменимая вещь для поиска круговых зависимостей.
🔝 Dashboard поддержки: Рассчитывает индекс поддерживаемости (0–100) и выдает ТОП-5 кандидатов на рефакторинг.
Большинство AST-эксплореров просто рисуют дерево одного файла. Ast-visualizer идет дальше: он интерпретирует данные, объединяет их в масштабе всего репозитория и визуализирует в разных форматах — от радиальных схем до графиков сложности по строкам.
🔗 Попробовать на своем коде: https://clc.to/yV4wag
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤩2🤔1
🌍 icu4py: правильная работа с текстом и локализацией
Если вы хоть раз делали интернационализацию (i18n) в Python, то знаете, какая это боль.
icu4py — современная библиотека-обертку, которая делает работу с Unicode приятной:
1. MessageFormat
Он сам разруливает правила множественного числа (plurals), которые в каждом языке свои:
— English: 0 files, 1 file, 5 files.
— French: 0 fichier (единственное число), 1 fichier, 2 fichiers.
С
2. Boundary Analysis
Разбить текст на предложения — это не просто поиск точки. Нужно учитывать кавычки, сокращения и специфику языка.
Класс
🔗 Установка:
📂 GitHub: https://clc.to/KdjSUQ
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если вы хоть раз делали интернационализацию (i18n) в Python, то знаете, какая это боль.
Библиотека ICU (International Components for Unicode) — это мировой стандарт (её используют Chrome, macOS и VS Code), но в Python с ней всегда было сложно: либо древний неудобный API, либо мучения с установкой системных зависимостей.
icu4py — современная библиотека-обертку, которая делает работу с Unicode приятной:
1. MessageFormat
Он сам разруливает правила множественного числа (plurals), которые в каждом языке свои:
— English: 0 files, 1 file, 5 files.
— French: 0 fichier (единственное число), 1 fichier, 2 fichiers.
С
icu4py вам не нужно писать if count == 1 для каждого языка — библиотека сама знает стандарты Unicode для любой локали.2. Boundary Analysis
Разбить текст на предложения — это не просто поиск точки. Нужно учитывать кавычки, сокращения и специфику языка.
Класс
SentenceBreaker понимает контекст и не разрывает предложение на «т. д.» или внутри цитаты.🔗 Установка:
pip install icu4py📂 GitHub: https://clc.to/KdjSUQ
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
За год мы провели три потока курса по ИИ-агентам, а теперь запускаем масштабное обновление!
В новом, четвёртом потоке мы учли все пожелания студентов, добавили большой блок про
В программе:
— практика в
— профессиональная оркестрация в
— продвинутый
— контроль экономики агентов: маршрутизация и кеширование запросов;
— развёртывание локальных опенсорс-моделей с соблюдением 152-ФЗ.
В честь старта продаж действует спецпредложение: 3 курса по цене 1 (два дополнительных курса в подарок).
Доступ к материалам для предварительной подготовки откроется сразу после оплаты.
По промокоду
👉 Присоединиться к четвёртому потоку и вывести агентов в прод
В новом, четвёртом потоке мы учли все пожелания студентов, добавили большой блок про
AgentOps и сместили фокус с базовых концепций на суровый инжиниринг. Написать пет-проект на Python легко, а вот сделать так, чтобы он не сливал бюджет на токены, не падал при нестандартных запросах и работал в проде — задача со звёздочкой.В программе:
— практика в
Jupyter: структурный вывод и типизация PydanticAI;— профессиональная оркестрация в
LangGraph и другая парадигма AutoGen;— продвинутый
RAG для продакшена и парсинг сложных документов;— контроль экономики агентов: маршрутизация и кеширование запросов;
— развёртывание локальных опенсорс-моделей с соблюдением 152-ФЗ.
В честь старта продаж действует спецпредложение: 3 курса по цене 1 (два дополнительных курса в подарок).
Доступ к материалам для предварительной подготовки откроется сразу после оплаты.
По промокоду
Agent забирайте скидку 10 000 ₽ (89 000 ₽ вместо 99 000 ₽). Успейте занять место до 28 февраля!👉 Присоединиться к четвёртому потоку и вывести агентов в прод
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28💯7🌚1
🛠 cattrs: де-сериализация в Python
cattrs берет на себя всю грязную работу по превращению «сырых» словарей в красивые структурированные объекты и обратно. При этом ваши модели остаются чистыми — в них нет ни строчки кода, отвечающего за JSON.
Из главного:
1. Разделение ответственности: Ваши классы данных — это просто данные. Логика преобразования живет отдельно в объекте Converter.
2. Поддержка всего и вся: Из коробки работают attrs, dataclasses, TypedDict, NewType, сложные Union и даже новые Type Aliases из Python 3.12.
3. Скорость: cattrs генерирует оптимизированный код для преобразования «на лету».
💻 Пример в три строки
🔗 Документация
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
cattrs берет на себя всю грязную работу по превращению «сырых» словарей в красивые структурированные объекты и обратно. При этом ваши модели остаются чистыми — в них нет ни строчки кода, отвечающего за JSON.
Из главного:
1. Разделение ответственности: Ваши классы данных — это просто данные. Логика преобразования живет отдельно в объекте Converter.
2. Поддержка всего и вся: Из коробки работают attrs, dataclasses, TypedDict, NewType, сложные Union и даже новые Type Aliases из Python 3.12.
3. Скорость: cattrs генерирует оптимизированный код для преобразования «на лету».
💻 Пример в три строки
from attrs import define
from cattrs import structure, unstructure
@define
class User:
id: int
tags: list[str]
# Превращаем словарь в объект (Structuring)
user = structure({'id': 1, 'tags': ['python', 'cattrs']}, User)
# User(id=1, tags=['python', 'cattrs'])
# Превращаем объект обратно в словарь (Unstructuring)
dict_data = unstructure(user)
🔗 Документация
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
🛠 Проблема: неопределенность возвращаемого типа
Представьте функцию, которая генерирует конфиг. Если действие —
Для Mypy такая функция возвращает «или словарь, или список». Если вы попытаетесь использовать результат как чистый
✨ Решение: использование @overload
Декоратор
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Представьте функцию, которая генерирует конфиг. Если действие —
DELETE, она возвращает список путей (`list[str]`), в остальных случаях — словарь (`dict`).
def generate_config(context: dict, action: Action) -> dict | list[str]:
...
Для Mypy такая функция возвращает «или словарь, или список». Если вы попытаетесь использовать результат как чистый
dict, тайп-чекер выдаст ошибку, даже если вы уверены в типе.✨ Решение: использование @overload
Декоратор
@overload позволяет описать конкретные комбинации входных и выходных данных:
from typing import overload, Literal
@overload
def generate_config(context: dict, action: Literal[Action.DELETE]) -> list[str]: ...
@overload
def generate_config(context: dict, action: Literal[Action.MODIFY, Action.ADD]) -> dict: ...
def generate_config(context: dict, action: Action) -> dict | list[str]:
# Реальная логика здесь
...
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3