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

Разбираем тестовое задание в Яндекс на позицию Junior аналитика данных

Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.

Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.

⚡️На вебинаре вы:

🟠узнаете, какие навыки и знания необходимы для успешного выполнения заданий;
🟠поймёте, что хочет увидеть работодатель;
🟠получите советы и лайфхаки;
🟠вместе с Андроном разберете в прямом эфире реальный пример тестового 🔥


Чему именно научимся на вебинаре:
🟠С помощью Pandas проанализируем Яндекс-запросы за несколько недель, загрузив их из json-файла;
🟠Найдем закономерности и отличия использования сервиса на мобильных устройствах и компьютерах;
🟠Разберем фишки Pandas: сложную агрегацию, маппинг, конкатенацию, чейнинг и др.


🕗 Настоятельно рекомендуем не пропускать — для зрителей у нас есть особый бонус, который обеспечит вам уверенный старт в вашей карьере.

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

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

Python/ django

📸 Разработчик запустил свой код на сервере, имея лишь возможность изменения содержимого комментария в Python-скрипте

Участник соревнования UIUCTF 2025 обошёл ограничения задачи, где можно было изменять только содержимое комментария в Python-скрипте и подробно рассказал об этом. Вместо поиска уязвимостей в парсере, он использовал особенность интерпретатора — выполнение ZIP-архивов как Python-кода.

Секрет в структуре ZIP-файлов: Python ищет метаданные в конце архива, что позволило вставить архив в комментарий, сохранив валидность исходного скрипта. При запуске такого скрипта выполнялся код из main.py внутри архива.

🔗 Ссылка - *клик*

@pythonl

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

Python/ django

📰 Python без GIL: новая эра многопоточности

Недавно в Python 3.13 появилась экспериментальная возможность отключить Global Interpreter Lock — механизм, который десятилетиями ограничивал настоящую многопоточность в Python. Теперь можно сравнить производительность обычной и свободнопоточной версий интерпретатора.

Тесты с CPU-интенсивными задачами показывают ускорение в 3-4 раза при использовании 4 потоков в версии без GIL. Однако за это приходится платить: усложняется сборка мусора, требуется новая система управления памятью, а некоторые объекты становятся просто бессмертными.

Пока free-threaded Python остаётся опциональным, но в будущих версиях, начиная с 3.14, он может стать стандартом. Главный вопрос — насколько быстро сообщество и библиотеки адаптируются к этим изменениям.

🔗 Ссылка - *клик*

@pythonl

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

Python/ django

🖥 Second‑Me

Это ваш “цифровой двойник”: агент, который обучается на ваших заметках, письмах и постах и помогает вести аккаунты в соцсетях.

В 2025 году проект получил крупное обновление — добавлен модуль для управления площадками вроде LinkedIn и Airbnb, а также улучшена персонализация бота.

https://github.com/mindverse/Second-Me

@pythonl

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

Python/ django

🖥 Теперь писать сложные промты самому не обязательно — OpenAI выпустили генератор, который превращает даже простой запрос в подробную инструкцию для ИИ.

Принцип простой: описываете, что хотите получить, нажимаете Optimize — GPT-5 анализирует запрос и выдаёт готовый детализированный промт. Работает бесплатно.

Инструмент может упростить работу с любыми нейросетями, особенно если у вас нет опыта в составлении промтов.

Готовый вы можете сразу попробовать в @Chatgpturbobot

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

Python/ django

🎧 Abogen — оффлайн‑инструмент для создания аудиокниг с субтитрами

Преобразуй EPUB, PDF или текстовые файлы в аудиокниги с естественным голосом — и получи синхронизированные субтитры. Всё локально. Всё бесплатно. Всё быстро.

🛠 Что умеет:
- Поддержка EPUB / PDF / TXT
- Озвучка с помощью Kokoro‑82M (TTS модель)
- Автоматическая генерация субтитров (по словам или предложениям)
- Микширование голосов (Voice Mixer)
- Пакетная обработка книг (Queue Mode)
- Работает офлайн на Windows, Linux и macOS

