Чтобы превратить вызовы LLM в понятные и компонуемые workflows, не нужен огромный фреймворк.
PocketFlow — минималистичный Python-фреймворк для разработчиков, которые создают агентов, RAG-пайплайны и другие LLM-приложения.
Он позволяет проектировать логику приложения в виде графа, соединяя небольшие узлы, которые используют общее состояние и направляют выполнение через именованные действия.
Ключевые возможности:
• Графовые flows — можно объединять узлы в цепочки, создавать ветвления по действиям, циклы и вложенные flows.
• Узлы из трёх этапов — подготовка, выполнение и постобработка разделены и работают с общим состоянием.
• Настройка повторных попыток — можно задать количество ретраев, задержки между ними и fallback-поведение при ошибках выполнения.
• Batch- и async-режимы — обработка списков элементов, повторный запуск flows с параметрами и параллельное выполнение асинхронных batch-задач.
• Практический cookbook — примеры агентов, RAG, workflows, стриминга и приложений с human-in-the-loop.
Проект с открытым исходным кодом и распространяется по лицензии MIT.
✈️ Python Ninja
PocketFlow — минималистичный Python-фреймворк для разработчиков, которые создают агентов, RAG-пайплайны и другие LLM-приложения.
Он позволяет проектировать логику приложения в виде графа, соединяя небольшие узлы, которые используют общее состояние и направляют выполнение через именованные действия.
Ключевые возможности:
• Графовые flows — можно объединять узлы в цепочки, создавать ветвления по действиям, циклы и вложенные flows.
• Узлы из трёх этапов — подготовка, выполнение и постобработка разделены и работают с общим состоянием.
• Настройка повторных попыток — можно задать количество ретраев, задержки между ними и fallback-поведение при ошибках выполнения.
• Batch- и async-режимы — обработка списков элементов, повторный запуск flows с параметрами и параллельное выполнение асинхронных batch-задач.
• Практический cookbook — примеры агентов, RAG, workflows, стриминга и приложений с human-in-the-loop.
Проект с открытым исходным кодом и распространяется по лицензии MIT.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Этот проект представляет собой полный курс по Python — от нулевого уровня до backend-разработки, который создавался в прямом эфире на Twitch.
Покрывает основы Python, продвинутые темы и разработку backend-приложений.
Включает создание REST API с аутентификацией и интеграцией с базой данных.
Весь код организован по директориям:
Видео-уроки содержат таймкоды для каждой темы.
✈️ Python Ninja
Покрывает основы Python, продвинутые темы и разработку backend-приложений.
Включает создание REST API с аутентификацией и интеграцией с базой данных.
Весь код организован по директориям:
Basic, Intermediate и Backend.Видео-уроки содержат таймкоды для каждой темы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Готовимся к собеседованию позиции Middle и Senior
Отличный комплект для подготовки к техническим интервью по Python.
Первый материал - большой обзор на Хабре с вопросами, которые реально задаются на собеседованиях: Python, алгоритмы, HTTP, Git, SQL, Django, Flask, многопоточность, тестирование и др.
Второй ресурс: GitHub-репозиторий с подробными ответами и объяснениями по большинству этих тем. Вместе они станут отличной базой для подготовки к интервью уровня Middle и Senior.
✈ Python Ninja
Отличный комплект для подготовки к техническим интервью по Python.
Первый материал - большой обзор на Хабре с вопросами, которые реально задаются на собеседованиях: Python, алгоритмы, HTTP, Git, SQL, Django, Flask, многопоточность, тестирование и др.
Второй ресурс: GitHub-репозиторий с подробными ответами и объяснениями по большинству этих тем. Вместе они станут отличной базой для подготовки к интервью уровня Middle и Senior.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Бесплатный гайд по GitHub новичкам
Освоить GitHub - один из первых шагов в карьере разработчика. В официальном руководстве собраны ключевые темы: от создания репозитория до командной работы через Pull Request.
Хороший старт для студентов, джунов и всех, кто хочет программировать❤️ ❤️
☝️ Ссылка источник
✈ Python Ninja
Освоить GitHub - один из первых шагов в карьере разработчика. В официальном руководстве собраны ключевые темы: от создания репозитория до командной работы через Pull Request.
Хороший старт для студентов, джунов и всех, кто хочет программировать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Бесплатная книга «Python for Data Analysis третье издание»
Современный и практичный гид по работе с данными на Python, идеально подходящий для аналитиков, которые только начинают свой путь, и разработчиков, стремящихся освоить науку о данных через код
Книга включает живые примеры, реальные кейсы и достаточное внимание к практическим нюансам работы с данными. Материалы и примеры доступны на GitHub
Ставь лайкос и сохраняй в закладки❤️
☝️ Ссылка источник
✈️ Python Ninja
Современный и практичный гид по работе с данными на Python, идеально подходящий для аналитиков, которые только начинают свой путь, и разработчиков, стремящихся освоить науку о данных через код
Книга включает живые примеры, реальные кейсы и достаточное внимание к практическим нюансам работы с данными. Материалы и примеры доступны на GitHub
Ставь лайкос и сохраняй в закладки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Python шпаргалка: работа со списками
Полезная подборка примеров: от базовых методов (append, pop, sort) до встроенных функций (sum, max, enumerate, map) с пояснениями
Отличный справочник если часто работаешь со списками и хочется быстро вспомнить нужный приём
Ставь лайк если полезно❤️
✈️ Python Ninja
Полезная подборка примеров: от базовых методов (append, pop, sort) до встроенных функций (sum, max, enumerate, map) с пояснениями
Отличный справочник если часто работаешь со списками и хочется быстро вспомнить нужный приём
Ставь лайк если полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Нашли отличный репозиторий вката в Python и машинное обучение с нуля
На GitHub собрана масштабная база материалов по Python: от базового синтаксиса до анализа данных и ML-проектов. Тут есть всё: объяснения основ, куча примеров, задачки и даже мини-проекты по машинному обучению
Отличный вариант самостоятельного обучения, прокачки навыков и первого знакомства с ML-инструментами
Лайк на базу👦
☝️ Ссылка источник
✈️ Python Ninja
На GitHub собрана масштабная база материалов по Python: от базового синтаксиса до анализа данных и ML-проектов. Тут есть всё: объяснения основ, куча примеров, задачки и даже мини-проекты по машинному обучению
Отличный вариант самостоятельного обучения, прокачки навыков и первого знакомства с ML-инструментами
Лайк на базу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Если вы новичок в Python остановитесь и внимательно посмотрите 👇
НИКОГДА не изменяйте список во время итерации по нему
Когда вы изменяете список в процессе обхода, итератор «теряется». Он не понимает, что список изменился прямо во время его работы.
Например, этот код работает неправильно:
Мы используем метод remove(), чтобы удалить все двойки из списка. Но, как видно из результата, одна 2 всё равно остаётся.
Почему так происходит? Когда вы удаляете элемент из списка, все элементы сдвигаются влево. Но цикл продолжает идти вперёд по индексам. В итоге происходит следующее:
Правильный способ итерироваться по копии списка:
Когда вы проходите по копии (поверхностной копии), индексы исходного списка не «сбиваются».
🔥 Ещё лучше использовать генератор списка (list comprehension):
👑 Запомните: никогда не изменяйте список (или любую другую коллекцию) во время прямой итерации по нему. Итератор не умеет корректно работать со структурными изменениями:
Это плохая практика
✈️ Python Ninja
НИКОГДА не изменяйте список во время итерации по нему
Когда вы изменяете список в процессе обхода, итератор «теряется». Он не понимает, что список изменился прямо во время его работы.
Например, этот код работает неправильно:
items = [1, 2, 2, 3, 4]
for item in items:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 2, 3, 4]
Мы используем метод remove(), чтобы удалить все двойки из списка. Но, как видно из результата, одна 2 всё равно остаётся.
Почему так происходит? Когда вы удаляете элемент из списка, все элементы сдвигаются влево. Но цикл продолжает идти вперёд по индексам. В итоге происходит следующее:
✅ первая 2 находится и удаляется✅ вторая 2 сдвигается на её место✅ цикл переходит к следующему индексу✅ и эта 2 просто пропускается
Правильный способ итерироваться по копии списка:
for item in items[:]:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 3, 4]
Когда вы проходите по копии (поверхностной копии), индексы исходного списка не «сбиваются».
items = [x for x in items if x != 2]
✅ он может пропускать элементы✅ обрабатывать один и тот же элемент дважды✅ или даже вызывать ошибку RuntimeError (например, в словарях)
Это плохая практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Подборка ресурсов по MLOps для тех, кто хочет разобраться, как ML-системы доводят до production.
https://github.com/visenger/awesome-mlops
👉 @PythonPortal
https://github.com/visenger/awesome-mlops
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Совет по Python: Использование словаря в качестве оператора match-switch
Одна из интересных особенностей словарей — их можно использовать как операторы
В приведённом примере словарь
✈️ Python Ninja
Одна из интересных особенностей словарей — их можно использовать как операторы
switch. Этот подход удобен в простых сценариях принятия решений, где нужно сопоставить выбор с определённым действием или значениемВ приведённом примере словарь
switch_dict сопоставляет дни недели с задачами. Если день недели существует в словаре как ключ, возвращается соответствующая задача. Если день не найден, используется значение по умолчанию "invalid option", переданное в метод get(). Такой подход особенно полезен, когда у вас ограниченное количество вариантов и нужно обрабатывать их эффективноPlease open Telegram to view this post
VIEW IN TELEGRAM
❤3
SQL в Python: Сравнительное руководство по работе с данными
Знаешь SQL и хочешь понять, как делать то же самое в Pandas? Это руководство покажет как привычные SQL-запросы выглядят в мире Python👊
✈️ Python Ninja
Знаешь SQL и хочешь понять, как делать то же самое в Pandas? Это руководство покажет как привычные SQL-запросы выглядят в мире Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Полезная тулза «Port Kill» приложение для быстрого управления процессами
Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах
Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу
Сохраняем пригодится❓
☝️ Ссылка источник
✈️ Python Ninja
Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах
Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу
Сохраняем пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Упростить логирование в Python можно с помощью Loguru 🪵
Стандартный модуль
Loguru делает логирование по ощущениям почти таким же простым, как
timestamps;
уровни логов;
запись в файлы;
rotation;
retention;
подробный вывод исключений.
В статье сравниваются оба подхода и показывается, как Loguru позволяет сделать типичные задачи логирования короче и читабельнее.
✈️ Python Ninja
Стандартный модуль
logging умеет почти всё, но даже базовая настройка часто требует handlers, format strings и дополнительного конфигурационного кода.Loguru делает логирование по ощущениям почти таким же простым, как
print(), при этом поддерживает:timestamps;
уровни логов;
запись в файлы;
rotation;
retention;
подробный вывод исключений.
В статье сравниваются оба подхода и показывается, как Loguru позволяет сделать типичные задачи логирования короче и читабельнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Фатальная ошибка в pandas
Такой код не фильтрует значения
В
Поэтому такой фильтр не удаляет все пропущенные значения.
Вместо этого используйте:
или
Для проверки пропущенных значений в
✈️ Python Ninja
Такой код не фильтрует значения
NULL или None:df[df['user_id'] != None]
В
pandas пропущенные значения представлены как NaN или None, но оператор != работает с ними не так, как многие ожидают.Поэтому такой фильтр не удаляет все пропущенные значения.
Вместо этого используйте:
df[df['user_id'].notna()]
или
df.dropna(subset=['user_id'])
Для проверки пропущенных значений в
pandas всегда используйте методы isna() и notna(), а не операторы == или !=.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
В Python обычный 🐍
Например:
Если нужно сохранить все элементы, есть
Недостающие значения он по умолчанию заполняет
Небольшая штука, но полезно помнить, когда объединяете данные из источников разной длины.
✈️ Python Ninja
zip() может незаметно «съесть» часть данных, если списки разной длины. Например:
x = [1, 2, 3, 4, 5]
y = ['a', 'b', 'c']
list(zip(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c')]
zip() останавливается, как только заканчивается самый короткий список — поэтому 4 и 5 просто не попадут в результат.Если нужно сохранить все элементы, есть
itertools.zip_longest():import itertools
list(itertools.zip_longest(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, None), (5, None)]
Недостающие значения он по умолчанию заполняет
None.Небольшая штука, но полезно помнить, когда объединяете данные из источников разной длины.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Совет по Python
Возвращаем несколько значений из функции с помощью
По умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать
Пример:
Вывод:
Преимущества:
Четкая структура: поля
Доступ к значениям по именам (
Улучшает читаемость и поддерживаемость кода
✈️ Python Ninja
Возвращаем несколько значений из функции с помощью
namedtupleПо умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать
namedtuple из модуля collections. Это позволяет задать структуру возвращаемых значений, делая код более читаемым и понятнымПример:
from collections import namedtuple
def multiple_values():
MyTuple = namedtuple("MyTuple", ["name", "age", "car"])
name = "Mark"
age = 21
car = "Ford"
return MyTuple(name, age, car)
# Использование функции
result = multiple_values()
print(f"Name: {result.name}, Age: {result.age}, Car: {result.car}")
Вывод:
Name: Mark, Age: 21, Car: Ford
Преимущества:
Четкая структура: поля
name, age и car заданы явноДоступ к значениям по именам (
result.name), а не по индексамУлучшает читаемость и поддерживаемость кода
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Бесплатный тренажер по Bash и Linux
Если давно хотели подтянуть работу с терминалом, обратите внимание на ShellGym. Это набор практических упражнений, который поможет освоить основные команды Linux и научиться решать задачи в командной строке.
Отличный ресурс для новичков и тех, кто хочет освежить знания чтобы стать увереннее в Linux.
☝️ Ссылка источник
✈️ Python Ninja
Если давно хотели подтянуть работу с терминалом, обратите внимание на ShellGym. Это набор практических упражнений, который поможет освоить основные команды Linux и научиться решать задачи в командной строке.
Отличный ресурс для новичков и тех, кто хочет освежить знания чтобы стать увереннее в Linux.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
«Освоение модульного тестирования с использованием Pytest» курс на Stepik
Сегодня умение писать тесты ценится почти так же, как и умение писать сам код. Если pytest, fixtures, CI/CD и coverage всё ещё вызывают вопросы самое время это исправить
Программа курса:
• Pytest: от базовых тестов до CI/CD
• fixtures, mocking, parametrization
• Flask/API testing
• Selenium и UI тестирование
• Docker + Docker Compose
• GitHub Actions
• coverage и отчёты
• debugging и refactoring тестов
Курс построен вокруг практики: много примеров, готовых кейсов и разборов рабочих сценариев
48 часов действует скидка 25%
↗️ Пройти курс на Stepik
Сегодня умение писать тесты ценится почти так же, как и умение писать сам код. Если pytest, fixtures, CI/CD и coverage всё ещё вызывают вопросы самое время это исправить
Программа курса:
• Pytest: от базовых тестов до CI/CD
• fixtures, mocking, parametrization
• Flask/API testing
• Selenium и UI тестирование
• Docker + Docker Compose
• GitHub Actions
• coverage и отчёты
• debugging и refactoring тестов
Курс построен вокруг практики: много примеров, готовых кейсов и разборов рабочих сценариев
48 часов действует скидка 25%
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝2
Учебный сайт по программированию на Python
Он представляет собой бесплатный онлайн-учебник, который охватывает путь от самых базовых понятий до более сложных инструментов и библиотек
Удобно использовать и как стартовую точку, и как быстрый справочник по ключевым темам
Забираем за печеньки🍪 🍪
☝️ Ссылка источник
✈️ Python Ninja
Он представляет собой бесплатный онлайн-учебник, который охватывает путь от самых базовых понятий до более сложных инструментов и библиотек
Удобно использовать и как стартовую точку, и как быстрый справочник по ключевым темам
Забираем за печеньки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2