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

Библиотека EasyOCR предназначена для оптического распознавания текста (OCR). Поддерживает множество языков (более 80) и отличается простотой использования.

Использует нейронные сети для распознавания текста на изображениях, работая с такими популярными библиотеками, как PyTorch и OpenCV.

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

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

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

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

Для извлечения всех таблиц из HTML-файла в коде используется библиотека BeautifulSoup4.

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

from bs4 import BeautifulSoup


def extract_tables_from_file(file_path):
# Открываем файл по указанному пути в режиме чтения с кодировкой UTF-8
with open(file_path, 'r', encoding='utf-8') as file:
# Читаем содержимое файла и сохраняем его в переменной html
html = file.read()

# Создаем объект BeautifulSoup для парсинга HTML-кода
soup = BeautifulSoup(html, 'html.parser')
# Инициализируем пустой список для хранения извлеченных таблиц
tables = []
# Находим все элементы <table> в HTML-документе
for table in soup.find_all('table'):
# Инициализируем пустой список для хранения строк текущей таблицы
rows = []
# Находим все строки <tr> в текущей таблице
for row in table.find_all('tr'):
# Извлекаем текст из всех ячеек <td> и <th>, убирая лишние пробелы
cells = [cell.get_text(strip=True) for cell in row.find_all(['td', 'th'])]
# Добавляем список ячеек в список строк
rows.append(cells)
# Добавляем список строк в общий список таблиц
tables.append(rows)
# Возвращаем список всех извлеченных таблиц
return tables


# Вызываем функцию и выводим результат для файла 'example.html'
print(extract_tables_from_file('example.html'))


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

Библиотека python-benedict предназначена для работы со словарями и предоставляет расширенные возможности по сравнению с обычными словарями.

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

Основные возможности библиотеки:
🔵Поддержка вложенных ключей (с нотацией через точку).
🔵Получение значений с использованием значений по умолчанию.
🔵Поддержка различных форматов данных (JSON, XML, YAML, TOML, INI и др.).
🔵Преобразование данных между форматами.
🔵Методы для плоской иерархии данных.
🔵Слияние словарей.
🔵Поиск по значению в словаре.
🔵Глубокое копирование и клонирование словарей.
🔵Удаление ключей, включая вложенные.
🔵Встроенные методы для работы с URL и файловыми путями.
🔵Конвертация между словарем и строками форматов (например, JSON, YAML и т.д.).

➡️Установка библиотеки: pip install "python-benedict[all]"

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

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

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

Основана на Flask (для серверной части), React (для фронтенда) и Plotly (для построения графиков).

Основные особенности библиотеки:
🔵Интерактивные визуализации: позволяет создавать интерактивные графики и диаграммы с помощью библиотеки Plotly.
🔵Компоненты интерфейса: предлагает множество компонентов интерфейса, таких как кнопки, ползунки, выпадающие списки и т.д., что позволяет пользователям взаимодействовать с приложением.
🔵Обновление в реальном времени: возможность визуализировать и обновлять данные в реальном времени, что полезно для приложений, требующих постоянного мониторинга.
🔵Поддержка различных форматов данных: может работать с различными источниками данных, включая CSV, JSON и базы данных.
🔵Легкость развертывания: Приложения Dash легко развертывать на сервере или в облаке, что упрощает доступ к ним для конечных пользователей.
🔵Гибкость: позволяет интегрировать собственный CSS и JavaScript для создания более сложных интерфейсов и функций.

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

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

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

Библиотека latexify автоматически преобразует Python-функции и математические выражения в формат LaTeX. Это упрощает процесс создания математической документации или вывода выражений для использования в научных статьях, презентациях или других контекстах, где применяется LaTeX.

Основные возможности библиотеки:
🔵Автоматическое преобразование Python-функций в LaTeX-код.
🔵Поддержка базовых математических операций (сложение, вычитание, умножение, деление, возведение в степень).
🔵Поддержка математических функций (синус, косинус, логарифмы, экспоненты и т.д.).
🔵Генерация компактных LaTeX-выражений для сложных математических функций.
🔵Простая интеграция с научной документацией и презентациями на базе LaTeX.
🔵Поддержка работы с функциями нескольких переменных.

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

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

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

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

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

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

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

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

Для получения информации о стране по её коду мы используем специальный API, а для работы с ним - библиотеку requests.

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

import requests


def get_country_info(country_code):
# Формируем URL для API с использованием кода страны
url = f"https://restcountries.com/v3.1/alpha/{country_code}"
response = requests.get(url) # Выполняем GET-запрос к API

# Проверяем, успешен ли запрос (код 200)
if response.status_code == 200:
# Преобразуем ответ в формат JSON
country_data = response.json()

# Проверяем, что данные - это список и он не пуст
if isinstance(country_data, list) and len(country_data) > 0:
# Получаем первую запись из списка данных о стране
country_info = country_data[0]
# Извлекаем общее название страны
name = country_info['name']['common']
# Извлекаем столицу, если она известна
capital = country_info['capital'][0] if 'capital' in country_info else 'Unknown'
# Извлекаем население, если оно известно
population = country_info['population'] if 'population' in country_info else 'Unknown'
# Извлекаем площадь, если она известна
area = country_info['area'] if 'area' in country_info else 'Unknown'

print(f"Страна: {name}") # Выводим название страны
print(f"Столица: {capital}") # Выводим столицу страны
print(f"Население: {population}") # Выводим население страны
print(f"Площадь: {area} квадратных километров") # Выводим площадь страны в квадратных километрах
else:
# Сообщаем об ошибке, если данные отсутствуют
print(f"Ошибка: Не удалось получить информацию для кода страны {country_code}")
else:
# Сообщаем об ошибке, если запрос не успешен
print(f"Ошибка: Не удалось получить информацию для кода страны {country_code}")


# Вызываем функцию для получения информации о стране с кодом 'IT' (Италия)
get_country_info('IT')


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

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

Основные особенности:
🔵Оптическое распознавание текста (OCR): извлечение текста из изображений с использованием Tesseract OCR.
🔵Создание скриншотов: возможность захвата экрана и обработки изображений для извлечения текста.
🔵Поддержка сторонних утилит: интеграция со скриншотными утилитами (например, scrot) для Linux.
🔵Поддержка нескольких языков: благодаря Tesseract возможен выбор различных языков для OCR.
🔵Поддержка горячих клавиш: опциональная настройка горячих клавиш для удобного вызова функции захвата экрана.
🔵Работа на X11-системах: оптимизирован для Linux-десктопов, особенно с X11, но может требовать адаптации для работы в других окружениях.

➡️Установка
# clone repository
git clone https://github.com/RajSolai/TextSnatcher.git TextSnatcher
# cd to dir
cd TextSnatcher
# run meson
meson build --prefix=/usr
# cd to build, build and test
cd build
sudo ninja install && com.github.rajsolai.textsnatcher


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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥3👍2
👀 Библиотека 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