Справочник Программиста
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
👀 Библиотека Qiskit в Python

Библиотека Qiskit предназначена для работы с квантовыми вычислениями.

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

Основные компоненты библиотеки:
🔵Qiskit Terra: отвечает за создание квантовых схем и компиляцию их для выполнения на различных квантовых процессорах и симуляторах. Она предоставляет базовые инструменты для создания квантовых цепей (quantum circuits), работу с кубитами и квантовыми регистрами.
🔵Qiskit Aer: это симулятор квантовых цепей, который позволяет запускать квантовые программы на классических компьютерах, чтобы протестировать их перед отправкой на реальный квантовый процессор.
🔵Qiskit Ignis: предназначен для изучения квантовых ошибок и разработки методов исправления ошибок. С его помощью можно анализировать и контролировать влияние ошибок в квантовых системах.
🔵Qiskit Aqua: это высокоуровневый слой библиотеки, который используется для работы с квантовыми приложениями в таких областях, как химия, машинное обучение и оптимизация. Содержит готовые алгоритмы, которые можно применять к различным задачам.

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

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

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

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

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

Основные возможности библиотеки:
🔵Автоматическая перезагрузка: отслеживает изменения в файлах и перезапускает приложение при обнаружении любых изменений.
🔵Отслеживание зависимостей: может отслеживать не только файлы проекта, но и зависимости, такие как модули и библиотеки, что позволяет более точно определять, когда требуется перезагрузка.
🔵Поддержка разных ОС: работает на Windows, macOS и Linux.
🔵Лёгкая интеграция: можно легко интегрировать с проектами на Python, включая веб-фреймворки (например, Pyramid).

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤‍🔥3🔥2
Ankigen — это утилита, основанная на Gradio, которая использует большие языковые модели (LLM) для генерации CSV-файлов, совместимых с Anki, на основе заданных пользователем тем и предпочтений.

Основные особенности:
🔵Поддержка CSV: позволяет загружать данные из CSV-файлов, что удобно для подготовки карточек в табличном формате, особенно если информация уже собрана в таких файлах.
🔵Гибкая настройка: позволяет настраивать формат карточек, указывать, какие столбцы из данных должны использоваться как вопрос, ответ или примечание.
🔵Поддержка шаблонов: позволяет использовать шаблоны для создания карточек с различными стилями и форматами. Например, можно задать оформление текста, добавить изображения или использовать различные типы карточек (например, вопросы с выбором одного ответа или с текстовым ответом).
🔵Интеграция с Anki: генерирует карточки в формате, совместимом с Anki (в формате .apkg), который можно сразу импортировать в приложение для работы с карточками.

📱 Репозиторий
💬 AnkiGen online

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

Для получения изображений мы будем использовать Pexels API. Получить API key можно на официальном сайте (это бесплатно, дело 5 секунд).

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

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

import requests

# Указываем API-ключ для доступа к Pexels
API_KEY = "YOUR_PEXELS_API_KEY"
# Определяем базовый URL для поиска изображений в Pexels
BASE_URL = "https://api.pexels.com/v1/search"


def search_images(query, per_page=10, page=1):
"""
Функция для поиска изображений на Pexels по ключевому слову.

:param query: Ключевое слово для поиска.
:param per_page: Количество изображений на странице (макс. 80).
:param page: Номер страницы результатов.
:return: Список ссылок на изображения.
"""
headers = {
"Authorization": API_KEY # Устанавливаем заголовок авторизации с API-ключом
}
params = {
"query": query, # Ключевое слово для поиска изображений
"per_page": per_page, # Количество изображений на странице
"page": page # Номер страницы результатов
}
# Отправляем GET-запрос к API Pexels
response = requests.get(BASE_URL, headers=headers, params=params)

# Проверяем, успешен ли запрос (код 200)
if response.status_code == 200:
# Преобразуем ответ в формат JSON
data = response.json()
# Извлекаем список фотографий из ответа
photos = data.get("photos", [])
# Получаем ссылки на изображения среднего размера
image_urls = [photo["src"]["medium"] for photo in photos]
# Возвращаем список ссылок на изображения
return image_urls
else:
# Выводим сообщение об ошибке, если запрос не успешен
print(f"Ошибка: {response.status_code}")
# Возвращаем пустой список в случае ошибки
return []