⚡️ Быстро: 3 мин текста — за 10–15 сек на RTX 2060
🧠 Полный контроль — никакого облака, только локальный запуск

📦 GitHub: https://github.com/denizsafak/abogen

@pythonl

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

Python/ django

⚠️ Внимание: фишинг-атака на разработчиков Python. Злоумышленники рассылают поддельные письма от имени PyPI с домена pypj.org, требуя "подтвердить email".

Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.

🔗 Ссылка - *клик*

@pythonl

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

Python/ django

🐉 Windmill — open-source платформа для разработки внутренних инструментов, которая превращает скрипты в готовые API, фоновые задачи и веб-интерфейсы. Проект позиционируется как альтернатива коммерческим решениям вроде Retool или Superblocks, но с акцентом на гибкость и self-hosted развёртывание.

Интересно реализована идея автоматической генерации UI: достаточно написать скрипт на Python, TypeScript, Go или Bash и Windmill создаст для него веб-форму с параметрами. Готовые скрипты можно комбинировать в сложные workflows или встраивать в low-code приложения. Под капотом — Rust, Postgres и sandbox-исполнение через nsjail для безопасности.

🤖 GitHub

@pythonl

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

Python/ django

⚡️ GGUF-версии GPT-OSS от Unsloth.

Unsloth конвертировали обе GPT-OSS (20B и 120B) и исправили ошибки, чтобы повысить качество инференса.

🟡Оптимальный сетап:

🟢20B работает со скоростью более 10 токенов/с при полной точности на 14 ГБ оперативной памяти.

🟢120B с полной точностью будет давать >40 токенов/с на примерно 64 ГБ ОЗУ.

Минимальных требований для запуска моделей нет, запуститься можно даже если у вас всего 6 ГБ и только CPU, но инференс будет медленнее.

GPU не требуется , особенно для модели 20B, но его наличие значительно увеличивает скорость вывода (~80 токенов/с). С чем-то вроде H100 можно получить пропускную способность 140 токенов/с, и это значительно быстрее, чем у OpenAI в ChatGPT.

Модели можно запустить через llama.cpp, LM Studio или Open WebUI. Если модель 120B слишком медленная, попробуйте версию 20B - она очень быстрая и работает не хуже o3-mini.

Помимо моделей формата GGUF c полной точностью, Unsloth сделали версии с 4-bit и 16-bit точностью. 4-бинтый квант, кстати, можно файнтюнить на 24 ГБ VRAM.

📌 Подробная пошаговая инструкция по локальному запуску и файнтюну - в документации Unsloth.


🟡Набор моделей
🟡Документация


@ai_machinelearning_big_data

#AI #ML #GPTOSS #GGUF #Unsloth

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

Python/ django

Ведущие ML- и DS-инженеры соберутся 13 и 14 сентября на E-CODE.
Это масштабное IT-событие создано командой Ozon Tech. Вы приглашены, но нужно зарегистрироваться: https://s.ozon.ru/m8XO9ot

Что будет:
6 контентных треков — один из них для ML/DS.
Выступления известных учёных.
Качественный нетворк — комьюнити middle+ специалистов.
Интеллектуальные интерактивы — и эксклюзивный мерч в подарок.
Вечеринки каждый день — на сцене НТР, Заточка, ILWT и Нейромонах Феофан.

E-CODE — комьюнити-пространство, в котором стоит быть 💙

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

Python/ django

Полезно для преподавателей алгоритмов

Т-Образование запускает бесплатный онлайн-курс «Алгоритмы и структуры данных». Пригодится тем, кто хочет сделать занятия в вузах еще интереснее.

