pythonl | Unsorted

Telegram-канал pythonl - Python/ django

52807

по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

Subscribe to a channel

Python/ django

🖥 Хитрая задача на Python для продвинутых: словарь, который работает как список

Представь структуру данных, которая:
• работает как dict — доступ по ключу
• работает как list — доступ по индексу
• сохраняет порядок вставки
• поддерживает .index(key) и .key_at(i)

📌 Задача: Реализуй класс IndexedDict, который делает всё это.

🔍 Пример использования:


d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30

print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2

for k in d:
print(k, d[k]) # перебор по ключам


⚠️ Подвох:

• Просто наследовать dict не получится — d[0] будет интерпретироваться как ключ, а не индекс
• Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать __iter__, __getitem__, __len__ и др.

✅ Решение:

```python
from
collections.abc import MutableMapping

class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []

def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]

def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value

def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]

def __iter__(self):
return iter(self._keys)

def __len__(self):
return len(self._data)

def index(self, key):
return self._keys.index(key)

def key_at(self, idx):
return self._keys[idx]
```

📈 Зачем это нужно:

• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных

Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬


@pythonl

Читать полностью…

Python/ django

🚀 TG_AutoPoster — бот для автоматической пересылки постов из групп ВКонтакте в ваш Telegram: канал, чат или личку.

📌 Что умеет:
• Автоматически публикует записи из заданных групп ВК в Telegram
• Настраивается через файл config.yaml: логин/пароль или токен VK + данные Telegram API
• Поддерживает прокси (SOCKS5) — для обхода блокировок
• Гибко настраиваемый интервал проверки новых постов (по умолчанию — 1 час)
• Фильтрует записи по чёрному списку и стоп-словам
• Добавляет заголовки и футеры с поддержкой Markdown
• Работает в Docker — легко разворачивается на сервере

TG_AutoPoster — готовое решение для автоматического кросспостинга из ВК в Telegram 💬

Github

@pythonl

Читать полностью…

Python/ django

🧪 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

Читать полностью…

Python/ django

🚀 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

Читать полностью…

Python/ django

Python уже покорен? А как насчет Django?
 
Один из ведущих провайдеров IT-инфраструктуры Selectel подготовил бесплатный мини-курс по Django. Программа начинается с создания и настройки простых проектов: блога и канбан-доски, а завершается подключением автоматических бэкапов.
 
Всего за час вы научитесь:
1️⃣ Работать с бэкендом и API
2️⃣ Создавать веб-приложение по шаблону от Django
3️⃣ Настраивать Nginx и Gunicorn
4️⃣ Автоматизировать резервное копирование
 
Переходите в Академию Selectel, чтобы начать изучение прямо сейчас

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqvQwmor

Читать полностью…

Python/ django

🚀 AЭРОДИСК ищет Senior Python-разработчика для сложных и прокачивающих задач в разработке СХД!

Хочешь:
— Работать над репликацией, метрокластером и высоконагруженными системами?
— Глубоко погрузиться в Linux, сетевые протоколы и архитектуру ПО?
— Решать нетривиальные задачи, влияя на масштабные инфраструктурные решения?
— Прокачивать скилы в команде с крутыми инженерами и архитекторами?

📌 Нужно:
— Python (от 3 лет), Linux — экспертно
— Понимание сетей, репликации, системной архитектуры
— SQL/NoSQL, работа с техдокументацией на английском.

🧠 Прокачка:
— Живое общение, обучение за счёт компании, конференции
— Чёткий рост, внутренняя экспертиза, развитие в enterprise-инфраструктуре

💼 Офис в БЦ "Кругозор", соцпакет, гибкий график
👉 Подробнее и отклик

🔥 Скучно не будет — будет интересно и мощно.

Реклама. ООО "АЕРО ДИСК". ИНН 7731475010. erid: 2W5zFGsyf7E

Читать полностью…

Python/ django

🔍Тестовое собеседование на Middle Python-разработчика в четверг

22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Собес проведет Вадим Пуштаев, ex. head of backend в 💙, автор канала @pythonetc, архитектор в европейской компании

Как это будет:
📂 Вадим будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Вадим будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Вадиму

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwFUCLU

Читать полностью…

Python/ django

«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет аналитик, который прошел наш курс, а потом два технических собеседования в международные компании. Приятно, конечно ❤️

Если в 2025 году вы хотите:
— научиться выбирать стиль интеграции под вашу задачу;
— начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений);
— узнать как правильно собирать требования и моделировать в UML;
— подготовиться к собеседованию, решив более 100 заданий;
— запустить свой API на Python.

Значит наш курс для вас!

🚀 Начните с открытых бесплатных
уроков — переходите в бот курса и жмите «Старт»
👇
@studyit_help_bot

