Python_BE1
9 subscribers
747 photos
251 videos
7 files
672 links
Канал по Python, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
🖥 Как уменьшить Docker-образ в 10+ раз - понятный и практичный разбор.

Размер Docker-образа - это не косметика.
Он напрямую влияет на:
- скорость CI/CD
- время деплоя
- cold start контейнеров
- расходы на storage и трафик

В примере ниже образ удалось сократить с 588 MB до 47.7 MB - почти на 92%.
Вот какие приёмы реально дают эффект.

1) Выбор базового образа - самое важное решение

Полный python:3.9 тянет за собой:
- лишние системные утилиты
- документацию
- dev-пакеты

Переход на python:3.9-alpine:
- в разы меньше размер
- быстрее скачивание
- меньше attack surface

Это первый и самый крупный выигрыш.

2) Оптимизация слоёв Docker

Каждый RUN, COPY, ADD - это новый слой.
Много мелких инструкций = раздув образа.

Правило:
- объединяй связанные команды
- удаляй временные файлы в том же RUN

Меньше слоёв - меньше вес - быстрее сборка.

3) .dockerignore - бесплатная оптимизация, которую часто забывают

Без .dockerignore в build context улетает всё:
- .venv
- .cache
- .git
- временные файлы

Это:
- увеличивает размер контекста
- замедляет сборку
- иногда ломает кеширование

.dockerignore должен быть всегда. Без исключений.

4) Multi-stage build - must-have для продакшена

Одна из самых мощных техник.

Идея простая:
- stage 1 - сборка, компиляция, зависимости
- stage 2 - только то, что нужно для запуска

В финальном образе:
- нет build-инструментов
- нет лишних библиотек
- только runtime

Результат:
- меньше размер
- меньше уязвимостей
- быстрее старт

Итоговый эффект:
- 588 MB -> 47.7 MB
- −91.89% размера
- быстрее CI
- быстрее деплой
- дешевле инфраструктура

Главный вывод:
маленькие оптимизации накапливаются.

Каждый сэкономленный мегабайт:
- ускоряет каждый pull
- ускоряет каждый deploy
- масштабируется вместе с вашей системой

Оптимизация Docker - это не микрооптимизация.
Это инженерная гигиена.

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Эффективная фильтрация данных в Python с Pandas: Применяем .query() и .loc()!

В этом видео мы погружаемся в мир эффективной фильтрации данных с помощью библиотеки Pandas в Python! Узнайте, как использовать методы `.query()` и `.loc()` для быстрого и удобного доступа к необходимой информации из больших наборов данных. Мы покажем вам, как сделать код более читаемым и оптимизированным, что особенно важно для аналитиков и разработчиков.

Мы разберем простой пример с фильтрацией данных, используя DataFrame, чтобы вы могли быстро применить полученные знания на практике. Эти навыки помогут вам обрабатывать данные более эффективно и сократят время, затрачиваемое на анализ. Не забудьте подписаться на канал, чтобы не пропустить новые полезные фишки каждый день!

@python_be1
📌 Подробная шпаргалка по командам Docker

Удобный и практичный референс для повседневной работы с Docker: образы, контейнеры, сети, тома и Docker Compose.

🐋 Общие команды Docker

- `docker —version` — версия Docker
- `docker info` — информация о системе Docker
- `docker help` — список доступных команд
- `docker <command> —help` — помощь по конкретной команде

📦 Работа с образами

- `docker pull <image>` — скачать образ из реестра
- `docker images` — список локальных образов
- `docker build -t name:tag .` — собрать образ из Dockerfile
- `docker tag <image> <repo>:<tag>` — назначить тег образу
- `docker rmi <image>` — удалить образ
- `docker image prune` — удалить неиспользуемые образы
- `docker image prune -a` — удалить все неиспользуемые, включая невисячие

🚀 Контейнеры: запуск и управление

- `docker run <image>` — запустить контейнер
- `docker run -d <image>` — запуск в фоне
- `docker run -it <image> bash` — интерактивный режим
- `docker ps` — активные контейнеры
- `docker ps -a` — все контейнеры
- `docker stop <container>` — остановить контейнер
- `docker start <container>` — запустить остановленный
- `docker restart <container>` — перезапуск
- `docker rm <container>` — удалить контейнер
- `docker rm -f <container>` — принудительно удалить
- `docker logs <container>` — логи контейнера
- `docker exec -it <container> bash` — войти внутрь контейнера
- `docker inspect <container>` — подробная информация (JSON)

🧹 Очистка и обслуживание

- `docker container prune` — удалить все остановленные контейнеры
- `docker image prune` — удалить неиспользуемые образы
- `docker volume prune` — удалить неиспользуемые тома
- `docker network prune` — удалить неиспользуемые сети
- `docker system prune` — очистить всё неиспользуемое
- `docker system prune -a` — максимально агрессивная очистка
- `docker system df` — использование диска Docker’ом

