Справочник Программиста
6.27K subscribers
1.36K photos
387 videos
64 files
1.72K 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

Рассмотрим пример использования декоратора cachedproperty из модуля boltons.cacheutils для кэширования результатов дорогостоящих вычислений. Это поможет избежать повторных расчетов и сэкономить время!

from boltons.cacheutils import cachedproperty

class ExpensiveComputation:
def __init__(self, value):
self.value = value

@cachedproperty
def result(self):
# Имитация дорогих вычислений
print("Выполняются дорогостоящие вычисления...")
return self.value ** 2

comp = ExpensiveComputation(5)
print(comp.result) # Выполняются дорогостоящие вычисления... 25
print(comp.result) # 25 (вычисление не повторяется)


🔍 Как это работает?
🔵Мы создаем класс ExpensiveComputation, который принимает значение.
🔵При первом обращении к result выполняются "дорогие" вычисления, и результат кэшируется.
🔵При последующих обращениях результат возвращается из кэша, а повторные вычисления больше не выполняются. Это значительно повышает производительность!

💡 Почему стоит использовать?
Используйте cachedproperty, когда вам нужно проводить тяжёлые вычисления, которые не меняются в течение жизненного цикла объекта. Это позволяет делать код более эффективным и быстрым!

➡️Установка необходимой библиотеки: pip install boltons

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

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

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

from captcha.audio import AudioCaptcha
import random


def create_captcha_text(length=6):
# Генерируем случайный текст капчи (только цифры)
captcha_text = ''.join([str(random.randint(0, 9)) for _ in range(length)])
return captcha_text


# Создаём текст для капчи
captcha_text = create_captcha_text()
print("Сгенерированный текст для капчи:", captcha_text)

# Инициализируем объект AudioCaptcha
audio = AudioCaptcha()

# Генерируем аудиофайл капчи
audio_data = audio.generate(captcha_text)
audio.write(captcha_text, 'captcha.wav')


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

Библиотека NiceGUI позволяет создавать веб-интерфейсы с минимальным количеством кода.

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

Основные особенности библиотеки:
🔵Простота использования: использует Python как основной язык, что исключает необходимость работы с JavaScript, HTML или CSS.
🔵Современные компоненты: основана на популярной библиотеке Vue.js с использованием готовых компонентов из Vuetify. Поддерживает адаптивный дизайн, чтобы интерфейсы хорошо смотрелись на любых устройствах.
🔵Встроенные функции: реактивные элементы и динамические обновления страницы. Поддержка графиков, 3D-графики (с использованием Three.js), таблиц и других сложных компонентов.
🔵Интеграция с Python: легко связывается с логикой на Python, что упрощает разработку приложений.
🔵Запуск: Работает на основе FastAPI для бэкенда, что позволяет легко масштабировать приложения.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Yandex-Music-Download — это утилита для загрузки треков, плейлистов и альбомов с сервиса "Яндекс.Музыка".

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

Основные особенности:
🔵Поддержка различных форматов загрузки:
🟢Треки;
🟢Альбомы;
🟢Плейлисты.
🔵Сохранение метаданных: Обычно сохраняет информацию о треках, такую как исполнитель, название, обложка альбома и т.д.
🔵Поддержка высокого качества: Возможно скачивание музыки в различных форматах, включая высококачественные (если доступно).
🔵Автоматизация: Может быть использована для массовой загрузки контента благодаря поддержке плейлистов и ссылок на альбомы.
🔵API Яндекс.Музыки: Использует API "Яндекс.Музыка" (или другие методы) для получения данных.

➡️Установка:
git clone https://github.com/kaimi-io/yandex-music-download.git
cd yandex-music-download
pip install -r requirements.txt


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

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

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

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

import fitz

file = 'my_pdf.pdf'

# Открытие PDF-файла
pdf = fitz.open(file)

# Перебор каждой страницы PDF-файла
for i in range(len(pdf)):
# Перебор каждого изображения на текущей странице
for image in pdf.get_page_images(i):
# Получение ссылки на изображение
xref = image[0]
# Создание объекта пиксмапы из ссылки на изображение
pix = fitz.Pixmap(pdf, xref)
# Проверка, имеет ли изображение менее 5 цветовых компонентов (не является ли изображением в формате CMYK)
if pix.n < 5:
# Сохранение пиксмапы в виде изображения PNG
pix.save(f'{xref}.png')
else:
# Создание новой пиксмапы с цветовым пространством RGB
pix1 = fitz.open(fitz.csRGB, pix)
# Сохранение новой пиксмапы в виде изображения PNG
pix1.save(f'{xref}.png')
# Освобождение ресурсов, связанных с новой пиксмапой
pix1 = None
# Освобождение ресурсов, связанных с исходной пиксмапой
pix = None
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤‍🔥2
👀 Библиотека Eventlet в Python