🚀 Скидка на курс
от канала — 1 000₽ на Stepik по промокоду PYTHONL до конца мая.

Читать полностью…

Python/ django

🧠 Как клонировать голос с помощью Open Source (Coqui TTS)

Хочешь, чтобы ИИ говорил твоим голосом? Без подписок, платных 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/ django

🎮 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)

👾 Подходит как новичкам, так и тем, кто хочет освежить знания в игровой форме.

Читать полностью…

Python/ django

🐍 Задача уровня Pro: декоратор с внутренним состоянием

📌 Задача:
Напиши декоратор 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
@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

Читать полностью…

Python/ django

🎭 Pykka — акторная модель для Python без лишних сложности. Этот проект позволяет организовывать конкурентные вычисления без традиционных проблем с состоянием и блокировками.

Вдохновлённый знаменитым Akka для JVM, Pykka предлагает минималистичный подход — никаких супервизоров или распределённых акторов, только чистые принципы обмена сообщениями между изолированными процессами.
Инструмент имеет продуманную архитектуру: разработчику достаточно определить поведение акторов, а Pykka возьмет на себя всю работу с очередями и потоками.

🤖 GitHub

@pythonl

Читать полностью…

Python/ django

🧠 Как подготовиться к техническому собеседованию с помощью

Если ты готовишься к собеседованию в IT и не знаешь, с чего начать — обрати внимание на бесплатный курс от freeCodeCamp, основанный на знаменитом списке задач NeetCode 150.

⚙️ Что такое NeetCode 150?

• 🟤 Это отобранные 150 задач с LeetCode, покрывающие всё, что нужно знать:
• массивы
• строки
• хеш-таблицы
• деревья и графы
• динамическое программирование
• стек и очередь
• backtracking и двоичный поиск

🎓 Что предлагает курс freeCodeCamp:
• 38 часов подробного видеоконтента
• Каждая задача разбирается пошагово — с объяснением стратегии и кода
• Языки: Python и JavaScript
• Полностью бесплатно

📈 Почему это эффективно:
• Все задачи — реальный опыт с технических собеседований
• Структура курса позволяет идти от простого к сложному
• Удобно учиться в своем темпе

- Стартуй здесь
- Видео с разбором вопросов
- Решения

Не упусти шанс систематизировать знания и уверенно пройти собеседование!

@pythonl

Читать полностью…

Python/ django

📬 BillionMail — автономная платформа для email-маркетинга и почтовых серверов

🧩 Что это такое

BillionMail — это self-hosted open-source платформа, которая позволяет:

• Настроить полноценный почтовый сервер
• Управлять рассылками email
• Отслеживать открытие писем и клики
• Контролировать доставляемость и отклонения
• Работать через браузерный интерфейс без зависимости от облака

🚀 Ключевые возможности

• Управление почтовыми ящиками и доменами
• Email-маркетинг с шаблонами, сегментами и аналитикой
• Встроенный SMTP-сервер и логика ретраев
• Поддержка DKIM, SPF, DMARC
• Мониторинг отправок, спама, bounce-статистики
• API и интеграции с внешними системами

⚙️ Технологии

• Backend: Python
• Web-интерфейс: Vue.js
• СУБД: MySQL
• Mail engine: Postfix + Dovecot
• OS: Linux-серверы (Ubuntu/Debian)

🛠 Установка