Курс основан на опыте экспертов и лучших практиках. Он создан, чтобы улучшить образование вместе с преподавателями. Подобное обучение уже проводили для студентов — выпускники программ побеждают в олимпиадах и устраиваются в крупные бигтех-компании.

Здесь вы можете:
— Повысить квалификацию.
— Узнать, как алгоритмы применяют в реальных финтех-задачах, и делиться примерами со студентами.
— Получить материалы для работы и доступ к образовательной платформе, чтобы вести свой курс и не переносить данные в другие сервисы.
— Познакомиться с коллегами из других вузов — обмениваться опытом и идеями в общем чате.

Занятия легко совмещать с работой: они будут проходить раз в неделю по вечерам. Курс продлится один семестр — с сентября по январь.

Успейте подать заявку и пройти отбор до 16 августа

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

Python/ django

🚀 С нуля → до портфолио и оффера в ИТ. Совершенно беслпатно!

«Школа 21» от Сбера — это бесплатная школа цифровых технологий. Здесь ты прокачаешься в ИТ с нуля, научишься работать в команде, получишь реальные навыки и опыт.
Без лекций и преподавателей. Только практика и нетворкинг.

📌 Что внутри:
— кампусы, которые работают 24/7 в Москве, Уфе, Казани, Новосибирске, Белгороде, Липецке, Нижнем Новгороде и других городах России.
— возможность совмещать с работой или учебой в вузе.
— сюда поступают независимо от образования: 50% участников пришли без опыта в ИТ.
— гарантированная стажировка в ИТ-компании.
— востребованные профессии: разработчик, devops/sre-инженер, data scientist, qa-инженер, специалист по кибербезопасности, бизнес- и системный аналитик.

🎯 Хочешь стать частью ИТ-комьюнити? Подавай заявку прямо сейчас: https://21-school.ru/

Реклама. Заказчик АНО «Школа 21» ИНН 7736316133

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

Python/ django

🗂 Copyparty — «всё-в-одном» файловый сервер, запускаемый одной командой Python

Что это такое
- Один файл = полноценный NAS: HTTP/HTTPS, WebDAV, FTP, TFTP, Zeroconf
- Быстрые загрузки с возобновлением (resumable)
- Дедупликация, превью, миниатюры, медиабаза, поиск
- Без внешних зависимостей и БД — один .py-файл или standalone .exe/.apk
- Работает на Linux, Windows, macOS, Raspberry Pi

Для чего полезно :
- Создать домашний медиасервер и быстрый обмен файлами в локальной сети
- Раздача билдов/прошивок внутри команды без S3 и лишней админки
- LAN-party или мероприятия, где нужно «одно место» для обмена файлами

> 📝 Чтобы развернуть, достаточно запустить: python3 copyparty.py

⭐ 20 k+ звёзд на GitHub, активная разработка, лицензия MIT — отличный инструмент!

🖥 Github

@pythonl

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

Python/ django

🎙️ Higgs Audio v2 — открытая аудио‑модель, которая обходит GPT‑4o-mini-tts

Boson AI выложили модель синтеза речи, обученную на 10+ млн часов аудио — и она уже показывает лучшие результаты, чем GPT‑4o-mini-tts и другие закрытые системы.

🧠 Что умеет Higgs Audio v2:
- Генерирует естественную, эмоциональную речь
- Поддерживает мультиспикерность и клонирование голосов без дообучения
- Работает в zero-shot: достаточно текст + один голосовой пример
- Озвучка в 24 kHz — звук заметно лучше, чем у многих систем с 16 kHz

📊 Побеждает GPT‑4o-mini-tts в бенчмарках:
- 75.7 % win rate на эмоциях
- 55.7 % win rate на вопросах
- Отличные метрики по точности и качеству речи

🛠️ Открыт код + модели:
- Новый AudioVerse токенизатор (эффективность + качество)
- Dual‑FFN архитектура
- Q-learning для адаптивной выразительности

