🐍 Задача уровня Pro: декоратор с внутренним состоянием
📌 Задача:
Напиши декоратор
- ограничивает функцию
- после
Пример использования:
🎯 Подвохи:
- Нужно создать декоратор-фабрику с аргументом
- Внутри должна быть функция с
- Часто путаются и используют
✅ Решение:
```python
def call_limiter(n):
def decorator(func):
count = 0
def wrapper(*args, **kwargs):
nonlocal count
if count >= n:
return "LIMIT REACHED"
count += 1
return func(*args, **kwargs)
return wrapper
return decorator
```
🧪 **Проверка:**
```python
@call_limiter (2)
def ping():
return "pong"
print(ping()) # pong
print(ping()) # pong
print(ping()) # LIMIT REACHED
@call_limiter (1)
def echo(msg):
return msg
print(echo("hi")) # hi
print(echo("bye")) # LIMIT REACHED
```
🧠 **Что проверяет задача:**
• Понимание функций высшего порядка
• Работа с `nonlocal` и областью видимости
• Контроль состояния внутри декоратора
• Умение не "засорить" глобальные или общие области
@pythonl
📌 Задача:
Напиши декоратор
call_limiter
, который:- ограничивает функцию
f
максимум до n
вызовов - после
n
вызова функция больше не вызывается, а возвращает строку "LIMIT REACHED"
Пример использования:
@call_limiter(3)
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob")) # Hello, Bob!
print(greet("Charlie"))# Hello, Charlie!
print(greet("Dave")) # LIMIT REACHED
🎯 Подвохи:
- Нужно создать декоратор-фабрику с аргументом
n
- Внутри должна быть функция с
nonlocal
, чтобы отслеживать число вызовов- Часто путаются и используют
mutable default
, что ломает независимость между декорируемыми функциями✅ Решение:
```python
def call_limiter(n):
def decorator(func):
count = 0
def wrapper(*args, **kwargs):
nonlocal count
if count >= n:
return "LIMIT REACHED"
count += 1
return func(*args, **kwargs)
return wrapper
return decorator
```
🧪 **Проверка:**
```python
def ping():
return "pong"
print(ping()) # pong
print(ping()) # pong
print(ping()) # LIMIT REACHED
def echo(msg):
return msg
print(echo("hi")) # hi
print(echo("bye")) # LIMIT REACHED
```
🧠 **Что проверяет задача:**
• Понимание функций высшего порядка
• Работа с `nonlocal` и областью видимости
• Контроль состояния внутри декоратора
• Умение не "засорить" глобальные или общие области
@pythonl
🤖 ACI.dev — Унифицированный доступ AI-агентов к 600+ инструментам
ACI (Agent Capability Interface) — это открытая платформа, которая позволяет AI-агентам подключаться к более чем 600 внешним инструментам и API, используя единую инфраструктуру доступа. Система включает поддержку многоарендной архитектуры (multi-tenant), гибкие разрешения и несколько режимов вызова — как через MCP-сервер, так и напрямую через SDK.
🎯 Цель проекта — предоставить ИИ-доступ к реальным действиям в цифровой среде: от отправки писем и управления календарём до взаимодействия с CRM, базами данных, DevOps-инструментами и даже пользовательскими функциями.
🧩 Основные возможности:
- 🔌 600+ готовых интеграций
Поддержка популярных платформ: Notion, Slack, Google Calendar, GitHub, Discord, Twilio, PostgreSQL и многих других.
- 🔐 Разграничение доступа и безопасность
Поддержка granular-permissions, токенов доступа, ролей, и подписанных вызовов с проверкой подлинности.
- 🧠 Интеграция с AI-агентами
Разработано для работы с open-source AI-платформами, включая AutoGen, CrewAI, LangGraph, OpenDevin, Devika и т.д.
- 🛠️ Два способа использования
1. MCP Server — единая точка входа, через которую агент может выполнять действия.
2. ACI SDK — локальное подключение и вызов возможностей напрямую из кода.
- 🌐 Webhooks и Plugin support
Поддержка обратных вызовов и подключения как внешнего плагина к другим системам (например, для LLM-агентов).
ACI — это своего рода "операционная система" для ИИ-агентов, позволяющая им действовать в реальном мире с контролем, безопасностью и масштабируемостью.
🔗 Полезные ссылки:
- GitHub
- Документация
ACI (Agent Capability Interface) — это открытая платформа, которая позволяет AI-агентам подключаться к более чем 600 внешним инструментам и API, используя единую инфраструктуру доступа. Система включает поддержку многоарендной архитектуры (multi-tenant), гибкие разрешения и несколько режимов вызова — как через MCP-сервер, так и напрямую через SDK.
🎯 Цель проекта — предоставить ИИ-доступ к реальным действиям в цифровой среде: от отправки писем и управления календарём до взаимодействия с CRM, базами данных, DevOps-инструментами и даже пользовательскими функциями.
🧩 Основные возможности:
- 🔌 600+ готовых интеграций
Поддержка популярных платформ: Notion, Slack, Google Calendar, GitHub, Discord, Twilio, PostgreSQL и многих других.
- 🔐 Разграничение доступа и безопасность
Поддержка granular-permissions, токенов доступа, ролей, и подписанных вызовов с проверкой подлинности.
- 🧠 Интеграция с AI-агентами
Разработано для работы с open-source AI-платформами, включая AutoGen, CrewAI, LangGraph, OpenDevin, Devika и т.д.
- 🛠️ Два способа использования
1. MCP Server — единая точка входа, через которую агент может выполнять действия.
2. ACI SDK — локальное подключение и вызов возможностей напрямую из кода.
- 🌐 Webhooks и Plugin support
Поддержка обратных вызовов и подключения как внешнего плагина к другим системам (например, для LLM-агентов).
ACI — это своего рода "операционная система" для ИИ-агентов, позволяющая им действовать в реальном мире с контролем, безопасностью и масштабируемостью.
🔗 Полезные ссылки:
- GitHub
- Документация
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Oh My ~God~ Git — необычная и полезная игра с открытым исходным кодом, которая помогает разобраться с GIT не через скучные туториалы, а с помощью наглядных карточек и геймплея.
🧠 В процессе ты:
• Поймёшь, как устроен GIT под капотом
• Научишься работать с ветками, коммитами, merge и rebase
• Запомнишь команды на практике, играя
📦 Игра доступна прямо в браузере: [ohmygit.org](https://ohmygit.org/)
💻 Или можно скачать и установить с GitHub: [github.com/git-learning-game/oh-my-git](https://github.com/git-learning-game/oh-my-git)
👾 Подходит как новичкам, так и тем, кто хочет освежить знания в игровой форме.
🧠 В процессе ты:
• Поймёшь, как устроен GIT под капотом
• Научишься работать с ветками, коммитами, merge и rebase
• Запомнишь команды на практике, играя
📦 Игра доступна прямо в браузере: [ohmygit.org](https://ohmygit.org/)
💻 Или можно скачать и установить с GitHub: [github.com/git-learning-game/oh-my-git](https://github.com/git-learning-game/oh-my-git)
👾 Подходит как новичкам, так и тем, кто хочет освежить знания в игровой форме.
🪬 Boto3 — мост между Python и AWS. Эта официальная Python-библиотека предоставляет удобный интерфейс для взаимодействия с сервисами AWS — от простых операций с S3 до управления кластерами EC2.
После недавнего прекращения поддержки Python 3.8 проект сосредоточился на современных версиях языка. Особенность Boto3 в двухуровневой архитектуре: низкоуровневые клиенты для точного контроля и ресурсные объекты для упрощённого синтаксиса. Документация от AWS включает примеры для всех основных сервисов, что делает интеграцию почти безболезненной.
🤖 GitHub
@pythonl
После недавнего прекращения поддержки Python 3.8 проект сосредоточился на современных версиях языка. Особенность Boto3 в двухуровневой архитектуре: низкоуровневые клиенты для точного контроля и ресурсные объекты для упрощённого синтаксиса. Документация от AWS включает примеры для всех основных сервисов, что делает интеграцию почти безболезненной.
🤖 GitHub
@pythonl
🧠 Как клонировать голос с помощью Open Source (Coqui TTS)
Хочешь, чтобы ИИ говорил твоим голосом? Без подписок, платных API и ограничений? Вот подробная инструкция, как клонировать свой голос с нуля с помощью open-source инструментов:
🔧 Установка
🎙️ 1. Подготовка записи голоса
Тебе нужен файл
- продолжительность: от 1 минуты
- формат: моно, 16 кГц, 16-bit
Пример конвертации:
🧬 2. Генерация эмбеддинга твоего голоса
📤 3. Генерация речи с твоим голосом
💻 4. (Опционально) Интерфейс с Gradio
✅ Быстрый способ (через CLI)
⚠️ Важно
- 💻 Работает на CPU, но лучше с GPU.
- 🌐 Поддерживает русский язык.
@pythonl
Хочешь, чтобы ИИ говорил твоим голосом? Без подписок, платных API и ограничений? Вот подробная инструкция, как клонировать свой голос с нуля с помощью open-source инструментов:
🔧 Установка
sudo apt install ffmpeg
pip install TTS soundfile torchaudio gradio
git clone https://github.com/coqui-ai/TTS.git
cd TTS
pip install -e .
🎙️ 1. Подготовка записи голоса
Тебе нужен файл
.wav
:- продолжительность: от 1 минуты
- формат: моно, 16 кГц, 16-bit
Пример конвертации:
ffmpeg -i input.mp3 -ac 1 -ar 16000 output.wav
🧬 2. Генерация эмбеддинга твоего голоса
from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts
config = XttsConfig()
model = Xtts.init_from_config(config)
model.load_checkpoint("tts_models/multilingual/multi-dataset/xtts_v2")
voice_sample = "your_voice.wav"
speaker_embedding = model.get_speaker_embedding(voice_sample)
📤 3. Генерация речи с твоим голосом
text = "Привет! Я теперь могу говорить твоим голосом."
wav = model.tts(text, speaker_embedding=speaker_embedding)
model.save_wav(wav, "output.wav")
💻 4. (Опционально) Интерфейс с Gradio
import gradio as gr
def speak(text):
wav = model.tts(text, speaker_embedding=speaker_embedding)
path = "generated.wav"
model.save_wav(wav, path)
return path
gr.Interface(fn=speak, inputs=gr.Textbox(), outputs=gr.Audio()).launch()
✅ Быстрый способ (через CLI)
tts --model_name "tts_models/multilingual/multi-dataset/xtts_v2" \
--text "Привет, мир!" \
--speaker_wav path/to/your.wav \
--out_path output.wav
⚠️ Важно
- 💻 Работает на CPU, но лучше с GPU.
- 🌐 Поддерживает русский язык.
@pythonl
Когда ваше Python-приложение начинает активно использовать фоновые задачи (email-уведомления, видеообработка, интеграции и т.д.), быстро возникает проблема: очередь задач растёт, задержка увеличивается, пользователи начинают ощущать тормоза.
В статье разбирается, как это решать грамотно, автоматически и эффективно.
🎯 Основные проблемы:
• Даже при низком CPU задачи могут выполняться с задержкой
• Очередь может казаться «тихой», но задачи копятся
• Масштабирование вручную по метрикам CPU/памяти — неэффективно
• Часто “один жирный воркер” не решает проблему — надо менять подход
⚙️ Как масштабировать: пошагово
1) 🔌 Выбор брокера сообщений
• Redis — прост в настройке, отлично работает с Celery и RQ
• RabbitMQ — надёжнее (повторы, подтверждения), подходит для критичных задач
2) ⚙️ Настройка воркеров
• *Вертикальное масштабирование*
— больше процессов внутри одного воркера (в Celery можно concurrency)
• *Горизонтальное масштабирование*
— запуск множества воркеров на разных инстансах, читающих из одной очереди
— универсальное и гибкое решение
3) 📈 Авто-скейлинг по latency, а не CPU
• Частая ошибка: масштабировать по CPU
• Правильный подход: масштабировать по времени ожидания задач в очереди
• Judoscale позволяет автоматизировать масштабирование именно по queue latency
• При росте задержки запускаются новые воркеры, при снижении — отключаются
4) 🧠 Fan-Out: разбивай большие задачи
Вместо:
Одна задача: обработать 10 000 пользователей
Правильно:
10 000 задач: по одной на каждого пользователя
Преимущества:
• Параллельность
• Надёжность (ошибки локализуются)
• Легче масштабировать обработку
📊 Результаты после внедрения:
• Время ожидания задач сократилось с 25 минут до 30 секунд
• Масштабирование стало динамичным
• Инфраструктура стала дешевле — меньше простаивающих воркеров
✅ Рекомендации:
• Используй Redis или RabbitMQ в зависимости от требований
• Отдавай предпочтение горизонтальному масштабированию
• Следи за latency, а не за CPU
• Используй Judoscale для авто-масштабирования
• Применяй fan-out для повышения надёжности и скорости
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет аналитик, который прошел наш курс, а потом два технических собеседования в международные компании. Приятно, конечно ❤️
Если в 2025 году вы хотите:
— научиться выбирать стиль интеграции под вашу задачу;
— начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений);
— узнать как правильно собирать требования и моделировать в UML;
— подготовиться к собеседованию, решив более 100 заданий;
— запустить свой API на Python.
Значит наш курс для вас!
🚀 Начните с открытых бесплатных
уроков — переходите в бот курса и жмите «Старт»
👇
@studyit_help_bot
🚀 Скидка на курс
от канала — 1 000₽ на Stepik по промокоду PYTHONL до конца мая.
Если в 2025 году вы хотите:
— научиться выбирать стиль интеграции под вашу задачу;
— начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений);
— узнать как правильно собирать требования и моделировать в UML;
— подготовиться к собеседованию, решив более 100 заданий;
— запустить свой API на Python.
Значит наш курс для вас!
🚀 Начните с открытых бесплатных
уроков — переходите в бот курса и жмите «Старт»
👇
@studyit_help_bot
🚀 Скидка на курс
от канала — 1 000₽ на Stepik по промокоду PYTHONL до конца мая.
🐍 Задача на Python: "Исчезающая цифра"
Условие:
У тебя есть список строк — чисел от 1 до 100, но одно из чисел случайно пропало.
Найди, какое число отсутствует. Нельзя использовать
Пример:
Напиши функцию:
📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:
То есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число.
🧠 Решение:
```python
def find_missing_number(data: list[str]) -> int:
xor_full = 0
xor_data = 0
for i in range(1, 101):
xor_full ^= i
for val in data:
xor_data ^= int(val)
return xor_full ^ xor_data
```
✅ Пояснение:
- — XOR всех чисел от 1 до 100.
- — XOR всех чисел в текущем списке (`str` → `int`).
- Разность вернёт единственное отсутствующее число.
🎯 Пример использования:
```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)
print(find_missing_number(original)) # → 42
```
🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+
@pythonl
Условие:
У тебя есть список строк — чисел от 1 до 100, но одно из чисел случайно пропало.
Найди, какое число отсутствует. Нельзя использовать
sum()
, sorted()
, Counter
. Все числа в списке представлены как строки.Пример:
import random
original = [str(i) for i in range(1, 101)]
missing = random.choice(original)
shuffled = original.copy()
shuffled.remove(missing)
random.shuffle(shuffled)
Напиши функцию:
def find_missing_number(data: list[str]) -> int:
...
📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:
a ^ a = 0
0 ^ b = b
То есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число.
🧠 Решение:
```python
def find_missing_number(data: list[str]) -> int:
xor_full = 0
xor_data = 0
for i in range(1, 101):
xor_full ^= i
for val in data:
xor_data ^= int(val)
return xor_full ^ xor_data
```
✅ Пояснение:
-
xor_full
-
xor_data
- Разность
xor_full ^ xor_data
🎯 Пример использования:
```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)
print(find_missing_number(original)) # → 42
```
🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на
sum()
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+
@pythonl
22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Собес проведет Вадим Пуштаев, ex. head of backend в
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwFUCLU
Please open Telegram to view this post
VIEW IN TELEGRAM
На GitHub и в preprint на arXiv появилась новая работа от исследователей из Berkeley — PyRoki (Python Robot Kinematics Toolkit). Это мощный, гибкий и кроссплатформенный инструмент на Python для задач оптимизации в робототехнике.
🔧 Что такое PyRoki?
PyRoki — это:
- 📦 Модульная архитектура
Разделение переменных оптимизации и функций стоимости (costs) позволяет комбинировать задачи IK, планирования траектории, ретаргетинга и многое другое — без повторения кода.
- ⚙️ Дифференцируемая кинематика
Поддержка URDF-моделей, автоматическое создание collision-примитивов (например, капсул), работа с NumPy и JAX.
- 🚀 Поддержка CPU, GPU и TPU
Высокая производительность и масштабируемость на любых вычислительных устройствах.
- 🧠 Оптимизация на многообразиях (Lie-группы)
Встроенный алгоритм Levenberg–Marquardt даёт устойчивую и быструю сходимость даже для сложных конфигураций.
📊 Результаты
- Быстрее cuRobo на 1.4–1.7x при решении задач IK в батче.
- Более точные результаты при меньших вычислительных затратах.
- Интерактивный визуализатор (на базе `viser`) для отладки и анализа.
📁 Примеры использования
PyRoki включает в себя готовые сценарии:
- инверсная кинематика (IK)
- бимануальные манипуляции
- мобильные платформы
- ретаргетинг движений гуманоидов
- учёт столкновений
- online-планирование и управление
🚀 Установка
git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .
Требуется Python 3.12+ (частичная поддержка Python 3.10–3.11).
PyRoki — это:
- 📐 Удобный фреймворк для исследований в области робототехники.
- 🛠️ Подходит как для академических, так и для прикладных задач.
- 🌐 Гибкий и масштабируемый — от одного робота до больших motion-баз.
Если интересен пример интеграции с ROS, Gazebo или симуляцией цифрового двойника — дай знать, покажу!
🔗 Репозиторий
#Python #Robotics #Kinematics #InverseKinematics #MotionPlanning #OpenSource
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 AЭРОДИСК ищет Senior Python-разработчика для сложных и прокачивающих задач в разработке СХД!
Хочешь:
— Работать над репликацией, метрокластером и высоконагруженными системами?
— Глубоко погрузиться в Linux, сетевые протоколы и архитектуру ПО?
— Решать нетривиальные задачи, влияя на масштабные инфраструктурные решения?
— Прокачивать скилы в команде с крутыми инженерами и архитекторами?
📌 Нужно:
— Python (от 3 лет), Linux — экспертно
— Понимание сетей, репликации, системной архитектуры
— SQL/NoSQL, работа с техдокументацией на английском.
🧠 Прокачка:
— Живое общение, обучение за счёт компании, конференции
— Чёткий рост, внутренняя экспертиза, развитие в enterprise-инфраструктуре
💼 Офис в БЦ "Кругозор", соцпакет, гибкий график
👉 Подробнее и отклик
🔥 Скучно не будет — будет интересно и мощно.
Реклама. ООО "АЕРО ДИСК". ИНН 7731475010. erid: 2W5zFGsyf7E
Хочешь:
— Работать над репликацией, метрокластером и высоконагруженными системами?
— Глубоко погрузиться в Linux, сетевые протоколы и архитектуру ПО?
— Решать нетривиальные задачи, влияя на масштабные инфраструктурные решения?
— Прокачивать скилы в команде с крутыми инженерами и архитекторами?
📌 Нужно:
— Python (от 3 лет), Linux — экспертно
— Понимание сетей, репликации, системной архитектуры
— SQL/NoSQL, работа с техдокументацией на английском.
🧠 Прокачка:
— Живое общение, обучение за счёт компании, конференции
— Чёткий рост, внутренняя экспертиза, развитие в enterprise-инфраструктуре
💼 Офис в БЦ "Кругозор", соцпакет, гибкий график
👉 Подробнее и отклик
🔥 Скучно не будет — будет интересно и мощно.
Реклама. ООО "АЕРО ДИСК". ИНН 7731475010. erid: 2W5zFGsyf7E
🐍 Задача с подвохом: mutable default arguments в Python
🔹 Уровень: Advanced
🔹 Темы: изменяемые аргументы по умолчанию, функции, ловушки с
📌 Условие
Что выведет следующий код?
❓ Вопросы
1. Почему результат выглядит неожиданно?
2. Как исправить это поведение?
3. Когда стоит использовать изменяемые аргументы по умолчанию — если вообще стоит?
🔍 Разбор
✅ Ожидаемый вывод:
🔧 Почему так происходит
- Аргументы по умолчанию вычисляются один раз — во время определения функции, а не при каждом вызове.
- Значение
- Все вызовы
⚠️ Подвох
Это один из самых коварных багов в Python, особенно среди начинающих — кажется, что
🧠 Вывод
- Никогда не используй изменяемые типы (list, dict, set) как значения по умолчанию.
- Вместо этого используй
✅ Тогда вывод будет:
📌 Это правило относится ко всем изменяемым типам:
🔹 Уровень: Advanced
🔹 Темы: изменяемые аргументы по умолчанию, функции, ловушки с
list
и dict
📌 Условие
Что выведет следующий код?
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
❓ Вопросы
1. Почему результат выглядит неожиданно?
2. Как исправить это поведение?
3. Когда стоит использовать изменяемые аргументы по умолчанию — если вообще стоит?
🔍 Разбор
✅ Ожидаемый вывод:
[1]
[1, 2]
[1, 2, 3]
🔧 Почему так происходит
- Аргументы по умолчанию вычисляются один раз — во время определения функции, а не при каждом вызове.
- Значение
my_list=[]
создаётся один раз и затем используется повторно при всех вызовах.- Все вызовы
append_to_list
изменяют один и тот же список.⚠️ Подвох
Это один из самых коварных багов в Python, особенно среди начинающих — кажется, что
my_list
должен быть новым на каждый вызов, но это не так.🧠 Вывод
- Никогда не используй изменяемые типы (list, dict, set) как значения по умолчанию.
- Вместо этого используй
None
и создавай новый объект вручную:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
✅ Тогда вывод будет:
[1]
[2]
[3]
📌 Это правило относится ко всем изменяемым типам:
[]
, {}
, set()
и кастомные классы.Python уже покорен? А как насчет Django?
Один из ведущих провайдеров IT-инфраструктуры Selectel подготовил бесплатный мини-курс по Django. Программа начинается с создания и настройки простых проектов: блога и канбан-доски, а завершается подключением автоматических бэкапов.
Всего за час вы научитесь:
1️⃣ Работать с бэкендом и API
2️⃣ Создавать веб-приложение по шаблону от Django
3️⃣ Настраивать Nginx и Gunicorn
4️⃣ Автоматизировать резервное копирование
Переходите в Академию Selectel, чтобы начать изучение прямо сейчас
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqvQwmor
Один из ведущих провайдеров IT-инфраструктуры Selectel подготовил бесплатный мини-курс по Django. Программа начинается с создания и настройки простых проектов: блога и канбан-доски, а завершается подключением автоматических бэкапов.
Всего за час вы научитесь:
Переходите в Академию Selectel, чтобы начать изучение прямо сейчас
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqvQwmor
Please open Telegram to view this post
VIEW IN TELEGRAM
🛡 StarGuard — умный аудит GitHub-репозиториев прямо из консоли
Открытый проект — это мощный CLI-инструмент на Python, который автоматически анализирует open-source репозитории и помогает выявить:
🔸 фальшивые звёзды
🔸 всплески активности
🔸 опасные зависимости
🔸 лицензии с подвохом
🔸 подозрительный код и токсичных контрибьюторов
📊 Что делает StarGuard
✅ Обнаруживает аномалии звёзд
— Вычисляет резкие всплески популярности с помощью BurstDetector и медианного отклонения.
— Определяет подозрительных пользователей с «пустыми» профилями и новыми аккаунтами.
✅ Анализирует зависимости и SBOM
— Поддержка PyPI, npm, Maven, Go, Ruby
— Предупреждает об unpinned-пакетах и git-зависимостях
✅ Проверяет лицензии
— Выявляет несовместимости (например, AGPL внутри MIT)
— Предупреждает о скрытых ограничениях
✅ Оценивает контрибьюторов
— Проверяет концентрацию коммитов
— Определяет "одиночек", на которых держится проект
✅ Сканирует код на опасные паттерны
— Обнаруживает
🚀 Как использовать
🔹 Без GitHub-токена работает, но лимит — 60 запросов/час
🔹 С
🎯 Кому полезно
• DevOps-командам — для верификации OSS-зависимостей
• Безопасникам — для быстрой проверки на supply chain угрозы
• Инвесторам — чтобы не попасть на проекты с "накрученной" популярностью
• Open Source авторам — для прозрачности и Trust Badge
🔗 GitHub
💡 Инструмент, который показывает, что за красивыми графиками звёзд часто стоит маркетинг, а не код. Умей фильтровать — ставь охрану у репозитория.
@pythonl
Открытый проект — это мощный CLI-инструмент на Python, который автоматически анализирует open-source репозитории и помогает выявить:
🔸 фальшивые звёзды
🔸 всплески активности
🔸 опасные зависимости
🔸 лицензии с подвохом
🔸 подозрительный код и токсичных контрибьюторов
📊 Что делает StarGuard
✅ Обнаруживает аномалии звёзд
— Вычисляет резкие всплески популярности с помощью BurstDetector и медианного отклонения.
— Определяет подозрительных пользователей с «пустыми» профилями и новыми аккаунтами.
✅ Анализирует зависимости и SBOM
— Поддержка PyPI, npm, Maven, Go, Ruby
— Предупреждает об unpinned-пакетах и git-зависимостях
✅ Проверяет лицензии
— Выявляет несовместимости (например, AGPL внутри MIT)
— Предупреждает о скрытых ограничениях
✅ Оценивает контрибьюторов
— Проверяет концентрацию коммитов
— Определяет "одиночек", на которых держится проект
✅ Сканирует код на опасные паттерны
— Обнаруживает
eval
, скрытые майнеры, необфусцированные ключи🚀 Как использовать
python -m starguard.cli owner/repo --format markdown --plot stars.png
🔹 Без GitHub-токена работает, но лимит — 60 запросов/час
🔹 С
GITHUB_TOKEN
— до 5000 запросов🎯 Кому полезно
• DevOps-командам — для верификации OSS-зависимостей
• Безопасникам — для быстрой проверки на supply chain угрозы
• Инвесторам — чтобы не попасть на проекты с "накрученной" популярностью
• Open Source авторам — для прозрачности и Trust Badge
🔗 GitHub
💡 Инструмент, который показывает, что за красивыми графиками звёзд часто стоит маркетинг, а не код. Умей фильтровать — ставь охрану у репозитория.
@pythonl
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 DeerFlow — Open‑Source фреймворк для Deep Research от ByteDance
🌟 Что такое DeerFlow?
DeerFlow (Deep Exploration and Efficient Research Flow) — это модульный multi-agent фреймворк с открытым исходным кодом, созданный для автоматизации глубоких исследовательских процессов. Он сочетает работу с LLM, веб-поиск, краулинг и выполнение Python-кода :contentReference[oaicite:0]{index=0}.
🧱 Основные особенности
- Multi-agent архитектура
Координатор, Планировщик, Исследователь, Кодер, Репортер и даже голосовой модуль — каждый агент выполняет свою задачу в пайплайне исследования :contentReference[oaicite:1]{index=1}.
- Интеграция инструментов
Встроенный веб-поиск (Tavily, DuckDuckGo, Brave, arXiv), web scraping через Jina, Python REPL для исполнения кода, генерация отчетов и даже автоматизированные подкасты при помощи TTS :contentReference[oaicite:2]{index=2}.
- Human‑in‑the‑loop
Возможность ставить задачи и править планы вручную — обеспечивается контроль на каждом этапе :contentReference[oaicite:3]{index=3}.
- Генерация конечного контента
Полученные данные консолидируются в отчеты (Markdown, PPT), синтезируются в речь (подкасты), экспортируются — всё автономно.
⚙️ Github
@pythonl
🌟 Что такое DeerFlow?
DeerFlow (Deep Exploration and Efficient Research Flow) — это модульный multi-agent фреймворк с открытым исходным кодом, созданный для автоматизации глубоких исследовательских процессов. Он сочетает работу с LLM, веб-поиск, краулинг и выполнение Python-кода :contentReference[oaicite:0]{index=0}.
🧱 Основные особенности
- Multi-agent архитектура
Координатор, Планировщик, Исследователь, Кодер, Репортер и даже голосовой модуль — каждый агент выполняет свою задачу в пайплайне исследования :contentReference[oaicite:1]{index=1}.
- Интеграция инструментов
Встроенный веб-поиск (Tavily, DuckDuckGo, Brave, arXiv), web scraping через Jina, Python REPL для исполнения кода, генерация отчетов и даже автоматизированные подкасты при помощи TTS :contentReference[oaicite:2]{index=2}.
- Human‑in‑the‑loop
Возможность ставить задачи и править планы вручную — обеспечивается контроль на каждом этапе :contentReference[oaicite:3]{index=3}.
- Генерация конечного контента
Полученные данные консолидируются в отчеты (Markdown, PPT), синтезируются в речь (подкасты), экспортируются — всё автономно.
⚙️ Github
@pythonl
💥 Ищете возможности в Data Science и ML? На курсе «Специализация Machine Learning» мы научим вас не просто работать с данными, а использовать мощные алгоритмы для бизнес-прогнозирования.
Программа подходит как новичкам, так и профессионалам: от системных аналитиков до инженеров, которые хотят научиться ML с нуля. Мы дадим вам практические знания и опыт, используя актуальные инструменты.
На курсе вы освоите Python, библиотеки pandas, sklearn, глубокое обучение и анализ временных рядов. Пройдете обучение по самым современным фреймворкам и научитесь решать реальные задачи.
➡️ Записывайтесь в группу прямо сейчас: https://tglink.io/4246af263d73?erid=2W5zFGw41u2
Чтобы успеть воспользоваться 🏷15% скидкой на курс «Специализация Machine Learning» + 🎁 промокодом ML_5 и учиться весь год по ценам мая. Скидка на курс действует по 26.05 включительно!
#реклама
О рекламодателе
Программа подходит как новичкам, так и профессионалам: от системных аналитиков до инженеров, которые хотят научиться ML с нуля. Мы дадим вам практические знания и опыт, используя актуальные инструменты.
На курсе вы освоите Python, библиотеки pandas, sklearn, глубокое обучение и анализ временных рядов. Пройдете обучение по самым современным фреймворкам и научитесь решать реальные задачи.
➡️ Записывайтесь в группу прямо сейчас: https://tglink.io/4246af263d73?erid=2W5zFGw41u2
Чтобы успеть воспользоваться 🏷15% скидкой на курс «Специализация Machine Learning» + 🎁 промокодом ML_5 и учиться весь год по ценам мая. Скидка на курс действует по 26.05 включительно!
#реклама
О рекламодателе
🧪 Microsoft представляет Pyrona — экспериментальный проект для безопасной конкуренции в Python!
🔧 Разработан в рамках Project Verona, Pyrona исследует, как принципы владения и управления памятью (в духе Rust) можно адаптировать для динамического языка, такого как Python.
🌀 Что такое Pyrona?
• Прототип модифицированного Python без GIL (Global Interpreter Lock)
• Использует идеи из Verona и FrankenScript — toy-языка с проверками владения и безопасности
• Вводит динамическое региональное владение и глубокую неизменяемость объектов
🚀 Зачем это нужно?
С приближением PEP 703 (Python без GIL) возникает угроза гонок данных. Pyrona предлагает решение:
✅ Безопасная многопоточность
✅ Динамические гарантии корректности
✅ Поддержка привычной экосистемы Python
🔍 Детали:
• Поддерживает эксперименты с субинтерпретаторами (PEP 684)
• Публикация на PLDI 2025: *Dynamic Region Ownership for Concurrency Safety*
• Активное участие Гвидо ван Россума и команды Faster CPython
🧠 Pyrona — это не продакшен-язык, а платформа для будущего безопасного и многопоточного Python.
🔗 Подробнее
🔗 Github
@pythonl
🔧 Разработан в рамках Project Verona, Pyrona исследует, как принципы владения и управления памятью (в духе Rust) можно адаптировать для динамического языка, такого как Python.
🌀 Что такое Pyrona?
• Прототип модифицированного Python без GIL (Global Interpreter Lock)
• Использует идеи из Verona и FrankenScript — toy-языка с проверками владения и безопасности
• Вводит динамическое региональное владение и глубокую неизменяемость объектов
🚀 Зачем это нужно?
С приближением PEP 703 (Python без GIL) возникает угроза гонок данных. Pyrona предлагает решение:
✅ Безопасная многопоточность
✅ Динамические гарантии корректности
✅ Поддержка привычной экосистемы Python
🔍 Детали:
• Поддерживает эксперименты с субинтерпретаторами (PEP 684)
• Публикация на PLDI 2025: *Dynamic Region Ownership for Concurrency Safety*
• Активное участие Гвидо ван Россума и команды Faster CPython
🧠 Pyrona — это не продакшен-язык, а платформа для будущего безопасного и многопоточного Python.
🔗 Подробнее
🔗 Github
@pythonl