PythonTalk
4.74K subscribers
1.44K photos
47 videos
7 files
1.3K links
Привет, меня зовут Олег Булыгин 👋

🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science.

По вопросам: @obulygin91
Download Telegram
Так, телеграм надругался над постом, поэтому заново 😁

Вечный холивар: Табы vs. Пробелы
⚔️⚔️

Один из тех споров, который жил, жив и будет жить.

Собрал все основные аргументы в наглядных карточках ☝️

Но правильный ответ в этом споре есть, и он не про табы или пробелы. Он про консистентность.

Пишете для себя — делайте как хотите. Хоть вперемешку, интерпретатор схавает (до поры до времени). Но как только вы работаете в команде, личные предпочтения засовываете подальше. Договорились на 4 пробела — значит, 4 пробела. Договорились на табы — значит, табы. Единообразие всегда важнее личных убеждений.

К счастью, почти любая IDE умеет по нажатию на Tab ставить нужное количество пробелов. Так что можно быть ленивым и соответствовать PEP 8 одновременно. Удобно же.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1🙏1
Нейросети теперь сами для себя придумывают экзамены 🧑‍💻

Все привыкли к бенчмаркам вроде HumanEval, которые давно заезжены и на которых все модели уже натренировались. Как понять, какая LLM реально программирует лучше? И вот Tencent выкатили в опенсорс AutoCodeBenchmark.

Это целый конвейер, который использует LLM, чтобы создавать новые, уникальные задачи по программированию на 20 языках.

Как это работает?
1. Берется простейший кусок кода (типа a+b).
2. LLM получает задание "эволюционировать" его во что-то сложное и написать тесты.
3. Самое главное: сгенерированный код тут же отправляется в безопасную "песочницу" (MultiLanguageSandbox), где он компилируется и выполняется. Если код — нерабочая дичь, он отбраковывается.
4. Только после успешной проверки код превращается в полноценную задачу бенчмарка.

Такой подход "генерация-проверка" гарантирует, что задачи в бенчмарке корректны и решаемы. Это позволяет бесконечно генерировать новые тестовые наборы, которые модели еще не видели. По сути, это новый, куда более честный и масштабируемый способ измерять реальные возможности кодовых LLM.

Описание архитектуры смотрим тут:
▶️Разбираем AutoCodeBenchmark от Tencent: нейросеть, которая сама придумывает и проверяет задачи по программированию ◀️

Интересно, как скоро модели научатся генерировать бенчмарки, на которых они сами будут выглядеть лучше конкурентов? 😊

#щупаем_сорцы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🙏111
🔥 Ещё один ИИ-помощник... для GitHub? 🤔

GitFriend — open-source тулза, которая хочет стать вашим лучшим другом при работе с репозиториями.

Что обещают разработчики:
▫️ AI-чат: Задать глупый вопрос по Git или GitHub (на базе Groq), попросить помощи с ошибкой.
▫️ Генератор README.md для проекта.
▫️ Gitmoji: Чтобы помочь вам налепить эмодзи в коммиты 🥴.

Заявлена аутентификация через Google, а в планах – прямая интеграция с GitHub OAuth, чтобы пушить README одной кнопкой, кастомные шаблоны и дашборд активности.

Потыкать онлайн-версию можно тут, а исходники, как водится, на GitHub.
👍22🔥1
👨‍💻 Минутка почти еженедельной рубрики «какого черта вы это делаете руками в 2025?».

Сегодняшний пациент — самописные скрипты для отслеживания изменений файлов.

Видел это миллион раз: бесконечный цикл, внутри os.walk, time.sleep(1) и сверка mtime. Наивный, прожорливый и кривой костыль, который жрет CPU впустую, даже когда ничего не происходит. Чуть лучше — взять старый-добрый watchdog.

Но есть watchfiles.