git clone https://github.com/boson-ai/higgs-audio.git
cd higgs-audio

pip install -r requirements.txt
pip install -e .


🔥 GitHub: https://github.com/boson-ai/higgs-audio

@pythonl

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

Python/ django

🚀 Kreuzberg — мощный фреймворк Document Intelligence для Python!

🔹 Извлекает текст, метаданные и структурированные данные из PDF, Office-документов, изображений и др.
🔹 Основан на проверенных open-source решениях: Pandoc, PDFium, Tesseract
🔹 Поддержка 18 форматов (PDF, DOCX, PPTX, HTML, изображения, таблицы и пр.)
🔹 Высокая производительность: 30+ документов/с, лёгкий runtime (≈360 МБ), установка 71 МБ
🔹 Открытый исходный код под MIT-лицензией, 2 000⭐ на GitHub
GitHub

Пример:


from kreuzberg import extract_file

# In your async function
result = await extract_file("presentation.pptx")
print(result.content)

# Rich metadata extraction
print(f"Title: {result.metadata.title}")
print(f"Author: {result.metadata.author}")
print(f"Page count: {result.metadata.page_count}")
print(f"Created: {result.metadata.created_at}")


Попробуйте: https://github.com/Goldziher/kreuzberg

@pythonl

#Python #OCR #DocumentIntelligence #OpenSource #Kreuzberg

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

Python/ django

🚀 УСКОРЕНИЕ КОДА ЗА СЧЁТ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ

💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках.

Почему это работает?
В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре.

Пример:


# Медленно: обращение к свойствам объекта в цикле
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
total = 0
for item in self.data:
total += item * item
return total



# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
data = self.data # локальная переменная
total = 0
for item in data:
total += item * item
return total

# Прирост в скорости особенно заметен при больших объёмах данных```

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

Python/ django

SafeWave_10 — десять лет бороздим океан карьеры

Если ты студент и держишь курс на развитие в IT, то 26 августа у тебя есть шанс поймать попутный ветер и попасть на празднование юбилея SafeBoard — программы IT-стажировок от «Лаборатории Касперского».
На одной волне летнего open air окажутся студенты, выпускники программы SafeBoard и эксперты ЛК

Когда: 26 августа 2025
Где: Офис Kaspersky, Москва, Ленинградское шоссе, 39А, стр. 3 + онлайн трансляция

Что в программе:

• Реальные истории от бывших стажеров, ставших экспертами (спойлер — один из них стал СТО)
• Интерактивная лекция о том, как разные типы людей двигают команду к большому успеху
• Музыкальное импров-шоу, розыгрыш мерча, активити-точки и HR-зона для желающих попасть в нашу команду
• И куда же без нетворкинга с компанией единомышленников

Стажировка в Kaspersky — как экспедиция под наставничеством опытных капитанов, регистрируйся чтобы подготовиться к большому плаванию!

https://kas.pr/x7yw?erid=2W5zFK8k4mv

Реклама. АО «Лаборатория Касперского» ИНН 7713140469

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

Python/ django

🔍 Открытое собеседование на Python-бекендера с разработчиком из Avito и Яндекс в четверг

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

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

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

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

Реклама.
О рекламодателе.

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

Python/ django

Телеграм-канал с актуальными вакансиями для 🐍 Python специалистов
- Свежие вакансии со всего интернета.
- Вакансии для студентов,  юниоров, мидлов, сеньоров.
- Прямые ссылки на работодателей.
- Некоммерческий проект, без рекламы.
Ссылка на телеграмм-канал 

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

Python/ django

🖥 Нужно временно отключить все принты — например, в проде или при юнит-тестах?

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

На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.


import sys, os
from contextlib import contextmanager

@contextmanager
def suppress_print():
saved = sys.stdout
sys.stdout = open(os.devnull, 'w')
yield
sys.stdout.close()
sys.stdout = saved

Пример:

