ch
Feedback
Python/ django

Python/ django

前往频道在 Telegram

📈 Telegram 频道 Python/ django 的分析概览

频道 Python/ django (@pythonl) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 58 971 名订阅者,在 技术与应用 类别中位列第 2 162,并在 俄罗斯 地区排名第 10 185

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 58 971 名订阅者。

根据 28 八月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -301,过去 24 小时变化为 -7,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 6.23%。内容发布后 24 小时内通常能获得 3.48% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 3 674 次浏览,首日通常累积 2 050 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 20
  • 主题关注点: 内容集中在 github, claude, контекст, архитектура, api 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3Fm...

凭借高频更新(最新数据采集于 29 八月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

58 971
订阅者
-724 小时
+747
-30130
帖子存档
Что отличает настоящих профессионалов в аналитике данных? Настоящие профессионалы в аналитике данных выделяются не просто техническими навыками, а глубоким пониманием бизнес-контекста. Они видят, как сухие цифры превращаются в стратегические решения, влияющие на прибыль компании и ее развитие. Многие зацикливаются на изучении инструментов, упуская из виду главное — для чего эти инструменты нужны. Можно идеально владеть Python и SQL, но так и не научиться решать реальные бизнес-задачи. Где учат аналитике, которая нужна бизнесу? В магистратуре НИУ ВШЭ и Karpov Courses «Аналитика больших данных». Посмотрите бесплатный вводный курс и узнайте, как строится программа и что даст вам диплом.. Спикеры курса — эксперты с реальным опытом: Анатолий Карпов (ex-VK, самый популярный эксперт в сфере аналитике, по данным NEWHR), Нерсес Багиян (Head of DS в Raiffeisen CIB) и другие. Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFJaLkFa

📦 InvenTree — умная система учета для мастерских и инженерных проектов. Этот open-source инструмент — достойная замена Excel
📦 InvenTree — умная система учета для мастерских и инженерных проектов. Этот open-source инструмент — достойная замена Excel, которая поможет вам перестать страдать от перегруженных корпоративных систем. Инструмент предлагает продуманный баланс между простотой и функциональностью: отслеживание деталей, управление несколькими складами, работа с партиями и серийными номерами — всё в одном месте. 📌 Особенности проекта: — Гибкая интеграция через REST API и Python-модули — Мобильные приложения для iOS/Android со сканированием штрих-кодов — Плагинная система для кастомизации под конкретные нужды — Простой деплой — от Docker до однострочной установки на Linux 🤖 GitHub @pythonl

🖥 Как написать худший возможный Python-код Иногда проще показать, как не надо, чем объяснять, как надо. Вот список «правил», которые помогут вам гарантированно испортить любой Python-проект. 1. 🔒 Используйте непонятные имена переменных Называйте переменные x, y, a, thing. Абстракция — залог путаницы.

def f(x, y, z=None):
    a = x * 2
    b = y + a if z else y - a
    c = [i for i in range(a) if i % 2]
    return sum(c) + b
2.🧠 Пихайте максимум логики в одну строку Сложные тернарные выражения и вложенные list comprehension — всё в одной строке.

result = [x if x > 0 else (y if y < 0 else z) for x in data if x or y and not z]
3.⚠️ Используйте eval() и exec() Это медленно, небезопасно и глупо — но зато эффектно.

eval("d['" + key + "']")
4.🔁 Переиспользуйте переменные с разными типами Пусть одна переменная будет и строкой, и числом, и списком — динамическая типизация же!

value = "42"
value = int(value)
value = [value] * value
5.🌍 Используйте глобальные переменные Изменяйте состояние приложения откуда угодно. Особенно изнутри функций.

counter = 0

def increment():
    global counter
    counter += 1
6.🔮 Используйте магические числа и строки Без пояснений. Пусть коллеги гадают, почему именно 42 или "xyz".

if user.role == "xyz" and user.level > 42:
    access_granted()
7.📏 Игнорируйте стиль и отступы Никаких PEP8, никаких правил. Пиши, как хочешь.

def foo():print("start")
 if True:
  print("yes")
   else:
    print("no")
8.🧱 Копируйте код из Stack Overflow, не вникая Ctrl+C — это тоже разработка.

def complex_logic(x):
    return (lambda y: (lambda z: z**2)(y + 1))(x)
9.🧩 Придумывайте абстракции без надобности Вместо простой функции — классы, фабрики и стратегии.

class HandlerFactory:
    def get_handler(self):
        class Handler:
            def handle(self, x): return x
        return Handler()
10. 💤 Добавляйте мёртвый код Никогда не удаляй — вдруг пригодится. И пусть он грузится в каждый запуск.

def legacy_feature():
    print("This feature is deprecated")
    return
# нигде не вызывается
11.🔀 Не пишите документацию Комментарии только мешают. Кто захочет — разберётся.

def a(x): return x+1
12.🧪 Пиши без тестов Если код работает — зачем его проверять?

# Просто запускай и смотри глазами
process_user(data)
13. 🤖 Не используй AI и автодополнение Только ручной кодинг, без подсказок. Ошибки — путь мастера. 🧠 Заключение Все эти советы — примеры того, как не стоит писать код. Если вы узнали себя — пора остановиться. Ведь Python задуман как язык, где важна читаемость, простота и явность. "Beautiful is better than ugly. Explicit is better than implicit. Readability counts." — The Zen of Python @pythonl

Repost from Machinelearning
✔️ OpenAI выложили в открытый доступ Customer Service Agent Demo Теперь у всех есть пример, как сделать продакшн-агентов с ма
✔️ OpenAI выложили в открытый доступ Customer Service Agent Demo Теперь у всех есть пример, как сделать продакшн-агентов с маршрутизацией, безопасностью и интерфейсом — от запроса до ответа. Что это такое: • Многоагентная система для поддержки клиентов (например: бронирование мест, отмена рейса, статус рейса, FAQ) • Демка написана на Python + Next.js • Использует OpenAI Agents SDK • Встроены guardrails: защита от неуместных запросов и попыток обхода правил • UI: внутри готовый интерфейс чат-бота Как работает: 1. Пользователь пишет запрос 2. Система выбирает подходящего агента (например, `SeatBooking`) 3. Агент отвечает или передаёт диалог другому 4. Есть fallback на человека, если нужно Как запустить:

# Backend
cd python-backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn api:app --reload --port 8000

# Frontend
cd ui
npm install
npm run dev
Далее открываем: http://localhost:3000 Особенности • MIT-лицензия — можно адаптировать под свои задачи • Удобно расширять: добавлять новых агентов, инструменты, правила • Простой код, всё задокументировано • Рабочий кейс от OpenAI 🔗 GitHub: github.com/openai/openai-cs-agents-demo Если вы хотите собрать систему из агентов — это отличная точка старта. @ai_machinelearning_big_data #chatgpt #openai #aiagents #ai

🛠️ CRUDAdmin — генератор админок на Python за минуты crudadmin — это фреймворк на Python для моментальной генерации интерфей
🛠️ CRUDAdmin — генератор админок на Python за минуты crudadmin — это фреймворк на Python для моментальной генерации интерфейсов на основе SQLAlchemy-моделей. 🔹 Поддержка Flask и FastAPI 🔹 Автоматическая генерация CRUD-интерфейсов 🔹 Простая настройка и кастомизация форм 🔹 Поддержка авторизации и управления доступом 🔹 Пагинация, поиск, фильтры — всё из коробки 📦 Установка:

pip install crudadmin
🔗 GitHub @pythonl

📈 TradingAgents — мультиагентная LLM-платформа для алгоритмической торговли 🎉 TradingAgents официально открыт! После большо
📈 TradingAgents — мультиагентная LLM-платформа для алгоритмической торговли 🎉 TradingAgents официально открыт! После большого интереса со стороны сообщества разработчики решили выложить весь фреймворк в open-source. 🔧 Что такое TradingAgents: • Это мультиагентная система, имитирующая работу реальной трейдинговой фирмы • Каждый агент выполняет свою роль — от анализа данных до принятия решений • Все агенты основаны на LLM-моделях и взаимодействуют между собой 👥 Роли агентов: • Fundamentals Analyst — анализ финансовых показателей компаний • Sentiment Analyst — оценка настроений по соцсетям и новостям • News Analyst — отслеживание глобальных событий и их влияния на рынок • Technical Analyst — прогноз на основе графиков, индикаторов (MACD, RSI и др.) ⚠️ Важно: проект предназначен для исследовательских целей и не является финансовой рекомендацией. Результаты могут зависеть от модели, данных и параметров генерации. 📦 Возможности: • CLI и GUI-интерфейс • Быстрый запуск и кастомизация • Структура, готовая к масштабированию 🔗 Репозиторий: https://github.com/AI4Finance-Foundation/TradingAgents #AItrading #LLM #MultiAgent #TradingAgents #fintech #opensource

📊 Deptry — детектор проблем с зависимостями в Python. Этот инструмент сканирует проект на расхождения между импортами в коде
📊 Deptry — детектор проблем с зависимостями в Python. Этот инструмент сканирует проект на расхождения между импортами в коде и задекларированными зависимостями. Он работает с Poetry, pip и PDM, находя три типа проблем: неиспользуемые пакеты, отсутствующие зависимости и модули, ошибочно помеченные как dev-зависимости. Инструмент анализирует не только requirements.txt, но и динамические импорты черезависимостями что снижает количество ложных срабатываний. Для настройки можно использовать как CLI-аргументы, так и секцию [tool.deptry] в� Deptry — детекто 🤖 GitHub @pythonl

Выбираете магистратуру? Обратите внимание на бесплатные партнёрские программы Яндекса в топовых вузах России! 🔹 «Аппаратная
Выбираете магистратуру? Обратите внимание на бесплатные партнёрские программы Яндекса в топовых вузах России! 🔹 «Аппаратная разработка умных устройств» — межуниверситетская магистратура в НИУ ВШЭ и МФТИ. Вы будете решать реальные задачи, с которыми работают инженеры сервиса «Алиса и Умные устройства Яндекса». 🔹 «Искусственный интеллект в робототехнике» — программа в Сколтехе, основанная на опыте Яндекс Маркета. Вас ждёт работа с кейсами, где ИИ меняет процесс логистики и автоматизации. Программы разрабатывались при участии экспертов Яндекса — действующих практиков в ML и Data Science, а также опытных преподавателей, — поэтому обучение построено на самых актуальных знаниях и реальных задачах. 🚀 Если хотите не просто получить диплом, а вырасти в сильного специалиста, переходите на сайт и выбирайте программу!

🎯 Практическое руководство: Signals — реактивное управление состоянием в Python Недавно вышло отличное руководство «The Miss
🎯 Практическое руководство: Signals — реактивное управление состоянием в Python Недавно вышло отличное руководство «The Missing Manual for Signals: State Management for Python Developers», где автор показывает, как внедрять реактивную модель на Python с помощью библиотеки Почему Signals полезны Стандартный подход—императивный—скрывает зависимости между переменными, что ведёт к ошибкам:

class OrderService:
    def add_order(self, order):
        self.orders.append(order)
        self.total += order.amount
        self.avg = self.total / len(self.orders)
        self.notify_if_needed()
        self.track_analytics()
Если забыть обновить одно значение — всё сломается. Как работают Signals Signals = реактивные переменные, которые: 1. Хранят значение (`Signal`) 2. Автоматически вычисляют производные (`Computed`) 3. Выполняют побочные действия (`Effect`) на изменениях Пример:

from reaktiv import Signal, Computed, Effect

orders = Signal([])
total = Computed(lambda: sum(o.amount for o in orders()))
avg = Computed(lambda: total() / len(orders()) if orders() else 0)
Effect(lambda: notify(avg()) if avg() > 100 else None)

orders.update(lambda os: os + [new_order])
Теперь всё обновляется автоматически — вручную ничего делать не нужно. Когда стоит применять * Сложные производные значения, зависящие от нескольких источников * Реальные Cascading-настройки, например, конфиг, кэши, соединения * Сценарии real-time: дашборды, метрики, воркфлоу Когда лучше не использовать * Простые последовательные преобразования * Одноразовые API-вызовы * Прямолинейные функции (например, вычисление налога) Основные преимущества - ✅ Чёткое, декларативное управление зависимостями - ✅ Обновления только нужных значений благодаря ленивому пересчёту - ✅ Упрощение тестирования и устранение ошибок обновления Реальные примеры - Управление конфигурацией микросервисов - Реализация real-time дашбордов - Мониторинг состояния кластера, триггеры скейлинга 💡 Итог: Signals — отличная альтернатива громоздкому императиву. Декларируешь связь один раз, и система сама поддерживает согласованность. Полезно как для backend‑разработчиков, так и для ML‑инженеров. 📚 Материал — ~16 минут чтения, и он того стоит 📌 Читать @pythonl

Repost from Machinelearning
🤖 MiniMax Agent — новый универсальный ИИ-агент для сложных задач Команда MiniMax представила MiniMax Agent — интеллектуального агента, способного решать многошаговые, долгосрочные и комплексные задачи. Что умеет MiniMax Agent: - Поддерживает комплексное и многошаговое планирование на уровне - Разбиение задач на подзадачи и их исполнение - МОщные инструменты генерации кода - Мультимодальность - Интеграция с MCP 🔗 https://agent.minimax.io @ai_machinelearning_big_data #AI #IntelligentAgent #MiniMax #MultiStepPlanning #Automation #ToolUse #MCP #LLM

🖥 Совет по Python:

from pathlib import Path

# Создаем объект Path для заданного пути к файлу
path = Path("C:/Users/test.md")

# Получаем имя файла вместе с расширением
print(path.name)     # 'test.md'

# Получаем только имя файла без расширения
print(path.stem)     # 'test'

# Получаем расширение файла (с точкой)
print(path.suffix)   # '.md'

# Получаем родительскую директорию (папку)
print(path.parent)   # 'C:/Users'
С помощью модуля pathlib вы можете получать различные части пути — имя файла, расширение, родительскую директорию. Это упрощает работу с файловыми путями и их анализ. Объяснение: - path.name — возвращает полное имя файла (например, test.md). - path.stem — возвращает имя файла без расширения (например, test). - path.suffix — возвращает расширение файла (например, .md). - path.parent — возвращает путь к родительской директории (например, C:/Users). Модуль pathlib позволяет удобно разбирать путь к файлу на части и работать с ними, не используя строковые операции вручную. Это особенно полезно для кроссплатформенной работы с файлами и папками. @pythonl

Российский рынок СУБД демонстрирует рост — 41,7 млрд ₽ в 2025 году, +16% в год. Главные драйверы: импортозамещение и ИИ. О приоритетах и текущей стратегии развития платформы данных Yandex Cloud рассказал Леонид Савченков: — В центре внимания надёжность и масштабируемость — особенно для Postgres; — Активное развитие опенсорса: вклад в Cloudberry (ASF), собственный pg-sharding, а YTsaurus может быть особенно полезен Python-разработчикам благодаря поддержке ML; — YTsaurus и YDB теперь доступны для on-premise-развёртывания - решения можно запускать у себя; — Обноваления платформы данных: в DataLens появился редактор графиков на JS, галерея дашбордов и сертификация аналитиков; улучшены механизмы шардирования, а также инструменты масштабирования и отказоустойчивости. 🔍 Отказоустойчивость, открытость и собственные разработки — ключ к суверенной инфраструктуре хранения и обработки данных. Полное интервью

🐍 PyLeak — найди утечку памяти в своём Python-коде PyLeak — простой и мощный инструмент для отладки утечек памяти в Python-п
🐍 PyLeak — найди утечку памяти в своём Python-коде PyLeak — простой и мощный инструмент для отладки утечек памяти в Python-приложениях. 🔍 Возможности: • Показывает объекты, которые не удаляет сборщик мусора • Строит граф зависимостей между объектами • Выявляет циклические ссылки и "висящие" объекты • Поддерживает визуализацию через Graphviz 📦 Установка: pip install pyleak 🧰 Идеален для отладки сервисов, где память утекает незаметно. 🔗 GitHub @pythonl

Уверены в своих навыках кодинга? Тогда заглядывайте в канал Selectel. Всю неделю в канале будут выходить полезные материалы д
Уверены в своих навыках кодинга?   Тогда заглядывайте в канал Selectel. Всю неделю в канале будут выходить полезные материалы для разработчиков: ● Подробная инструкция, как сделать приложение на базе веб-технологий; ● Технические задачи для настоящих Python-энтузиастов; ● Идеи для pet-проектов: от генерации сложных паролей до нейросети для создания изображений; ● И даже выгодные продуктовые предложения, которые помогут воплотить идеи на инфраструктуре Selectel.   Подписывайтесь на канал и прокачивайте знания в сфере разработки ➡️   Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwdjwRx

💻 Copilot Agent Mode — новый этап в развитии AI-помощников для разработчиков Теперь доступен всем в июньском обновлении Visual Studio! 🧠 Что умеет: • Сам строит план разработки • Выполняет задачи пошагово • Адаптируется по ходу процесса • Циклично доводит работу до завершения Это уже не просто автодополнение — это полноценный агент, способный решать проектные задачи от начала до конца. 📖 Подробнее: https://msft.it/6018SQDuo #VisualStudio #Copilot #AIdev #AItools #GitHubCopilot #Copilot @pythonl

🖥 Вышел Git 2.50 Вот основные обновления: 1. Новый уровень работы с cruft packs - Git хранит неиспользуемые (невидимые) объе
🖥 Вышел Git 2.50 Вот основные обновления: 1. Новый уровень работы с cruft packs - Git хранит неиспользуемые (невидимые) объекты в специальных “cruft packs”. - Раньше управлять ими было сложно: чтобы добавить или объединить объекты, нужно было всё перепаковывать, что занимало много времени и места. - Теперь появился флаг --combine-cruft-below-size: можно легко объединять мелкие cruft packs в один, постепенно “чистить” репозиторий. - Исправлена важная ошибка: раньше такие объекты могли случайно удаляться раньше времени — теперь это под контролем. 2. Быстрее для больших репозиториев — многослойные битмапы - В больших проектах Git создаёт специальные “карты” (bitmaps), чтобы быстро понимать, какие объекты нужны для определённых коммитов. - Новая версия поддерживает “инкрементальные” битмапы для multi-pack index — можно добавлять новые данные быстро, не пересоздавая всю структуру. 3. Новый движок слияния ORT - Старый движок recursive полностью удалён: теперь слияния (`merge`) обрабатывает только быстрый и надёжный ORT. - Это упростит разработку, повысит скорость merge и уменьшит количество ошибок. 4. Улучшения в утилитах и команде cat-file - Теперь можно фильтровать объекты по типу, например, быстро получить только “деревья” (tree) с помощью --filter='object:type=tree'. - Команда для удаления reflog стала интуитивной: вместо сложных параметров просто пишем git reflog delete <branch>. 5. Больше контроля над сетевыми соединениями - Добавлены настройки для TCP Keepalive, теперь можно гибко управлять поведением Git в нестабильных сетях. 6. Меньше Perl — проще тестировать и собирать - Git ещё больше избавился от зависимостей на Perl: тесты и документация теперь проще и стабильнее, особенно на системах без Perl. 7. Работа с разреженными (sparse) репозиториями стала удобнее - Команды вроде git add -p теперь не требуют полной загрузки содержимого — удобно при работе с огромными проектами. 8. Косметические улучшения - При ребейзе (rebase -i) названия коммитов теперь оформляются как комментарии — так ясно, что это просто для ориентира. 9. Быстрее клонируем через bundle-uri - Git стал лучше справляться с ускоренным клонированием через *.bundle: теперь клиент правильно учитывает все ссылки, ускоряя загрузку репозитория. Git 2.50 — это не просто исправление багов, а реальное ускорение и упрощение работы для всех, кто ведёт большие проекты, часто сливает ветки и заботится о “чистоте” репозитория. Новые команды делают жизнь проще, а старые баги — ушли в прошлое. ➡️ Почитать про все обновления @pythonl

🚀 TurboDRF — ускоритель Django REST Framework без боли TurboDRF — лёгкий способ ускорить ваш Django API без перехода на Fast
🚀 TurboDRF — ускоритель Django REST Framework без боли TurboDRF — лёгкий способ ускорить ваш Django API без перехода на FastAPI или переписывания логики. 🔥 Что даёт TurboDRF: • ⚡ Быстрый рендер сериализаторов • 🧠 Автоматический prefetch_related и select_related • 🧊 Кэширование сериализованных ответов • 🧩 Совместим с обычными DRF-сериализаторами 📦 Установка: pip install turbodrf 🛠️ Пример:

from turbodrf.mixins import TurboModelSerializer

class MySerializer(TurboModelSerializer):
    class Meta:
        model = MyModel
        fields = "__all__"
✅ Идеален для больших Django-проектов, где важна скорость ответа. 🔗 GitHub: https://github.com/alexandercollins/turbodrf @pythonl

🚀 Pipedream — платформа для создания интеграций и автоматизаций между сервисами. Этот инструмент позволяет соединять более 1
🚀 Pipedream — платформа для создания интеграций и автоматизаций между сервисами. Этот инструмент позволяет соединять более 1000 приложений через готовые компоненты или собственный код на Node.js, Python, Go и Bash. Главное преимущество проекта — это гибкость: можно быстро настроить триггеры и цепочки действий без сложной инфраструктуры. Для кастомных сценариев доступно выполнение произвольного кода с подключением любых npm/pip-пакетов. Интеграции развертываются в облаке Pipedream, что избавляет от необходимости настраивать серверы. 🤖 GitHub @pythonl

🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite! py-pglite — обёртка PGlite для Python, позволяющая запускать
🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite! py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай. 📌 Почему это круто: - 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python - ⚡ Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2} - 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно - 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями - 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3} 💡 Примеры установки:

pip install py-pglite
pip install py-pglite[sqlalchemy]   # SQLAlchemy/SQLModel
pip install py-pglite[django]       # Django + pytest-django
pip install py-pglite[asyncpg]      # Асинхронный клиент
pip install py-pglite[all]          # Всё сразу
🔧 Пример (SQLAlchemy)

python 
def test_sqlalchemy_just_works(pglite_session):
    user = User(name="Alice")
    pglite_session.add(user)
    pglite_session.commit()
    assert user.id is not None
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины. Полноценный PostgreSQL — без его тяжеловесности.Github @pythonl #python #sql #PostgreSQL #opensource

⚡️ MicroVMS — новая платформа для запуска кода от AI-агентов с максимальной безопасностью и скоростью. В отличие от Docker и других тяжелых решений, MicroVMS использует легковесные песочницы для быстрой изоляции, мгновенного старта и простого управления. ● Поддержка разных сред: Python, Node.js и другие ● Идеально для AI-агентов — разработка и запуск без лишних сложностей ● Удобная система управления проектами — настройка песочниц в пару кликов Если вы хотите запускать код AI-агентов быстро, безопасно и удобно — обратите внимание на MicroVMS. pip install microsandbox 🔗 Github @pythonl