📊 Мониторинг и отладка

- `docker stats` — использование CPU и памяти контейнерами
- `docker top <container>` — процессы внутри контейнера
- `docker diff <container>` — изменения файловой системы контейнера

🌐 Сети Docker

- `docker network ls` — список сетей
- `docker network inspect <network>` — информация о сети
- `docker network create <name>` — создать сеть
- `docker network rm <name>` — удалить сеть

💾 Docker Volumes

- `docker volume ls` — список томов
- `docker volume inspect <volume>` — информация о томе
- `docker volume create <name>` — создать том
- `docker volume rm <name>` — удалить том

⚙️ Docker Compose

- `docker compose up` — запустить сервисы
- `docker compose up -d` — запуск в фоне
- `docker compose down` — остановить и удалить всё
- `docker compose build` — пересобрать образы
- `docker compose pull` — скачать образы
- `docker compose logs` — логи всех сервисов
- `docker compose ps` — статус сервисов
- `docker compose restart` — перезапуск

🧠 Полезные советы

- Используй `--rm`, чтобы контейнер удалялся после выполнения
- Проверяй размер Docker-данных через `docker system df`
- Для отладки всегда полезен `docker inspect`
- Регулярно чисти систему, чтобы Docker не съел весь диск

Эта шпаргалка закрывает 90% повседневных задач при работе с Docker - от локальной разработки до продакшена.

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Оптимизация Python кода: Использование декораторов для кэширования вычислений

В этом видео мы рассмотрим, как декораторы в Python могут существенно улучшить производительность вашего кода с помощью кэширования результатов. Мы познакомим вас с библиотекой `functools` и продемонстрируем, как легко использовать декоратор `lru_cache` для эффективного хранения результатов тяжёлых вычислений.

На примере функции вычисления чисел Фибоначчи вы узнаете, как кэширование может сократить время выполнения и облегчить работу с рекурсивными функциями. Если вы хотите научиться писать более оптимизированный и производительный код на Python, это видео — идеальное начало! Подписывайтесь на наш канал, чтобы не пропустить новые фишки и советы по программированию!

@python_be1
Делаем резюме по красоте: принесли RenderCV — опенсорс-инструмент, который помогает собрать аккуратный PDF.

Просто описываете всю информацию в YAML, а инструмент собирает PDF с нормальной типографикой и стабильной версткой. Все легко и быстро можно править под разные вакансии и при этом не бояться, что макет поплывёт. Плюс есть гибкая настройка дизайна.