Это библиотека с ядром на Rust, использующее нативные API ОС (inotify на Linux, FSEvents на macOS и т.д.), и удобная обертка на Python. Пока событий нет — потребление ресурсов нулевое. Реакция мгновенная.

Это тот же паттерн, что и у Ruff, Polars или uv: тяжелую, низкоуровневую работу, где важна производительность, мы делегируем нативному коду. А в Python оставляем удобство и бизнес-логику.

Я тут расписал все это в деталях: заглянул под капот watchfiles, сравнил с watchdog и самописными костылями, показал, как пользоваться CLI и для чего это вообще нужно в разработке.

👉 Читать: watchfiles: руководство по эффективному мониторингу файлов в Python

Или вы до сих пор считаете, что while True + os.walk — это норм? Расскажите, почему 🌚

#это_база
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥321🙏11
Кроме кода, в любом проекте есть куча менеджмента, маркетинга и прочей рутины, которая откровенно бесит.

Коллеги собрали папку каналов, где как раз разбирают, как всё это оптимизировать и автоматизировать с помощью современных инструментов.

Что внутри:
• Как автоматизировать рутинные процессы, не связанные с кодом. ⚙️
• Практическое применение нейросетей для своих проектов и бизнеса. 🤖
• Как спихнуть на ИИ до 50% работы: от генерации контента до аналитики. 🧠
• Маркетинг для технарей: как сделать так, чтобы ваш продукт заметили. 🚀
• И да, про тот самый «личный бренд» 👨‍💻

Забирайте папку и изучайте:
👉 https://t.me/addlist/9kSSGH72xH9hMDBi
👍3🔥1👌1
"Играем" в MMORPG, где вашим персонажем управляет Python-скрипт 🎮

Игруха Artifacts — это бесплатная сэндбокс-MMORPG, где каждое действие персонажа — это HTTP-запрос. Вся "игра" — это, по сути, написание умного бота для самого себя. И это основная механика, а не читерство.

Можно управлять сразу 5-ю персами, создав полностью автономный отряд 🤖. Один рубит лес, второй добывает руду, третий крафтит шмот, двое других этим шмотом зачищают локи от мобов. А вы сидите, пьете кофе и смотрите.

🐍 Как это работает на Python?

Для основы не нужно ничего, кроме библиотеки requests.

1️⃣ Регистрируемся на сайте и создаем персонажа.
2️⃣ Находим свой токен в профиле. Это ваш ключ к API, держите его в секрете.
3️⃣ Пишем код.

Допустим, ваш ник CodeWarlock и вы хотите переместить его на клетку (0, 1), где пасутся нубские курицы для фарма.

Вот как будет выглядеть ваш первый скрипт:

import requests
import time

# --- Ваши данные ---
MY_TOKEN = "Bearer ВАШ_TOKEN_СЮДА"
CHARACTER_NAME = "CodeWarlock"
BASE_URL = "https://api.artifactsmmo.com/my"

# --- Заголовки для всех запросов ---
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": MY_TOKEN
}

def move_character(x, y):
"""Отправляет персонажа на указанные координаты."""
url = f"{BASE_URL}/{CHARACTER_NAME}/action/move"
payload = {"x": x, "y": y}

try:
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status() # Проверит на ошибки HTTP (типа 4xx, 5xx)

data = response.json()
print(f"Перемещаемся на ({x}, {y})...")

# После любого действия есть кулдаун. Его нужно дождаться.
cooldown = data.get('cooldown', 0)
print(f"Кулдаун: {cooldown} секунд. Ждем...")
time.sleep(cooldown)
print("Готов к следующему действию!")

except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
# Тут можно посмотреть тело ответа, чтобы понять, что не так
if 'response' in locals():
print(f"Ответ сервера: {response.text}")

# --- Запускаем нашего "игрока" ---
if __name__ == "__main__":
# Двигаемся на клетку с курицами
move_character(0, 1)

# Тут можно добавить следующую логику:
# fight_monster("chicken")
# ...и так далее


