Справочник Программиста
6.37K subscribers
1.29K photos
375 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
🔔 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
This media is not supported in your browser
VIEW IN TELEGRAM
🖼 Код для массового сжатия изображений в папке на Python

Для массового сжатия изображений в коде используется библиотека Pillow, для добавления прогресс-бара - tqdm.

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

from pathlib import Path
from PIL import Image
from tqdm import tqdm


def process_images_compact(input_path: str, output_folder: str = 'out', max_width: int = 1920, quality: int = 85):
out_dir = Path(output_folder)
out_dir.mkdir(parents=True, exist_ok=True)

allowed_exts = {'.jpg', '.jpeg', '.png'}

# Собираем список всех файлов в input_path (и подпапках), которые имеют разрешенные расширения
# rglob('*') рекурсивно ищет все файлы и папки
files = [p for p in Path(input_path).rglob('*') if p.suffix.lower() in allowed_exts]

for p in tqdm(files, leave=False):
# Открываем изображение с помощью Pillow
im = Image.open(p)
# Получаем текущие ширину и высоту изображения
w, h = im.size

# Проверяем, превышает ли ширина изображения заданную максимальную ширину
if w > max_width:
# Вычисляем коэффициент масштабирования
ratio = max_width / w
# Изменяем размер изображения, сохраняя пропорции
im = im.resize((max_width, int(h * ratio)))

# Определяем полный путь для сохранения обработанного изображения в выходной папке
output_file_path = out_dir / p.name

# Сохраняем изображение
if p.suffix.lower() == '.png':
im.save(output_file_path, optimize=True)
else:
im.save(output_file_path, quality=quality, optimize=True)


if __name__ == "__main__":
process_images_compact('my_photos', output_folder='resized_photos', max_width=1024, quality=80)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤‍🔥2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🗣 parler‑tts — это полностью открытая система синтеза речи с управляемыми характеристиками.

Основные возможности:
🔵Открытый синтез речи с управляемыми характеристиками
🔵Генерация голоса на основе текстового описания
🔵Выбор из 34 предобученных голосов
🔵Поддержка Mini и Large моделей с разным числом параметров
🔵Управление скоростью, тембром, шумом и реверберацией
🔵Возможность дообучения на собственных записях
🔵Ускорение работы через Torch Compile и Flash Attention 2
🔵Поддержка потоковой генерации аудио
🔵Инструменты для автоматической аннотации речи

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

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

Основные возможности:
🔵Удаление личной и конфиденциальной информации (PII) из текста.
🔵Поддержка распознавания имён, email‑адресов, телефонов, URL, адресов, дат рождения, номеров документов и карт.
🔵Возможность подключения дополнительных детекторов.
🔵Настройка замены (текстовые метки, хеши, форматирование).
🔵Локализация для поддержки региональных форматов данных.
🔵Добавление пользовательских паттернов для поиска и удаления.
🔵Гибкая конфигурация детекторов (добавление, удаление, приоритеты).

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

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

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

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

➡️Установка библиотеки: pip install watchdog

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os

class MyEventHandler(FileSystemEventHandler):
def on_any_event(self, event):
"""Логирует любое событие файловой системы."""
if event.is_directory:
event_type = "Каталог"
else:
event_type = "Файл"

if event.event_type == 'created':
print(f"СОЗДАН: {event_type} {event.src_path}")
elif event.event_type == 'deleted':
print(f"УДАЛЕН: {event_type} {event.src_path}")
elif event.event_type == 'modified':
print(f"ИЗМЕНЕН: {event_type} {event.src_path}")
elif event.event_type == 'moved':
print(f"ПЕРЕМЕЩЕН: {event_type} из {event.src_path} в {event.dest_path}")

def start_watching(path):
event_handler = MyEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
print(f"Мониторинг папки: {path}. Нажмите Ctrl+C для остановки.")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
print("Мониторинг остановлен.")


if __name__ == "__main__":
# Замените 'путь_к_папке' на фактический путь к папке, которую вы хотите отслеживать
folder_to_watch = 'путь_к_папке'

# Создаем папку, если она не существует (необязательно, для демонстрации)
if not os.path.exists(folder_to_watch):
os.makedirs(folder_to_watch)
print(f"Создана папка для демонстрации: {folder_to_watch}")

start_watching(folder_to_watch)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 notebookllama – это полностью open‑source альтернатива Google NotebookLM, использующая LlamaCloud для своей инфраструктуры.

Ориентирован на конвертацию документов (PDF) в подкаст‑формат, где AI генерирует скрипт и превращает его в аудио разговор между двумя «ведущими».

Основные возможности:
Распознавание и извлечение содержимого PDF
Генерация сценария подкаста с драматическими вставками
Конвертация текста в речь через открытые TTS-модели, такие как bark и Parler‑tts
Полностью настраиваемый open-source код, включая API, UI-компоненты, поддержку LlamaCloud и возможность замены компонентов под собственные нужды

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
📱 vizro — это Python‑библиотека для быстрого и удобного создания высококачественных приложений визуализации данных в low‑code стиле.

Основные особенности
🔵Компоненты: графики, таблицы, KPI-карточки, формы и другие элементы интерфейса.
🔵Контролы: фильтры и параметры с селекторами (выпадающие списки, ползунки и др.).
🔵Действия: взаимодействия между компонентами, drill-through, экспорт и прочее.
🔵Макеты: сеточные layout или гибкие контейнеры с предустановленными стилями.
🔵Навигация: поддержка вложенных страниц и различных вариантов построения интерфейса

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥1
💻 cai — это легковесный, эргономичный и открытый фреймворк для создания специализированных AI‑агентов, предназначенных для помощи в выполнении задач Bug Bounty — от разведки до валидации уязвимостей и составления отчётов.

Основные особенности:
🔵Создание кастомных AI-агентов для задач Bug Bounty
🔵Работа с более чем 300 моделями (GPT-4o, Claude, DeepSeek, Ollama и др.)
🔵Поддержка модульной архитектуры для лёгкого расширения
🔵Встроенная система трассировки и логирования
🔵Интеграция с инструментами анализа уязвимостей
🔵Поддержка локальных и облачных LLM
🔵Автоматизация задач: разведка, эксплуатация, отчётность
🔵Возможность использования через CLI и веб-интерфейс
🔵Поддержка командной работы и многоагентных сценариев
🔵Повышенная производительность и эффективность по сравнению с ручным пентестингом

⚠️ Информация предоставлена исключительно в образовательных целях. Использование в незаконных действиях запрещено.

➡️Установка: pip install cai-framework

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥2👍1
📱 pyopencl — это обёртка на Python для OpenCL, обеспечивающая "питонический" доступ к популярному API для параллельных вычислений на GPU, многоядерных CPU и других ускорителях.

Основные возможности:
🔵Полный доступ ко всем функциям OpenCL из Python
🔵Автоматическое управление ресурсами (RAII)
🔵Преобразование ошибок OpenCL в исключения Python
🔵Высокая производительность благодаря C++‑ядру
🔵Поддержка всех популярных платформ и GPU (Nvidia, AMD, Intel и др.)
🔵Возможность компиляции и исполнения OpenCL‑ядер на лету
🔵Поддержка буферов, изображений и прочих объектов памяти OpenCL
🔵Работа с несколькими устройствами и очередями команд
🔵Интеграция с NumPy

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

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

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