Кэширование значения свойства в классе Python
Рассмотрим пример использования декоратора
🔍 Как это работает?
🔵 Мы создаем класс
🔵 При первом обращении к result выполняются "дорогие" вычисления, и результат кэшируется.
🔵 При последующих обращениях результат возвращается из кэша, а повторные вычисления больше не выполняются. Это значительно повышает производительность!
💡 Почему стоит использовать?
Используйте
➡️ Установка необходимой библиотеки:
➡️ Справочник Программиста. Подписаться
Рассмотрим пример использования декоратора
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
, который принимает значение.Используйте
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
позволяет создавать веб-интерфейсы с минимальным количеством кода.Предназначена для быстрого прототипирования и разработки пользовательских интерфейсов для веб-приложений.
Основные особенности библиотеки:
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
предназначена для работы с асинхронным вводом-выводом и реализации кооперативной многозадачности.Позволяет писать код, который выглядит как синхронный, но работает асинхронно. Это достигается за счет "зелёных потоков" (green threads), которые работают поверх системных потоков и организуются самим
Eventlet
.Основные возможности библиотеки:
socket
, ssl
, etc
.) для асинхронной работы.pip install eventlet
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥3
LaVague
— это инструмент на основе искусственного интеллекта, который превращает естественный язык в автоматизацию действий в браузере.Основной фокус проекта — создание Python-кода для автоматизации действий, например, заполнение форм, навигация по сайтам или выполнение сложных веб-действий.
Основные возможности:
LaVague
создаст соответствующий код.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
предназначена для преобразования текстовых чисел (на английском языке) в их числовой эквивалент.Особенности библиотеки:
pip install numerizer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2🤨2👍1
FaceFusion
— это инструмент на базе ИИ для работы с изображениями, позволяющий выполнять улучшение качества лица и реалистичное наложение одного лица на другое.Основные особенности:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека
Pygal
предназначена для создания графиков и диаграмм, отличающаяся простотой использования и возможностью генерировать интерактивные SVG-графики.Основные возможности библиотеки:
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
интегрирует возможности искусственного интеллекта в работу с данными на базе библиотеки 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
— это легковесный фреймворк для создания API и web-приложений на Python. Ориентирован на упрощение разработки API, обеспечивая интуитивно понятный интерфейс и минимальные усилия при настройке.Основные цели библиотеки: скорость, удобство и читаемость кода.
Основные особенности библиотеки:
Starlette
или FastAPI
).Hug
, легко масштабируются благодаря поддержке асинхронных операций.pip install hug
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤🔥2
Библиотека
AudioFlux
позволяет анализировать, визуализировать и обрабатывать аудио сигналы.Разработана для работы с различными задачами, связанными с аудиосигналами, включая извлечение признаков, преобразования и анализ спектра.
Основные возможности библиотеки:
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
В данном shorts напишем код для генерации ASCII-артов из изображения на Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥2
Справочник Программиста
Код для генерации 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