Справочник Программиста
6.36K subscribers
1.3K photos
381 videos
64 files
1.64K 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
⚒️ pluggy — это минималистичная, готовая к производственному использованию система плагинов.

Основные возможности:
🔵Объявление и использование hook-спецификаций для точек расширения.
🔵Регистрация и управление плагинами через PluginManager.
🔵Поддержка нескольких реализаций одного hook-а.
🔵Контроль порядка выполнения плагинов по приоритету.
🔵Возможность динамического подключения и отключения плагинов.
🔵Интеграция с entry points для автозагрузки плагинов.
🔵Безопасная передача и сбор результатов от всех hook-ов.
🔵Минимальный размер и высокая производительность.

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

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

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

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

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

from PIL import Image
import imagehash
import os


def find_duplicate_images(folder):
hashes = {} # Словарь для хранения хэшей изображений и соответствующих им имен файлов
for filename in os.listdir(folder):
# Проверяем, что файл имеет расширение изображения
if filename.endswith(('.png', '.jpg', '.jpeg')):
path = os.path.join(folder, filename)
hash_val = imagehash.average_hash(Image.open(path)) # Создаем хэш изображения
if hash_val in hashes: # Если такой хэш уже встречался
print(f"Дубликат: {filename} и {hashes[hash_val]}") # Выводим найденный дубликат
else:
hashes[hash_val] = filename # Сохраняем хэш и имя файла в словарь


if __name__ == '__main__':
folder = input("Введите путь к папке с изображениями: ")
find_duplicate_images(folder)


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

Основные возможности:
🔵Высокая производительность при обработке данных
🔵Поддержка очень больших наборов данных (в том числе больше объёма ОЗУ)
🔵Реализация на C/C++ для ускорения вычислений
🔵Автоматическая многопоточность
🔵Гибкая фильтрация, сортировка, группировка и агрегации
🔵Интеграция с pandas, NumPy и PyArrow
🔵Поддержка memory-mapping для работы с файлами напрямую с диска
🔵Совместимость с производственным использованием

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

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

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

Основные особенности:
🔵Поддержка форматов ELF, PE, Mach-O, OAT, DEX, VDEX и ART
🔵Единая абстрактная модель для работы с разными бинарными форматами
🔵Возможность анализа и модификации исполняемых файлов
🔵Поддержка языков C++, Python, Rust и частично C
🔵Расширенная версия LIEF Extended с поддержкой DWARF, PDB, Objective-C, dyld shared cache, дизассемблера и ассемблера
🔵Интеграции с Ghidra и Binary Ninja
🔵Кроссплатформенная работа на Windows, Linux и macOS

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

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

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

Для отправки GET-запроса для получения данных о вкладках в формате JSON в коде используется библиотека requests.

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

import requests


def get_chrome_tabs(debug_port=9222):
"""
Получает и выводит список открытых вкладок Chrome через удаленную отладку.

Args:
debug_port (int): Порт, на котором включена удаленная отладка.
По умолчанию используется порт 9222.
"""
try:
response = requests.get(f"http://localhost:{debug_port}/json")
tabs = response.json()

if not tabs:
print("Нет открытых вкладок или отладка не включена.")
return

for i, tab in enumerate(tabs, start=1):
title = tab.get('title', 'Без названия')
url = tab.get('url', 'Без URL')
print(f"{i}. {title} — {url}")

except requests.exceptions.ConnectionError:
print(f"Не удалось подключиться к Chrome (порт {debug_port}).")
print("Убедитесь, что Chrome запущен с ключом: chrome.exe --remote-debugging-port=9222")


if __name__ == "__main__":
get_chrome_tabs()


Как использовать:

Запустить Chrome с отладочным портом: chrome.exe --remote-debugging-port=9222
Запустить скрипт — он выведет список всех открытых вкладок (название + URL).


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤔2❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
📰 drawdata — это небольшая Python-библиотека, которая добавляет интерактивные виджеты прямо в Jupyter Notebook (а также совместима с VSCode и Colab), позволяя вам рисовать собственные датасеты вручную, а затем использовать их для анализа или обучения моделей машинного обучения.

Основные возможности:
🔵Рисование собственных датасетов вручную
🔵Создание scatter-датасетов
🔵Создание гистограмм и баров
🔵Экспорт данных в pandas или polars DataFrame
🔵Получение данных в формате (X, y) для scikit-learn
🔵Поддержка интерактивной работы в Jupyter, VSCode и Colab

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

📱 Репозиторий
💬 Демо

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2🤨1
💻 fastapi-sqlalchemy-asyncpg — это шаблон проекта, демонстрирующий, как можно интегрировать FastAPI, Pydantic 2.0 и SQLAlchemy ORM с PostgreSQL с асинхронным драйвером asyncpg.

Стек:
FastAPI — современный, высокопроизводительный фреймворк для создания API.
Pydantic 2.0 — библиотека для валидации данных.
SQLAlchemy ORM — инструмент для работы с базами данных на уровне объектов.
PostgreSQL через asyncpg — эффективный асинхронный клиент для взаимодействия с PostgreSQL.

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

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

