Python_BE1
9 subscribers
748 photos
252 videos
7 files
672 links
Канал по Python, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
Что выведет код ?

@python_be1
🛠️ Copier — удобный инструмент для создания и обновления проектов из шаблонов. Эта Python-утилита умеет работать как с локальными путями, так и с Git-репозиториями, подставляя переменные в файлы любого формата. Главная фишка Copier — это аккуратная работа с существующими файлами: он не перезаписывает их без явного указания.

Инструмент будет полезен тем, кто часто создаёт однотипные проекты или хочет автоматизировать их обновление. Шаблоны поддерживают сложную логику через Jinja2, а настройки задаются в простом YAML-формате. Для начала работы достаточно установить Copier через pipx или pip. Проект развивается при поддержке сообщества и доступен под лицензией MIT.

🤖 GitHub (https://github.com/copier-org/copier)

@python_be1
🎯 Хочешь следить за загрузкой своей GPU прямо из Python?

Вот простой скрипт, который показывает текущую загрузку видеокарты NVIDIA (через `nvidia-smi`). Подходит для мониторинга в ML-задачах, инференсе и просто для интереса.

📦 Зависимости: установленный `nvidia-smi` и Python 3.6+

🧠 Код:

```

import subprocess

def get_gpu_utilization():
try:
result = subprocess.check_output(
['nvidia-smi', '--query-gpu=utilization.gpu,memory.used,memory.total',
'--format=csv,nounits,noheader'],
encoding='utf-8'
)
lines = result.strip().split('\n')
for idx, line in enumerate(lines):
gpu_util, mem_used, mem_total = map(str.strip, line.split(','))
print(f"🖥 GPU {idx}: {gpu_util}% load | {mem_used} MiB / {mem_total} MiB")
except FileNotFoundError:
print(" nvidia-smi not found. Make sure NVIDIA drivers are installed.")
except Exception as e:
print(f"⚠️ Error: {e}")

get_gpu_utilization()

```

📊 Вывод будет примерно такой:

`GPU 0: 23% load | 412 MiB / 8192 MiB`

🔥 Советы:
• Можно запускать в цикле для live-мониторинга
• Легко интегрировать в Telegram-бота или Slack-уведомления
• Работает на всех машинах с установленным NVIDIA драйвером и nvidia-smi

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Cursor теперь в браузере и в телефоне — вышла (https://www.cursor.com/blog/agent-web) веб-версия любимого приложения вайб-кодеров ⌨️

Функционал почти полностью аналогичен десктопной версии, есть синхронизация с GitHub. Идея утопическая: дать вайб-кодерам возможность зайтись где-нибудь на пляже и удаленно раздавать команды сверхумным агентам.

Можно заценить здесь (https://www.cursor.com/agents).

@python_be1
⚔️ LIEF — мощная библиотека для работы с исполняемыми файлами, которая поддерживает ELF, PE и MachO-форматы. Этот проект позволяет не только анализировать структуру бинарников, но и модифицировать их — добавлять секции, менять символы или даже работать с Objective-C метаданными.

Инструмент выделяется кроссплатформенностью и мультиязычным API (Python, Rust, C++). Библиотека умеет дизассемблировать код под разные архитектуры и интегрируется с Ghidra/BinaryNinja. Будет полезно для реверс-инжиниринга, анализа вредоносного ПО или кастомной линковки.

🤖 GitHub (https://github.com/lief-project/LIEF)

@python_be1
⚡️ PyOpenCL — ускоряем Python вычисления на GPU. Этот проект даёт доступ к технологии OpenCL прямо из Python, позволяя задействовать не только видеокарты, но и любые параллельные вычислительные устройства. Он сочетает низкоуровневый контроль с автоматической обработкой ошибок и привязкой жизненного цикла объектов.

Инструмент имеет обширную документацию с примерами: от простого поэлементного умножения массивов до сложных алгоритмов с использованием локальной памяти GPU. Проект работает с реализациями OpenCL от Apple, AMD и Nvidia, а установка через Conda занимает буквально пару команд.

🤖 GitHub (https://github.com/inducer/pyopencl)

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Как быстро найти, какой процесс держит порт в Linux

Когда порт занят, а ты не знаешь какой процесс его занимает — вместо копаний в журналах можно сразу найти виновника одной командой.

Особенно полезно при отладке dev-серверов, docker, ssh и прочего.

Это незаменимая команда, когда nginx не стартует, python выдает ошибки, или docker ругается на занятый порт.

Ставь лайк и подписывайся — каждый день публикуем полезные и не банальные советы для разработчиков. Пиши в коментах какие команды используешь каждый день!

///
sudo lsof -i :PORT

или

sudo fuser -v PORT/tcp

-lsof покажет PID, команду, пользователя и путь
- fuser сразу скажет, можно ли убить процесс (-k для убийства)
- Работает с TCP и UDP (например, fuser -v 53/udp для DNS)

@python_be1
🧩 Задача для разминки

Что выведет этот код? Попробуй догадаться без запуска.

```

class Sneaky:
def __eq__(self, other):
print("Comparing!")
return True

a = Sneaky()
b = [a]

print(a in b)
print(a == b[0])
print(b.count(a))

```

🤔 Подумай: сколько раз вызовется <i>eq</i>?

🎯 Разбор:

print(a in b)
🔍 Проверка a in b вызывает b.__contains__(a), который по умолчанию использует ==.
👉 Вызовется <i>eq</i>, будет True.

print(a == b[0])
🔍 Прямое сравнение — снова <i>eq</i>.

print(b.count(a))
🔍 list.count сравнивает каждый элемент с ==. В нашем списке один элемент — a.
👉 Опять вызывается <i>eq</i>.

[спойлер: 💥 Вывод будет:

Comparing!
True
Comparing!
True
Comparing!
1]

📌 [спойлер: Вывод: __eq__ сработал 3 раза, и каждый раз напечатал "Comparing!".

🧠 Уловка: Python-списки используют ==, даже если это один и тот же объект! Да, a == a всё равно вызовет __eq__, если он определён.

⚠️ Фишка для интервью:
Можно подменить поведение ==, но is (сравнение идентичности) всегда быстрее и не вызывает магии.]

@python_be1
Что выведет код ?

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Linux: как быстро найти, какие файлы занимают больше всего места в системе

Когда df -h показывает, что диск забит, но ты не понимаешь, что именно съело память, вот команда, которая спасает.

Она отлично работает, когда нужно:
– найти огромный лог или зависший кэш
– понять, где лежит более 100 Гигабайт
– навести порядок перед бэкапом системы

Для интерактивного анализа — можно подключить ncdu.

@python_be1
💼 Готовый проект на Python: асинхронный сервис отслеживания цены акций

Отслеживает цены акций в реальном времени, рассылает push-уведомления при достижении триггеров и предоставляет REST + WebSocket API для фронтенда.

Почему проект ценен для портфолио

- Показывает владение современным стеком: FastAPI + WebSockets + asyncio, PostgreSQL, Redis, Docker, CI/CD.

- Демонстрирует продвинутые практики: типы (pydantic, mypy), тесты (pytest, pytest-asyncio), линтеры, GitHub Actions.

- Подходит для live-демо: легко задеплоить на Render/Fly.io/Hetzner и показать работу в браузере.

➡️ Читать статью (https://uproger.com/gotovyj-portfelnyj-proekt-na-python-asinhronnyj-servis-otslezhivaniya-czeny-akczij/)

@python_be1
Лучшие базы данных — и где они их использовать

1. PostgreSQL — универсальная реляционная БД
→ бизнес-приложения, аналитика, геоданные (PostGIS), JSON + SQL в одном

2. SQLite — встраиваемая БД без сервера
→ мобильные приложения, локальное хранение, CLI-инструменты, тесты

3. MySQL / MariaDB — быстрые SQL-БД для веба
→ сайты, CMS, WordPress, стартапы с LAMP-стеком

4. MongoDB — документо-ориентированная NoSQL
→ JSON‑подобные данные, прототипы, быстро меняющиеся схемы

5. Redis — in-memory key-value store
→ кеширование, очереди, счётчики, real-time метрики

6. ClickHouse — колоночная аналитическая БД
→ аналитика, лог-системы, BI‑дашборды, миллиарды строк — за миллисекунды

7. Neo4j — графовая БД
→ социальные графы, связи между сущностями, рекомендации

8. TimescaleDB — time-series над PostgreSQL
→ телеметрия, мониторинг, временные ряды, IoT

9. Cassandra — масштабируемая распределённая NoSQL
→ high-availability, терабайты данных, логика без джинов.

10. DuckDB — это современная in-process аналитическая СУБД, разработанная как “SQLite для аналитики

t.me/ - наш телеграм канал с гайдами

@python_be1
🕸️ Chat4Data — расширение, которое превращает веб-скрапинг в диалог

Вместо кода и настроек — просто говоришь, что хочешь, и AI собирает структурированные данные с сайта.

Что умеет Chat4Data:

🔹 Собирает данные “на слух”
Опиши нужную таблицу или список — AI сам найдёт, распарсит и вставит в таблицу. Не нравится результат? Переспроси. Без кода, без боли.

🔹 Обходит все страницы сам
Автоматически кликает “Следующая”, грузит подгружаемые списки и собирает всё — без твоего участия.

🔹 Запускается за 3 клика
AI сам определяет, какие данные ценные, предлагает их — тебе остаётся только подтвердить. Быстро, как в Telegram-боте.

🔹 Не тратит токены на скрапинг
Анализ страницы — на AI, но сами данные забираются без токенов. В бета-версии дают 1 миллион токенов на другие задачи.

🔹 Скоро: скрапинг подстраниц, интерактив, интеграции...

📎 https://chat4data.ai

#ai #scraping #automation #nocode #tools

@python_be1
⚡️ Microsoft обновила собственный бесплатный курс по генеративному ИИ

В курсе видео, практика (код) и дополнительные материалы.
Пргорамма курса состоит из изучения структуры и работы LLM, тонкостям промптинга, созданию собственного приложения для генерации изображений, функционалу RAG для LLM и принципам файнтюна.

📌 А здесь мы вылудили полный список бесплатных курсов. (https://uproger.com/luchshie-besplatnye-kursy-po-iskusstvennomu-intellektu/)

Для прохождения курса нужны:
- учетная запись на Azure
- доступ к api OpenAI

Разумеется, все методики и манипуляции предлагается выполнять обучающимся в экосистеме Microsoft, на их мощностях и с использованием их сервисов.

Бэкенд учебного приложения для генерации картинок - DALLE и Midjourney.
Большие надежды строить относительно курса не стоит - экосисистема Microsoft требует отдельных компетенций, но в качестве базового структурированного курса для новичков - вполне подойдет.

🖥 Курс полностью выложен на Github: https://github.com/microsoft/generative-ai-for-beginners

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🧠 Ускорь import в Python-проектах с помощью lazy loading — без изменения логики

Если у тебя проект с тяжёлыми модулями (`pandas`, `torch`, `tensorflow`), но они не всегда нужны — не загружай их зря. Python позволяет **отложить импорт до первого использования**, через встроённый `importlib`.

Вот как это выглядит на практике:

```

import importlib

# Обёртка для ленивого импорта
def lazy_import(name):
return importlib.util.LazyLoader(importlib.import_module(name))

# Использование
np = lazy_import('numpy')
# numpy ещё не загружен

# Теперь загрузится:
print(np.array([1, 2, 3]))
```

@python_be1
🧠 GitHub раскрывает планы по следующей эволюции Copilot — от помощника к полноценному агенту.

🔗 В новом посте GitHub делится видением agentic workflows — когда Copilot становится не просто ассистентом, а полноценным участником команды, который умеет:
• понимать задачу целиком,
• планировать шаги,
• писать и менять код,
• создавать PR и даже инициировать обсуждение.

📌 Что важно:
— Copilot теперь работает в рамках цепочек действий (tasks → plans → code)
— Появляются memory и context-aware агенты
— Идея — не просто "автодополнение", а делегирование работы: от заведения ишью до его закрытия
— Акцент на безопасную, контролируемую автоматизацию

⚙️ Пример: вы создаёте issue → Copilot планирует, как решить → предлагает PR → вы ревьюите и мёрджите.

🛠 Уже сейчас GitHub тестирует:
- Copilot Workspace (автогенерация изменений по issue)
- GitHub Agents (task‑oriented агенты для DevOps и beyond)

📎 Читайте подробнее: (https://github.blog/news-insights/product-news/from-pair-to-peer-programmer-our-vision-for-agentic-workflows-in-github-copilot/)

Copilot перестаёт быть просто AI‑другом в редакторе — он становится сотрудником, который понимает задачи, работает в контексте проекта и помогает двигать код вперёд.

@python_be1
🚀 Шпаргалка по Docker 🐳

🔹 Сборка (Build)
🔹 Запуск (Run)
🔹 Шаринг (Share)
🔹 Управление (Management)

📌 Сборка образов
📍 Создать образ из `Dockerfile` и присвоить тег:
```

docker build -t myimage:1.0 .

```
📍 Посмотреть локальные образы:
```

docker image ls

```
📍 Удалить образ:
```

docker image rm alpine:3.4

```

📌 Запуск контейнеров
📍 Запустить контейнер на порту 5000:
```

docker container run —name web -p 5000:80 alpine:3.9

```
📍 Остановить контейнер:
```

docker container stop web

```
📍 Принудительно завершить контейнер:
```

docker container kill web

```
📍 Список запущенных контейнеров:
```

docker container ls

```
📍 Удалить все контейнеры:
```

docker container rm -f $(docker ps -aq)

```

📌 Работа с образами (Share)
📍 Скачать образ из реестра:
```

docker pull myimage:1.0

```
📍 Изменить тег у локального образа:
```

docker tag myimage:1.0 myrepo/myimage:2.0

```
📍 Запушить образ в реестр:
```

docker push myrepo/myimage:2.0

```

📌 Управление Docker (Management)
⚙️ `docker app` – Управление приложениями
⚙️ `docker image` – Управление образами
⚙️ `docker container` – Управление контейнерами
⚙️ `docker network` – Управление сетями
⚙️ `docker volume` – Управление хранилищами
⚙️ `docker stack` – Управление Docker Stack
⚙️ `docker swarm` – Управление кластером Swarm
⚙️ `docker system` – Управление всей системой

📝 Сохраните, поделитесь с друзьями и подписывайтесь на канал! 💙🐳

#devops #девопс

Подпишись 👉@i_DevOps (https://vk.com/club216361228)

@python_be1
🌟 Odigos — распределенный трейсинг без модификации кода. Этот open-source проект меняет правила игры в observability-инструментах. Инструмент умеет автоматически генерировать распределенные трейсы для приложений на Java, Python, .NET, Node.js и Go без необходимости правки исходного кода.

Под капотом используется eBPF для низкоуровневой инструментации, что особенно ценно для скомпилированных языков вроде Go. Трейсы сразу экспортируются в формате OpenTelemetry, что позволяет интегрироваться с любыми совместимыми системами мониторинга.

🤖 GitHub (https://github.com/odigos-io/odigos)

@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Подменяй любые импорты в Python “на лету” — без изменения кода

Если ты хочешь протестировать модуль, подменить зависимость, замокать внешний сервис или обмануть импорт — не обязательно редактировать исходники. Python позволяет перехватывать импорты прямо во время выполнения, через `sys.modules`.

Вот минимальный приём, который делает это прозрачно:

```

import sys
import types

# Создаём фейковый модуль
fake = types.SimpleNamespace()
fake.get_data = lambda: "подмена работает"

# Подменяем импорт
sys.modules['external_service'] = fake

# Теперь даже import будет работать
import external_service
print(external_service.get_data()) # → "подмена работает"
```

@python_be1