Хочу поделиться тем, какие новые стандарты в Python уже приняты или станут обязательными в ближайший год, и насколько это радикально меняет практику. После перехода от requirements.txt к pyproject.toml (о котором я говорил раньше) это следующий этап эволюции экосистемы.
1) PEP 735 - Dependency Groups в pyproject.toml
Теперь вместо нескольких файлов requirements‑dev.txt, requirements‑test.txt и пр. можно удобно описать группы зависимостей прямо в pyproject.toml в блоке [dependency-groups]. Например, группа dev может включать тестовые, линтеры и прочие зависимости с логическим именованием. Инструменты вроде pip, uv и IDE научатся распознавать эти именованные группы и устанавливать их командой pip install --dependency-groups=dev,test
2) PEP 751 - единый формат lock‑файла pylock.toml
Теперь «состояние» зависимостей фиксируется в стандартизированном файле pylock.toml, который описывает точные версии, хэши, источники, extras и платформенные условия. Установщик может выполнить установку без резолвера, ориентируясь на lock‑файл, что делает процесс быстрее, безопаснее и воспроизводимым. Lock-файл написан в TOML‑формате и совместим с несколькими инструментами упаковки - pip, Poetry, PDM, uv и др.
3) PEP 761 - Sigstore вместо PGP для подписи релизов CPython
С Python 3.14 PGP‑подписи больше не обязательны - теперь релизы CPython подписываются через Sigstore - открытый, более удобный механизм. Sigstore поддерживает OpenID-идентификацию и даже офлайн‑верификацию, проще в автоматизации и внедрении. Это реально упрощает процесс проверки целостности скачанных архивов и повышает криптографическую надёжность распределения
4) PEP 784 - compression.zstd в стандартной библиотеке Python
В Python 3.14 появляется модуль compression.zstd и новый namespace compression.*, который объединяет zlib, bz2, gzip и другие под единым API. Теперь можно сжимать и распаковывать данные с помощью алгоритма Zstandard без внешних библиотек, с API, схожим на lzma или bz2. Zstd обеспечивает высокий уровень сжатия и скорость разжатия, особенно полезен для лонов или large‑файловых архивов.
5. PEP 771 - Default Extras («рекомендуемые» extras по умолчанию)
PEP 771 вводит возможность указать default-optional-dependencies в [project], чтобы extras автоматически включались при обычной установке пакета. Это удобно для пакетов с опциональными компонентами вроде recommended или all, которые не хочется заставлять включать вручную. Пока это черновой этап (Draft), но активно обсуждается и ожидается реализация в 2026 году. 👀 Например, pip install foo сам активирует [recommended], если оно задано по умолчанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤27✍9👍3🤔1
Это не просто скучные документы
- Стиль кода? Это PEP 8. Он диктует, как форматировать код, чтобы его было легко читать.
- Удобные f-строки? Спасибо PEP 498.
- Подсказки типов (type hints)? Их стандартизировал PEP 484, изменив подход к написанию большого и сложного кода.
- Философия Python? Прочитайте PEP 20 («The Zen of Python»), чтобы понять дух языка.
Теперь вы знаете чуть больше :)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤58👍20🔥9❤🔥5🤓4💅2
"Технический долг" 💱 - это довольно популярный термин среди разработчиков. Хочу рассказать вам, что они значит и чем опасно.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
🤷♂️ Почему он вообще появляется? Причины могут быть разными:
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
👀 Главная опасность техдолга в том, что его «проценты» растут незаметно. Сначала ты просто тратишь чуть больше времени на добавление новых функций. Потом исправление одного бага порождает три новых. Мотивация команды или твоя собственная падает, потому что работать со сложным и запутанным кодом - настоящее мучение. В итоге, проект замедляется до полной остановки, а на рефакторинг уходят месяцы.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
Технический долг - это метафора для всех неоптимальных или поспешных решений в коде, которые ты принимаешь сегодня, чтобы быстрее выпустить фичу. Ты как бы «берешь в долг» у будущего качества продукта. Это может быть закомментированный кусок кода, отсутствие тестов или использование устаревшей библиотеки. Кажется, что это мелочь, но со временем такие «долги» накапливаются.
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
Please open Telegram to view this post
VIEW IN TELEGRAM
❤48👍7🔥5🤬2🤓2🤔1🙈1
Все мы (я тоже) злоупотребляем "Ctrl+C", "Ctrl+V". Мне постоянно кажется, что я экономлю время, но на самом деле - обкрадываю сам себя
Когда просто копируешь чужой код, мозг не работает. Ты не вникаешь в суть, не учишься решать проблемы, а просто затыкаешь дыры. Эти пробелы в знаниях потом больно бьют по карьере, уж поверьте.
Поэтому мой вам совет - в следующий раз, когда рука потянется к копированию, остановитесь. Напишите решение сами, пусть даже оно будет неидеальным. Это ваш самый ценный опыт. Хотя бы иногда практикуйте, ибо когда в очередной раз сервера openai/Gemini упадут - придется брать отпуск :D
P.S. но параллельно у меня очень сильно поднялся скилл в "обьяснении чего я хочу", в плане
Please open Telegram to view this post
VIEW IN TELEGRAM
❤158😁28👍12❤🔥7🤔4🤣4😱3🤝2
😁179🤔81😨45🍌38🕊28🤨20🌚17🏆12
This media is not supported in your browser
VIEW IN TELEGRAM
Появился повод перейти на Windows 11 ;D
Windows 11 получила очень удобную функцию: быстрое завершение зависших приложений прямо с панели задач, без обращения к «Диспетчеру задач». Для этого достаточно кликнуть правой кнопкой мыши по значку программы и выбрать «Завершить задачу».
Спустя столько лет, ахахаха
Windows 11 получила очень удобную функцию: быстрое завершение зависших приложений прямо с панели задач, без обращения к «Диспетчеру задач». Для этого достаточно кликнуть правой кнопкой мыши по значку программы и выбрать «Завершить задачу».
Чтобы включить: «Параметры» -> «Система» -> «Для разработчиков» -> «Завершить задачу».
Спустя столько лет, ахахаха
❤113🤬75🙉19✍11👍8🤯6🤨3🍌1
from transformers import BlipProcessor, BlipForConditionalGeneration
import torch
from PIL import Image
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
image_path = "img_4.jpg"
image = Image.open(image_path)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
output = model.generate(**inputs)
description = processor.decode(output[0], skip_special_tokens=True)
print("Image description:", description)
requirements.txt:
transformers
torch
Pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
❤46🤬42😁5❤🔥2😡2🤯1🤝1
Из интереса и ради практики делал.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤77🤬38😁9🥰5💯2💘2😡2💔1
Вот такой софт сразу исходником даю. Пакетно накладывает водяные знаки/баннеры на изображения/видео, есть предпросмотр и для того, и для того.
Для корректной работы нужно установить в PATH:
- ImageMagick;
- FFMPEG.
Всем хорошего дня!
P.S. если кому-то нужно будет, соберу в .exe.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬73👍40❤10🍌7❤🔥3🥰1💔1😡1
1) Поможет скачать последнюю актуальную версию IDE под ОС пользователя;
2) А также Python из последних актуальных релизов.
Будут и рекомендации по правильной установке.
Страничку с choco я еще заполню командами. Сейчас там уже есть вкладки (медиа, разработка, веб-разработка и т.д.) с командами для экспресс-установки рабочих инструментов. В одну строчку можно установить все те же IDE, Python, Node JS, драйвера, кодеки и даже Steam :D
Пока что так. .exe под Windows мб дам сюда сегодня-завтра.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38🤬24🤣18❤12👍3🔥3🍌2
import asyncio
from telegram import Bot
async def get_telegram_gifts(bot_token):
bot = Bot(token=bot_token)
gifts = await bot.get_available_gifts()
for gift in gifts.gifts:
print(f"ID подарка: {gift.id}, Эмодзи: {gift.sticker.emoji}, Размер файла стикера: {gift.sticker.file_size}, Стоимость: {gift.star_count}")
# Замените на токен бота!
bot_token = "ТОКЕН_АДМИН_КРАСАВЧИК"
asyncio.run(get_telegram_gifts(bot_token))
pip install python-telegram-bot
P.S. пост со старого канала, но видел в обсуждениях, кому-то нужно было.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬43🥰14👍8❤4❤🔥2🤝1
Media is too big
VIEW IN TELEGRAM
Код красивой "залипалки" (бесконечная анимация), которые часто размещают под нарезками из фильмов/видео в ТикТок\Shorts.
Скачать.
Если есть идеи как сделать лучше - пишите.
Скачать.
Если есть идеи как сделать лучше - пишите.
🤣31❤10👍8🤬3😡2
"Технический долг" 💱 - это довольно популярный термин среди разработчиков. Хочу рассказать вам, что они значит и чем опасно.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
🤷♂️ Почему он вообще появляется? Причины могут быть разными:
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
👀 Главная опасность техдолга в том, что его «проценты» растут незаметно. Сначала ты просто тратишь чуть больше времени на добавление новых функций. Потом исправление одного бага порождает три новых. Мотивация команды или твоя собственная падает, потому что работать со сложным и запутанным кодом - настоящее мучение. В итоге, проект замедляется до полной остановки, а на рефакторинг уходят месяцы.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
Технический долг - это метафора для всех неоптимальных или поспешных решений в коде, которые ты принимаешь сегодня, чтобы быстрее выпустить фичу. Ты как бы «берешь в долг» у будущего качества продукта. Это может быть закомментированный кусок кода, отсутствие тестов или использование устаревшей библиотеки. Кажется, что это мелочь, но со временем такие «долги» накапливаются.
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬35🔥7🤣5❤2
По сути — настоящий швейцарский нож для администратора:
🛡 Фильтрует спам, нежелательные ссылки, упоминания и стоп-слова. Умеет автоматически выдавать предупреждения и банить нарушителей. Главное- устранил нюанс, где можно было редактировать сообщения и после редакции бот не реагировал.
⚙️ Настраивайте стоп-слова, исключения, разрешенные ссылки, триггеры для автоответов и многое другое через админку.
🛡 Устали от спам-ботов? Включите проверку по CAPTCHA для новых участников! Пользователю нужно будет ввести символы в личном чате с ботом, чтобы получить доступ к группе. Функцию можно включать и выключать глобально.
📬 Пользователи могут легко связаться с вами по разным темам (реклама, техподдержка, сотрудничество) или предложить новость для вашего канала.
✍️ Публикуйте посты в свои каналы прямо через бота, с inline-кнопками!
📊 Получайте периодические отчеты о работе бота и статистику модерации.
💰 В боте есть удобное меню для тех, кто захочет поддержать админа и его работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔47🤬25🔥12❤11👍4💯4😱2❤🔥1
Так вот, полный список команд с объяснениями (Linux!!!):
1) Установка и проверка:
# Обновляем список пакетов
sudo apt update
# Устанавливаем Docker
sudo apt install -y docker.io
# Запускаем и добавляем Docker в автозагрузку
sudo systemctl start docker
sudo systemctl enable docker
# Устанавливаем Docker Compose
sudo apt install -y docker-compose
Чтобы проверить, что все сделали четко:
docker --version
docker-compose --version
Должно показать версии Docker и Docker-compose.
2) Разворачивание, запуск контейнера.
После того, как вы установили это все (делать нужно 1 раз(!!!)), нужно перейти в директорию с файлами проекта (где лежат Dockerfile, docker-compose.yml).
Пример:
cd /root/dialog_bot/
После этого, пишите команду:
sudo docker-compose up --build -d
Если сделали все четко, контейнер соберется и сразу же будет в работе.
Вот что делают "флажки":
- up: Создает и запускает контейнеры.
- --build: Принудительно пересобирает образ перед запуском. Это полезно, если ты внес изменения в Dockerfile или файлы проекта.
- -d: Запускает контейнеры в фоновом (detached) режиме.
Просмотреть логи с контейнера после можно по команде:
sudo docker-compose logs -f
3) А что на Windows?
Чтобы запустить на Win 10, 11, нужно:
1. Перейдите на официальный сайт Docker и скачай установщик для Windows.
2. Установите Docker Desktop:
- Запустите скачанный установщик.
- Следуйте инструкциям на экране. Очень важно: убедитесь, что выбрана опция "Use WSL 2 instead of Hyper-V" (Использовать WSL 2 вместо Hyper-V), если она доступна и твой Windows 10 это поддерживает (версия 2004 и выше, сборка 19041 и - выше). WSL 2 обеспечивает лучшую производительность. Если опции нет или твоя система старее, Docker Desktop может использовать Hyper-V.
- Установка может потребовать включения функций "Контейнеры" и "Подсистема Windows для Linux" (WSL). Установщик обычно предлагает сделать это автоматически или дает инструкции.
3. Запусти Docker Desktop после установки. Иконка кита появится в системном трее. При первом запуске может потребоваться некоторое время на инициализацию. Убедись, что Docker Desktop показывает, что он запущен (иконка кита в трее статична и не анимирована).
Важно: каждый раз, когда захотите собрать контейнер на Win 10, 11, нужно запускать Docker Desktop!
Дальше можете прямо в IDE, в папке с проектом в консоли писать:
docker-compose up --build -d
И все. Команды тут те же, что и на Linux.
Полезно?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰25🤬12👍7❤6🔥3❤🔥1🤷♂1
И главный вопрос:
Что лучше для автоматизации — использовать готовый инструмент типа n8n или писать все с нуля, то есть заниматься ручной разработкой?
n8n — это платформа для визуальной автоматизации. Вы соединяете кубики-«ноды» (приложения и сервисы) между собой, чтобы они обменивались данными и выполняли задачи без вашего участия. Гибко, наглядно и не всегда требует навыков программирования.
Что же выбрать: n8n или код? 🤔
- Скорость — главный приоритет. Собрать рабочий сценарий в n8n можно за минуты, а не за дни или недели;
- Бюджет ограничен. Использование готовых интеграций и визуального конструктора значительно дешевле, чем оплата часов разработчика;
- Задача типовая. Нужно связать популярные сервисы (Telegram, Google Sheets, CRM, Trello)? В n8n для этого уже все готово;
- Нужна гибкость без хардкора. Вы не программист, но хотите иметь возможность легко менять логику процесса.
- Нужна 100% кастомизация. У вас уникальная бизнес-логика, нестандартные API или требования к интерфейсу;
- Требуется максимальная производительность. Для высоконагруженных систем, обрабатывающих тысячи запросов в секунду, кастомный код, написанный под конкретную задачу, будет эффективнее;
- Интеграция очень специфична. Нужно подключить редкий или внутренний корпоративный софт, для которого нет готовых «нод»;
- Полный контроль над кодом и окружением является критически важным в серьезных проектах.
Итог таков: не стоит противопоставлять эти два подхода. Это инструменты для разных задач. Для 60% стандартных кейсов автоматизации n8n будет быстрее, дешевле и проще в поддержке. Например, бот для записи на маникюр, в больницу и т.д.
Для масштабных же проектов, рассчитанных на тысячи пользователей, n8n - это шутка. Где нужна уникальная логика и высокая производительность, — без ручной разработки не обойтись.
#automation #n8n #dev #nocode #tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬22🔥10❤6👍1😡1
import qrcode
from PIL import Image
def generate_qr_code(data, filename="qr_code.png"):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
return filename
if __name__ == "__main__":
print("Генератор QR-кодов")
input_data = input("Введите текст или ссылку для кодирования в QR-код: ")
output_filename = input("Введите имя файла для сохранения QR-кода (например, my_qr.png) или нажмите Enter для 'qr_code.png': ")
if not output_filename:
output_filename = "qr_code.png"
elif not output_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
output_filename += ".png"
saved_file = generate_qr_code(input_data, output_filename)
print(f"QR-код успешно создан и сохранен как '{saved_file}'")
Ниже зависимости:
pip install qrcode Pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰33🤬16❤6🍌6👍3🤣3❤🔥1🙏1