Ориентирован на обеспечение масштабируемости, поддержки чистой архитектуры и удобной разработки.

Основные характеристики:
Современная база — поддержка Python 3.13+
Инфраструктура конфигурации и внедрения зависимостей
Адаптеры и моки для тестирования
Единая модель данных (Entities & DTOs)
Утилиты для типичных задач
Поддержка BDD
Лучшие практики и структура проекта

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2🔥2👍1
🌐 Starlette-admin — это быстрый, красивый и расширяемый фреймворк для административного интерфейса поверх Starlette и FastAPI.

Позволяет создавать полнофункциональные CRUD-интерфейсы для разных систем хранения данных, не ограничиваясь конкретными ORM или ODM, и предоставляет удобную админку, аналогичную Flask-Admin, но адаптированную под современный стек Python-API.

Основные возможности:
🔵CRUD-интерфейсы для любых моделей
🔵Поиск, фильтрация и сортировка данных
🔵Экспорт данных в CSV, Excel, PDF и печать
🔵Управление файлами и изображениями
🔵Аутентификация и авторизация
🔵Кастомные views и batch-действия
🔵Поддержка SQLAlchemy, SQLModel, MongoEngine, ODMantic и Beanie

➡️Установка: pip install starlette-admin

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

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

Основные возможности:
🔵Скачивание видео, аудио и изображений с популярных сайтов ( YouTube, TikTok, VK и т.д.)
🔵Отображение доступных форматов и качества перед загрузкой
🔵Автоматическая загрузка субтитров с YouTube
🔵Скачивание изображений по ссылкам и через скрапинг страниц
🔵Стриминг видео напрямую в медиаплеер без рекламы
🔵Поддержка продолжения загрузки после прерывания
🔵Настройка имени и директории для сохраняемых файлов
🔵Поддержка прокси для обхода сетевых ограничений

➡️Установка: pip install you-get

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥2
SABnzbd — это бинарный новсридер (Usenet-клиент), написанный на Python. Он автоматизирует процесс загрузки файлов с Usenet, значительно упрощая взаимодействие с этим протоколом.

Вместо того чтобы вручную скачивать, проверять, восстанавливать и распаковывать файлы, достаточно добавить NZB-файл — и SABnzbd выполнит всю работу автоматически.

Основные возможности:
🔵Автоматизация загрузок
🔵Интуитивно понятный веб-интерфейс
🔵Интеграция с популярными инструментами (Sonarr, Radarr, Lidarr и др.)
🔵Поддержка RSS-лент
🔵Многоязычный интерфейс
🔵Многоуровневая настройка параметров загрузки
🔵Поддержка нескольких серверов Usenet
🔵Гибкая настройка через API и скрипты

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

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

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

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

from PIL import Image

# Открываем изображение
image = Image.open('input_image.jpg')

# Конвертируем в оттенки серого
gray_image = image.convert('L')

# Сохраняем результат
gray_image.save('output_image_pil.jpg')


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍2
🤖 remnawave-bedolaga-telegram-bot — это проект Telegram-бота, предназначенного для автоматизированной продажи подписок в Telegram.

Интегрирован с Remnawave версии 2.1.1 и предоставляет пользователям возможность приобретать подписки через Telegram, а также управлять ими.

Основные особенности:
Интеграция с Remnawave версии 2.1.1
Поддержка автоплатежей
Управление подписками через интерфейс бота
Реферальная система для привлечения новых пользователей
Административная панель для управления пользователями и подписками

Основные библиотеки:
aiogram
asyncpg
SQLAlchemy
pydantic
redis

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

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

Основные особенности:
🔵Расширяет возможности стандартного pickle
🔵Поддерживает сериализацию лямбд, вложенных функций и замыканий
🔵Умеет сохранять исходный код функций и классов
🔵Может сохранять и восстанавливать состояние интерактивной сессии
🔵Позволяет передавать сложные объекты по сети
🔵Имеет модуль dill.detect для диагностики проблем сериализации
🔵Поддерживает загрузку сохранённой сессии как модуля или словаря

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥1
💻 fastmcp – это Python-библиотека и фреймворк для быстрой и удобной разработки серверов и клиентов в соответствии с Model Context Protocol (MCP), стандарта взаимодействия больших языковых моделей (LLM) с внешними ресурсами и инструментами.

Основные особенности:
🔵Быстрое создание MCP-серверов с помощью декораторов
🔵Поддержка клиента и сервера MCP "из коробки"
🔵Автоматическая генерация MCP-серверов из REST-API (например, FastAPI)
🔵Интеграция с OpenAPI
🔵Middleware для аутентификации, логирования и других задач
🔵Автоматическая конвертация Python-типов в формат MCP и обратно
🔵Поддержка трансформации инструментов (переименование, фильтрация аргументов, скрытие параметров)

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

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

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