Все! Аналогично делаются запросы на бой, сбор ресурсов, крафт. Меняется только эндпоинт (вместо /move будет /fight) и payload.

Идеальный тренажер для новичков, чтобы на практике понять API, и шикарная "песочница" для опытных, чтобы построить сложные цепочки автоматизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍32🔥1🙏1🆒1
🚀 Хотите выйти за рамки базового Python и перейти к профессиональной разработке? Пора сделать следующий шаг - онлайн-курс «Python Developer. Professional»

📅 Старт обучения - 29 сентября

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

Чему вы научитесь:
- Писать надёжный, быстрый и безопасный код
- Проектировать архитектуру приложений и профилировать производительность
- Работать с современными фреймворками и библиотеками
- Понимать устройство чужого и собственного ПО, обеспечивать его поддержку и развитие
- Применять Python в реальных задачах - от backend-а до data-driven решений

Этот курс - шаг в настоящую инженерию на Python. По итогам вы не просто прокачаете скиллы, а сможете уверенно работать на middle+/senior-уровне.

⌛️ Успейте записаться до старта 29 сентября! Пройдите вступительное тестирование и займите место в группе: https://otus.pw/3lTc/


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
👍2🔥1🤔11
🇨🇳 Alibaba выкатили свой бесплатный ИИ-редактор кода — Qoder.

Разрабы называют его "агентной платформой для программирования", которая понимает всю кодовую базу и её архитектуру, а не только открытый файл.

Главная фича — Quest Mode:
Ты текстом описываешь задачу со всеми спеками, а агент сам планирует, пишет код, тестирует и вносит правки в проект. Асинхронно.

Что ещё интересного:
- Под капотом пачка моделей (Claude, GPT, Gemini и др.), которые подбираются автоматом под задачу.
- Запоминает контекст и твой стиль кода.
- Пока что полностью бесплатно на время превью.

Хороший подгон, с учетом того, что Trae, который был временно бесплатный и я его использовал, стал платным (ну почти, бесплатно там теперь только Gemini Flash).

Пошел тестировать ☕️

#тулбокс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1🎉1🙏1👨‍💻1🆒1
Два интересных факта из нового отчета JetBrains 🤔

Вышел свежий "The State of Python 2025" от JetBrains. Вот парочка самых интересных тезисов:

1️⃣ Половина Python-разработчиков — новички.
Да-да, 50% имеют меньше 2 лет проф. опыта. КАЖДЫЙ ВТОРОЙ.


2️⃣ 83% сидят на старых версиях Python, сжигая миллионы.
Отчет показывает, что переход, например, с Python 3.10 на 3.13 дает +42% к скорости. БЕЗ ИЗМЕНЕНИЯ КОДА.
А компании могли бы экономить сотни тысяч, а то и миллионы долларов в год на облаках. Но кому-то просто "некогда" поменять цифру в Dockerfile.


Это, конечно, только верхушка. Про взлет FastAPI, тотальное доминирование Rust и революцию в инструментах я расписал в материале на Дзен.
🫱🏻Читать: Половина — новички, а миллионы сгорают на ровном месте. Разбор отчета JetBrains ◀️◀️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥11
Говорят, в Python всё логично и предсказуемо. Ага, конечно.

Давайте начнём небольшой марафон по одной интересной теме с этого простенького, на первый взгляд, вопроса.

#квиз
🔥3👍2👨‍💻1👀1🆒11
Что получим при запуске кода?
Anonymous Quiz
11%
[]
2%
()
31%
1
28%
True
11%
False
9%
SyntaxError
7%
TypeError
👍3🔥221🙏1👨‍💻1
Окей, с первым квизом кто-то справился. Но вы же не думали, что на этом всё? 😈

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

#квиз
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211🔥1🙏1👌11
Что получим при запуске кода?
Anonymous Quiz
49%
True
4%
None
27%
False
13%
SyntaxError
6%
15
👍44🔥31🙏1👌1