1. Установите `Docker` и `docker-compose`
2. Клонируйте репозиторий:
```bash
git clone https://github.com/aaPanel/BillionMail.git
cd BillionMail


Запустите:


docker-compose up -d


🔗 Репозиторий

@pythonl

Читать полностью…

Python/ django

🖥 systemd-pilot — это десктопное приложение для управления сервисами systemd на GNU/Linux системах!

🌟 По сути, это графический интерфейс для команд systemctl. Он позволяет просматривать и управлять системными сервисами, быстро развертывать новые сервисы, а также запускать, останавливать и перезапускать их. Приложение легковесное и использует всего один Python-скрипт. Также предусмотрена поддержка поиска сервисов по имени.

🔐 Лицензия: GPL-3.0

🖥 Github

@pythonl

Читать полностью…

Python/ django

Устроиться аналитиком в Яндекс за выходные

7–8 июня проводим Weekend Offer Analytics. До 3 июня оставьте заявку на участие, 7 июня пройдите два технические собеседования, а 8 июня познакомьтесь с командами и получите офер.

В мероприятии участвует 12 команд: Алиса и Умные устройства, Игры, R&D, Рекламные технологии, Поиск и Суперапп, Безопасность, Коммерческий департамент, Автономный транспорт, Ecom-сценарии Поиска, Качество Поиска, Международный Поиск, Карты. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.

Узнать подробности и зарегистрироваться можно здесь.

Читать полностью…

Python/ django

🖥 Топ Python-библиотек для работы с PDF

Работаешь с PDF в Python? Вот подборка лучших библиотек, которые помогут извлекать текст, редактировать, создавать и анализировать PDF-документы. Каждая из них имеет свои сильные стороны 👇

📌 PyPDF2 — для чтения, разделения, объединения, поворота и модификации PDF
🔗 https://github.com/py-pdf/pypdf

PDFMiner — извлекает текст, структуру и метаинформацию из PDF (в том числе со шрифтами и координатами)
🔗 https://github.com/pdfminer/pdfminer.six

📊 ReportLab — создание PDF-файлов с графиками, таблицами, стилями и вёрсткой
🔗 https://www.reportlab.com/opensource/

🌐 PyPDFium2 — быстрый рендеринг и извлечение изображений с помощью движка PDFium
🔗 https://pypi.org/project/pypdfium2/

🛠 pdfplumber — удобное извлечение текста, таблиц и координат объектов
🔗 https://github.com/jsvine/pdfplumber

📄 PyMuPDF (fitz) — быстрая и мощная библиотека для анализа, рендеринга и аннотирования PDF
🔗 https://github.com/pymupdf/PyMuPDF

🔜 Примеры по работе с библиотеками

Используй их вместе или по отдельности — в зависимости от того, нужно ли тебе распарсить текст, извлечь таблицу, отрендерить страницу или сгенерировать отчёт.

@pythonl

#Python #PDF #PyPDF2 #PDFMiner #ReportLab #pdfplumber #PyMuPDF #PyPDFium2 #DevTools #PythonDev #OpenSource

Читать полностью…

Python/ django

💥 Ищете возможности в Data Science и ML? На курсе «Специализация Machine Learning» мы научим вас не просто работать с данными, а использовать мощные алгоритмы для бизнес-прогнозирования.

Программа подходит как новичкам, так и профессионалам: от системных аналитиков до инженеров, которые хотят научиться ML с нуля. Мы дадим вам практические знания и опыт, используя актуальные инструменты.

На курсе вы освоите Python, библиотеки pandas, sklearn, глубокое обучение и анализ временных рядов. Пройдете обучение по самым современным фреймворкам и научитесь решать реальные задачи.

➡️ Записывайтесь в группу прямо сейчас: https://tglink.io/4246af263d73?erid=2W5zFGw41u2

Чтобы успеть воспользоваться 🏷15% скидкой на курс «Специализация Machine Learning» + 🎁 промокодом ML_5 и учиться весь год по ценам мая. Скидка на курс действует по 26.05 включительно!

#реклама
О рекламодателе

Читать полностью…

Python/ django

🛡 StarGuard — умный аудит GitHub-репозиториев прямо из консоли

Открытый проект — это мощный 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

Читать полностью…

Python/ django

🐍 Задача с подвохом: mutable default arguments в Python

🔹 Уровень: 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

🖥 PyRoki — модульный инструмент для оптимизации кинематики роботов

На 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

Читать полностью…

Python/ django

🐍 Задача на Python: "Исчезающая цифра"

Условие:
У тебя есть список строк — чисел от 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 всех чисел от 1 до 100.
-
xor_data — XOR всех чисел в текущем списке (`str` → `int`).
- Разность
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

Читать полностью…

Python/ django

🖥 Как масштабировать Python Task Queue — подробный гайд

Когда ваше 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

Читать полностью…

Python/ django

🪬 Boto3 — мост между Python и AWS. Эта официальная Python-библиотека предоставляет удобный интерфейс для взаимодействия с сервисами AWS — от простых операций с S3 до управления кластерами EC2.

После недавнего прекращения поддержки Python 3.8 проект сосредоточился на современных версиях языка. Особенность Boto3 в двухуровневой архитектуре: низкоуровневые клиенты для точного контроля и ресурсные объекты для упрощённого синтаксиса. Документация от AWS включает примеры для всех основных сервисов, что делает интеграцию почти безболезненной.

🤖 GitHub

@pythonl

Читать полностью…

Python/ django

🤖 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
- Документация

Читать полностью…

Python/ django

Второй язык программирования для карьерного роста

Навык работы с Go — это хорошее дополнение к скиллсету опытного программиста. Освоить язык можно на курсе Нетологии. Это актуальная программа 2025 года, которую мы разработали с учётом последних трендов отрасли.
На курсе вас ждёт много практики: 4 проекта для портфолио, 32 задания и хакатон. За 6 месяцев вы освоите язык на продвинутом уровне и научитесь:

- писать эффективный код на Go,
- создавать высоконагруженные сервисы,
- работать с базами данных,
- встраивать Go-приложения в инфраструктуру.

Практикующий эксперт проведёт для вас 3 персональные консультации. Центр развития карьеры поможет упаковать весь опыт в сильные резюме и портфолио. Освойте Go как второй язык программирования и растите в карьере

Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5xBerBJ

Читать полностью…

Python/ django

❓Зачем Data Scientist изучать ML?

Машинное обучение — это не просто модное словосочетание. Это основа Data Science, без которой успешная карьера в этой области невозможна. Вы не сможете работать с большими данными и обучать ИИ, если не освоите методы ML.

На открытом вебинаре 19 мая в 18:00 мск вы узнаете, зачем вам ML, и научитесь решать реальную задачу: классифицировать изображения с помощью машинного обучения.

📣 Спикер Мария Тихонова – PhD Computer Science, Senior Data Scientist и преподаватель в одном из крупнейших университетов России.

➡️ Записывайтесь на открытый вебинар и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/49Fa3/?erid=2W5zFHaP9np 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Python/ django

⚡️Создаём свою нейросеть в PyTorch

Хотите быстро разобраться в PyTorch и написать свою нейросеть? Мы подготовили для вас вебинар, где на практике разберём все этапы создания ML-модели.

Вебинар проведет Владислав Агафонов — ML-инженер, ранее работал в Yandex и Huawei.

Что будет на вебинаре?
🟠Установим PyTorch в Google Colab и настроим работу на бесплатном GPU;
🟠Поймём, что такое тензоры и почему они — фундамент всех нейросетей;
🟠Скачаем готовый датасет, разберём его структуру и подготовим для обучения;
🟠Научимся использовать DataLoader для эффективной загрузки данных;
🟠Пошагово соберём облегчённую версию классической свёрточной нейронной сети (CNN);
🟠Обучим и протестируем модель.

🕗 Встречаемся 14 мая в 18:30 по МСК, будет много практики, ответы на вопросы и полезные инсайты от эксперта.

😶Зарегистрироваться на бесплатный вебинар

Читать полностью…

Python/ django

Как найти аномалии в данных с помощью машинного обучения?

В мире данных выявление аномалий — ключевая задача, которая помогает находить неисправности, мошенничество и отклонения. Без правильных методов вы рискуете упустить важные факты, которые могут повлиять на результаты.

На открытом вебинаре 13 мая в 18:00 мск мы подробно разберем, как эффективно искать аномалии в данных с использованием популярных методов, от простых статистических до продвинутых, таких как Isolation Forest и OneClassSVM.

📣 Спикер Мария Тихонова – PhD Computer Science, Senior Data Scientist и преподаватель в одном из крупнейших университетов России.

➡️ Запишитесь на вебинар и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/YfwA/?erid=2W5zFH7af1a 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Python/ django

🖥 Шпаргалка по RegEx в Python

📦 Импорт:


import re

🔍 Основные функции модуля re


re.search(pattern, string) # Ищет первое совпадение (где угодно в строке)
re.match(pattern, string) # Ищет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону
re.findall(pattern, string) # Возвращает все совпадения в виде списка
re.finditer(pattern, string) # То же, но как итератор Match-объектов
re.sub(pattern, repl, string) # Замена по шаблону
re.split(pattern, string) # Разбиение строки по шаблону


# 🧠 Основы синтаксиса шаблонов

| Шаблон | Что значит |
|---------|-------------------------------------|
| . | Любой символ, кроме \n |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или больше повторений |
| + | 1 или больше |
| ? | 0 или 1 повторение |
| {n} | ровно n раз |
| {n,} | n или больше |
| {n,m} | от n до m |
| [] | Символьный класс |
| [^] | Отрицание символьного класса |
| | | Или (`a|b`) |
| () | Группа (захват) |
| \ | Экранирование спецсимвола |

💡 Примеры


re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одно или больше цифр)
re.match(r'^\w+$', 'hello_world') # Вся строка — только буквы/цифры/_
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']


🎯 Захват групп


text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30


Группы можно называть:


pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'


🧱 Комбинированные шаблоны


pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]


⚠️ Полезные советы

• Всегда используйте r'' перед шаблоном, чтобы не экранировать \
re.compile(pattern) ускоряет повторное использование
• Старайтесь избегать re.match — чаще нужен re.search

✅ Быстрая проверка шаблонов

📍 Онлайн-проверка:
- https://regex101.com/
- https://pythex.org/

Хочешь отдельную шпаргалку по re.sub с лямбдами, заменами и функциями внутри, ставь лайк 👍

@pythonl

Читать полностью…
Subscribe to a channel