Справочник Программиста
6.38K subscribers
1.28K photos
374 videos
64 files
1.61K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
⚙️ Автоматизация задач с помощью Python

В данной статье напишем три скрипта для автоматизации задач с помощью Python.

📖Похожие статьи:
5 простых программ на Python
5 полезных скриптов на Python
Простые программы на Python

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍2🔥1
🔥 yt-dlp-gui — это графическая оболочка для популярного инструмента yt-dlp, написанная на Python с использованием библиотеки tkinter.

Упрощает скачивание видео и аудио с YouTube и других платформ, позволяя пользователю не писать команды в терминале, а работать через удобный интерфейс.

Основные возможности:
Поддержка скачивания видео, аудио или плейлистов;
Выбор качества и формата;
Возможность автоматической установки yt-dlp и ffmpeg;
Удобный интерфейс с прогресс-баром и логами;
Поддержка прокси-серверов и аргументов командной строки.

➡️Установка:
git clone https://github.com/vokrob/yt-dlp-gui.git
cd yt-dlp-gui
pip install -r requirements.txt
python main.py


📱 Репозиторий
⚙️ exe-файл
📝 Статья

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤‍🔥1
🖥 py‑pglite — это удобная обёртка на Python для PGlite — лёгкого, но настоящего PostgreSQL, запускаемого мгновенно и без настройки.

Отлично подходит для тестирования, предоставляя:
Zero‑config: не требуется установка PostgreSQL, Docker или внешняя конфигурация
Мгновенный запуск: от 2–3 с против 30–60 с при Docker
Изоляция тестов: каждый тест — свежая чистая БД
Нативный PostgreSQL: поддержка JSON, массивов, оконных функций и т.д.
Совместимость со стандартными клиентами: SQLAlchemy, Django, psycopg, asyncpg и прочими.

Пример использования с SQLAlchemy:
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice", email="alice@test.com")
pglite_session.add(user)
pglite_session.commit()

assert user.id is not None
assert User.query.count() == 1 # Real PostgreSQL!


➡️Установка:
pip install py-pglite[sqlalchemy]   # для SQLAlchemy/SQLModel
pip install py-pglite[django] # для Django
pip install py-pglite[asyncpg] # для чистого asyncpg
pip install py-pglite[extensions] # с поддержкой pgvector и др.


📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥2👍1
📝 PySnooper — это Python-библиотека, которая позволяет легко отлаживать код, автоматически выводя значения переменных и ход выполнения программы.

Проще говоря, достаточно добавить один декоратор @pysnooper.snoop() к функции, и библиотека начнёт логировать все её шаги — какие строки выполняются, какие значения присваиваются переменным и как изменяется состояние программы.

Основные возможности:
🔵Минимум кода для отладки — достаточно одной строки.
🔵Вывод всех изменений переменных с их новыми значениями.
🔵Логирование в файл или консоль (можно указать путь к лог-файлу).
🔵Поддержка контекстного менеджера — можно отслеживать только нужные блоки кода.
🔵Понятные и наглядные логи — виден номер строки, выполняемый код и результат.

➡️Установка: pip install pysnooper

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7🔥2
🔥 На GitHub недавно обновился бесплатный обучающий репозиторий Think Python, 3rd edition — отличная база для изучения Python: от основ синтаксиса до ООП.

📘 Весь материал оформлен в виде Jupyter-ноутбуков: удобно читать, легко искать нужные темы. Чёткая структура и множество примеров кода делают обучение максимально понятным.


📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤‍🔥2🤨1
This media is not supported in your browser
VIEW IN TELEGRAM
⚒️ crudadmin — это библиотека для Django, которая превращает ваш проект в удобную административную панель с функциями CRUD (создание, чтение, обновление, удаление) без необходимости писать лишний код.

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

Основные возможности:
🔵Автоматическая генерация CRUD-интерфейсов на основе моделей Django.
🔵Поддержка кастомизации форм и отображения данных.
🔵Гибкая система фильтров, поиска и сортировки.
🔵Возможность расширения стандартных возможностей с помощью плагинов.
🔵Поддержка работы с REST API.
🔵Простая интеграция с существующим проектом Django.

➡️Установка: pip install "crudadmin[memcached]"

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥1
🔥 pyleak — это инструмент для поиска утечек памяти в Python-приложениях, который помогает анализировать объекты в памяти и выявлять те, что не освобождаются должным образом.

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

Основные возможности:
🔵Обнаружение утечек памяти — анализирует объекты, удерживаемые в памяти, и показывает, какие из них продолжают существовать.
🔵Сравнение снимков памяти — позволяет сравнивать состояние памяти в разные моменты времени.
🔵Интеграция в код — легко подключается к проектам для отладки и тестирования.
🔵Поддержка интерактивного анализа — выводит подробную информацию о типах объектов и их количестве.

