Справочник Программиста
6.37K subscribers
1.29K photos
376 videos
64 files
1.62K 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

В данном shorts напишем код анимированной консольной новогодней ёлки на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄3❤‍🔥22
Справочник Программиста
📺 Анимированная ёлка в консоли на Python В данном shorts напишем код анимированной консольной новогодней ёлки на Python. ➡️Справочник Программиста. Подписаться
Код анимированной консольной новогодней ёлки на Python

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

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

import random
import time
from colorama import init, Fore

init(autoreset=True) # Инициализация colorama


def draw_tree(height=10):
try:
while True:
print("\033c", end="") # Очистка консоли
print("Новогодняя ёлка\n")
for i in range(1, height + 1):
level = " " * (height - i) + "*" * (2 * i - 1)
decorated_level = "".join(
random.choice([
Fore.GREEN + "*", # Зелёная звезда
Fore.RED + "o", # Красный шарик
Fore.YELLOW + "x" # Жёлтая гирлянда
]) if char == "*" else char for char in level)
print(decorated_level)
print(" " * (height - 1) + Fore.MAGENTA + "|||") # Ствол
time.sleep(0.5) # Пауза для анимации
except KeyboardInterrupt:
print("\nАнимация остановлена. С наступающим Новым годом!")


if __name__ == "__main__":
draw_tree()


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

