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