Эйчары точно оценят (https://github.com/rendercv/rendercv) 👍

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Контекстные менеджеры в Python: Удобная работа с временными файлами с tempfile

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

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

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Использование Enums в Python: Повышаем Читаемость Кода и Упрощаем Поддержку

В этом видео мы рассмотрим, как использовать Enums в Python для создания более читаемого и поддерживаемого кода. Замените обычные строки и числа на перечисления, чтобы сделать ваш код понятнее. Мы подробно объясним, как создать Enum для статусов задачи и как его применять в функции обновления статуса.

Вы узнаете, как определить перечисления с помощью класса Enum и какие преимущества они дают при работе с состояниями в вашем проекте. Не забудьте подписаться на канал, чтобы не пропустить другие полезные советы по Python и программированию!

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Упрощаем код на Python с помощью `dataclasses`: Пошаговый урок

В этом видео мы погрузимся в мир Python и изучим, как использовать `dataclasses` для упрощения создания классов. Вы узнаете, как быстро и эффективно работать с простыми структурами данных, что значительно ускорит процесс разработки ваших приложений.

Мы рассмотрим практический пример, где создадим класс `Student`, который будет хранить информацию о студентах, включая имя, возраст и список предметов. Вы увидите, как `dataclasses` позволяют минимизировать код и избежать повторяющихся шаблонов. Подписывайтесь на наш канал, чтобы не пропустить еще больше полезных фишек по Python каждый день!

@python_be1
Новая работа MIT: LLM, который видит и меняет состояние Python

В MIT предложили подход, при котором языковая модель работает не только с текстом, а напрямую с живым состоянием Python-кода - переменными, объектами в памяти и текущей точкой выполнения.

Подход называется NIGHTJAR.
Главный результат
В экспериментах NIGHTJAR сократил объем кода в среднем на 39.6% без потери корректности.

В чем была проблема
Обычная LLM:
- читает текст
- генерирует текст
- не видит реальные данные программы

Поэтому типичный пайплайн выглядит так:
- данные сериализуются в текст
- отправляются модели
- ответ парсится
- программа вручную обновляется

Много glue-кода, много мест для ошибок.

Что меняет совместное состояние
Shared state полностью меняет модель взаимодействия:
- LLM может читать и писать переменные
- изменять объекты прямо в памяти
- останавливать и пропускать циклы
- работать с текущим состоянием выполнения

Модель не «рассуждает о коде», она с ним взаимодействует.

Как это реализовано
LLM не получает прямой доступ к памяти.
Она отправляет небольшие команды:
- прочитать переменную
- записать значение
- обновить объект
- выйти из цикла

Python-обработчик выполняет эти команды.
Такой контракт авторы называют natural function interface.

Результаты
На бенчмарке SPSBench с 25 программами:
- корректность осталась на уровне ручной интеграции или выше
- код стал заметно короче
- но время выполнения иногда росло до 4.3 раза

Причина проста - каждое обращение к состоянию может требовать отдельного вызова модели.

Почему это важно
- меньше шаблонного glue-кода
- проще писать сложную логику с участием LLM
- шаг к более тесной интеграции AI и runtime
- фундамент для новых агентных и интерактивных систем

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

📌 Статья: arxiv.org/abs/2512.14805

#AI #LLM #Python

@python_be1
Hugging Face выкатили (https://huggingface.co/learn) новогодний подарок для всех нейродвинутых — 12 (!) бесплатных курсов по самым топовым направлениям ИИ 😮😮😮

Ребята собрали в одном месте базу, за которую <s>инфоцыгане</s> другие попросили бы сотни тысяч.
Тут всё: от создания своих агентов до обучения роботов:

— AI Agents: (https://huggingface.co/learn/agents-course/unit0/introduction) база по самой горячей теме года — учимся делать автономных агентов.
— LLM Course: (https://huggingface.co/learn/llm-course/chapter1/1) как работают «мозги» современных чат-ботов и библиотек типа Transformers.
— Smol-course: (https://huggingface.co/learn/smol-course/unit0/1)если мало времени, это самый быстрый способ разобраться в тонкой настройке (fine-tuning) моделей.
—MCP Course: (https://huggingface.co/learn/mcp-course/unit0/introduction)свежак, созданный вместе с Anthropic — учимся подключать ИИ к любым данным.
—Deep RL: (https://huggingface.co/learn/deep-rl-course/unit0/introduction) всё про обучение с подкреплением (то, на чем гоняют роботы и OpenAI o1).
— ML для игр: (https://huggingface.co/learn/ml-games-course/unit0/introduction) как встроить нейронки прямо в геймдев.
— Robotics: (https://huggingface.co/learn/robotics-course/unit0/1)путь от классических железяк до роботов на нейронках.
— Deep RL: (https://huggingface.co/learn/deep-rl-course/unit0/introduction)всё про глубокое обучение с подкреплением (привет, OpenAI o1).
— Computer Vision: (https://huggingface.co/learn/computer-vision-course/unit0/welcome/welcome) учим ИИ видеть и понимать изображения.
— Audio Course: (https://huggingface.co/learn/audio-course/chapter0/introduction)работа со звуком и голосом через Transformers.
— Diffusion Course: (https://huggingface.co/learn/diffusion-course/unit0/1)полный гайд по генерации картинок и работе с библиотекой Diffusers.
— Open-Source AI Cookbook (https://huggingface.co/learn/cookbook/index): отдельная имба — сборник готовых рецептов и кода для решения любых ИИ-задач.

Забираем всю годноту — здесь (https://huggingface.co/learn). 😊

@python_be1
⚙️ Context-async-sqlalchemy: простой способ подружить ASGI и async SQLAlchemy

Эта библиотека упрощает интеграцию асинхронного SQLAlchemy в любые ASGI-приложения.

Что она делает:
• управляет жизненным циклом engine и сессий
• даёт удобные утилиты для работы с БД
• ускоряет разработку — без лишней магии и ограничений

Идея простая: меньше шаблонного кода, больше внимания логике приложения.

https://github.com/krylosov-aa/context-async-sqlalchemy

@python_be1
Эту неделю мы все немного сеньоры.

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Исторический момент: Google наконец позволит сменить адрес Gmail 🔥

Google тестирует функцию, которая даст пользователям возможность изменить свой
gmail, то есть можно будет избавиться от ника SuperBigPenis6666, который использовался годами.

Как это будет работать

— ваш почтовый ящик остаётся тем же
— письма продолжат приходить и на старый, и на новый адрес
— ничего не потеряется

Ограничения

Вы сможете переименовать ящик до трёх раз
и не чаще одного раза в год.

@python_be1
❄️ В VS Code завезли визуальный редактор интерфейсов с поддержкой любых (!) кодинг-агентов — Claude Code, GitHub Copilot, Codex, Cursor и многих других.

Это победа — править UI теперь можно легко, быстро и удобно через drag-and-drop прямо внутри популярнейшей IDE. Достаточно кликнуть на любой элемент интерфейса и внести изменения.

Сохраняем плагин — тут. (https://marketplace.visualstudio.com/items?itemName=WuunuAI.wuunu-ai-extension)

@python_be1
*после январских 2027 😁

@python_be1
Кто сталкивался с такой проблемой?

@python_be1