Библиотека Eventlet предназначена для работы с асинхронным вводом-выводом и реализации кооперативной многозадачности.

Позволяет писать код, который выглядит как синхронный, но работает асинхронно. Это достигается за счет "зелёных потоков" (green threads), которые работают поверх системных потоков и организуются самим Eventlet.

Основные возможности библиотеки:
🔵Зеленые потоки (green threads) для кооперативной многозадачности.
🔵Асинхронный ввод-вывод для работы с сетевыми и файловыми операциями.
🔵Патчинг стандартных библиотек Python (socket, ssl, etc.) для асинхронной работы.
🔵Простое управление параллельным выполнением задач.
🔵Интеграция с сетевыми протоколами (TCP, UDP, HTTP, HTTPS).
🔵Поддержка серверов WSGI для веб-приложений.
🔵Создание легковесных сетевых серверов и клиентов.
🔵Совместимость с библиотеками для сетевого программирования.
🔵Лёгкая работа с очередями и синхронизацией потоков.

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

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

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

Основной фокус проекта — создание Python-кода для автоматизации действий, например, заполнение форм, навигация по сайтам или выполнение сложных веб-действий.

Основные возможности:
🔵Обработка инструкций на естественном языке: Например, вы можете описать, что хотите сделать (зайти на сайт, кликнуть на кнопку), а LaVague создаст соответствующий код.
🔵Интерактивный интерфейс через Gradio: Команда lavague launch позволяет визуально наблюдать за результатами автоматизации.
🔵Экспорт Python-кода: С помощью команды lavague build можно генерировать и сохранять скрипты для дальнейшего использования.
🔵Технологии ИИ: Использует подходы, такие как RAG (retrieval-augmented generation) и Chain of Thought, для повышения точности и эффективности выполнения инструкций.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥3
👀 Библиотека Numerizer в Python

Библиотека Numerizer предназначена для преобразования текстовых чисел (на английском языке) в их числовой эквивалент.

Особенности библиотеки:
🔵Преобразует текстовые числа, такие как one hundred twenty-five, в 125.
🔵Поддерживает распознавание сложных числовых выражений, включая дроби и большие числа.
🔵Удобна для обработки текстов, в которых числа записаны словами.

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

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

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

Основные особенности:
🔵Улучшение качества изображения: Используются модели GFPGAN и Real-ESRGAN для восстановления деталей и повышения разрешения изображений.
🔵Замена лица: Применяется InsightFace для точного и естественного наложения лиц.
🔵Гибкость и производительность: Возможность работы как с изображениями, так и с видео, с настройкой параметров производительности, таких как ограничение использования памяти и параллельные потоки.

➡️Установка

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

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

Библиотека Pygal предназначена для создания графиков и диаграмм, отличающаяся простотой использования и возможностью генерировать интерактивные SVG-графики.

Основные возможности библиотеки:
🔵Поддержка различных типов диаграмм: Линейные графики, столбчатые диаграммы, круговые диаграммы и т.д.
🔵Интерактивность: SVG-графики содержат подсказки, которые отображаются при наведении курсора на точки или сегменты.
🔵Кастомизация: Цвета, стили линий и заливки, шрифты. Настройка меток осей и значений. Возможность добавления пользовательских стилей через CSS.
🔵Простота интеграции: Легко интегрируется в веб-приложения, так как генерирует SVG-код, который можно вставить в HTML.
🔵Экспорт: Поддержка экспорта в SVG и PNG (при наличии библиотеки CairoSVG).

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

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

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

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

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

import cv2

# Загрузка видео
cap = cv2.VideoCapture('video.mp4')

# Получение параметров видео для создания объекта VideoWriter
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
fps = int(cap.get(cv2.CAP_PROP_FPS))

# Создание объекта VideoWriter
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Кодек для формата MP4
out = cv2.VideoWriter('output.mp4', fourcc, fps, (frame_width, frame_height))

# Чтение видео по кадрам
while True:
ret, frame = cap.read()
if not ret:
break

# Выбор области для размытия
# x, y - координаты верхнего левого угла
# w, h - ширина и высота области
x, y, w, h = 100, 130, 1300, 650 # Пример координат и размеров

# Выделение области, которую нужно размыть
roi = frame[y:y + h, x:x + w]

# Применение размытия к выбранной области
roi_blurred = cv2.GaussianBlur(roi, (23, 23), 70)

# Вставка размытой области обратно в кадр
frame[y:y + h, x:x + w] = roi_blurred

# Запись обработанного кадра в выходной файл
out.write(frame)

# Отображение кадра
cv2.imshow('Blurred Area', frame)