print("Это видно")
with suppress_print():
print("А это — нет")
print("Снова видно")


@python_job_interview - вопросы с собеседований Python

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

Python/ django

Яндекс создаёт продукты и сервисы для миллионов пользователей. Нейросетевой поиск, умные устройства, машинный перевод — задачи, где нет готовых решений.

Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.

Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа

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

Узнайте подробности и оставьте заявку.

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

Python/ django

🛞 CrossHair — необычный инструмент для анализа Python-кода, который использует символьное выполнение для поиска ошибок. Вместо традиционных тестов он проверяет корректность функций, анализируя их поведение на основе аннотаций типов и контрактов.

Под капотом работает SMT-решатель, который ищет входные данные, нарушающие условия. Например, может автоматически обнаружить, что ваша функция падает на отрицательных числах, хотя в контракте указано x: PositiveInt. Интегрируется с Hypothesis и популярными IDE.

🤖 GitHub

@pythonl

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

Python/ django

Какие планы на 16 августа?

Освобождайте календарь, в этот день ИТ-пикник — фестиваль для опытных ИТ-специалистов. Будет лекторий «Наука руками инженеров»‎ – обсудят как рождаются технологии: через эксперименты, гипотезы, научный подход и рискованные идеи.

Иван Оселедец, профессор РАН, выступит с темой об эволюции мультимодальных и мультиагентных систем, а Александр Петюшко, профессор университета США, расскажет, как устроено автономное вождение. Кроме лекций, интерактивов и нетворкинга для вас выступят артисты. На фестивале Диана Арбенина впервые вживую презентует трибьют-альбом. PLC, Tritia, Лилу, Тося Чайкина и ПОЛ ПУНШ исполнят ее известные треки.

Будут еще другие известные музыканты и секретный артист. Рекомендуем размяться, чтобы петь и танцевать от души.

Приходите с семьей и друзьями. Подробности и билеты — на сайте ИТ-пикника.

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

Python/ django

🔥 Быстро превращай словарь в именованный кортеж (`namedtuple`) — красиво, удобно, читаемо


from collections import namedtuple

Parts = {
'id_num': '1234',
'desc': 'Ford Engine',
'cost': 1200.00,
'amount': 10
}

parts = namedtuple('Parts', Parts.keys())(**Parts)
print(parts)
# Parts(amount=10, cost=1200.0, id_num='1234', desc='Ford Engine')


💡 Зачем это нужно?

Получаешь доступ к полям как к атрибутам (parts.id_num)

Удобно для структурированных данных (например, из JSON или API)

Легко отлаживать и читать

📌 Полезный приём, если хочешь избавиться от лишнего dict['ключ'] — и сделать код чуть "чище".

@pythonl

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

Python/ django

🔍 Regex не прощает ошибок… но с Python мы найдем выход!