Библиотека PyYAML предназначена для работы с YAML (YAML Ain't Markup Language), удобным для человека форматом сериализации данных.

YAML
часто используется для конфигурационных файлов и в случаях, когда требуется передача данных между языками программирования, так как он более читаем по сравнению с другими форматами, такими как JSON и XML.

Основные возможности библиотеки:
❄️Чтение YAML: позволяет загружать данные из файлов или строк в формате YAML и преобразовывать их в объекты Python (например, в словари и списки).
❄️Запись YAML: может сериализовать объекты Python обратно в формат YAML, позволяя сохранять данные в файлах или выводить их на экран.
❄️Поддержка сложных объектов: может обрабатывать сложные структуры данных, такие как вложенные списки и словари, а также пользовательские классы.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄33🔥7❤‍🔥43
This media is not supported in your browser
VIEW IN TELEGRAM
Khoj — это инструмент, который превращает локальный компьютер в персонального помощника на основе ИИ.

Интегрируется с популярными приложениями, такими как Obsidian, и позволяет мгновенно искать информацию в заметках, документах или личных базах данных.

Разработан для локального использования, обеспечивая конфиденциальность и безопасность данных.

Основные возможности:
❄️Локальная работа: Все данные остаются на вашем устройстве, что повышает уровень конфиденциальности.
❄️Интеграция с заметками: Особенно хорошо работает с приложением Obsidian, предоставляя возможность умного поиска и анализа ваших заметок.
❄️Натуральный язык: Поддержка запросов на естественном языке, что позволяет взаимодействовать с инструментом интуитивно.
❄️Расширяемость: Возможность подключения собственных баз знаний, документов и других ресурсов.
❄️OpenAI-интеграция: При наличии ключа API OpenAI, можно дополнительно использовать модели GPT для обработки запросов.

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

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

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

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

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

Основные возможности библиотеки:
❄️Повтор попыток при ошибках: Если функция вызывает исключение, Tenacity может автоматически выполнить её повторно.
❄️Настройка интервалов: Можно задавать фиксированные или изменяющиеся интервалы между попытками.
❄️Ограничение попыток: Настраивается максимальное количество попыток или общее время выполнения.
❄️Фильтрация исключений: Можно указать, какие именно исключения должны приводить к повторной попытке.
❄️Callbacks (обратные вызовы): Добавление пользовательских функций для логирования или другой обработки между попытками.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍4🔥2🤔1
sudoku-in-python-packaging — это проект, который демонстрирует, как структурировать Python-проект для решения задачи создания и упаковки консольного приложения на примере игры «Судоку».

Это учебный пример, который помогает лучшие понять практики Python-разработки и создания упаковки для распространения через PyPI.

Каждая ячейка в сетке судоку представляет собой пакет sudoku_{x}_{y} (индексировано 0), а версия (1-9) - это значение в поле, поэтому вы можете написать pyproject.toml, и установленные пакеты будут решением.

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

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

Библиотека pynput используется для управления клавиатурой и мышью, а также для отслеживания их ввода.

Основные возможности библиотеки:
❄️Перехват нажатий и отпусканий клавиш.
❄️Симуляция нажатий клавиш и ввода текста.
❄️Перехват событий мыши (движение, клики, прокрутка).
❄️Симуляция кликов мыши, перемещения курсора и прокрутки.
❄️Поддержка работы с горячими клавишами.
❄️Кроссплатформенность (Windows, macOS, Linux).

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

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

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

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

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

from PIL import Image, ImageDraw, ImageFont


def create_image_with_text(text, output_path="output.png", text_size=36, position="center"):
# Создаём новое изображение размером 800x400, цвет фона - тёмно-синий
img = Image.new("RGB", (800, 400), color=(73, 109, 137))
# Инициализируем объект для рисования
draw = ImageDraw.Draw(img)

# Загружаем шрифт Arial с указанным размером текста
font = ImageFont.truetype("arial.ttf", size=text_size)

# Вычисляем размер текста с помощью textbbox (границы текста в формате (x_min, y_min, x_max, y_max))
text_bbox = draw.textbbox((0, 0), text, font=font)
text_width = text_bbox[2] - text_bbox[0] # Ширина текста
text_height = text_bbox[3] - text_bbox[1] # Высота текста

# Устанавливаем координаты текста в зависимости от выбранного положения
if position == "center": # Центр изображения
text_x = (img.width - text_width) // 2
text_y = (img.height - text_height) // 2
elif position == "top-left": # Верхний левый угол
text_x, text_y = 10, 10
elif position == "top-right": # Верхний правый угол
text_x = img.width - text_width - 10
text_y = 10
elif position == "bottom-left": # Нижний левый угол
text_x = 10
text_y = img.height - text_height - 10
elif position == "bottom-right": # Нижний правый угол
text_x = img.width - text_width - 10
text_y = img.height - text_height - 10
else:
# Если указано некорректное положение, выбрасываем исключение
raise ValueError(
"Недопустимое значение для position. Используйте: center, top-left, top-right, bottom-left, bottom-right."
)

# Добавляем текст на изображение по рассчитанным координатам
draw.text((text_x, text_y), text, fill="white", font=font)
# Сохраняем изображение в файл
img.save(output_path)
# Выводим сообщение о сохранении файла
print(f"Изображение сохранено как {output_path}")


# Запрашиваем у пользователя текст для изображения
text = input("Введите текст для изображения: ")
# Запрашиваем у пользователя размер текста
text_size = int(input("Введите размер текста: "))
# Предлагаем выбрать расположение текста
print(
"Выберите расположение текста: center, top-left, top-right, bottom-left, bottom-right"
)
# Получаем выбор пользователя
position = input("Введите расположение текста: ").strip()
# Вызываем функцию с указанными параметрами
create_image_with_text(text, text_size=text_size, position=position)


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

Библиотека In_place предоставляет удобный способ для редактирования файлов "на месте" — т.е. без необходимости создавать временные файлы, а затем заменять оригинал.

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

Основные возможности библиотеки:
❄️Редактирование файлов "на месте" через временный файл.
❄️Чтение файла строка за строкой с одновременной записью изменений.
❄️Безопасная замена оригинального файла только после успешной обработки.
❄️Поддержка текстового и бинарного режимов работы.
❄️Простое добавление, удаление или модификация строк в файле.
❄️Обработка файлов любого размера без создания дополнительных копий в памяти.
❄️Автоматическое управление временными файлами и их удаление.
❄️Обработка исключений без повреждения оригинального файла.
❄️Кросс-платформенность для Windows, macOS и Linux.

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

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

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

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

Основные возможности:
❄️Генерация хэшей: создаёт хэши с использованием алгоритмов, подходящих для задач, не требующих высокой криптографической устойчивости.
❄️Настраиваемая длина: возможность задавать длину выходного хэша.
❄️Простота использования: рассчитан на минимальную настройку, позволяя быстро интегрировать его в проекты.

📱 Репозиторий
📹 Видео-презентация

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

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

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

from moviepy.editor import VideoFileClip, CompositeVideoClip, ImageClip
from PIL import Image, ImageDraw, ImageFont
import numpy as np


def add_watermark(input_video, output_video, watermark_text, font_size=24, position=("right", "bottom"), opacity=128):
# Загружаем видео
video = VideoFileClip(input_video)

# Создаём изображение с текстом водяного знака
font_path = "arial.ttf" # Указываем путь к файлу шрифта
font = ImageFont.truetype(font_path, font_size)

# Получаем размеры текста
text_bbox = font.getbbox(watermark_text)
text_width, text_height = text_bbox[2], text_bbox[3]

# Создаём прозрачное изображение для водяного знака
watermark_image = Image.new("RGBA", (text_width, text_height), (0, 0, 0, 0))
draw = ImageDraw.Draw(watermark_image)
draw.text((0, 0), watermark_text, font=font, fill=(255, 255, 255, opacity))

# Преобразуем Pillow-изображение в NumPy-массив
watermark_array = np.array(watermark_image)

# Конвертируем NumPy-массив в ImageClip
watermark_clip = ImageClip(watermark_array).set_duration(video.duration)

# Определяем позицию водяного знака
if position == ("right", "bottom"):
position = (video.size[0] - text_width - 10, video.size[1] - text_height - 10)
elif position == ("left", "top"):
position = (10, 10)
elif position == ("right", "top"):
position = (video.size[0] - text_width - 10, 10)
elif position == ("left", "bottom"):
position = (10, video.size[1] - text_height - 10)

watermark_clip = watermark_clip.set_position(position)

# Создаем итоговое видео
final_video = CompositeVideoClip([video, watermark_clip])
final_video.write_videofile(output_video, codec="libx264", audio_codec="aac")


# Пример использования
add_watermark(
input_video="input.mp4",
output_video="output_with_watermark.mp4",
watermark_text="My Watermark",
font_size=36,
position=("right", "bottom"),
opacity=200
)


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

Библиотека FastUI предназначена для быстрого создания пользовательских интерфейсов (UI) с использованием Python-кода.

Создана на базе FastAPI и Pydantic, предоставляя разработчикам мощный и удобный инструмент для построения интерфейсов без необходимости глубокого изучения фронтенд-технологий.

Основные особенности библиотеки:
🔵Быстрое создание UI: Позволяет описывать интерфейс на Python с использованием декларативного подхода, что снижает порог входа для разработчиков.
🔵Интеграция с FastAPI: Отлично сочетается с FastAPI, предоставляя возможность интеграции UI с API в одном проекте.
🔵Использование Pydantic: Данные и валидация базируются на модели Pydantic, что гарантирует согласованность и удобство работы с типизированными данными.
🔵Интерактивный UI: Поддержка интерактивных элементов, таких как формы, таблицы и кнопки, позволяет быстро создавать пользовательские приложения.
🔵Масштабируемость: Подходит как для небольших проектов, так и для создания интерфейсов в крупных системах.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥3
Voice-Pro — утилита с веб-интерфейсом на базе Gradio, предназначенная для обработки аудио. Разработана на языке Python и предоставляет широкий спектр функций для работы с голосом и текстом.

Основные возможности:
🔵Загрузка с YouTube: Позволяет скачивать видео с YouTube и извлекать из них аудио в форматах mp3, wav или flac.
🔵Удаление вокала: Использует технологии MDX-Net (UVR5) и Demucs для разделения вокала и инструментала в аудиофайлах.
🔵Распознавание речи (STT): Поддерживает преобразование речи в текст с использованием моделей Whisper, Faster-Whisper и Whisper-Timestamped.
🔵Переводчик: Интегрирован с Google Translate для перевода коротких текстов и субтитров на более чем 100 языков.
🔵Синтез речи (TTS): Предоставляет функции преобразования текста в речь с использованием Edge-TTS, а также моделей E2 и F5-TTS, поддерживающих клонирование голоса.
🔵Клонирование голоса: Обеспечивает возможность клонирования голоса для создания подкастов или других аудиоматериалов.
🔵Реальное время и пакетная обработка: Поддерживает как обработку в реальном времени, так и пакетную обработку большого количества файлов.

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

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

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

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

Основные особенности библиотеки:
🔵Хэширование паролей: Использует алгоритм bcrypt для создания хэшей паролей. Этот алгоритм использует соль для предотвращения атак с помощью радужных таблиц и делает хэширование более вычислительно сложным с каждым годом.
🔵Гибкость и настройка:
🟢Cost factor (или work factor) позволяет увеличивать вычислительную сложность хэширования, чтобы сделать его более защищённым от атак с использованием параллельных вычислений.
🟢Можно настроить количество итераций для хэширования, что позволяет адаптировать алгоритм под требования безопасности.
🔵Соль: Соль — это случайная строка, которая добавляется к паролю перед его хэшированием, обеспечивая уникальность каждого хэша, даже если два пользователя имеют одинаковые пароли.
🔵Безопасность: Позволяет безопасно хранить пароли, так как bcrypt не позволяет восстановить исходный пароль из его хэша. Для проверки пароля используется метод checkpw, который сравнивает введённый пароль с хэшем.

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

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

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