➡️Установка: pip install pyleak

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤‍🔥2🤔1
🔔 notify-py — это кроссплатформенный Python-модуль для создания системных уведомлений на Windows (10/11), macOS (начиная с 10.10) и Linux (через libnotify).

Основные возможности:
Отправка локальных уведомлений на Windows, macOS и Linux.
Поддержка иконок для уведомлений.
Настройка заголовка, текста и звука уведомления.
Возможность управлять временем отображения уведомлений.
Поддержка обратного вызова при клике на уведомление.
Возможность использования в фоновых скриптах и приложениях.

➡️Установка: pip install notify-py

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6❤‍🔥3👍2
🗄 aiortc — это Python-библиотека для работы с WebRTC и ORTC, позволяющая создавать приложения реального времени для передачи аудио, видео и данных без использования сторонних серверов.

Написана полностью на Python и поддерживает асинхронный ввод-вывод (asyncio), что делает её удобной для интеграции в современные веб-приложения.

Основные возможности:
🔵Поддержка WebRTC и ORTC для P2P-коммуникаций.
🔵Передача аудио, видео и произвольных данных.
🔵Интеграция с asyncio и использование корутин.
🔵Возможность создания SFU/MCU серверов для групповых звонков.
🔵Поддержка кодеков VP8, H.264, Opus и других.

➡️Установка: pip install aiortc

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍3🔥1
🎧 PyAV – это Python-биндинги для библиотеки FFmpeg, предоставляющие удобный и «питоничный» доступ к функциям обработки аудио и видео.

Этот пакет позволяет работать с мультимедийными данными (декодирование, кодирование, ресемплинг, ресайз, фильтрация) без необходимости напрямую взаимодействовать с низкоуровневыми API FFmpeg.

Основные возможности:
🔵Поддержка чтения и записи множества форматов мультимедиа (MP4, AVI, MKV и др.).
🔵Работа с потоками данных (аудио, видео, субтитры).
🔵Простое извлечение и сохранение кадров, перекодировка.
🔵Управление фильтрами и параметрами потоков FFmpeg.
🔵Поддержка NumPy для удобной обработки кадров как массивов.

➡️Установка: pip install av

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔗 Код для скачивания изображений по ссылке на Python

Для скачивания изображений в коде используется библиотека requests.

➡️Установка: pip install requests

import requests


def download_image(url, filename):
try:
# Отправляем GET-запрос по указанному URL
response = requests.get(url, stream=True)
# Проверяем, что запрос был успешным (статус 200)
response.raise_for_status()

# Открываем файл в бинарном режиме записи ('wb')
with open(filename, 'wb') as file:
# Записываем содержимое ответа в файл
for chunk in response.iter_content(chunk_size=8192):
file.write(chunk)
print(f"Изображение успешно сохранено как: {filename}")
except requests.exceptions.RequestException as e:
print(f"Ошибка при скачивании изображения: {e}")
except IOError as e:
print(f"Ошибка при сохранении файла: {e}")


# Пример использования функции
if __name__ == "__main__":
image_url = "https://placehold.co/600x400/000000/FFFFFF?text=Пример+изображения" # Замените на реальный URL изображения
output_filename = "saved_image.jpg" # Имя файла для сохранения

download_image(image_url, output_filename)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥2
🔥 testcontainers — это Python-библиотека для удобного запуска временных Docker-контейнеров в автоматических тестах.

Позволяет легко поднимать нужные сервисы (например, PostgreSQL, Redis, Kafka, MySQL и другие) прямо во время тестирования, избавляя от необходимости настраивать окружение вручную.

Основные возможности:
🔵Простое API для запуска и остановки контейнеров.
🔵Поддержка популярных баз данных, брокеров сообщений и других сервисов.
🔵Возможность создания собственных контейнеров.
🔵Легко интегрируется с pytest и другими тестовыми фреймворками.
🔵Удобная отладка и изоляция окружения тестов.

➡️Установка: pip install testcontainers

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💽 Код для контроля свободного места на Python

Для контроля свободного места на диске в коде используется модуль psutil.

➡️Установка модуля: pip install psutil

import shutil

def check_disk_space(path='/'):
try:
total, used, free = shutil.disk_usage(path)
return total, used, free
except FileNotFoundError:
print(f"Ошибка: Путь '{path}' не найден.")
return None
except Exception as e:
print(f"Произошла ошибка: {e}")
return None

def bytes_to_gb(bytes_value):
"""Конвертирует байты в гигабайты."""
return bytes_value / (1024**3)

if __name__ == "__main__":
# Можно указать путь, который необходимо проверить.
# Для Windows используйте букву диска, например 'C:/'
# Для Linux/macOS используйте '/' для корня или определенную точку монтирования, например '/home'
path_to_check = '/' # Измените, если хотите проверить другой путь