Для сокращения ссылок в коде используется модуль secrets, а для копирования сгенерированного пароля в буфер обмена — pyperclip.

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

import argparse
import secrets
import string
import pyperclip

AMBIG = set('O0Il1') # Определяем набор символов, которые могут выглядеть похожими (амбивалентные символы).

if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument('-l', '--length', type=int, default=16, # Указание длины пароля.
help='длина пароля (по умолчанию: 16)')
ap.add_argument('-d', '--digits', action='store_true', # Включать ли цифр в пароль.
help='включить цифры в пароль')
ap.add_argument('-s', '--symbols', action='store_true', # Включать ЛИ символов в пароль.
help='включить специальные символы в пароль')
ap.add_argument('--no-ambig', action='store_true',
help='убрать похожие символы (например, O, 0, I, l, 1)')
args = ap.parse_args()

# Инициализируем список 'alphabet' всеми буквами (строчными и заглавными).
alphabet = list(string.ascii_letters)
if args.digits:
alphabet += list(string.digits)
if args.symbols:
alphabet += list('!@#$%^&*()-_=+[]{};:,.<>?')
if args.no_ambig:
alphabet = [c for c in alphabet if c not in AMBIG]

# Генерируем пароль: выбираем случайные символы из 'alphabet' указанное количество раз (args.length)
# и объединяем их в одну строку.
pwd = ''.join(secrets.choice(alphabet) for _ in range(args.length))
pyperclip.copy(pwd) # Копируем сгенерированный пароль в буфер обмена.
print('Пароль скопирован в буфер: ', pwd)


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

Основные возможности:
Распознавание речи и создание субтитров
Перевод текста и субтитров на разные языки
Синтез речи с выбором голосов и параметров
Черновое редактирование видео и аудио
Экспорт материалов (видео, аудио, субтитры)
Работа через веб-интерфейс
Предпросмотр и отладка результатов
Автодубляж и локализация контента
Поддержка разных провайдеров ИИ (OpenAI, Gemini, др.)
Возможность автономного развертывания

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥1
💰OpenBB — это открытая финансовая платформа с открытым исходным кодом, предназначенная для аналитиков, квантов и агент-ИИ.

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

Основыне особенности:
🔵Открытая платформа для финансовой аналитики
🔵Унифицированный API для работы с разными источниками данных
🔵Поддержка Python-библиотеки, CLI и Web API
🔵Модульная архитектура с расширениями
🔵Стандартизированный объект результата OBBject
🔵Интеграция с OpenBB Workspace (графический интерфейс)
🔵Возможность использования AI-агентов для автоматизации исследований
🔵Активное сообщество и регулярные обновления

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥1
💻 SpyderIDE — это интегрированная среда разработки (IDE) для научного программирования на Python.

Основные возможности:
🔵Редактор кода с подсветкой синтаксиса, автодополнением и проверкой ошибок
🔵Интерактивная IPython-консоль для запуска кода и отображения графиков
🔵Просмотр и редактирование переменных через Variable Explorer
🔵Панель документации с рендерингом справки по функциям и классам
🔵Встроенный отладчик и профилировщик производительности
🔵Поддержка проектов, управления файлами и поиска по коду
🔵Интеграция с научными библиотеками (NumPy, pandas, Matplotlib и др.)
🔵Поддержка плагинов и расширений (например, Jupyter Notebook, Vim-режим)

📱 Репозиторий
🌐 Сайт

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
TerminalTextEffects (TTE) — это движок визуальных эффектов для терминала, написанный на Python.

Может быть установлен как системное приложение или использоваться как Python-библиотека для создания динамических визуальных эффектов в терминальных приложениях.

основные возможности:
🔵Поддержка 256 цветов Xterm
🔵Анимации текста в терминале
🔵Эффекты движения символов по кривым и путям
🔵Градиенты и цветовые переходы
🔵Обработка событий и изменение состояния эффектов
🔵Использование как системное приложение через командную строку
🔵Интеграция в Python-скрипты
🔵Поддержка различных эффектов (дождь, расшифровка, цифровой дождь, лучи, фейерверки и др.)
🔵Гибкая система конфигурации через CLI
🔵Работа с потоками stdin и stdout

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

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

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

Позволяет находить наилучшие комбинации параметров с помощью интеллектуальных стратегий поиска, таких как Bayesian Optimization, TPE, CMA-ES, Grid Search и Random Search.

Основные возможности:
🔵Автоматическая оптимизация гиперпараметров с минимальным количеством кода.
🔵Поддержка как black-box, так и многокритериальной оптимизации.
🔵Визуализация процесса обучения и результатов (например, важность параметров, convergence plots).
🔵Интеграция с популярными фреймворками: PyTorch, TensorFlow, XGBoost, LightGBM, CatBoost, Scikit-learn и другими.
🔵Возможность параллельного и распределённого запуска оптимизаций.

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

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

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