Когда в запросе опечатка (`"prro"` вместо "pro"`) — `re.search() ничего не найдёт.

🙅‍♂️ Regex: [] → *Ноль результатов*

diff​lib то что нам нужно!
С SequenceMatcher ты можешь находить похожие строки даже с опечатками.

📌 Пример:


from difflib import SequenceMatcher

def fuzzy_match(query, products, threshold=0.6):
matches = []
for product in products:
ratio = SequenceMatcher(None, query.lower(), product.lower()).ratio()
if ratio >= threshold:
matches.append((product, f"{ratio:.2f}"))
return matches


🧠 Результат:

[('iPhone 14 Pro Max', '0.88')]


📦 Используй difflib для user-friendly поиска и автодополнения. Особенно полезно для:
- Поиска товаров
- Обработки ввода пользователя
- Систем рекомендаций

🔥 Идеально, когда нельзя потерять результат из-за одной буквы!

@pythonl

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

Python/ django

🛠️ Microsoft Research выложили в open-source новый инструмент — Debug-Gym.

Это песочница, где LLM‑агенты могут:
✅ Ставить брейкпоинты
✅ Чекать переменные
✅ Перезаписывать файлы, пока тесты не позеленеют

Всё изолировано в Docker — безопасно при проведение тестов.

📊 Протестировано 9 моделей на 3 бенчмарках. В эксперименте модели решали 300 багов — с доступом к Debug-Gym и без.
Когда агентам дали дебаг‑инструменты, их точность выросла. Но даже лучшие решили <50% задач на SWE‑bench Lite.

Писать код ИИ уже умеет.
Дебажить — пока нет.
А это и есть самая трудная часть.

Microsoft уже работает над обучением моделей для поиска информации при отладке, как RAG — но для дебага.

🔗 Сам инструмент: https://microsoft.github.io/debug-gym/
🔗Статья: https://arxiv.org/abs/2503.21557

@pythonl

#microsoft #ai #ml

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

Python/ django

🚀 sebastien/multiplex — Command‑Line Process Multiplexer

Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.

Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API

🔧 Примеры:

- Запуск двух серверов:


multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"


- Сначала сервер, потом бенчмарк:

multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"


- Сценарий: DB → API → тесты:

multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"


📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub

🔗 GitHub: https://github.com/sebastien/multiplex

🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.

@pythonl

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

Python/ django

🧱 ИИ теперь сам генерирует миры в духе Minecraft — представлена модель GameFactory

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

🔥 Хотите свой бесконечный мир — просто задайте параметры.

🟠 Примеры и код — по ссылке: https://yujiwen.github.io/gamefactory/

🟠Github: https://github.com/KwaiVGI/GameFactory

@pythonl

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

Python/ django

🖥Тебе не всегда стоит использовать классы в Python

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

Python — невероятно гибкий язык, но классы не всегда лучший выбор. В большинстве случаев стандартные типы, функции и библиотеки предлагают более простые и элегантные решения.

🔍 Когда вы можете обойтись без класса

1. Хранение простых данных
Вместо класса:


class Point:
def __init__(self, x, y):
self.x = x
self.y = y
point = Point(10, 20)



Point = namedtuple('Point', ['x', 'y'])
point = Point(10, 20)

# или

@dataclass
class Point:
x: int
y: int
point = Point(10, 20)


Статические утилиты без состояния
Вместо:


class Utils:
@staticmethod
def add(a, b): return a + b
result = Utils.add(3, 4)


используйте просто функцию:


def add(a, b): return a + b
result = add(3, 4)

Группировка констант
Вместо использования отдельного класса:


class Config:
HOST = 'localhost'
PORT = 8080

можно определить модуль с константами:


HOST = 'localhost'
PORT = 8080

Простые изменяемые состояния
Если нужен лишь список или словарь:


inventory = []
inventory.append('apple')

Операции на лету
Вместо класса с одним методом transform:



result = Transformer().transform([1,2,3])

используйте:


result = [x*2 for x in [1,2,3]]

Стандартная библиотека может уже всё заменить
Например, configparser, json, csv и другие модули часто покрывают функциональность управления конфигурациями без необходимости писать класс вручную.

✅ Когда классы всё же уместны
Используйте классы, если вам действительно нужны:

- Состояние и поведение, связанные вместе
- Наследование и расширяемость
- Капсуляция логики и данных
- Чёткая структура и переиспользуемость

Но многие простые сценарии проще и понятнее реализовать без OOP-механизмов

💡 Почему это важно
Это помогает избежать избыточного кода и упростить архитектуру

Повышает читабельность, особенно для новичков или в небольших скриптах

Снижает перегрузку инициализации, особенно там, где функциональность тривиальна

📌 Подробнее

@pythonl

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

Python/ django

⚡️ Ускорь проверку качества кода в 10 раз с помощью pre-commit!

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

💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.

😬 Без pre-commit:

Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой

🤖 С pre-commit всё иначе:

Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью

💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.

@pythonl

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