# Выход из цикла по нажатию клавиши 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# Освобождение ресурсов и закрытие окон
cap.release()
out.release()
cv2.destroyAllWindows()


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

Библиотека Pandas AI интегрирует возможности искусственного интеллекта в работу с данными на базе библиотеки Pandas.

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

Основные возможности библиотеки:
🔵Интерактивный анализ данных: Формулируйте запросы на естественном языке, например: "Найди среднее значение столбца 'доходы' за 2024 год."
🔵Улучшенная визуализация: Генерация графиков, таких как гистограммы или диаграммы, на основе текстового описания, например: "Построй график изменения цен по месяцам."
🔵Интеграция с Pandas: Работает с обычными объектами Pandas (DataFrame), добавляя к ним функционал обработки через ИИ.
🔵Обратная совместимость: Весь функционал Pandas остается доступным, и библиотека легко интегрируется в существующие проекты.

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

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

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

Hug — это легковесный фреймворк для создания API и web-приложений на Python. Ориентирован на упрощение разработки API, обеспечивая интуитивно понятный интерфейс и минимальные усилия при настройке.

Основные цели библиотеки: скорость, удобство и читаемость кода.

Основные особенности библиотеки:
🔵Простота использования: Минимизирует количество кода, который нужно написать для создания API. Даже базовые API могут быть реализованы всего за несколько строк кода.
🔵Многопротокольная поддержка: Поддерживает создание API для HTTP, CLI (интерфейс командной строки) и даже функций для прямого использования в Python.
🔵Автоматическая документация: Автоматически генерирует понятную документацию для ваших API, доступную по URL-адресу.
🔵Проверка данных: Поддерживает встроенную валидацию входных данных, используя аннотации типов Python и валидаторы.
🔵Высокая производительность: Работает асинхронно и оптимизирован для работы с сервером ASGI (например, с использованием Starlette или FastAPI).
🔵Масштабируемость: API, созданные на Hug, легко масштабируются благодаря поддержке асинхронных операций.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥2
👀 Библиотека AudioFlux в Python

Библиотека AudioFlux позволяет анализировать, визуализировать и обрабатывать аудио сигналы.

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

Основные возможности библиотеки:
🔵Преобразования аудиосигналов: Поддержка различных видов спектральных преобразований, включая STFT (Short-Time Fourier Transform), CQT (Constant-Q Transform), и Wavelet-преобразования. Возможность анализа сигналов с высокой точностью.
🔵Извлечение признаков: Извлечение акустических характеристик, таких как мел-спектр, мел-кепстральные коэффициенты (MFCC), хрома-признаки, тональные признаки и другие.
🔵Поддержка многодиапазонных спектров: Возможность анализа сигналов в нескольких диапазонах для более детального анализа спектра.
🔵Визуализация: Инструменты для визуализации спектров, включая спектрограммы, мел-спектрограммы и CQT.
🔵Высокая производительность: Оптимизирована для работы с большими объемами аудиоданных благодаря реализации некоторых операций на C.
🔵Кросс-платформенность: Работает на Windows, macOS и Linux.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍3🔥1
📺 Генерация ASCII арта из изображения на Python

В данном shorts напишем код для генерации ASCII-артов из изображения на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2
Справочник Программиста
📺 Генерация ASCII арта из изображения на Python В данном shorts напишем код для генерации ASCII-артов из изображения на Python. ➡️Справочник Программиста. Подписаться
Код для генерации ASCII-арта из изображения на Python

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

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

from PIL import Image


def image_to_ascii(image_path, output_path, width=100):
    # Открываем изображение по указанному пути
    img = Image.open(image_path)
    # Конвертируем изображение в градации серого ('L' - режим grayscale)
    img = img.convert('L')
    # Вычисляем соотношение сторон изображения
    aspect_ratio = img.height / img.width
    # Определяем новую высоту, сохраняя соотношение сторон
    new_height = int(aspect_ratio * width * 0.55)
    # Изменяем размер изображения согласно новым параметрам
    img = img.resize((width, new_height))

    # Получаем пиксельные данные изображения
    pixels = img.getdata()
    # Определяем набор символов для ASCII
    chars = ["@", "#", "S", "%", "?", "*", "+", ";", ":", ",", "."]
    # Преобразуем пиксели в ASCII символы
    ascii_str = "".join([chars[pixel // 25] for pixel in pixels])
    # Получаем длину строки ASCII
    ascii_str_len = len(ascii_str)
    # Формируем строку ASCII изображения с нужной шириной
    ascii_img = "\n".join([ascii_str[index: index + width] for index in range(0, ascii_str_len, width)])

    # Открываем файл в режиме для записи
    with open(output_path, "w") as f:
        # Записываем ASCII изображение в файл
        f.write(ascii_img)


image_to_ascii('image.png', 'output.txt')


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