# Пример использования
# Ищем изображения по запросу "hacker", ограничивая до 5 изображений
images = search_images("hacker", per_page=5)
print("Найденные изображения:")
# Проходим по всем найденным ссылкам на изображения
for img_url in images:
# Выводим каждую ссылку на изображение
print(img_url)


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

Библиотека h11 предназначена для работы с протоколом HTTP/1.1 на низком уровне.

Реализует HTTP без использования сокетов или сетевых операций, что позволяет работать с сетевым кодом более детально и настраиваемо. Обрабатывает только логику протокола HTTP/1.1, оставляя все сетевые операции на усмотрение пользователя.

Основные особенности библиотеки
🔵Чистая реализация HTTP/1.1: h11 — это библиотека для построения синхронных и асинхронных HTTP-клиентов и серверов с нуля, без каких-либо дополнительных зависимостей, отвечающих за сокеты или события.
🔵Работа на низком уровне: предоставляет только логику, отвечающую за чтение и запись HTTP-заголовков, тела запроса и ответа, обработку chunked-трансфера, а также управление состояниями протокола. Это требует от разработчика понимания работы с сокетами и событийными циклами, что делает её подходящей для продвинутых пользователей.
🔵Состояния и события: управляет состоянием соединения с помощью конечного автомата, позволяя легко обрабатывать и отслеживать состояние соединения.
🔵Совместимость с асинхронными и синхронными библиотеками: хотя h11 сама по себе не асинхронная, она отлично интегрируется с asyncio, trio или curio, так как не накладывает ограничений на способ работы с сокетами.

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

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

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

Для удаления метаданных из Word-документа в коде используется модуль zipfile.

import zipfile


def remove_docx_metadata(doc_path):
# Создаём имя для нового документа без метаданных
cleaned_doc_path = f"cleaned_{doc_path}"

# Открываем исходный .docx файл как zip-архив для чтения и создаём новый zip-архив для записи
with zipfile.ZipFile(doc_path, 'r') as src, zipfile.ZipFile(cleaned_doc_path, 'w') as dst:
# Проходимся по всем элементам в исходном архиве
for item in src.infolist():
# Проверяем, не является ли элемент метаданными, которые нужно удалить
if item.filename not in ["docProps/core.xml", "docProps/app.xml", "docProps/custom.xml"]:
# Если элемент не является метаданными, записываем его в новый архив
dst.writestr(item, src.read(item.filename))

# Выводим сообщение о том, что документ сохранён без метаданных
print(f"Документ сохранён без метаданных: {cleaned_doc_path}")


# Указываем путь к исходному документу .docx
doc_path = 'example.docx'
# Вызываем функцию для удаления метаданных из указанного документа
remove_docx_metadata(doc_path)


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

Библиотека Toga предназначена для создания графических интерфейсов (GUI) и входит в проект BeeWare.

Позволяет писать кросс-платформенные приложения, поддерживающие операционные системы Windows, macOS, Linux, Android и iOS.

Основные особенности библиотеки:
🔵Кросс-платформенность: одно и то же приложение может работать на разных операционных системах без необходимости изменения кода.
🔵Нативные виджеты: элементы интерфейса (кнопки, текстовые поля, списки) выглядят так, как если бы приложение было написано специально для этой ОС.
🔵Открытый исходный код: библиотека свободно доступна на GitHub, и разработчики могут вносить в нее изменения и предлагать улучшения.

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

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

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

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

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

➡️Установка: pip install git-fame

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

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

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

Основные особенности библиотеки:
🔵Широкий набор поддерживаемых языков: поддерживает более 500 языков программирования и различных синтаксисов (например, JSON, SQL, HTML и др.).
🔵Гибкость форматов вывода: можно преобразовать подсвеченный код в HTML, SVG, LaTeX и многие другие форматы.
🔵Разнообразие стилей: предлагает множество готовых стилей подсветки (например, "monokai", "friendly", "native"), а также возможность создания собственных стилей.
🔵CLI и API: предоставляет как интерфейс командной строки (CLI), так и API на Python, позволяя встраивать подсветку синтаксиса в приложения и веб-проекты.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥4
Кэширование значения свойства в классе 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