disk_info = check_disk_space(path_to_check)

if disk_info:
total_bytes, used_bytes, free_bytes = disk_info

total_gb = bytes_to_gb(total_bytes)
used_gb = bytes_to_gb(used_bytes)
free_gb = bytes_to_gb(free_bytes)

print(f"--- Информация о дисковом пространстве для '{path_to_check}' ---")
print(f"Общий объем: {total_gb:.2f} GB")
print(f"Использовано: {used_gb:.2f} GB")
print(f"Свободно: {free_gb:.2f} GB")

# Здесь можно добавить проверку порогового значения
free_percentage = (free_bytes / total_bytes) * 100
print(f"Свободно: {free_percentage:.2f}%")

if free_percentage < 10:
print("ВНИМАНИЕ: Свободное место на диске ниже 10%! Рассмотрите возможность очистки.")
else:
print("Не удалось получить информацию о дисковом пространстве.")


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥1
📦 py7zr — это Python-библиотека для работы с архивами 7z (7zip) в чистом Python без зависимости от нативных бинарников 7-Zip.

Основные возможности:
🔵Чтение и распаковка .7z-архивов.
🔵Создание новых .7z-архивов с поддержкой сжатия.
🔵Поддержка AES-шифрования и паролей.
🔵Работа с потоками и файловыми объектами.
🔵Совместимость с многотомными архивами.

➡️Установка: pip install py7zr

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤‍🔥2👍2
🌳anytree — это удобная Python-библиотека для создания, визуализации и работы с древовидными структурами данных с минимальным количеством кода.

Основные возможности:
🔵Создание деревьев с любой вложенностью
🔵Поддержка различных типов обхода: прямой, обратный, по уровням
🔵Автоматическое определение родителя и потомков
🔵Удобная текстовая визуализация дерева (RenderTree)
🔵Простая сериализация и десериализация

➡️Установка: pip install anytree

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥3
🚀 cement — это Python-фреймворк для создания интерфейсных (CLI) и серверных приложений.

Cтабильная, гибкая и расширяемая основа, подходящая как для маленьких скриптов, так и для крупных многокомпонентных систем.

Основные особенности:
🔵Интерфейсы через handler’ы для логирования, парсинга аргументов, конфигурации, вывода, кэширования, контроллеров, расширений и плагинов.
🔵Поддержка вложенных подкоманд и контроллеров для сложных CLI.
🔵Гибкая работа с конфигурацией (поддержка .conf, .yaml и других форматов).
🔵Система хуков и плагинов для расширяемости.
🔵Ноль внешних зависимостей у ядра.
🔵100% покрытие тестами и соответствие PEP‑8.

➡️Установка: pip install cement

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔍 microsandbox — это само-хостируемая платформа для безопасного выполнения недоверенного пользовательского или AI-сгенерированного кода в изолированных microVM’ах (микро-виртуальных машинах).

Проект ориентирован на случаи, когда нужно дать ИИ-агентам или пользователям возможность запускать произвольный код (Python, Node.js и т.д.) с сильной изоляцией и управляемыми ресурсами.

Основные возможности:
🔵Безопасное выполнение недоверенного (в т.ч. AI‑сгенерированного) кода в изолированных микро‑ВМ.
🔵SDK для Python, JavaScript/TypeScript и Rust для программного управления песочницами и запуска кода.
🔵Управление через сервер и CLI.
🔵Запуск команд, скриптов и интерактивных сессий внутри песочницы
🔵Более сильная граница безопасности, чем у контейнеров (Docker/OCI), за счёт изоляции уровня ВМ.

➡️Установка: pip install microsandbox

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍1
🚀 premier — это легковесная Python-библиотека для контроля скорости вызовов функций.

Позволяет ограничивать частоту вызовов функций в асинхронных и синхронных приложениях — особенно полезна для API-клиентов и ботов.

Основные возможности:
🔵Ограничение количества вызовов функции за определённый интервал времени
🔵Поддержка синхронного и асинхронного кода
🔵Простое применение через декораторы
🔵Возможность настройки интервалов и количества попыток

➡️Установка: pip install premier

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥1
📦 InvenTree  – это управления складом и номенклатурой, построенная на Python /Django и предоставляющая полный REST API как для веб-интерфейса, так и для внешних интеграций.

Основные возможности:
🔵Автоматическая аутентификация через токены или логин/пароль.
🔵Получение и фильтрация данных через удобные методы.
🔵Создание, обновление и удаление объектов (CRUD).
🔵Работа с объектами склада и запасами.
🔵Управление деталями, категориями, локациями и BOM.
🔵Прикрепление файлов и добавление параметров к объектам.
🔵Перезагрузка и синхронизация данных.
🔵Простая интеграция с REST API сервера InvenTree.

➡️Установка: pip install inventree

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤‍🔥2